首页 > 其他 > 详细

Hadoop2.2.0完全分布式集群平台安装与设置-入门级手把手

时间:2014-02-15 11:41:56      阅读:503      评论:0      收藏:0      [点我收藏+]
Hadoop的搭建过程参考于 :自过往记忆(http://www.iteblog.com/)

参考的链接地址: Hadoop2.2.0完全分布式集群平台安装与设置(http://www.iteblog.com/archives/817)

书写本文旨在于从一个新手的角度,入门开始学习Hadoop,让我们一起进步吧。请看后给评论哦!感谢支持!

针对于在搭建过程中遇到的一些问题以及亲身入门级的过程体验如下(PS:大部分内容来自于以上网站,感谢自过往记忆):

1、搭建Hadoop完全分布式集群平台前提条件:

  • 搭建环境的机器配置: 

为了学习,还是需要花些血本的,首先需要硬件上的支持。基本配置如下:
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 的虚拟机。

  • 下载安装jdk6或其以上版本(如果是64位系统,请安装Linux版本的64位系统)
       Oracle sun的官网下载,此处不在嗷述。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • 安装SSH
         安装的Linux的系统是Red Hat Linux 5 64bit 应该就不需要安装SSH,已经安装过了。如果没有请参考:http://www.iteblog.com/archives/780

  • 下载安装Hadoop 2.2.0
$ 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
[root@node1 hadoop]# ll
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

显示出刚刚解压文件的文件夹。



安装Hadoop成功后文件图如下:

bubuko.com,布布扣

注意:以上安装时,请使用同一个用户,如我是用的是zl01。如果没有权限时,请使用 su - root 命令切换到root权限,创建目录,但是需要注意到是,以后使用Hadoop的时候如果是用zl01,则Hadoop-2.2.0 的所有者应该是zl01. 使用chown zl01 /opt/hadoop-2.2.0 命令。

2、配置一台机器上的环境

  • 设置环境变量

当前用户为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

说明:JAVA_HOME为你安装的jdk的目录
    HADOOP_HOME为安装的Hadoop的目录

  • 设置hostname和hosts
1、配置hosts
使用:  vi /etc/hosts 命令编辑如下:
# 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

:wq 保存并退出.

2、配置hostname

使用:   vi /etc/hostname

应该是一个新的文件 此时只需要配置你的主机名称如:  master

设置成永久的:

 vi /etc/sysconfig/network  

#yourname是你的主机名

HOSTNAME = yourname 
验证是否配置成功:使用命令:  hostname  进行查看

3、配置Hadoop环境

 修改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.
      Ifthisis a comma-delimited list of directories,
      then data will be stored in all named
      directories, typically on different devices.
      Directories that donot 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的配置文件是相同的。所以最好在克隆之前配置好就可以了。




4、克隆虚拟机

以上安装配置是使用一台虚拟机即可在安装完成之后,其他两台仅需要使用VMware的clone功能,克隆两台虚拟机即可。效果图如下:

bubuko.com,布布扣  

克隆完成后需要修改克隆的两台的hostname 和 静态的IP

  此三台虚拟机的ip以及对应关系如下:

zl01: ip: 192.168.1.200 子网掩码:255.255.255.0 网关:192.168.1.1 hostname: master
zl02: ip: 192.168.1.201 子网掩码:255.255.255.0 网关:192.168.1.1 hostname: node1
zl03: ip: 192.168.1.202 子网掩码:255.255.255.0 网关:192.168.1.1 hostname: node2

1、先设定电脑的IP为静态地址,Linux静态IP地址设置步骤如下:

bubuko.com,布布扣

然后设置IP:

bubuko.com,布布扣

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.
64bytes from node (192.168.1.201): icmp_seq=1ttl=64time=0.541ms
64bytes from node (192.168.1.201): icmp_seq=2ttl=64time=0.220ms
^C
--- node ping statistics ---
2packets transmitted, 2received,0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.220/0.380/0.541/0.161ms
[zl01@master~]$

如果上面的命令可以ping通,说明设置生效了。

  3、设置SSH无密码登陆

请都使用zl01这个用户来操作。以保证权限问题。如果说在使用ssh-keygen命令找不到时,此时是权限问题。
查看是否有.ssh文件夹   
ls -a /home/zl01
无则创建。
ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa

追加到授权的key里面
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

远程拷贝到子节点服务器

scp id_dsa.pub zl01@192.168.1.202:~/.ssh/id_dsa_master.pub
scp id_dsa.pub zl01@192.168.1.201:~/.ssh/id_dsa_master.pub

分别在node1 和 node2 子节点上追加权限验证:
cat id_dsa_master.pub >> ~/.ssh/authorized_keys 

检验是否可以从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 continueconnecting (yes/no)? yes
Warning: Permanently added ‘node1,192.168.1.201(RSA)
to the list of known hosts.
Last login: Wed Nov  614:54:552013from 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/2816:47:33INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
  
..............此处省略好多文字......................
  
************************************************************/
13/10/2816:47:33INFO namenode.NameNode: registered UNIX signal
handlersfor[TERM, HUP, INT]
Formatting using clusterid: CID-9931f367-92d3-4693-a706-d83e120cacd6
13/10/2816:47:34INFO namenode.HostFileManager: read includes:
HostSet(
)
13/10/2816:47:34INFO namenode.HostFileManager: read excludes:
HostSet(
)
  
..............此处也省略好多文字......................
  
13/10/2816:47:38INFO util.ExitUtil: Exiting with status 0
13/10/2816:47:38INFO 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
2016NameNode
2602ResourceManager

在node1(node2)上面运行jps,如果有DataNode、NodeManager二个进程,说明node1(node2)安装好了。

1
2
3
[zl01@master hadoop]$ jps
7889DataNode
7979NodeManager

恭喜各位已经安装好了!


Hadoop2.2.0完全分布式集群平台安装与设置-入门级手把手

原文:http://blog.csdn.net/z_play_du/article/details/19189747

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!