HADOOP多节点安装过程
[注意:通过以root模式在默认用户(例如master,slave1,slave2…等)上创建和使用所有内容,以最简单的方式创建多节点。请不要创建任何hadoop用户(例如hadoop,hduser等)来配置和共享hadoop安装。我正在所有计算机上使用root用户建立多节点连接。]
步骤1:更新系统上的一个或所有软件包
$ yum update
步骤2:考虑过时的更新程序包
$ yum upgrade
步骤3:检查主从系统中的主机名,并相应地重命名
使用以下命令检查主机和从机的主机名
$ hostname
重命名计算机的主机名
在主计算机中:
$ nano /etc/hostname
主***与奴隶类似
在从机中:
$ nano /etc/hostname
slave1
slave2
步骤4:编辑/ etc / hosts
现在,让ssh进入master,slave1,slave2并更改/ etc / hosts文件,以便每次我们希望使用或ping这些机器中的任何机器时都可以使用主机名代替IP
$ vim /etc/hosts
使用master,slave1,slave2中的以下行来添加您的主机和从机的IP地址和主机名
192.168.1.9主
192.168.1.3从1
192.168.1.23从2
步骤5:生成无密码的Ssh密钥:
安装OpenSSH服务器:
# yum install openssh-server
确保端口22已打开:
# netstat -tulpn | grep :22
编辑/ etc / sysconfig / iptables(IPv4防火墙):
***如果机器中未安装iptable。请按照步骤6安装iptable ***
# vi /etc/sysconfig/iptables
添加以下行并保存
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
启动OpenSSH服务:
# service sshd start
# chkconfig sshd on
# service sshd restart
如果您的站点使用IPv6,并且您正在编辑ip6tables,请使用以下行:
添加以下行并保存
-A RH-防火墙1-输入-m tcp -p tcp –dport 22 -j接受
重启iptables:
# service iptables restart
生成公共ssh密钥:
在主机中
创建ssh密钥:
使用以下命令创建无密码的公共ssh密钥
[root@master ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
使用以下命令将公钥添加到authorized_keys文件中
[root@master ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置ssh密钥的权限和授权权限:
[root@master ~]# chmod 0600 ~/.ssh/authorized_keys
将ssh密钥从master复制到slave1:
仅使用以下命令将公用密钥复制到服务器(从机1,从机2)。私钥绝不能复制到另一台机器上
[root@master ~]# ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@slave1
[注意:如果以上命令显示错误。请按照步骤6来配置和禁用防火墙和iptables]
将ssh密钥从master复制到slave2:
[root@master ~]# ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@slave2
[注意:如果以上命令显示错误。请按照步骤6来配置和禁用防火墙和iptables]
测试新密钥:
从主机到自己的ping ssh连接
[root@master ~]# ssh master
* ping SSH连接从主机到slave1机器*
[root@master~]
# ssh slave1
* ping SSH连接从主机到slave2机器*
[root@master~]
# ssh slave2
在slave1机器中
创建ssh密钥:
使用以下命令创建无密码的公共ssh密钥
[root@slave1 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
使用以下命令将公钥添加到authorized_keys文件中
[root@slave1 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置ssh密钥的权限和授权权限:
[root@slave1 ~]# chmod 0600 ~/.ssh/authorized_keys
将ssh密钥从slave1复制到主服务器:
仅使用以下命令将公用密钥复制到服务器(从机1,从机2)。私钥绝不能复制到另一台机器上
[root@slave1 ~]# ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@master
[注意:如果以上命令显示错误。请按照步骤6来配置和禁用防火墙和iptables]
将ssh密钥从slave1复制到slave2:
[root@slave1 ~]
# ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@slave2
[ 注意:如果以上命令显示错误。请按照步骤6来配置和禁用防火墙和iptables]
测试新密钥:
从slave1到自己的ping ssh连接
[root@slave1 ~]# ssh slave1
* ping从slave1到主机的ssh连接*
[root@slave1 ~]# ssh master
* ping从slave1到slave2机器的ssh连接*
[root@slave1 ~]# ssh slave2
在slave2机器中
创建ssh密钥:
使用以下命令创建无密码的公共ssh密钥
[root@slave2 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
使用以下命令将公钥添加到authorized_keys文件中
[root@slave2 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置ssh密钥的权限和授权权限:
[root@slave2~]# chmod 0600 ~/.ssh/authorized_keys
将ssh密钥从slave2复制到主服务器:
仅使用以下命令将公用密钥复制到服务器(从机1,从机2)。私钥绝不能复制到另一台机器上
[root@slave2 ~]# ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@master
[ 注意:如果以上命令显示错误。请按照步骤6来配置和禁用防火墙和iptables]
将ssh密钥从slave2复制到slave 1:
[root@slave2 ~]# ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@slave1
[注意:如果以上命令显示错误。请按照步骤6来配置和禁用防火墙和iptables]
测试新密钥:
从主机到自己的ping ssh连接
[root@slave2 ~]# ssh slave2
* ping从slave2到主机的ssh连接*
[root@slave2 ~]# ssh master
* ping从slave2到slave1机器的SSH连接*
[root@slave2 ~]# ssh slave1
步骤6:禁用防火墙和Iptable
[注意:仅当您在ssh连接或主从机之间ping遇到问题时,才应执行以下步骤。
禁用防火墙:
$ systemctl disable firewalld
停止防火墙:
$ systemctl stop firewalld
检查firewalld的状态:
$ systemctl status firewalld
***由于防火墙操作服务不应在iptables服务运行时手动启动,因此可以防止防火墙服务在启动时自动启动***
$ systemctl mask firewalld
安装iptable:
$ yum install iptables-services
启用iptable:
$ systemctl enable iptables
启动iptable:
$ systemctl start iptables
停止iptables:
$ service iptables stop
停止ip6table:
$ service ip6tables stop
步骤7:安装Java 1.8
[注意:在主机和从机上分别安装Java]
***从Oracle网站下载jdk 1.8 ***
http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html
使用以下命令提取jdk-1.8 rpm文件
$ rpm -ivh /home/Download/jdk-8u181-linux-x64.rpm
***将提取的Java文件从/ home /下载到/ usr / local ***
$ mv /home/Download/jdk1.8.0_181 /usr/local/
步骤8:安装Hadoop
[ 注意:单独在主机上下载并安装hadoop并将共享的hadoop安装文件夹共享给从属计算机]
***使用以下命令在主系统中下载hadoop-3.1.0 ***
$ wget https://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/hadoop-3.1.0.tar.gz
将hadoop-3.1.0.tar.gz文件从/ home /下载到主系统中的/ usr / local中
$ mv /home/Download/hadoop-3.1.0.tar.gz /usr/local
提取或解压缩hadoop-3.1.0文件
$ tar -xzvf /usr/local/hadoop-3.1.0.tar.gz
步骤9:编辑Hadoop配置文件
1.编辑〜/ .bash_profile
$ nano ~/.bash_profile
添加以下几行*
#Set Java-related environmental variables
export JAVA_HOME=/usr/local/jdk1.8.0_181-amd64
export PATH=$PATH:$JAVA_HOME/bin
# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop-3.1.0
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
获取资料以反映变化
$ . ~/.bash_profile
现在使用以下命令检查JAVA版本
$ java –version
***现在使用以下命令检查HADOOP VERSION ***
$ hadoop version



6.编辑hadoop-env.sh
$ vim hadoop-env.sh
添加以下行*
export JAVA_HOME=/usr/local/jdk1.8.0_181-amd64
export HADOOP_CONF_DIR="${HADOOP_HOME}/etc/hadoop"
export PATH="${PATH}:${HADOOP_HOME}/bin"
步骤10:在主机上创建namenode目录
$ mkdir -p /home/hadoop/hadoop-3.1.0/hadoop_store/hdfs/namenode
步骤11:修改Masters文件并在master系统中添加namenode的IP地址
在主机上创建一个主机文件
$ vim masters
在主机文件中添加主机的IP地址*
192.168.1.9
步骤12:修改Slaves文件并在主系统中添加datanode的IP地址
在主机上创建奴隶文件
$ vim slaves
在slaves文件中添加从机的IP地址
192.168.1.23
192.168.1.3
要查看主文件的内容:
$ cat masters
它将显示主IP地址
192.168.1.9
要查看Slaves文件的内容:
$ cat slaves
它将显示从属IP地址列表
192.168.1.23
192.168.1.3
步骤13:将hadoop-3.1.0文件复制到从属服务器
将hadoop文件从主计算机/usr/local/hadoop-3.1.0安全复制到从计算机
***在主机中键入以下命令,并将文件从Master复制到Slave1 ***
$ scp -r /usr/local/hadoop-3.1.0 root@slave1:~/
***在主机上键入以下命令,并将文件从Master复制到Slave2 ***
$ scp -r /usr/local/hadoop-3.1.0 root@slave2:~/
步骤14:在Slave1和Slave2机器上建立datanode的目录
在hadoop-3.1.0中为从属计算机中的datanode创建目录
$ mkdir –p /home/hadoop/hadoop-3.1.0/hadoop_store/hdfs/datanode
chmod 777 /home/hadoop/hadoop-3.1.0/hadoop_store/hdfs/datanode
步骤15:在主计算机上格式化namenode
$ hdfs namenode -format
步骤16:启动Namenode和Datanode
$ start-dfs.sh
步骤17:启动Nodemanager和Resourcemanager
$ start-yarn.sh
步骤18:在主服务器和从服务器上启动Hadoop守护程序
在主机上键入以下命令
$ jps
它将显示主机的输出守护程序
10307 Jps
7961 ResourceManager
7105 NameNode
7352 SecondaryNameNode
在slave1机器的中键入以下命令***
$ jps
它将显示slave1机器的输出守护进程
2780 Jps
2181 NodeManager
1996数据节点
在slave2机器上键入以下命令
$ jps
它将显示slave2机器的输出守护进程
1735 Jps
2328 NodeManager
1983数据节点
[注意:如果任何一台计算机中缺少任何守护程序,然后,我们需要格式化namenode并重新启动服务,然后再次检查。如果未完全显示输出,则需要从头开始检查hadoop配置文件。
步骤19:检查Hadoop Web界面(HADOOP WEB UI)
主机DFS健康报告的Web网址
* slave1机器的DFS健康报告的Web网址*
* slave2机器的DFS健康报告的Web网址*
通过命令行验证
root @ master:/usr/local/hadoop-3.1.0/etc/hadoop> hdfs dfsadmin -report
资源管理器的网址
恭喜!现在,我们已经使用yarn模式在多节点上成功安装了hadoop。