首页 > 大数据 > 可视化 > CentOS 6.2下搭建伪分布式Hadoop
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
设置安装过程显示的语言、键盘类型(这里我选择英语,当然也可以选择中文。键盘类型保持默认即可)
1.17选择存储设备类型(默认选第一项:基本存储设备)
格式化硬盘(选 Yes,discart any data)
1.18设置计算机名(随便起个名字就行,如果懒得起,默认吧)
点击Configure NetWork网络设置安装图示顺序点击就可以了
选择时区(选亚洲/上海就行了)
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
#password: //root用户密码
#cd /
#mkdir /usr/java
#cp
/home/hadoop/Downloads/jdk-7u40-linux-i586.rpm
#cd /usr/java
#ls
#rpm –ivh
jdk-7u40-linux-i586.rpm
若下载的为jdk-6u11-linux-i586.bin ,则执行#./jdk-6u11-linux-i586.bin。64位操作系统请下载相对应的jdk
#vi /etc/profile
在最后添加
在vi编辑器增加以上内容后保存退出,并执行以下命令使配置生效
source
输入java -version,若出现下图信息则配置成功
3 SSH配置(参照附录2)
[root@localhost ~]#
ssh-keygen -t
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
[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
[root@localhost
~]#cp /home/hadoop/Downloads/hadoop-0.20.2.tar.gz
[root@localhost
~]#cd /usr/hadoop
[root@localhost hadoop]#ls
hadoop-0.20.2.tar.gz
[root@localhost
hadoop]#tar zxvf
[root@localhost hadoop]ls
hadoop-0.20.2
[root@localhost hadoop]cd /usr/hadoop/hadoop-0.20.2/conf
[root@localhost
conf]vi
在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
[root@localhost
conf]vi
[root@localhost conf]vi
配置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
master文件填写
192.168.1.101(namenode的IP)
[root@localhost conf]vi
slave文件填写
192.168.1.101(datanode的IP)
因为是伪分布,所以都一样,且只有一个。
若为集群,则为
master文件填写
192.168.1.147(namenode的IP)
slave文件填写
192.168.1.103(datanode的IP)
[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
202.173.253.36
202.173.253.36
使用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机器操作,datanode则不需要。
启动hadoop
在/usr/ hadoop/hadoop-0.20.2下执行start-all.sh启动hadoop。
[root@localhost hadoop-0.20.2]#bin/start-all.sh
用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.
3.
问题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/ ,如需转载,请注明出处,否则将追究法律责任。