`

CDH Hadoop 集群部署方案

 
阅读更多

 

1、 集群规划

主机名称    主机IP        安装软件    运行的进程
node1    10.1.19.100    zookeepr1    DataNode、NodeManager、JournalNode、QuorumPeerMain
node2    10.1.19.144    zookeepr2    DataNode、NodeManager、JournalNode、QuorumPeerMain
node3    10.1.19.146    zookeepr3    DataNode、NodeManager、JournalNode、QuorumPeerMain
node4    10.1.19.148                NameNode、DFSZKFailoverController(zkfc)
node5    10.1.19.149                NameNode、DFSZKFailoverController(zkfc)
node6    10.1.19.158                ResourceManager
node7    10.1.19.157                ResourceManager

2、 OS 配置信息
内存:4G

CPU:4核

OS: Linux RedHat 企业版64bit

JDK:1.7.1

Hadoop: hadoop-2.6.0-cdh5.5.1

3、准备工作

3.1 编译源码

编译源码过程: Hadoop学习笔记 6 Hadoop源码编译 编译好的源码见附件:

3.2 JDK配置安装

使用tar命令,将JDK解压到 /usr/目录下

配置/etc/profile,配置好JDK环境变量,使用source /etc/profile

使用which java 验证jdk环境变量配置信息是否成功

4、安装Hadoop

使用tar 命令将hadoop压缩文件解压到 /usr/hadoop/目录下

然后修改配置文件:hadoop-env.sh、core-site.xml、 hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

4.1  hadoop-env.sh

配置JDK的根路径

export JAVA_HOME=/usr/java/jdk1.7.0_71

 

4.2 core-site.xml

<configuration>
    <!-- 指定hdfs的nameservice为ns1 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://ns1</value>
    </property>
    <!-- 指定hadoop临时目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-2.7.1/tmp</value>
    </property>
    <!-- 指定zookeeper地址 -->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
    </property>
</configuration>

 

4.3  hdfs-site.xml

 

<configuration>
    <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
    <property>
        <name>dfs.nameservices</name>
        <value>ns1</value>
    </property>
    <!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
    <property>
        <name>dfs.ha.namenodes.ns1</name>
        <value>nn1,nn2</value>
    </property>
    <!-- nn1的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns1.nn1</name>
        <value>hadoop04:9000</value>
    </property>
    <!-- nn1的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns1.nn1</name>
        <value>hadoop04:50070</value>
    </property>
    <!-- nn2的RPC通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.ns1.nn2</name>
        <value>hadoop05:9000</value>
    </property>
    <!-- nn2的http通信地址 -->
    <property>
        <name>dfs.namenode.http-address.ns1.nn2</name>
        <value>hadoop05:50070</value>
    </property>
    <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns1</value>
    </property>
    <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/usr/local/hadoop-2.7.1/journal</value>
    </property>
    <!-- 开启NameNode失败自动切换 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <!-- 配置失败自动切换实现方式 -->
    <property>
        <name>dfs.client.failover.proxy.provider.ns1</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
            shell(/bin/true)
        </value>
    </property>
    <!-- 使用sshfence隔离机制时需要ssh免登陆 -->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <!-- 配置sshfence隔离机制超时时间 -->
    <property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
    </property>
</configuration>

4.4  mapred-site.xml
<configuration>
    <!-- 指定mr框架为yarn方式 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

 

 

4.5 yarn-site.xml

<configuration>
     
       <!-- Resource Manager Configs -->
        <property>
                <name>yarn.resourcemanager.connect.retry-interval.ms</name>
                <value>2000</value>
        </property>
          <property>
             <name>yarn.resourcemanager.ha.enabled</name>
             <value>true</value>
          </property>
        <property>
                <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
        <!-- 使嵌入式自动故障转移。HA环境启动,与 ZKRMStateStore 配合 处理fencing -->
        <property>
                <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
                <value>true</value>
        </property>
        <!-- 集群名称,确保HA选举时对应的集群 -->
        <property>
                 <name>yarn.resourcemanager.cluster-id</name>
                 <value>yrc</value>
          </property>
        <property>
                <name>yarn.resourcemanager.ha.rm-ids</name>
                <value>rm1,rm2</value>
        </property>
      <property>
         <name>yarn.resourcemanager.hostname.rm1</name>
         <value>node6</value>
      </property>
      <property>
         <name>yarn.resourcemanager.hostname.rm2</name>
         <value>node7</value>
      </property>     
       <property>
                <name>yarn.resourcemanager.scheduler.class</name>
                <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
        </property>
        <property>
                <name>yarn.resourcemanager.recovery.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
                <value>5000</value>
        </property>
        <!-- ZKRMStateStore 配置 -->
        <property>
                <name>yarn.resourcemanager.store.class</name>
                <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
        </property>
        <property>
                <name>yarn.resourcemanager.zk-address</name>
                <value>node1:2181,node2:2181,node3:2181</value>
        </property>
        <property>
                <name>yarn.resourcemanager.zk.state-store.address</name>
                <value>node1:2181,node2:2181,node3:2181</value>
        </property>
        <!-- Client访问RM的RPC地址 (applications manager interface) -->
        <property>
                <name>yarn.resourcemanager.address.rm1</name>
                <value>node6:23140</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address.rm2</name>
                <value>node7:23140</value>
        </property>
        <!-- AM访问RM的RPC地址(scheduler interface) -->
        <property>
                <name>yarn.resourcemanager.scheduler.address.rm1</name>
                <value>node6:23130</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address.rm2</name>
                <value>node7:23130</value>
        </property>
        <!-- RM admin interface -->
        <property>
                <name>yarn.resourcemanager.admin.address.rm1</name>
                <value>node6:23141</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address.rm2</name>
                <value>node7:23141</value>
        </property>
        <!--NM访问RM的RPC端口 -->
        <property>
                <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
                <value>node6:23125</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
                <value>node7:23125</value>
        </property>
        <!-- RM web application 地址 -->
        <property>
                <name>yarn.resourcemanager.webapp.address.rm1</name>
                <value>node6:23188</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address.rm2</name>
                <value>node7:23188</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.https.address.rm1</name>
                <value>node6:23189</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.https.address.rm2</name>
                <value>node7:23189</value>
        </property>
       
        <property>
                         <name>yarn.nodemanager.aux-services</name>
                         <value>mapreduce_shuffle</value>
          </property>
</configuration>

 

4.6 slaves

 slaves是指定子节点的位置,
    在node4上启动:HDFS、journalnode
    在node6启动: yarn,
    所以node4上的slaves文件指定的是datanode的位置,
    node6上的slaves文件指定的是nodemanager的位置

    node1
    node2
    node3

 

5、 启动、初始化HDFS环境

5.1 启动zookeeper集群 (node1、node2、node3)

使用./zkServer.sh start 命令依次启动三个节点

5.2 启动journalnode

sbin/hadoop-daemons.sh start journalnode

#运行jps命令检验 是否启动成功

5.3 格式化HDFS

  #在node4上执行命令:
    hdfs namenode -format

#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/usr/hadoop/hadoop-2.6.0-cdh5.5.1/tmp,然后将/usr/hadoop/hadoop-2.6.0-cdh5.5.1/tmp拷贝到node5、node6、node7的/usr/hadoop/hadoop-2.6.0-cdh5.5.1/下。
    scp -r tmp/ node5:/itcast/hadoop-2.7.1/

 

5.4 格式化ZK(在node4上执行即可)

hdfs zkfc -formatZK

5.5启动HDFS(在node4上执行)
    sbin/start-dfs.sh

5.6 启动YARN(#####注意#####:是在node6上执行start-yarn.sh,把namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,所以把他们分开了,他们分开了就要分别在不同的机器上启动)
    sbin/start-yarn.sh

 

 

分享到:
评论

相关推荐

    CDH集群部署.doc

    CDH集群部署方案 本文档描述了在虚拟机上的CDH集群部署方案,该方案用于测试环境,同时也可以作为实际环境部署的指导。该方案采用VMware Workstation Pro 12虚拟机环境,虚拟三台机器,一主两备;主节点4G内存,50G...

    Hadoop发行版CM5与CDH5集群部署手册.pdf

    Hadoop发行版CM5与CDH5集群部署手册.pdf

    大数据CDH集群部署文档v1.1.docx

    大数据CDH集群部署文档是指利用Cloudera Distributed Hadoop(CDH)搭建大数据集群的指导手册,旨在帮助用户快速搭建大数据环境,学习大数据利器。以下是该文档的知识点总结: 大数据CDH集群概述 CDH是Cloudera...

    CDH集群部署手册(For CDH5)

    《CDH集群部署手册(For CDH5)》是一份详尽的指南,旨在帮助用户成功部署和管理CDH(Cloudera Distribution Including Apache Hadoop)5版本的集群。CDH是Cloudera公司提供的一个全面、经过企业级优化的Apache Hadoop...

    CM5和CDH5 搭建Hadoop 集群

    在本篇中,我们将探讨如何使用CM5和CDH5搭建Hadoop集群,包括安装过程、可能遇到的问题以及解决方案。CM5(Cloudera Manager 5)是Cloudera公司提供的一个管理工具,用于简化Hadoop集群的部署、管理和监控。而CDH5...

    CDH安装手册.rar_cdH_hadoop_hadoop安装手册_大数据_安装部署

    总结,《CDH安装手册》是学习和实施Hadoop大数据集群部署的宝贵资料,涵盖从基础概念到具体操作的全方位指导。通过深入理解并实践其中的知识点,读者将能够熟练地搭建和管理CDH集群,为大数据应用打下坚实基础。

    Hadoop集群

    Hadoop集群的部署方式主要为了实现数据本地性,即在调度MapReduce作业时,尽可能将计算任务分配到存储有该任务所需数据的节点上。这样可以减少网络传输数据量,降低延迟,提高计算效率。在小规模集群中,NameNode和...

    大数据技术之CM6.3.1+CDH6.3.2集群模式部署Dolphinscheduler.pdf

    大数据技术之CM6.3.1+CDH6.3.2集群模式部署Dolphinscheduler是大数据领域的一种集群模式部署解决方案。该解决方案使用CDH6.3.2集群模式,结合Dolphinscheduler实现大数据处理和分析。 知识点1:CDH6.3.2集群模式 ...

    实验6-7《Hadoop集群部署》详解.docx

    Cloudera Manager是其配套的管理工具,使得部署和管理Hadoop集群变得更加便捷。Cloudera还提供支持、咨询服务和培训。 3. **Hortonworks Data Platform (HDP)** - Hortonworks是由雅虎的工程师创建的,其主打产品...

    CDH_5.7.0_基于VM虚拟机的hadoop集群搭建

    ### CDH 5.7.0 基于VM虚拟机的Hadoop集群搭建 #### 总述 ...此外,对于想要深入了解Hadoop集群部署过程的技术人员来说,这份文档提供了详尽的操作指南和技术要点,有助于他们更好地掌握相关技术细节。

    大数据【经典文档】:CDH集群部署安装运维手册【61页】.docx

    《大数据经典文档:CDH集群部署安装运维手册》是一份详尽的指南,旨在帮助IT专业人士成功地在企业环境中部署、管理和维护Cloudera Data Hub(CDH)集群。CDH是一个全面的大数据处理平台,它包含了一系列开源项目,如...

    CDH安全技术方案.docx

    《CDH安全技术方案》是针对大数据平台的一种安全保障策略,主要涵盖了四个关键环节:配置TLS证书、设置Kerberos认证、部署Sentry以及集成Hive。这些技术的结合使用能够确保CDH(Cloudera Distribution Including ...

    hadoop-2.6.0.tar.gz&hadoop-2.6.0-cdh5.16.2.tar.gz

    这个版本还包含了其他相关工具,如Hadoop命令行工具、Hadoop守护进程等,用于管理和操作Hadoop集群。 而hadoop-2.6.0-cdh5.16.2.tar.gz则是Cloudera公司推出的基于Hadoop 2.6.0的CDH(Cloudera Distribution ...

    hadoop-2.6.0-cdh5.14.2.tar.gz

    6. 运行测试任务,验证Hadoop集群是否正常工作。 此外,CDH还提供了额外的管理和监控工具,如Cloudera Manager,方便用户对整个集群进行一站式管理,包括安装、配置、监控和优化。这些工具简化了Hadoop在企业环境中...

    CDH5.16.2离线部署.docx

    CDH(Cloudera Distribution of Hadoop)是一款基于Apache Hadoop的商业发行版,提供了完整的Hadoop解决方案。below是基于CentOS 7安装CDH 5.16.2的离线部署文档,涵盖了从环境准备到CDH安装的所有步骤。 Cloudera ...

    翟艳堂:腾讯大规模Hadoop集群实践

    翟艳堂在演讲中详细介绍了腾讯如何实践和优化大规模Hadoop集群,以及在处理海量数据方面所遇到的挑战和解决方案。这包括了腾讯数据服务的总体框架、数据开发者平台、统一调度系统Lhotse、TDW海量数据存储与计算平台...

    06_规划您的Hadoop 集群.docx

    综上所述,规划Hadoop集群涉及多个方面的考量,从硬件配置到软件选择,再到网络设计和管理方案,每一个环节都需要精心设计。通过综合考虑这些因素,可以构建出既高效又稳定的Hadoop集群,满足日益增长的数据处理需求...

Global site tag (gtag.js) - Google Analytics