ITPub博客

首页 > 大数据 > 可视化 > CentOS 6.2下搭建伪分布式Hadoop

CentOS 6.2下搭建伪分布式Hadoop

可视化 作者:itri960093 时间:2013-10-21 12:26:34 0 删除 编辑

CentOS 6.2下搭建伪分布式Hadoop

 

CentOS系统安装………………………………………………………………2

JDK环境配置…………………………………………………………………‥20

SSH配置(参照附录2)…………………………………………………………20

Hadoop配置…………………………………………………………………‥21

问题集锦及解决方案……………………………………………………………24

附录………………………………………………………………………………25

 

 

 

 

 

 

 

 

 

搭建说明:

虚拟机:VMware 10.0

操作系统:CentOS 6.2

Java版本:jdk1.7(必须1.6以上)

Hadoop版本: hadoop-0.20.2

 

 

 

 

 

 

 

 

1.CentOS系统安装

1.1. 初始画面,点击File->new a virtual machine

 

1.2. 点击custom(自定义)

 

1.3. 无须修改,直接next

 

 

1.4. 选择I will install the operating system later

 

1.5. 选centos

 

1.6. 设置虚拟机名称,选择安装位置。

 

1.7. 选择处理机个数,一个就行

 

 

1.8. 内存大小选择,选1024M吧

 

1.9. 选择网络配置,选bridge,这样的配置可以使物理机与虚拟机互联。

 

这里是网络类型分配,网络类型分配分为三种,Bridge,NAT和Host-Only,大概区别是

1 BRIDGE:相当于主机和虚拟机连接到同一个hub上,虚拟机要和主机配置到同一网段上

2 NAT:使用vmnet8,主机开启必要的VMware服务,如vmvare dhcp,虚拟机设置成dhcp方式即可,当然也可以手工设置成vmnet1同一网段,比较麻烦

3 HOST-ONLY:使用vmnet1,直接和主机互联,可以使用ifconfig查看配置情况

这里选择NAT,Next:

1.10. 默认设置,直接next

 

 

 

 

1.11. 选择store virtual disk as a single file

 

1.12. 虚拟文件的存放地址,要选好,可以自定义

 

1.13. Finish完成设置

 

1.14. 选择edit virtual machine settings

 

 

1.15加载镜像文件,启动电源开始安装CentOS 6.2。进入欢迎界面

 

选择第2项即可进行安装(直接回车),

是否对安装镜像进行测试 (直接就过即可)

 

1.16开始设置CentOS 6.2 (直接Next)

 

  设置安装过程显示的语言、键盘类型(这里我选择英语,当然也可以选择中文。键盘类型保持默认即可)

 

 

 

1.17选择存储设备类型(默认选第一项:基本存储设备) 

 

格式化硬盘(选 Yes,discart any data)

 

 

1.18设置计算机名(随便起个名字就行,如果懒得起,默认吧)

 

点击Configure NetWork网络设置安装图示顺序点击就可以了

 网络设置安装图示顺序点击就可以了

 

选择时区(选亚洲/上海就行了)

 设置root用户密码

 

1.19选择安装(分区)方式(如果想手动设置挂载分区,选Create Custom Layout,否则直接默认安装就行了)

 

挂载分区 (点Create创建一个分区,默认选择Stantard Partition(标准分区),选择挂载点、分区大小即可创建分区)

 

 

  我的分区情况:第一个分区,Mount Point选/,File System Type:ext4,size :10000勾上Fixed size、Force to be primary partition,第二个分区:File System Type:swap,size :1000勾上Fixed size ,剩下的空间: Mount Point选/home,File System Type:ext4,勾上Fixed size、点Next,选择Format(格式化),再选Write Change to disk(把分区表写入硬盘) 

 

 

1.20安装 装载引导程序(默认即可)

 

按如下继续点击(这是配置最小桌面安装模式,还可以选择Desktop(桌面)Minimal(无桌面最小化安装))初学者建议选择Desktop

 

根据自己的需求选择需要安装的插件,我选择了perl,system management tools network tools

 

点击Next

 

 

重启后,根据提示进行配置

 

2 JDK环境配置

