Centos7下hadoop2.7.7完全分布式集群

服务器节点

3台服务器, hostname分别为master, slave1, slave2

关闭防火墙

  1. systemctl status firewalld.service 或者 firewalld-cmd --state //查看防火墙运行状态
  2. systemctl stop firewalld.service //停止防火墙
  3. systemctl disable firewalld.service //禁用防火墙

创建hadoop用户和组

  1. groupadd hadoop //创建hadoop 组
  2. useradd -g hadoop -m -d /home/hadoop hadoop //创建用户hadoop并加入hadoop组和创建hadoop用户的目录
  3. passwd hadoop //为hadoop用户设置密码

配置节点间的ssh免密登录

  1. su - hadoop //切换到 hadoop 用户
  2. ssh-****** -t rsa //生成hadoop用户的**,连续按回车键直到完成
  3. cd ~ //进入hadoop用户目录
  4. cd .ssh //进入 .ssh 目录
  5. touch authorized_keys //创建authorized_keys文件
  6. chmod 600 authorized_keys //修改authorized_keys 文件的权限为600,这个步骤hadoop用户免密登录的关键,root用户做免密登录则无需该步骤
  7. ll //查看所在目录下的文件
    Centos7下hadoop2.7.7完全分布式集群
  8. cat id_rsa.pub >> authorized_keys //将hadoop用户的公钥添加到authorized_keys 文件。
  9. ssh slave1 //在master使用ssh登录slave1
    Centos7下hadoop2.7.7完全分布式集群
    从上图可以看到不用输入密码就可以登录到slave1了。

注意: 3台服务器应将各自的 id_rsa.pub文件内容追加到同一个authorized_keys 文件,也就是说3台服务器的authorized_keys文件的内容是一样的,都包含了3台服务器的id_rsa.pub文件的内容。

安装jdk

  1. 上传下载好的jdk,此处使用的是jdk-8u181-linux-x64.tar.gz
  2. su - root //切换回root用户
  3. tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java //解压到/usr/local/java 目录下,路径需要已经存在
  4. vim /etc/profile //配置环境变量;编辑 profile文件,在文件末尾添加如下图
    Centos7下hadoop2.7.7完全分布式集群
    保存并退出。
  5. source /etc/profile //更新环境变量
  6. java -version //查看jdk版本
    Centos7下hadoop2.7.7完全分布式集群

安装hadoop

  1. 把下载好的安装包上传到master服务器, 此处使用的是hadoop-2.7.7.tar.gz
  2. tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/hadoop //解压到/usr/local/hadoop目录下,路径需要已经存在
  3. cd /usr/local/hadoop //进入目录
  4. mkdir -p hdfs/name hdfs/data logs tmp //创建指定目录
  5. chown -R hadoop:hadoop ../hadoop //将hadoop目录下所有文件所属更改为hadoop用户和hadoop组
    Centos7下hadoop2.7.7完全分布式集群
  6. vim /etc/profile //配置环境变量;编辑 profile文件,在文件末尾添加如下图
    Centos7下hadoop2.7.7完全分布式集群
    保存退出
  7. source /etc/profile //更新环境变量
  8. hadoop version //查看hadoop版本
    Centos7下hadoop2.7.7完全分布式集群
  9. su - hadoop //切换到hadoop用户
  10. cd /usr/local/hadoop/hadoop-2.7.7 //进入hadoop安装目录
    Centos7下hadoop2.7.7完全分布式集群
  11. vim etc/hadoop/hadoop-env.sh //修改hadoop-env.sh文件
    Centos7下hadoop2.7.7完全分布式集群添加上图红框部分内容,保存退出。
  12. vim etc/hadoop/yarn-env.sh //修改yarn-env.sh文件
    Centos7下hadoop2.7.7完全分布式集群
    添加上图红框部分内容,保存退出。
  13. vim etc/hadoop/core-site.xml //修改core-site.xml文件
    Centos7下hadoop2.7.7完全分布式集群
    添加上图红框部分内容,保存退出。
  14. vim etc/hadoop/hdfs-site.xml //修改hdfs-site.xml文件
    Centos7下hadoop2.7.7完全分布式集群
    添加上图红框部分内容,保存退出。
  15. vim etc/hadoop/mapred-site.xml //修改mapred-site.xml文件
    Centos7下hadoop2.7.7完全分布式集群
    添加上图红框部分内容,保存退出。
  16. vim etc/hadoop/yarn-site.xml //修改yarn-site.xml文件
    Centos7下hadoop2.7.7完全分布式集群
    添加上图红框部分内容,保存退出。
  17. vim etc/hadoop/slaves //修改slaves文件,添加从节点的主机名(根据实际情况添加), 3.0版本后修改workers文件
    Centos7下hadoop2.7.7完全分布式集群
    保存退出。
  18. scp -r [email protected]:/usr/local/hadoop/hadoop-2.7.7 /usr/local/hadoop //分别在slave1和slave2使用命令将master安装的hadoop整个目录拷贝到slave1和slave2主机的指定目录
  19. hdfs namenode -format //格式化, master主机操作
  20. start-all.sh //启动, master主机操作
    Centos7下hadoop2.7.7完全分布式集群
  21. jps //分别查看master, slave1, slave2节点的启动情况
    Centos7下hadoop2.7.7完全分布式集群
    Centos7下hadoop2.7.7完全分布式集群
    Centos7下hadoop2.7.7完全分布式集群
  22. stop-all.sh //停止, master主机操作
    Centos7下hadoop2.7.7完全分布式集群

完毕。