环境准备
软件环境
OS: Ubuntu 14.04 LTS
Java: jdk1.7.0_79
Hadoop: hadoop-2.6.0
系统环境
192.168.0.19 Master
192.168.0.25 Slave1
192.168.0.26 Slave2
安装系统时最好新建名为
hadoop
的用户以便区分
修改hostname
选定你的机器中一台作为Master
,其余的分别为Slave1
和Slave2
,以此类推1
sudo nano /etc/hostname
在弹出的编辑器中修改好主机名后按Ctrl+X
修改hosts
在每台机器的hosts中加入系统环境中的IP地址以便访问1
sudo nano /etc/hosts
在弹出的编辑窗口中加入下面配置1
2
3192.168.0.19 Master
192.168.0.25 Slave1
192.168.0.26 Slave2
这里需要把hosts中原来的127.0.1.1 ubuntu
这一行去掉
完成后ctrl+x并在提示中输入y回车
到此建议重启下所有机器使得上面的配置生效
重启完成后在Master
机器上ping一下Slave1
和Slave2
看是否正常
更新apt
新装的ubuntu最好在每台机器上执行下apt更新,否则可能会导致部分软件无法安装1
sudo apt-get update
安装SSH,配置为免密码登陆
在每台机器上安装ssh server1
sudo apt-get install openssh-server
安装后,可以使用ssh命令登陆本机:1
ssh localhost
会提示选择yes/no
,选择yes
,随后输入本机密码进入ssh
这样证明安装成功,先退出ssh1
exit # 退出ssh
在Master
节点上执行下面命令1
2
3cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
ssh-keygen -t rsa # 一直按回车就可以,生成的密钥保存为.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 加入授权
完成后可以使用ssh Master
验证一下,这时登陆ssh不再需要密码了,同样记得退出1
exit # 退出ssh
将Master
公匙传输到Slave1
节点,过程中会要求输入Slave1
上hadoop
用户的密码1
scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
在Slave1
节点上将ssh公匙保存到相应位置1
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
Slave2
同Slave1
,也需要将Master
公匙传到Slave2
并保存到相应位置
这时Master
ssh Slave1
和Slave2
就不再需要密码了1
ssh Slave1
拷贝安装文件
在Master
机器上用户根目录下新建一个叫workspace
的文件夹1
sudo mkdir workspace
将下载好的hadoop-2.6.0.tar.gz
和jdk-7u79-linux-x64.tar.gz
拷贝至该文件夹
安装JDK
使用命令行进入workspace
文件夹并解压jdk安装包1
2cd workspace # 进入workspace文件夹
sudo tar -zxvf jdk-7u79-linux-x64.tar.gz # 回车后输入用户密码开始解压
解压后可能权限会有问题,保险起见对jdk目录重新赋权1
sudo chmod -R 777 jdk1.7.0_79
安装Hadoop
使用命令行进入workspace
文件夹并解压hadoop
安装包1
2cd workspace # 进入workspace文件夹
sudo tar -zxvf hadoop-2.6.0.tar.gz # 回车后输入用户密码开始解压
解压后可能权限会有问题,保险起见对jdk目录重新赋权1
sudo chmod -R 777 hadoop-2.6.0
完成后将Master
上的workspace
拷贝至Slave1
和Slave2
1
2scp -r ~/workspace hadoop@Slave1:/home/hadoop/
scp -r ~/workspace hadoop@Slave2:/home/hadoop/
设置环境变量
在所有机器上进行下面操作1
sudo nano /etc/profile
在打开的文本文件最后面加入1
2export JAVA_HOME=/home/hadoop/workspace/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
完成后ctrl+x并在提示中输入y回车,然后重启所有机器
配置Hadoop
首先进入hadoop配置文件目录1
/home/hadoop/workspace/hadoop-2.6.0/etc/hadoop
修改slaves文件
将salves
文件中的localhost
删除并加入所有Slave
的主机名1
2Slave1
Slave2
配置JDK路径
在很多时候虽然配置了JAVA_HOME
,但启动dfs的时候还是会报找不到JAVA_HOME
的错,保险起见这里直接设置JDK
安装路径,打开hadoop-env.sh
找到1
export JAVA_HOME=${JAVA_HOME}
将其修改为JAVA_HOME
的绝对路径1
export JAVA_HOME=/home/hadoop/workspace/jdk1.7.0_79
修改core-site.xml
在configuration
节点中加入下面内容1
2
3
4
5
6
7
8
9
10<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
<description>Namenode RPC交互端口</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/workspace/hadoop-2.6.0/tmp</value>
<description>hadoop文件系统依赖的基础配置</description>
</property>
修改hdfs-site.xml
在configuration
节点中加入下面内容
1 | <property> |
修改mapred-site.xml
默认情况该文件并不存在,但有一个叫mapred-site.xml.template
的文件,可以拷贝一个出来然后将文件名修改成mapred-site.xml
,同样在configuration
节点中加入下面内容1
2
3
4<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改yarn-site.xml
在configuration
节点中加入下面内容1
2
3
4
5
6
7
8<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
到此最进本的配置就已经完成,然后将这些配置复制到其他Slave节点1
2
3
4scp -r ~/workspace/hadoop-2.6.0/etc hadoop@Slave1:/home/hadoop/workspace/hadoop-2.6.0
scp -r ~/workspace/hadoop-2.6.0/etc hadoop@Slave2:/home/hadoop/workspace/hadoop-2.6.0
scp -r ~/workspace/hadoop-2.6.0/tmp hadoop@Slave1:/home/hadoop/workspace/hadoop-2.6.0
scp -r ~/workspace/hadoop-2.6.0/tmp hadoop@Slave1:/home/hadoop/workspace/hadoop-2.6.0
启动Hadoop
第一次启动需要先格式化namenode1
2cd ~/workspace/hadoop-2.6.0 #进入hadoop安装目录
bin/hdfs namenode -format #格式化namenode
格式化完成后启动hadoop1
2sbin/start-dfs.sh
sbin/start-yarn.sh
启动成功后通过jps
命令查看进程1
2
3
4hadoop@Master:~/workspace/hadoop-2.6.0$ jps
5285 Jps
5171 SecondaryNameNode
4958 NameNode
通过bin/hdfs dfsadmin -report
查看DataNode是否都正常启动1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47hadoop@Master:~/workspace/hadoop-2.6.0$ bin/hdfs dfsadmin -report
Configured Capacity: 132898217984 (123.77 GB)
Present Capacity: 116339261440 (108.35 GB)
DFS Remaining: 116339212288 (108.35 GB)
DFS Used: 49152 (48 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Live datanodes (2):
Name: 192.168.0.25:50010 (Slave1)
Hostname: Slave1
Decommission Status : Normal
Configured Capacity: 66449108992 (61.89 GB)
DFS Used: 24576 (24 KB)
Non DFS Used: 8309112832 (7.74 GB)
DFS Remaining: 58139971584 (54.15 GB)
DFS Used%: 0.00%
DFS Remaining%: 87.50%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Jul 06 08:30:19 PDT 2015
Name: 192.168.0.26:50010 (Slave2)
Hostname: Slave2
Decommission Status : Normal
Configured Capacity: 66449108992 (61.89 GB)
DFS Used: 24576 (24 KB)
Non DFS Used: 8249843712 (7.68 GB)
DFS Remaining: 58199240704 (54.20 GB)
DFS Used%: 0.00%
DFS Remaining%: 87.58%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Jul 06 08:30:19 PDT 2015
也可通过WEB查看各种信息1
2http://Master:8088/ #Hadoop主页默认端口为8088,任务进度也可以在此查看
http://Master:50070/ #查看Namenode及Datanode信息
最后停止服务1
2sbin/stop-dfs.sh
sbin/stop-yarn.sh
到这里基本配置完成,这是最基本最小的集群配置方式,仅仅限于让服务”跑起来”了,要用于实际生产环境中还会涉及到很多很多的配置项,各种调优等参数等问题
To be bontinued …