设为首页 收藏本站
查看: 1015|回复: 0

[经验分享] Hadoop伪分布式与集群式安装配置

[复制链接]

尚未签到

发表于 2015-7-11 10:55:26 | 显示全部楼层 |阅读模式
  









配置环境                          
配置前的说明
部署伪分布式与集群式Hadoop的绝大部分操作都是一样的,细节上区别在于集群式是在两台机子上部署的,两台机子都要执行下列操作,而伪分布式都是在一台机子上操作,以下全部操作如没有特别说明,则伪分布式操作与集群式操作等同。
环境说明

伪分布式Hadoop
l  本次hadoop配置的为伪分布模式,即在一个机子上作为namenode,又作为datanode。
l  操作系统:CentOS5.5
l  JDK:1.6.0_26
l  Hadoop:hadoop-0.21.0

集群分布式Hadoop
l  本次hadoop配置的为集群分布模式,即在一个机子上作为namenode,另一台机子作为datanode。
l  操作系统:CentOS5.5
l  JDK:1.6.0_26
l  Hadoop:hadoop-0.21.0
l  网络配置:
DSC0000.png
网络配置                                                      
查看主机名
使用下面命令进行查看主机名,若要更改,请查看下一步操作。

hostname
DSC0001.png
修改主机名
第一步,查看主机IP地址。
用下面命令即可查看,本机IP为192.168.1.101(以下操作请使用root用户方可执行)

ifconfig
DSC0002.png
第二步,若想更改主机名,则可以通过修改文件“/etc/sysconfig/network”中的HOSTNAME后面的值,即可改成我们想要的名字。
用下面命令进行修改主机名。

nano /etc/sysconfig/network
DSC0003.png
第三步,修改文件“/etc/hosts”。

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


nano /etc/hosts

DSC0004.png

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


DSC0005.png
SSH无密码验证配置                     
关于SSH服务


DSC0006.png
还要安装rsync,执行命令sudo yum install rsync
创建hadoop用户
使用root用户创建hadoop用户,依次执行下列命令即可。(集群模式则每台机器都需要这样操作)

useradd hadoop(新增用户)
passwd hadoop (输入两次密码,但输入期间是无任何字符显示的)
DSC0007.png

生成SSH密钥

注销,切换到用户hadoop下,执行下列命令。
cd /home/hadoop
ssh-keygen -t rsa(一路回车,选择默认的保存路径)
进入.ssh目录:cd .ssh
cp id_rsa.pub authorized_keys
ssh 你的主机名
不需要输入密码即为成功,输入exit退出,若要输入密码,则在.ssh目录下执行命令chmod 600 authorized_keys后即可。

上述为伪分布式SSH配置成功,若为集群式还需要下列一个操作方可。

将namenode上的公钥拷贝到datanode,namenode机器在hadoop用户的用户目录下(/home/hadoop)下执行命令ssh-copy-id -i $HOME/.ssh/id_rsa.pub hadoop@(datanode的主机名)。
执行命令SSH datanode的主机名。若不需要密码则为成功。
JDK配置                                                   
下载JDK
使用root用户登录后,执行命令yum install jdk。若找不到,则去官网下载(https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u22-oth-JPR@CDS-CDS_Developer)
安装JDK
新建目录/usr/java,将源码包jdk-6u22-linux-i586.bin复制到该目录下,执行命令chmod a+x jdk-6u22-linux-i586.bin。
执行命令 ./jdk-6u22-linux-i586.bin进行安装。
配置环境变量
修改文件“/etc/profile”来添加环境变量。执行下面命令打开文件。

nano /etc/profile
在文件最后添加下面几行:

export JAVA_HOME=/usr/java/jdk1.6.0_26
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
source /etc/profile使变量生效。
验证安装成功
执行命令java –version可得


DSC0008.png
若不成功则查看环境变量是否设置错误。
Hadoop配置                       
安装hadoop

以下操作若不能执行,则使用visudo(该命令需要root权限)给hadoop用户添加最高权限,发生权限不足时,在每条命令前加sudo即可。
如图所示。该命令使用vi编辑器,若不熟悉操作则按77G后按i键
添加一行hadoop  ALL=(ALL)  ALL后按esc键,输入:wq即可保存退出。
DSC0009.png
注销,切换到hadoop用户下。新建目录sudo mkdir /usr/local/hadoop,
将hadoop-0.21.0.tar.gz解压缩到该目录下,在压缩包所在的文件夹下执行sudo tar -xvzf hadoop-0.21.0.tar.gz –C /usr/local/hadoop
配置环境变量
修改/etc/profile文件,在文件最后添加两行。

