Linux ·

Ubuntu下安装Hadoop(完全分布模式)

一.前言

Hadoop的安装模式主要有三种:单机模式,伪分布模式和集群模式。单机模式和伪分布模式的安装配置请参考上文Ubuntu下安装Hadoop(单机模式+伪分布模式),真正使用时使用的是hadoop的集群模式。
本文主要讲解在Linux环境下hadoop集群模式的安装和配置。

二.安装步骤

1.在虚拟机中安装三个Linux虚拟机

主机名分别为Master,Slaver1.Slaver2,即一个主节点,两个从节点。上网方式均选择NAT方式。三者对应的IP地址分别为
【Master 192.168.209.128】,【Slaver1 192.168.209.129】,【Slaver2 192.168.209.130】。

2.为三个主机安装SSH服务,配置SSH免密码登录。【SSH是三个节点间通信的协议】

3.安装JDK并配置环境变量

4.更改主机名和IP映射信息,编辑/etc/hoatname和/etc/hosts

5.安装hadoop并配置环境变量

6.修改hadoop的配置文件

7.运行实例并测试


三.开始安装和配置

1.安装SSH,配置SSH免密码登录(以Master为例)

hadoop@Master:~$ sudo apt-get install openssh-server     # 安装SSH
hadoop@Master:~$ ssh localhost                           # 用SSH登录本机测试
hadoop@Master:~$ exit                                    # 退出刚才的 ssh localhost
hadoop@Master:~$ cd ~/.ssh/                              # 若没有该目录,请先执行一次ssh localhost
hadoop@Master:~$ ssh-keygen -t rsa                       # 生成公钥和私钥文件。会有提示,都按回车就可以
hadoop@Master:~$ cat ./id_rsa.pub >> ./authorized_keys   # 将公钥文件追加到授权文件中,获得免密功能。

2.安装JDK,配置环境变量。

hadoop@Master:~$ sudo apt-get install openjdk-8-jdk       #默认安装路径为/usr/lib/jvm/java-8-openjdk-amd64
hadoop@Master:~$ vim ~/.bashrc                            # 加入export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
hadoop@Master:~$ source ~/.bashrc                         # 使环境变量设置生效
hadoop@Master:~$ java -version                            #检查环境配置

3.更改主机名和IP映射信息

hadoop@Master:~$ sudo vim /etc/hostname                   # hostname修改为Master
hadoop@Master:~$ sudo vim /etc/hosts                      # hosts中修改为192.168.209.128 Master 192.168.209.129 Slave1 192.168.209.130 Slave2
hadoop@Master:~$ ping Master -c 3                         # ping连接测试

4.安装hadoop并配置环境变量

hadoop@Master:~$ vim ~/.bashrc                            #加入export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
hadoop@Master:~$ source ~/.bashrc

5.修改hadoop的配置文件/etc/hadoop

  • slaves

文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。

本教程让 Master 节点仅作为 NameNode 使用,因此将文件中原来的 localhost 删除,添加两行内容:Slave1 Slaver2。

  • core-site.xml
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>
  • hdfs-site.xml

dfs.replication 一般设为 3,我们有个数据节点,所以dfs.replication 的值还是设为2:

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
  • mapred-site.xml

可能需要先重命名,默认文件名为 mapred-site.xml.template

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
</configuration>
  • yarn-site.xml
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>Master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

6.在Master节点启动hadoop

hadoop@Master:~$ start-dfs.sh
hadoop@Master:~$ start-yarn.sh
hadoop@Master:~$ mr-jobhistory-daemon.sh start historyserver
hadoop@Master:~$ jps

最终结果:

1.HDFS的守护进程

主节点:Namenode、SecondaryNamenode

从节点:Datanode

2.YARN的守护进程

主节点:ResourceManager

从节点:NodeManager

Hadoop安装配置中的权限管理

1.添加一个hadoop组
sudo addgroup hadoop2.将当前用户hadoop加入到Hadoop组
sudo usermod -a -G hadoop hadoop

3.将hadoop组加入到sudoer
sudo gedit etc/sudoers
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL

4.修改hadoop目录的权限
sudo chown -R hadoop:hadoop /usr/local/hadoop<所有者:组 文件>

5.修改hdfs的权限
sudo chmod -R 755 /usr/local/hadoop

下面关于

参与评论