参考的链接地址: Hadoop2.2.0完全分布式集群平台安装与设置(http://www.iteblog.com/archives/817)
书写本文旨在于从一个新手的角度,入门开始学习Hadoop,让我们一起进步吧。请看后给评论哦!感谢支持!
针对于在搭建过程中遇到的一些问题以及亲身入门级的过程体验如下(PS:大部分内容来自于以上网站,感谢自过往记忆):
为了学习,还是需要花些血本的,首先需要硬件上的支持。基本配置如下: CPU 型号:Intel 酷睿i5 4570 CPU 频率:3.2GHz 内存容量:8GB DDR3 1600MHz 硬盘容量:1TB 7200转 显卡芯片:Intel GMA HD 4000 共享内存容量 光驱类型:DVD-ROM 显示器:P2214H 有线网卡:1000Mbps以太网卡
以上几个参数中需要注意的问题:CPU: 最好是现在的i7,当然根据自身经济条件了。此处需要注意的是CPU需要支持虚拟化(安装VMware或者是CDH4安装)。 内存:最好是8G以上内存。如果在一台机子上模拟时,VMware的虚拟机配置的内存就可以比较大。如我配置的是三台虚拟机,每个都使用2G内存 硬盘:1TB以上,Hadoop模拟数据时,至少硬盘容量要够的。我的每台虚拟机使用150G硬盘。仨台就450G了 网卡:网卡很关键,本来是想搭建完全的Hadoop服务器的模拟版的,但是由于我的网卡买回来后发现实100Mbps的配置不了CDH4的安装方式。只能勉为其难的使用win 7 64位的,安装VMware,然后三台Red Hat Linux 5 64bit 的虚拟机。
Oracle sun的官网下载,此处不在嗷述。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装的Linux的系统是Red Hat Linux 5 64bit 应该就不需要安装SSH,已经安装过了。如果没有请参考:http://www.iteblog.com/archives/780
$ tar xzvf hadoop-2.2.0.tar.gz $ mv hadoop-2.2.0 /opt $ ln -s /opt/hadoop-2.2.0 /opt/hadoop
1
|
[zl01 @master
~ ]$
tar- zxvf hadoop- 2.2 . 0 .tar.gz |
之后将会在hadoop文件夹下面生成hadoop-2.2.0文件夹,运行下面的命令
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
[root@node1
local]# cd /opt/hadoop-2.2.0
total 108 drwxr-xr-x 2 zl01 zl01 4096 Feb 13 09:03 bin drwxr-xr-x 2 zl01 zl01 4096 Feb 13 09:01 datablock drwxr-xr-x 3 zl01 zl01 4096 Feb 13 09:01 etc drwxr-xr-x 2 zl01 zl01 4096 Feb 13 09:01 include drwxr-xr-x 3 zl01 zl01 4096 Feb 13 09:01 lib drwxr-xr-x 2 zl01 zl01 4096 Feb 13 09:01 libexec -rw-r--r-- 1 zl01 zl01 15164 Feb 13 09:01 LICENSE.txt drwxr-xr-x 3 zl01 zl01 4096 Feb 13 17:16 logs -rw-r--r-- 1 zl01 zl01 101 Feb 13 09:01 NOTICE.txt -rw-r--r-- 1 zl01 zl01 1366 Feb 13 09:03 README.txt drwxr-xr-x 2 zl01 zl01 4096 Feb 13 09:01 sbin drwxr-xr-x 4 zl01 zl01 4096 Feb 13 09:03 share
|
显示出刚刚解压文件的文件夹。
- 设置环境变量
当前用户为zl01, 配置环境变量:
vi /etc/profile
JAVA_HOME=/usr/local/java/jdk1.6.0_45 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_MAPARED_HOME=${HADOOP_HOME} export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_HDFS_HOME=${HADOOP_HOME} export YARN_HOME=${HADOOP_HOME} export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 192.168.1.200 master 192.168.1.201 slave1 192.168.1.202 slave2 192.168.1.201 node1 192.168.1.202 node2
使用: vi /etc/hostname
应该是一个新的文件 此时只需要配置你的主机名称如: master
设置成永久的:
vi /etc/sysconfig/network
#yourname是你的主机名
HOSTNAME = yourname验证是否配置成功:使用命令: hostname 进行查看
修改Hadoop的配置文件
修改Hadoop的hadoop-env.sh配置文件,设置jdk所在的路径:
1
2
3
4
5
6
|
[zl01 @master
~ ]$
vi etc/hadoop/hadoop-env.sh 在里面找到JAVA_HOME,并将它的值设置为你电脑jdk所在的绝对路径 #
The java implementation to use. export
JAVA_HOME=${JAVA_HOME} |
依次修改core-site.xml、yarn-site.xml、mapred-site.xml和hdfs-site.xml配置文件
01
02
03
04
05
06
07
08
09
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
----------------core-site.xml <property> <name>fs. default .name</name> <value>hdfs: //master:8020</value> < final > true </ final > </property> <property> <name>hadoop.tmp.dir</name> <value>/home/wyp/cloud/tmp/hadoop2. 0 </value> </property> -------------------------
yarn-site.xml
<property> <name>yarn.resourcemanager.address</name> <value>master: 8032 </value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master: 8030 </value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master: 8031 </value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master: 8033 </value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master: 8088 </value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle. class </name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> ------------------------
mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapred.system.dir</name> <value>file:/opt/cloud/hadoop_space/mapred/system</value> < final > true </ final > </property> <property> <name>mapred.local.dir</name> <value>file:/opt/cloud/hadoop_space/mapred/local</value> < final > true </ final > </property> -----------
hdfs-site.xml <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/cloud/hadoop_space/dfs/name</value> < final > true </ final > </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/cloud/hadoop_space/dfs/data</value> <description>Determines
where on the local filesystem
an DFS data node should store its blocks. If this is
a comma-delimited list of directories, then
data will be stored in all named directories,
typically on different devices. Directories
that do not
exist are ignored. </description> < final > true </ final > </property> <property> <name>dfs.replication</name> <value> 1 </value> </property> <property> <name>dfs.permissions</name> <value> false </value> </property> |
配置好Hadoop的相关东西之后,就可以克隆了。因为三台的Hadoop的配置文件是相同的。所以最好在克隆之前配置好就可以了。
以上安装配置是使用一台虚拟机即可在安装完成之后,其他两台仅需要使用VMware的clone功能,克隆两台虚拟机即可。效果图如下:
1、先设定电脑的IP为静态地址,Linux静态IP地址设置步骤如下:
然后设置IP:
node1和node2的IP设置时,如果network Configuration中有多个网卡显示,都删除掉,然后新建即可。
同样需要让IP地址生效:
1
|
zl01 @master :~$service
network restart |
此处需要的是root权限,然后输入ifconfig来检验IP设置是否生效。
2、设置node1和node2 主机的hostname。如上面设置hostname方法。
其实就是上面三台电脑的静态IP地址和其hostname的对应关系。检验是否修改生效,可以用ping来查看:
1
2
3
4
5
6
7
8
9
|
[zl01 @master ~]$
ping node1 PING
node ( 192.168.1.201)
56 ( 84 )
bytes of data. 64 bytes
from node ( 192.168.1.201):
icmp_seq= 1 ttl= 64 time= 0.541 ms 64 bytes
from node ( 192.168.1.201):
icmp_seq= 2 ttl= 64 time= 0.220 ms ^C ---
node ping statistics --- 2 packets
transmitted, 2 received, 0 %
packet loss, time 1000ms rtt
min/avg/max/mdev = 0.220 / 0.380 / 0.541 / 0.161 ms [zl01 @master ~]$ |
如果上面的命令可以ping通,说明设置生效了。
3、设置SSH无密码登陆
检验是否可以从master无密码登录node1和node2,可以用下面的命令:
1
2
3
4
5
6
7
8
|
[zl01 @master~ ]$
ssh node1 The
authenticity of host ‘node
(192.168.1.201)‘
can‘t be established. RSA
key fingerprint is ae: 99 : 43 :f0:cf:c6:a9: 82 :6c: 93 :a1: 65 : 54 : 70 :a6: 97 . Are
you sure you want to continue connecting
(yes/no)? yes Warning:
Permanently added ‘node1,192.168.1.201‘ (RSA) to
the list of known hosts. Last
login: Wed Nov 6 14 : 54 : 55 2013 from
master [wyp @node1 ~]$ |
如果是第一次登陆就需要验证一下,输入yes就可以了。此时已经登陆到node1的机器上了,注意,登陆成功后的所有操做就是node1节点上的了,请勿误操作。只是验证下就可以退出了。PS:如果 ssh node1 命令还是需要输入密码,即出现password: 此时请切换到root 然后再试一下。如果出现以上界面,就说明创建用户的密钥时,使用的用户是root. 请注意区分用户。
如果是第二次登陆,信息如下:
[root@master ~]# ssh node1
Last login: Thu Feb 13 16:35:42 2014 from master
[root@node1 ~]#
9、查看Hadoop是否运行成功
首先在master上面格式化一下HDFS,如下命令
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[zl01 @master
~ ]$
cd $HADOOP_HOME [zl01 @master
hadoop ]$
hdfs namenode -format 13 / 10 / 28 16 : 47 : 33 INFO
namenode.NameNode: STARTUP_MSG: /************************************************************ ..............此处省略好多文字...................... ************************************************************/ 13 / 10 / 28 16 : 47 : 33 INFO
namenode.NameNode: registered UNIX signal handlers for [TERM,
HUP, INT] Formatting
using clusterid: CID-9931f367-92d3- 4693 -a706-d83e120cacd6 13 / 10 / 28 16 : 47 : 34 INFO
namenode.HostFileManager: read includes: HostSet( ) 13 / 10 / 28 16 : 47 : 34 INFO
namenode.HostFileManager: read excludes: HostSet( ) ..............此处也省略好多文字...................... 13 / 10 / 28 16 : 47 : 38 INFO
util.ExitUtil: Exiting with status 0 13 / 10 / 28 16 : 47 : 38 INFO
namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG:
Shutting down NameNode at wyp/192.168.142.138 ************************************************************/
[zl01 @master
hadoop ]$
|
在master中启动 namenode 和 resourcemanager
1
2
|
[zl01 @master
hadoop ]$
sbin/hadoop-daemon.sh start namenode
[zl01 @master
hadoop ]$
sbin/yarn-daemon.sh start resourcemanager |
在node1和node2中启动datanode 和 nodemanager
1
2
|
[zl01 @master
hadoop ]$
sbin/hadoop-daemon.sh start datanode
[zl01 @master
hadoop ]$
sbin/yarn-daemon.sh start nodemanager |
检查Hadoop集群是否安装好了,在master上面运行jps,如果有NameNode、ResourceManager二个进程,说明master安装好了。
1
2
3
|
[zl01 @master
hadoop ]$
jps 2016 NameNode 2602 ResourceManager |
在node1(node2)上面运行jps,如果有DataNode、NodeManager二个进程,说明node1(node2)安装好了。
1
2
3
|
[zl01 @master
hadoop ]$
jps 7889 DataNode 7979 NodeManager
|
恭喜各位已经安装好了!
Hadoop2.2.0完全分布式集群平台安装与设置-入门级手把手
原文:http://blog.csdn.net/z_play_du/article/details/19189747