export HADOOP_HOME=/usr/local/hadoop/hadoop-0.21.0
export PATH=$HADOOP_HOME/bin:$PATH
配置/usr/local/hadoop/hadoop-0.21.0/conf/hadoop-env.sh文件,在文件最后添加JAVA_HOME环境变量,export JAVA_HOME=/usr/java/jdk1.6.0_26/
配置master和slave

两个文件在/usr/local/hadoop/hadoop-0.21.0/conf/下面,
master文件填写
192.168.1.101(namenode的IP)
slave文件填写
192.168.1.101(datanode的IP)
因为是伪分布,所以都一样,且只有一个。

若为集群,则为
master文件填写
192.168.1.147(namenode的IP)
slave文件填写
192.168.1.103(datanode的IP)

配置三个xml文件
三个xml文件都是在/usr/local/hadoop/hadoop-0.21.0/conf/
配置core-site.xml
创建文件夹mkdir /usr/hadoop/hadoop-0.21.0/tmp

     
         fs.default.name
         hdfs://yeweipeng(你的master机器名):9000
     
     
         hadoop.tmp.dir
         /usr/hadoop/hadoop-0.21.0/tmp
     


配置 hdfs-site.xml

     
         dfs.replication
         1(datanode的数目)
     

配置 mapred-site.xml

     
         mapred.job.tracker
         yeweipeng(你的master机器名):9001
     

启动和测试Hadoop                     
准备工作
使用root权限关闭防火墙,执行/etc/init.d/iptables stop,运行命令/etc/init.d/iptables status查看防火墙状态。
使用hadoop用户,将目录切换到/usr/local/hadoop/hadoop-0.21.0/bin下,格式化目录节点,hadoop namenode –format。
集群模式,上述两个操作只需要namenode机器操作,datanode则不需要。
启动hadoop
在/usr/local/hadoop/hadoop-0.21.0/bin下执行start-all.sh启动hadoop。
用jps查看进程,如图所示有六个进程则为正确(伪分布式)


DSC00010.png
若为集群则在namenode机器上有4个进程。分别是JobTracker,NameNode,Jps,SecondaryNameNode。而datanode有3个,分别是TaskTracker,DataNode,Jps。
网页查看集群
打开http://yeweipeng(主机名):50070查看节点状况
打开http://yeweipeng(主机名):50030查看job状况 ;

测试
创建目录haoop fs -mkdir test

上传haoop fs -put 你要上传的目录
下载haoop fs -get 云端的目录 本地目录
配置中出现的错误                 
问题:启动成功后,发现在master查看live nodes为0
解决方案如下:
将文件/etc/hosts内原有的文件内容注释掉,添加namenode和datanode的IP地址与主机名。
问题:JAVA_HOME is not set
解决方案如下:
配置/conf/hadoop-env.sh文件时,只是修改了JAVA_HOME的值,并没有将前面的注释号#删除掉,所以导致此种问题。
问题:启动hadoop后,执行jps命令只有一个jps进程
解决方案如下:
只有一个进程的原因在于三个xml文件,master,slave的设置错误。
1.       在配置过程的xml文件我们将主机名都写为master导致错误,则将其改为namenode的主机名方可。
2.       master上只能有namenode的IP地址,不得有datanode的地址。同理,slave上只能有datanode的IP地址,不得有namenode的。
问题:伪分布式配置SSH后,无论如何都需要输入密码
解决方案如下:
  更改authorized_keys的权限为600
  chmod 600 authorized_keys
  
参考资料                                          
http://blog.iyunv.com/hyclq/article/details/6095904
http://www.iyunv.com/xia520pi/archive/2012/05/16/2503949.html
http://blog.iyunv.com/zhaogezhuoyuezhao/article/details/7328313
http://teleyic.iteye.com/blog/1154086

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85482-1-1.html 上篇帖子: hadoop配置含义(继续更新中) 下篇帖子: Hadoop计算能力调度器应用和配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表