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

[经验分享] Hadoop 分布式部署

[复制链接]

尚未签到

发表于 2015-7-11 11:38:36 | 显示全部楼层 |阅读模式
  开始着手学习hadoop了,撇开对hadoop的认识,面对的第一个问题幷是hadoop的分布式部署,网上有很多教程,按照这些教程来却或多或少有些不顺利的地方。在此详细的记录下自己的安装过程。
  服务器操作系统是CentOS6,部署的hadoop版本是0.20.2,共十台服务器,node1~node10。其中node1做为NameNode,node10作为SecondNameNode,node2~node9作为DataNode。
  由于之前没有怎么接触过linux操作系统,刚开始安装的过程中遇到了很多现在看来很简单,当时却困扰自己很久的问题。
  1,安装hadoop前,需要安装java,java版本得是1.6.以上的,还需要安装ssh。
  java安装完后,在~/.bash_profile中添加JAVA_HOME,PATH,CLASS_PATH. 注意PATH变量中,多个值之间用的是":"冒号。
  2,配置SSH,NameNode启动其他服务器上的进程免去登陆这一环节。在配置ssh前,先为hadoop系统创建用户。每个节点上都要做同样的操作。



1 groupadd hadoopcluster
2 useradd -g hadoopcluster hadoop
3 passwd hadoop //创建密码
  创建hadoop用户后,切换到hadoop用户来,在~目录下创建文件夹



1 mkdir .ssh
  随后开始配置ssh免登陆:注意,这个操作只在NameNode上操作。



1 ssh-keygen -t rsa //  接下来一路回车,则ok
2 cp id_rsa.pub authorized_keys //进入.ssh目录
  接下来,并将生成的authorized_keys拷贝到所有其他节点下去。注意:node2为hostname,可以改为该节点的IP地址,为了以后方便,在/etc/hosts里面增加各个节点的ip地址和hostname。如增加一行:192.168.1.12 node2



1 scp authorized_keys node2:/home/hadoop/.ssh
  在scp过程中会需要你输入密码,输入这一次以后再也不用输入了,这样ssh的无密码登陆就完成了。拷贝完成后,要修改authorized_keys文件的权限:



1 chmod 644 authorized_keys//在root权限下操作
  
  3,开始部署hadoop,在NameNode 节点上,使用Hadoop用户,解压hadoop的文件夹,由于服务器上不了网,只能先下载下来,再通过xftp将hadoop的文件上传到服务器上去。
  解压之后,进入conf目录。主要配置core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml masters slaves 五个文件。
  在hadoop-env.sh 文件中:主要添加java环境变量



1 export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
  在core-site.xml文件中:



1   
2      hadoop.tmp.dir
3      /opt/hadoop/tmp
4   
5   
6      fs.default.name
7      hdfs://node1:54310
8   
  在hdfs-site.xml文件中:



1   
2       dfs.replication
3       3
4   
5   
6       dfs.name.dir
7       /opt/hadoop/hdfs/name
8   
9   
10       dfs.data.dir
11       /opt/hadoop/hdfs/data
12   
13   
14       dfs.namenode.secondary.http-address
15       node10:50090
16   
  在mapred-site.xml 文件中:



1   
2      mapred.job.tracker
3      node1:54311
4   
  在slaves文件中,则添加DataNode节点的ip地址,一行一个如:192.168.1.1
  在masters文件中,要注意,这个文件中添加的地址是指SecondNameNode的ip地址,配一个则一个SecondNameNode,多个则多个这样的节点。
  这些配置完毕后,则,需要将hadoop的bin加入到环境变量中,在~/.bash_profile中添加类似于JAVA_HOME,PATH一样的变量,HADOOP_HOME 和 PATH。将这些配置好后,便将所有的hadoop文件scp到所有的其他节点上去,类似于之前scp authorized_keys 一样。
  这样hadoop集群的简单配置基本上就完成了,随后的便是开始启动整个集群,看自己的辛勤劳动有个什么神奇的结果。
  4,开始见证奇迹的发生了。



1 ./hadoop namenode -format //在hadoop bin目录下的操作,将数据节点格式化,如果顺利,会有一句successful的话
2 ./start-all.sh //则所有节点都启动了。
  如果启动正常,则可以在浏览器中输入node1(ip地址):50070里面看到整个集群的相关信息。
  注意在整个过程中,只从一个角度提到hadoop部署的,namenode和DataNode,其实在start-all之后,会发现打印出来的信息还有tasktracker,jobtracker,这样的字眼,他们是相对于mapreduce来说的。
  由于在初次部署hadoop系统,还是出现了一些问题,在开始没有配置hosts文件时,系统在最后的一次start-all后,所有的数据节点就在打印同一条日志,结果很快就将300g的硬盘写满了。再次启动就是提示没有空间可以写了。



1 2012-02-21 00:00:01,074 ERROR org.apache.hadoop.mapred.TaskTracker:
      Caught exception: java.net.UnknownHostException: unknown host: node1
  这是由于DataNode没有配置hosts文件,无法将node1映射到相应的ip地址。
  在配置hadoop过程中,也是自己第一次这么正式的接触linux系统,所以遇到了很多各种各样的问题,譬如总是搞错root用户和hadoop用户,在不同用户下创建的文件不同用户对他拥有的权限不一样,如果总是root用户创建,则hadoop用户没权限操作。
  在配置path时,将两个参数中写成了";"分号,则在切换到hadoop用户时,总会出现一句~bash这样的语句,切换用户,系统总会执行bash_profile文件中指明的环境变量,到分号后就以为结束了,后面的语句则识别错误了。
  在配置hadoop系统过程中,最好先操作官方的文档来,系统运行中出现问题,则多查看日志。多自己思考,总会解决问题的,这样也更多对问题有深入的了解,下次遇到了便立马知道错在什么地方,怎么解决了。
  天道酬勤。
  


  
  
  
  
  
  

运维网声明 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-85516-1-1.html 上篇帖子: [转]hadoop FileInputFormat详解额 下篇帖子: Hadoop源码学习笔记(1) ——第二季开始——找到Main函数及读一读Configure类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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