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

[经验分享] CDH4.1(hadoop-2.0.0-cdh4.1.2)安装部署文档

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-12-13 06:30:03 | 显示全部楼层 |阅读模式
1. 环境说明
   Hadoop的版本选用的hadoop-2.0.0-cdh4.1.2,此版本的hadoop增加了诸如热备等许多新功能。是Cloudera在hadoop0.23基础上改造的,并且把部分功能一起贡献给了Apache。目前Apache Hadoop最新的版本是hadoop-2.0.2-alpha。
      CDH4下载地址:
     https://ccp.cloudera.com/display/SUPPORT/CDH+Downloads
      Apache-Hadoop下载地址:
     http://www.apache.org/dyn/closer.cgi/hadoop/common/
      所有节点都是部署在CentOS的操作系统之上。所有节点的防火墙应该均已关闭。
  集群中节点信息如下:2个namenode,3个datanode,1个zookeeper集群,1个NFS服务器,节点之间局域网连接,可以相互ping通,并且设置好SSH无密钥登录。因为机器数量有限,所以namenode和datanode配置在一台机器上,节点IP地址分布如下:

  角色

  IP地址

  namenode

  10.28.169.126

  namenode

  10.28.169.127

  datanode0

  10.28.169.126

  datanode1

  10.28.169.127

  datanode2

  10.28.169.149

  NFS Server

  10.28.169.149



  节点的jdk实现配置好,NFS事先挂载到两个namenode上。


2. 安装NFS

   NFS是NetworkFile System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。本文档中涉及到的NFS版本是NFS4。要注意使用NFS共享目录的用户的id号和groupID号必须一致!否则是不能使用的。
      在Hadoop中,NFS用来在namenode之间共享元数据和镜像文件。
      NFS安装见:
     http://www.cnblogs.com/qyddbear/archive/2012/06/05/2536840.html


3. 安装zookeeper

   zookeeper也是hadoop开源项目中的一个子项目。在hadoop的应用中,zookeeper用来选举当前的activenamenode。本文档中zookeeper的版本是zookeeper3.4.3。
      zookeeper安装见:
      http://blog.csdn.net/can007/article/details/7944072


4. 安装Hadoop



4.1 CDH4目录结构

  Hadoop0.23和Hadoop0.20相比,在架构上都有了很大的改变。目录结构以前的相比也有了很大的不同。以下是CDH4版本的目录结构:
  其中:
  (1)bin目录下是内层的调用脚本,在进行格式化namenode和格式化ZK等操作的时候,会用到这里的hadoop脚本或者hdfs脚本,要注意更改其中的关于jdk的目录设置和其他必要的设置;
  (2)sbin目录下是外层的调用脚本,包括启动整个集群的start-dfs.sh脚本等都在此目录下;
  (3)lib目录下是native的so文件;
  (4)libexec下是配置程序文件;
  (5)etc下是配置文件,和老版本的conf目录对应,比如core-site.xml、slaves和hdfs-site.xml文件等都在此目录下。
   DSC0000.jpg
  (6)share目录下是存放的所有的jar包。
     在安装部署hadoop的时候,主要有两个配置文件需要修改,那就是hdfs-site.xml和core-site.xml。下面就对着两个文件的修改进行说明。


4.2修改hdfs-site.xml



