wlyyb521 发表于 2018-10-29 10:45:04

hadoop2.6.0 集群搭建

  声明:本文面向有linux基础的大数据初学者,因好多配置都可以单独出一篇文章,如写的过于详细篇幅较大对阅读和操作会带来负面影响,如遇到问题可以自行百度或加文章末尾留的QQ群探讨。
  整体流程如图:

  
  
  
  
  准备工作:
  下载hadoop-2.6.0.tar.gz
  http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/
  下载jdk-7u55-linux-i586.tar.gz 从Oracle官网下载即可。
  虚拟机环境:(本文使用的配置)
  
  ip地址         hostname
  192.168.32.130    slave1
  192.168.32.131    slave2
  192.168.32.132    slave3
  操作系统镜像:CentOS-6.7-i386-bin-DVD1.iso
  ssh工具:SecureCRT 7.3.1
  /**************************************分割线****************************************/
  第一步:准备操作系统环境:
  1、创建一台虚拟机并安装centos 6.7(以desktop类型安装即可 ),安装成功后关闭iptables和selinux 并禁止开机启动,具体步骤如下:
  关闭iptables和selinux

[*]  1-1、关闭iptables执行如下命令:(6条命令逐条运行)
#service iptables save  
#service iptables stop
  
#chkconfig iptables off
  
#service ip6tables save
  
#service ip6tables stop
  
#chkconfig ip6tables off
  1-2、关闭 selinux: (三条命令逐条运行)
#setenforce 0  
#sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
  
#sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  2、将下载的hadoop-2.6.0.tar.gz、jdk-7u55-linux-i586.tar.gz 上传到centos 系统中。
  本例使用SecureCRT自带的SFTP进行上传,使用SecureCRT 用ssh连接安装好的虚拟机 。按alt+p组合键打开SFTP窗口,将文件拖放到窗口上就可以完成上传。
  3、安装jdk
  因为hadoop 及hadoop生态圈的好多组件是用java开发,所以安装并配置jdk是基础。
  3-1、检查系统是否已经存在jdk如果存在需要删除
//查看安装的jdk  
# rpm -qa | grep jdk
  

  
//如有的话可使用rpm -e --nodeps命令删除上面查找的内容
  3-2、解压jdk-7u55-linux-i586.tar.gz 到 /usr/local (其他目录页可以,本人习惯将软件安装到/usr/local目录下)
# tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/local  3-3、配置JAVA_HOME、CLASSPATH 、path 环境变量:
  使用vim 打开并编辑/etc/profile文件
#vim /etc/profile#不熟练vim的使用建议专门练习vim编辑器的使用  

  
#在最后添加如下信息
  

  
#java
  
export JAVA_HOME=/usr/local/jdk1.7.0_55
  
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
  
export PATH=$JAVA_HOME/bin:$PATH
  

  
#保存后使用source /etc/profile 使配置生效
  
#source /etc/profile
  如图,

  验证jdk是否生效
#java -version  
#javac -version
  显示如下,说明安装并配置成功,如提示找不到命令需要仔细排查错误。


  4、将以上配置好的系统使用VMware 的虚拟机克隆 分别克隆出两台虚拟机(建议使用链接克隆的方式,可以减少硬盘空间的使用) ,克隆完成后开机并检查ip地址的配置。

  /*******************************华丽的分割线************************************/
  第二步:部署hadoop
  1、配置主机名 (三台虚拟机都需要修改)
  1-1、修改/etc/sysconfig/network 文件
#vim /etc/sysconfig/network  

  
NETWORKING=yes
  
HOSTNAME=slave1.com   #另外两台机器分别是slave2.comslave3.com
  1-2、修改/etc/hosts文件(三台虚拟机都需要修改)
# vim /etc/hosts  
#在原来内容的基础上添加如下内容
  
192.168.32.131 slave1.com slave1
  
192.168.32.132 slave2.com slave2
  
192.168.32.133 slave3.com slave3
  重启虚拟机,使修改生效
  分别在虚拟机中互相ping 另外两台的主机名比如在slave1 机器上
#ping slave2  
#ping slave3
  可以正常ping通说明配置成功,如果有异常需要排除。
  (再次强调三台都需要做此配置)
  2、配置ssh免密码登录
  因为集群启动的时候会通过ssh链接其他节点的集群将相关进程启动,所以需要配置ssh免密码登录。
  使用以下命令完成配置:
# cd /root/.ssh/  
# ssh-keygen -t rsa# 不需要填写任何内容 一直按回车 生成id_rsa.pub
  
# cat id_rsa.pub > authorized_keys

  #将生成的 authorized_keys>#scp -r /root/.ssh/ root@slave2:/root.ssh  
#scp -r /root/.ssh/ root@slave3:/root.ssh
  分别在三台机器上 使用ssh 命令进行登录测试 第一次会要求输入密码,退出后再次ssh连接 不用输入密码直接登录成功
  比如在slave1机器上分别对slave2 机器进行ssh登录测试:
# ssh slave2 #第一次需要输入密码  
#logout#在ssh登录状态使用logout命令退出登录 退出后再次使用上一条命令进行连接测试
  注意:
  在CentOS6.x上可能还需要输入密码,这是由于centos 6.x有个BUG:

  解决方法,在各服务器上执行如下命令,即可以无密码登陆:
# restorecon -R -v /root/.ssh  3、解压hadoop2.6 并配置环境变量
  进入到之前上传的hadoop-2.6.0.tar.gz 所在目录下使用tar将文件解压到 /usr/local/ 目录下
# tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local#解压后hadoop的路径为/usr/local/hadoop-2.6.0# vim /etc/profile #在末尾添加如下内容  

  
#hadoop
  
export HADOOP_HOME=/usr/local/hadoop-2.6.0
  
export PATH=$HADOOP_HOME/bin:$PATH
  

  
#source /etc/profile
  如图,slave2 和slave3两台机器也需要将hadoop 配置到环境变量中


  4、配置hadoop 相关配置文件(hadoop的配置文件在/usr/local/hadoop-2.6.0/etc/hadoop目录 )
  4-1、hadoop-env.sh修改JAVA_HOME(具体配置参照jdk环境变量中的配置)
# cd /usr/local/hadoop-2.6.0/etc/hadoop#进入hadoop安装目录下的配置文件所在目录  
# vim hadoop-env.sh
  将注释去掉并按实际配置进行修改,如图:

  4-2、yarn-env.sh修改JAVA_HOME
# vim yarn-env.sh  将注释去掉并按实际配置进行修改,如图:

  4-3、配置slaves文件 增加slave节点添加slave2slave3
# vim slaves  将另外两台虚拟机的主机名添加进来,如图:

  4-4、配置core-site.xml文件添加hadoop核心配置
  (hdfs文件端口是9000、file:/usr/local/hadoop/tmp)
  

  
fs.defaultFS
  
hdfs://slave1:9000
  

  

  
io.file.buffer.size
  
131072
  

  

  
hadoop.tmp.dir
  
file:/usr/local/hadoop/tmp
  
Abasefor other temporary dirctories.
  

  

  
hadoop.proxyuser.spark.groups
  
*
  

  

  4-5、配置hdfs-site.xml文件增加hdfs配置信息namenode、datanode配置和目录位置 (/usr/local/dfs/name和/usr/local/dfs/data 以及4-4中配置里的/usr/local/hadoop/tmp三个目录在格式化namenode的时候会自动生成这个目录可以配置到其他地方,如果是已存在的目录需要保证有755权限)
  

  
dfs.namenode.secondary.http-address
  
slave1:9001
  

  

  
dfs.namenode.name.dir
  
file:/usr/local/dfs/name
  

  

  
dfs.datanode.data.dir
  
file:/usr/local/dfs/data
  

  

  
dfs.replication
  
3
  

  

  
dfs.webhdfs.enabled
  
true
  

  

  4-6、配置mapred-site.xml文件 增加mapreduce配置(使用yarn框架、jobhistory使用地址及web地址)
  

  
mapreduce.framework.name
  
yarn
  

  

  
mapreduce.jobhistory.address
  
slave1:10020
  

  

  
mapreduce.jobhistory.webapp.address
  
slave1:19888
  

  

  4-7、配置yarn-site.xml文件 添加yarn功能
  

  
yarn.nodemanager.aux-services
  
mapreduce_shuffle
  

  

  
yarn.nodemanager.aux-services.mapreduce.shuffle.class
  
org.apache.hadoop.mapred.ShuffleHandler
  

  

  
yarn.resourcemanager.address
  
slave1:8032
  

  

  
yarn.resourcemanager.scheduler.address
  
slave1:8030
  

  

  
yarn.resourcemanager.resource-tracker.address
  
slave1:8035
  

  

  
yarn.resourcemanager.admin.address
  
slave1:8033
  

  

  
yarn.resourcemanager.webapp.address
  
slave1:8088
  

  

  5、将配好的hadoop文件拷贝到其他机器上
# scp -r /usr/local/hadoop-2.6.0 root@slave2:/usr/local  
# scp -r /usr/local/hadoop-2.6.0 root@slave2:/usr/local
  7、每台机器都格式化 namenode
  分别在slave1、slave2、slave3 执行以下命令,格式化namenode
#hdfs namenode -format


  8、启动dfs(只需要在slave1上执行命令即可)
#cd /usr/local/hadoop-2.6.0/sbin  
#./start-dfs.sh
  
# jps   #使用jps命令可以查看java的相关进程

  9、启动yarn
#cd /usr/local/hadoop-2.6.0/sbin  
#./start-yarn.sh
  
# jps   #使用jps命令可以查看java的相关进程

  如果需要停止dfs 使用stop-dfs.sh
  如果需要停止yarn 使用stop-yarn.sh
  /*************************************再一次华丽分分割*********************************/
  至此hadoop 的分布式模式部署的基本工作已完成,在浏览器中输入http://192.168.32.130:50070 访问hadoop的web界面,如图:

  大数据技术QQ群:576216694
  扫码入群:



页: [1]
查看完整版本: hadoop2.6.0 集群搭建