Hadoop 2.7.2 安装配置
官网地址:
http://hadoop.apache.org/
各个版本文档地址:
http://hadoop.apache.org/docs/
1、环境
版本信息
CentOS Linux release 7.2.1511 (Core)
Hadoop 2.7.2
java version “1.7.0_80”
/etc/hosts
1 | 192.168.1.213 wwh213 |
确保各个主机都能正确解析主机名和IP
注意:/etc/hosts 中配置节点与IP时需要注意,不要配置如:“127.0.0.1 master” 这样的,会导致无法绑定正确的IP
集群结构
1 | Master 192.168.1.213 wwh213 |
2、创建hadoop用户
1 | #创建hadoop用户 |
以下操作都在hadoop用户下进行,注意目录权限。
3、SSH免密码登录
无密码登陆是指通过证书认证的方式进行登陆,使用公私钥认证的方式来进行ssh登录。
公私钥认证方式简单的解释:首先在客户端上创建一对公私钥
公钥文件:/.ssh/id_rsa.pub/.ssh/id_rsa
私钥文件:
然后把公钥添加到服务器上的(~/.ssh/authorized_keys)文件里面,自己保留好私钥。
登录时客户端会向服务器请求使用密匙进行安全验证并发送公钥到服务端,服务端会对比公钥如果匹配成功服务端会生成一个随机数然后用该公钥加密再发给客户端,客户端通过私钥解密后发给服务端进行确认。
受信任的远程主机公钥会保存到 ~/.ssh/known_hosts文件中
Hadoop需要通过SSH登录到各个节点进行操作,每台服务器都生成公钥,再合并到authorized_keys
***==注意==:authorized_keys的权限要是600*
- CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中两行的注释,每台服务器都要设置
1
2RSAAuthentication yes
PubkeyAuthentication yes - 输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,就会在~/.ssh文件夹生成
id_rsa 私钥
id_rsa.pub 公钥
在每台服务器都生成一次
合并全部的公钥到一个authorized_keys文件,在Master服务器,进入~/.ssh目录,通过SSH命令合并
1
2
3
4
5
6
7#cat id_rsa.pub>> authorized_keys
#使公钥添加到known_hosts中
ssh hadoop@wwh213 cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh hadoop@wwh214 cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh hadoop@wwh215 cat ~/.ssh/id_rsa.pub>> authorized_keys把Master服务器的authorized_keys、known_hosts复制到Slave服务器的~/.ssh目录
1
2
3scp authorized_keys known_hosts hadoop@wwh214:~/.ssh/
scp authorized_keys known_hosts hadoop@wwh215:~/.ssh/完成之后 ssh wwh214、ssh wwh215就不需要输入密码了
4、安装JDK
Hadoop 2.7已经不再支持JDK6了,需要JDK7+
之前已经安装过JDK了,下面是一个例子
- 下载“jdk-7u80-linux-x64.gz”,放到/data/java目录下
- 解压缩
1
tar -zxvf jdk-7u79-linux-x64.gz
- 编辑/etc/profile,加上:
1
2export JAVA_HOME=/data/java/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin - 使配置生效,输入命令:
1
source /etc/profile
- 进行测试
1
java -version
或者直接下载 jdk-7u
5、安装Hadoop 2.7.2
只需要在Master服务器解压配置好,再复制到Slave服务器
配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml 几个配置文件,默认这些配置文件都是空的,由于版本差异很难知道这些配置文件有哪些配置可以生效,需要去Apache的官网中找对应版本的默认配置文件。
官网文档地址:
下载 hadoop-2.7.2.tar.gz ,放到/data/hadoop目录下
1
2
3wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
wget http://apache.fayea.com/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz解压
1
tar -xzvf hadoop-2.7.2.tar.gz
在/data/hadoop目录下创建数据存放的文件夹
1
2
3
4mkdir tmp
mkdir hdfs
mkdir hdfs/data
mkdir hdfs/name配置JAVA_HOME
修改/data/hadoop/hadoop-2.7.2/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME1
export JAVA_HOME=/data/java/jdk1.7.0_80
如果环境变量配置好了也可以不用配置,默认是:export JAVA_HOME=${JAVA_HOME}
看启动时的提示配置/data/hadoop/hadoop-2.7.2/etc/hadoop目录下的core-site.xml
官方默认的配置文件
http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/core-default.xml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.213:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<!-- 缺省值是4096 -->
<value>131072</value>
</property>
</configuration>配置/data/hadoop/hadoop-2.7.2/etc/hadoop目录下的hdfs-site.xml
官方默认的配置文件
http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<!-- 缺省值是3 -->
<value>2</value>
</property>
<!-- 关闭权限检查 -->
<property>
<name>dfs.permissions.enabled</name>
<!-- 缺省值是true -->
<value>false</value>
</property>
</configuration>配置/data/hadoop/hadoop-2.7.2/etc/hadoop目录下的mapred-site.xml
官方默认的配置文件
http://hadoop.apache.org/docs/r2.7.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<!-- 缺省值是:0.0.0.0:10020 -->
<value>192.168.1.213:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<!-- 缺省值是:0.0.0.0:19888 -->
<value>192.168.1.213:19888</value>
</property>
</configuration>配置/data/hadoop/hadoop-2.7.2/etc/hadoop目录下的yarn-site.xml
官方默认的配置文件
http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xmlYARN:新一代的MapReduce。 MapReduce 2.0 (MRv2)
1
2
3
4
5
6
7
8
9
10
11<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- 缺省值是:0.0.0.0 -->
<value>192.168.1.213</value>
</property>
</configuration>配置/data/hadoop/hadoop-2.7.2/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点
如果配置主节点的IP的话就是既当 NameNode 又当 DataNode1
2
3192.168.1.213
192.168.1.214
192.168.1.215将配置好的Hadoop复制到各个节点对应位置上,通过scp传送
1
2scp -r /data/hadoop wwh214:/data/
scp -r /data/hadoop wwh215:/data/
6、启动 Hadoop
在Master服务器启动hadoop,从节点会自动启动,进入/data/hadoop/hadoop-2.7.2目录
(1)初始化,输入命令
1 | bin/hdfs namenode -format |
(2)全部启动
1 | sbin/start-all.sh |
也可以分开启动
1 | sbin/start-dfs.sh |
(3)停止的话,输入命令
1 | sbin/stop-all.sh |
也可以分开停止
1 | sbin/stop-dfs.sh |
(4)输入命令,jps,可以看到相关信息
Web访问
要先开放端口或者直接关闭防火墙
1 | systemctl stop firewalld.service |