[html] view plaincopy




  • <!--配置dfs.nameservices这个名称可以随意,如果同时还使用HDFS的Federation机制,则应该使用逗号分隔nameservices列表-->
  • <property>
  • <name>dfs.federation.nameservices</name>
  • <value>sdc</value>
  • </property>
  • <property>
  • <name>dfs.namenode.name.dir</name>
  • <value>/home/hadoop/hadoop-cdh4-nn</value>
  • </property>
  • <!--配置:dfs.ha.namenodes.[nameserviceID].下面的dinglicom是nameserviceID,nn0和nn1是每台namenode的serviceId。-->
  • <property>
  • <name>dfs.ha.namenodes.sdc</name>
  • <value>nn0,nn1</value>
  • </property>
  • <!--配置rpc通信地址:dfs.namenode.rpc-address.[nameserviceID].-->
  • <property>
  • <name>dfs.namenode.rpc-address.sdc.nn1</name>
  • <value>10.28.169.126:8888</value>
  • </property>
  • <property>
  • <name>dfs.namenode.rpc-address.sdc.nn2</name>
  • <value>10.28.169.127:8888</value>
  • </property>
  • <!--配置http通信地址:dfs.namenode.http-address.[nameserviceID].-->
  • <property>
  • <name>dfs.namenode.http-address.sdc.nn1</name>
  • <value>10.28.169.126:50070</value>
  • </property>
  • <property>
  • <name>dfs.namenode.http-address.sdc.nn2</name>
  • <value>10.28.169.127:50070</value>
  • </property>
  • <!--配置dfs.namenode.shared.edits.dir是主备namenode共享目录,这里要求主备都可以读写,采用NFS实现共享-->
  • <property>
  • <name>dfs.namenode.shared.edits.dir</name>
  • <value>/data/cdh4</value>
  • </property>
  • <!--配置客户端failover,解决客户端故障转移-->
  • <property>
  • <name>dfs.client.failover.proxy.provider.sdc</name>
  • <value>org.apache.Hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  • </property>

  • <!--配置:Fencing,
  • 这里dfs.ha.fencing.methods实现的方法有两种sshfence和shell,我下面实现的是sshfence,dfs.ha.fencing.ssh.private-key-files这个是ssh的keyfile,用于在Active节点切换期间的安全机制,确保在任何时间都只有一个NameNode处于活跃状态。在故障切换期间,haadmin命令确保在将其它NameNode转换为Active状态之前Active节点处在Standby状态,或其进程已被终止。
  • 至少应该配置一个,因为没有默认配置,因此如果配置则HA机制将会失效。
  • 如果要实现自定义的安全机制,参照org.apache.hadoop.ha.NodeFencer
  • -->
  • <property>
  • <name>dfs.ha.fencing.methods</name>
  • <value>sshfence</value>
  • </property>
  • <property>
  • <name>dfs.ha.fencing.ssh.private-key-files</name>
  • <value>/home/hadoop/.ssh/id_rsa</value>
  • </property>
  • <!--启用失败自动切换-->
  • <property>
  • <name>dfs.ha.automatic-failover.enabled</name>
  • <value>true</value>
  • </property>
  • <!--配置zk集群信息-->
  • <property>
  • <name>ha.zookeeper.quorum</name>
  • <value>10.28.169.1:2181,10.28.169.2:2181,10.28.169.3:2181</value>
  • </property>
  • <!--datanode数据存放目录-->
  • <property>
  • <name>dfs.data.dir</name>
  • <value>/home/hadoop/hadoop-cdh4-dn</value>
  • </property>





4.3 修改core-site.xml



[html] view plaincopy




  • <!--fs.default.nameforMRV1,fs.defaultFSforMRV2(yarn)-->
  • <property>
  • <name>fs.defaultFS</name>
  • <!--这个地方的值要和hdfs-site.xml文件中的dfs.federation.nameservices一致-->
  • <value>hdfs://sdc</value>
  • </property>
  • <property>
  • <name>ha.zookeeper.quorum</name>
  • <value>10.28.169.1:2181,10.28.169.2:2181,10.28.169.3:2181</value>
  • </property>





4.4 Namenode格式化

   在其中一个namenode中,执行如下命令进行namenode的格式化:
     bin/hadoop namenode -format
     格式化之后,要同步两个NameNode上的元数据。如果是新建的HDFS 集群,按照dfs.namenode.name.dir 、dfs.namenode.edits.dir的配置把当前格式化的NameNode节点上的元数据目录复制到另一个NameNode,还应该确保共享存储目录下(dfs.namenode.shared.edits.dir ) 包含NameNode所有的元数据。 此处若不指定ClusterID,则系统会随机生成一个。


4.5 ZK格式化

  格式化ZK使用如下命令:
     bin/hdfs zkfc -formatZK


4.6 HA

  使用如下命令启动整个集群:
     sbin/start-dfs.sh
     默认以HA 方式启动集群,启动后为Standby 状态,使用如下命令设置Active 节点 (手动方式):
     bin/hdfs haadmin –DFSHAadmin –transitionToActivenn0
     如果让nn1 成为变为active, nn0变为standby,则
     bin/hdfs haadmin -DfSHAadmin -failover nn0 nn1
     如果失败(is not ready to become active) 则
     bin/hdfs haadmin -DfSHAadmin -failover--forceactive nn1 nn2
     具体参照bin/hdfs haadmin命令。


4.7 截图

  集群运行成功后,在ZK上的节点信息截图:
DSC0001.jpg

  集群运行成功后,active namenode的web界面截图:
DSC0002.jpg

  集群运行成功后,standby namenode的web界面截图:
DSC0003.jpg

运维网声明 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-313330-1-1.html 上篇帖子: Why ths days are numbered for Hadoop as we know it 下篇帖子: 从Hadoop框架与MapReduce模式中谈海量数据处理 【转】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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