从虚拟机系统中到官网下载所需要的JDK包,我的是直接在虚拟机的浏览器中直接下载的,下载到/home/hadoop/Downloads/目录下

#su root   //使用root用户登录

#password: //root用户密码

#cd /         //返回到主目录

#mkdir /usr/java    //创建java文件夹

#cp /home/hadoop/Downloads/jdk-7u40-linux-i586.rpm  /usr/java    //将自己的jdk复制到java文件中

#cd /usr/java           //进入到存放jdk目录

#ls                     //查看jdk是否复制成功

#rpm –ivh jdk-7u40-linux-i586.rpm         //安装jdk

若下载的为jdk-6u11-linux-i586.bin ,则执行#./jdk-6u11-linux-i586.bin。64位操作系统请下载相对应的jdk

#vi /etc/profile

在最后添加

 

在vi编辑器增加以上内容后保存退出,并执行以下命令使配置生效

    chmod +x  /etc/profile   //增加执行权限

source  /etc/profile      //使变量生效;

输入java -version,若出现下图信息则配置成功

 

3 SSH配置(参照附录2)

[root@localhost ~]# ssh-keygen -t  rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

a8:7a:3e:f6:92:85:b8:c7:be:d9:0e:45:9c:d1:36:3b root@localhost.localdomain

[root@localhost ~]#

[root@localhost ~]# cd  ..

[root@localhost /]# cd root

[root@localhost ~]# ls

anaconda-ks.cfg  Desktop  install.log  install.log.syslog

[root@localhost ~]# cd .ssh

[root@localhost .ssh]# cat id_rsa.pub > authorized_keys

[root@localhost .ssh]#

[root@localhost .ssh]# ssh localhost

The authenticity of host 'localhost (127.0.0.1)' can't be established.

RSA key fingerprint is 41:c8:d4:e4:60:71:6f:6a:33:6a:25:27:62:9b:e3:90.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'localhost' (RSA) to the list of known hosts.

Last login: Tue Jun 21 22:40:31 2011

4 Hadoop配置

[root@localhost ~]#mkdir /usr/hadoop    //创建用来存放hadoop的文件夹

[root@localhost ~]#cp /home/hadoop/Downloads/hadoop-0.20.2.tar.gz  /usr/hadoop   //复制hadoop

[root@localhost ~]#cd /usr/hadoop         //进入到hadoop存放的目录下

[root@localhost hadoop]#ls

hadoop-0.20.2.tar.gz

[root@localhost hadoop]#tar zxvf  hadoop-0.20.2.tar.gz      //解压hadoop

[root@localhost hadoop]ls

hadoop-0.20.2   hadoop-0.20.2.tar.gz

[root@localhost hadoop]cd /usr/hadoop/hadoop-0.20.2/conf

[root@localhost conf]vi  hadoop-env.sh         //配置hadoop-env.sh

在hadoop-env.sh最后添加 export JAVA_HOME=/usr/java/java1.7.0_40 

对Hadoop的core-site.xml、hdfs-site.xml、mapred-site.xml进行最基本的简单配置如下,较为全面的配置见附录。

[root@localhost conf]vi  core-site.xml

 

[root@localhost conf]vi  hdfs-site.xml       //配置 hdfs-site.xml


     
         dfs.replication
         1
(datanode的数目)
     

 

[root@localhost conf]vi  mapred-site.xml    //配置 mapred-site.xml


 
    
        mapred.job.tracker
        localhost(你的master机器名):9001        //localhost为设置的主机名称

  

配置master和slave

查看主机名

使用下面命令进行查看主机名,若要更改,请查看下一步操作。

hostname

 

修改主机名(有些教程中建议把主机名改为对应的IP地址,不修改问题不是很大,可以自己选择)

第一步,查看主机IP地址。

用下面命令即可查看,本机IP为192.168.1.101(以下操作请使用root用户方可执行)

ifconfig

 

第二步,若想更改主机名,则可以通过修改文件“/etc/sysconfig/network”中的HOSTNAME后面的值,即可改成我们想要的名字。

用下面命令进行修改主机名。

nano /etc/sysconfig/network

 

