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]