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

[经验分享] Hadoop平台配置总结

[复制链接]

尚未签到

发表于 2015-7-11 10:22:29 | 显示全部楼层 |阅读模式
  hadoop的配置,个人感觉是非常容易出问题。一个原因是要配置的地方多,还有个原因就是集群配置要在几台机器上都配置正确,才能保证配置好hadoop,跑起任务。
  经过昨晚加今天上午的折腾,总算成功配好了集群模式,其中苦不堪言啊,中间好几次都想要放弃。这里总结了一下配置的几个要点,分享给大家,以使大家少走冤枉路。
  1.基本配置
安装JDK1.6(这是必须的吧,无须解释)
下载Hadoop包
  下载后放在用户主目录下解压
配置JAVA_HOME路径
conf/hadoop-env.sh将
# The java implementation to use.  Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
改为
# The java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
(这里的java具体目录可能会有所不同)

保存并关闭
输入以下命令:
$ bin/hadoop
如果能看到hadoop的程序调用的使用说明,此时说明你已经成功配置好了这部分。(单机模式)


2.集群模式配置
配置好了单机模式后,即可配置集群模式。集群模式的结构是一台master机器+若干台slave机器。
(1)编辑/etc/hosts文件(master,slave都要):
假设master机器:
IP:192.168.0.1        机器名:master
假设slaves机器:
IP:192.168.0.2        机器名:slave1
IP:192.168.0.3        机器名:slave2
IP:192.168.0.4        机器名:slave3
IP:192.168.0.5        机器名:slave4
加入如下项:
# /etc/hosts
192.168.0.1    master
192.168.0.2    slave1
192.168.0.3    slave2
192.168.0.4    slave3
192.168.0.5    slave4
注意:这里的”master“和”slave1“等等均指你的机器名,如在终端中有ubuntu@DY1-U09:~/hadoop$,则DY1-U09为机器名。
(2)在hadoop目录下新建几个文件夹(master,slave都要):
$ mkdir tmp
$ mkdir hdfs
$ mkdir hdfs/name
$ mkdir hdfs/data
(3)在conf目录中,编辑以下文件(目录path/to/your/hadoop为你自己的相应hadoop目录)(master,slave都要):
conf/core-site.xml:

     
         fs.default.name
         hdfs://(你的master机器名):9000
     
     
         hadoop.tmp.dir
         /path/to/your/hadoop/tmp
     

conf/hdfs-site.xml:

     
         dfs.replication
         3
     
     
         dfs.name.dir
         /path/to/your/hadoop/hdfs/name
     
     
         dfs.data.dir
         /path/to/your/hadoop/hdfs/data
     

conf/mapred-site.xml:

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

(4)SSH Access(仅对master)
master必须能以passless ssh访问slaves
ubuntu@master:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub ubuntu@slave1
ubuntu@master:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub ubuntu@slave2
ubuntu@master:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub ubuntu@slave3
ubuntu@master:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub ubuntu@slave4

执行以上的命令都需要输入对方的密码
完成后,可以在master上分别运行:ssh slave1/slave2/slave3/slave4
看是否不需要输入密码,如果不需要则设置正确。
(5)配置conf/masters,conf/slaves(仅对master)
更新conf/masters文件如下:
master
更新conf/slaves文件如下:
slave1
slave2
slave3
slave4
(6)开启集群:
在master上运行:$ bin/start-all.sh可以在master和slave上运行jps命令,查看开启的daemons:
此时,master机器上应当有namenode,jobtracker,secondarynamenode,
而slave机器上有datanode,tasktracker
开启后要等一段时间使服务完全启动,否则命令将没有响应。具体什么时候完全启动可以查看

  • http://localhost:50030/ – web UI for MapReduce job tracker(s)
  • http://localhost:50060/ – web UI for task tracker(s)
  • http://localhost:50070/ – web UI for HDFS name node(s)
以上的几个网址可以让你获取Hadoop的运行状况信息。当网页可以载入的时候即可。
(7)测试一下:
首先需要Format namenode
(格式化之前最好在所有机器上清空hdfs/data,hdfs/name,以免造成冲突)
在master上运行: $ bin/hadoop namenode -format


在master机器上运行WordCount:
首先在dfs中创建input目录
$ bin/hadoop dfs -mkdir input
将conf中的文件拷贝到dfs中的input:
$ bin/hadoop dfs -copyFromLocal conf/* input
运行WordCount$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output
显示输出结果文件:
$ bin/hadoop dfs -cat output/*
3.配置过程问题归纳:

(1)dfs可以ls,mkdir,但是copyFromLocal出错,提示could only be replicated to 0 nodes, instead of 1:
这个问题非常容易遇到,而且原因可能也不相同,若出现此问题,请尝试以下步骤:
  使用jps检查master和slave上是否符合:master机器上应当有namenode,jobtracker,secondarynamenode,而slave机器上有datanode,tasktracker。
若不符合请仔细检查master和slave上的/etc/hosts文件、conf/core-site.xml、conf/mapred-site.xml、conf/hdfs-site.xml。
  检查master和slave上的/etc/hosts文件,如果其中有127.0.0.1与你的相应机器名对应的项,请将其删掉,务必保证此文件中对应于你的机器名的ip地址为你在局域网中的ip。
  运行stop-all.sh关闭进程;
  Format namenode(格式化之前最好在所有机器上清空hdfs/data,hdfs/name,以免造成冲突)——在master上运行: $ bin/hadoop namenode -format
  运行start-all.sh开启服务;
  待服务完全开启后测试。
(2)提示处于safemode,报错。
  运行命令bin/hadoop dfsadmin -safemode leave后重试。
(3)其他问题:
  配置过程出错的大部分问题都出在hdfs不能正常使用,具体表现是http://localhost:50070查看namenode显示
Configured Capacity     :     0 KB
DFS Used    :    0 KB
Non DFS Used    :    0 KB
DFS Remaining    :    0 KB
DFS Used%    :    100 %
DFS Remaining%    :    0 %
Live Nodes     :    0
Dead Nodes     :    0
若出现此问题,请仔细检查master和slave上的/etc/hosts文件,以及三个xml配置文件保证没有地方写错,所有机器上都有在hadoop目录执行
$ mkdir tmp
$ mkdir hdfs
$ mkdir hdfs/name
$ mkdir hdfs/data
最后,请大家勇于坚持——”我不会永远失败,正如我不会永远成功“。GoodLuck!

运维网声明 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-85450-1-1.html 上篇帖子: Hadoop迁移Namenode 下篇帖子: [hadoop源码阅读][4]-org.apache.hadoop.io.compress系列3-使用压缩
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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