两个文件在/usr/hadoop/hadoop-0.20.2/conf/下面,

[root@localhost conf]vi  masters

master文件填写

192.168.1.101(namenode的IP)

[root@localhost conf]vi  slaves

slave文件填写

192.168.1.101(datanode的IP)

因为是伪分布,所以都一样,且只有一个。

若为集群,则为

master文件填写

192.168.1.147(namenode的IP)

slave文件填写

192.168.1.103(datanode的IP)

 修改文件“/etc/hosts”。

[root@localhost ~]#vi /etc/hosts

使用命令打开后更改为如图所示的样子。将原有的全部注释(前面加#),namenode为第一个,datanode为第二个,因为伪分布式模式是namenode和datanode为同一个的,所以两个都是一样

 

集群模式则修改为如图所示。(两个机子修改为一样的,第一个为namenode,第二个datanode)

 

注意:在有些教程中给出的是这样的配置
[root@master ~]# vi /etc/hosts 
# Do not remove the following line, or various programs 
that require network functionality will fail. 
127.0.0.1                      localhost 
202.173.253.36            master  //
这里的master是用户的主机名

202.173.253.36            slave    //同理在伪分布式中这样写是错误的,不是slave,还是master,也就是说后面应该是datanode的所对应的的主机名,好多配置不成功都是因为这个,一定要理解,正确的写法参照上面的

使用root权限关闭防火墙,执行/etc/init.d/iptables stop,运行命令/etc/init.d/iptables status查看防火墙状态。

使用hadoop用户,将目录切换到/usr/ hadoop/hadoop-0.20.2下,格式化目录节点,hadoop namenode –format。

命令如下:[root@localhost ~]# /etc/init.d/iptables stop

[root@localhost ~]#cd /usr/hadoop/hadoop-0.20.2

[root@localhost hadoop-0.20.2]#bin/hadoop  namenode  –format。

集群模式,上述两个操作只需要namenode机器操作,datanode则不需要。

启动hadoop

在/usr/ hadoop/hadoop-0.20.2下执行start-all.sh启动hadoop。

[root@localhost hadoop-0.20.2]#bin/start-all.sh

用jps查看进程,如图所示有六个进程则为正确(伪分布式)

 [root@localhost hadoop-0.20.2]#jps

 

若为集群则在namenode机器上有4个进程。分别是JobTracker,NameNode,Jps,SecondaryNameNode。而datanode有3个,分别是TaskTracker,DataNode,Jps。

查看集群状态

# bin/hadoop dfsadmin –report

网页查看集群

打开http://localhost(主机名):50070查看节点状况 

 

打开http:// localhost (主机名):50030查看job状况 ;

 

如果以上都能正确出现,恭喜你配置成功了!

5问题集锦及解决方案:

问题1:启动成功后,发现在master查看live nodes为0

解决方案如下:

将文件/etc/hosts内原有的文件内容注释掉,添加namenode和datanode的IP地址与主机名。

问题2:JAVA_HOME is not set

解决方案如下:

配置/conf/hadoop-env.sh文件时,只是修改了JAVA_HOME的值,并没有将前面的注释号#删除掉,所以导致此种问题。

问题3:启动hadoop后,执行jps命令只有一个jps进程

解决方案如下:

只有一个进程的原因在于三个xml文件,master,slave的设置错误。

 

1.检查虚拟机中CentOS系统是否网络连接可用,就是下图中的电脑标志没有红叉(不要犯这种很低级的错误)

 

2.       在配置过程的xml文件我们将主机名都写为master导致错误,则将其改为namenode的主机名方可。

3.       master上只能有namenode的IP地址,不得有datanode的地址。同理,slave上只能有datanode的IP地址,不得有namenode的。

问题4:伪分布式配置SSH后,无论如何都需要输入密码

解决方案如下:

更改authorized_keys的权限为600 

chmod 600 authorized_keys

 

6.附录:

1.Core-site.xml、hdfs-site.xml、mapred-site.xml的全面配置

core-site.xml


<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22688628/viewspace-1119494/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-10-11

  • 博文量
    1
  • 访问量
    1460