一、hadoop版本介绍
不收费的Hadoop版本主要有三个(均是国外厂商),分别是:Apache(最原始的版本,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称
CDH)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”),对于国内而言,绝大多数选择CDH版本。
Cloudera的CDH和Apache的Hadoop对应关系:
CDH的两个系列版本分别是CDH3和CDH4,CDH3对应Hadoop 1.0(Apache Hadoop 0.20.x、1.x),CDH4对应Hadoop 2.0(Apache Hadoop 0.23.x、2.x)。
本文选择CDH3进行安装测试
Cloudera下载页面:http://archive.cloudera.com/cdh/3/
Hadoop版本:http://archive.cloudera.com/cdh/3/hadoop-0.20.2-CDH3B4.tar.gz
二、开始安装
系统版本:CentOS Linux release 7.1.1503 (Core)
1、关闭防火墙:部署Hadoop集群时,master与slave的防火墙均要关闭。关闭防火墙的根本目的也是为了图省事儿,因为在使用HDFS与MapReduce时,Hadoop会打开许多监听端口。
此处参见:http://www.open-open.com/lib/view/open1411818940031.html
2、创建一个用户
#新增一个用户组
groupadd hadoop
#新增一个用户并设置为hadoop组成员
useradd -g hadoop hadoop
#设置hadoop用户密码
passwd hadoop
3、解压hadoop
#切换到hadoop用户,再解压
su -l hadoop
4、修改配置
1)修改hadoop-env.sh
修改JAVA_HOME
2)修改core-site.xml
说明一:hadoop分布式文件系统文件存放位置都是基于hadoop.tmp.dir目录的,namenode的名字空间存放地方就是 ${hadoop.tmp.dir}/dfs/name, datanode数据块的存放地方就是
${hadoop.tmp.dir}/dfs/data,所以设置好hadoop.tmp.dir目录后,其他的重要目录都是在这个目录下面,这是一个根目录。
说明二:fs.default.name,设置namenode所在主机,端口号是9000
3)修改hdfs-site.xml
dfs.replication,设置数据块的复制次数,默认是3,如果slave节点数少于3,则写成相应的1或者2,副本数设置多余datanode也不会起作用
4)修改mapred-site.xml
mapred.job.tracker,设置jobtracker所在机器,端口号9001
5)修改masters和slaves文件
masters中
slaves中
5、VMware拷贝(略)
6、配置静态IP
修改文件 vi /etc/sysconfig/network-scripts/ifcfg-enoxxx
BOOTPROTO=static #启用静态IP地址
ONBOOT=yes #开启自动启用网络连接 设置开机启动,一定要记得修改
IPADDR0=192.168.220.128 #设置IP地址
PREFIXO0=255.255.255.0 #设置子网掩码
GATEWAY0=192.168.220.2 #设置网关
配置host /etc/hosts
192.168.220.128 master
192.168.220.129 slave1
192.168.220.130 slave2
6、建立SSH互信
Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果
hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。
生成公钥和私钥
这里密钥的存放位置为:/home/hadoop/.ssh/id_rsa下,之前没有按照此方式存放,造成无验证ssh登录失败。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
id_rsa是私钥,id_rsa.pub是公钥
公钥重命名
cp id_rsa.pub authorized_keys
单机ssh免密码登录测试
要实现主节点(master)免密码登录登录子节点(slave),slave结点的公钥文件中必须要包含主结点的公钥信息(注:slave节点要各自进行一次密钥生成过程(ssh-keygen))。
scp authorized_keys hadoop@slave1:/home/hadoop/.ssh/
验证一下
master免密码登录slave1成功
相同的方式,将master的公钥拷贝到slave2节点
scp authorized_keys hadoop@slave2:/home/hadoop/.ssh/
7、运行hadoop
1)配置环境变量
2)在主节点格式化:hadoop namenode -format
3)启动start-all.sh
4)检查主节点进程
5)检查两个slave节点
至此,所有进程启动成功。
8、通过浏览器访问检查集群情况
http://192.168.220.128:50030/jobtracker.jsp
http://192.168.220.128:50070/dfshealth.jsp