hadoop HA模式搭建(基于前面博客要先搭建好zookeeper。hadoop HA模式搭建只是更改/etc/hadoop目录下面文件)

目录

1.创建目录,安装psmisc包

2.hadoop配置

1配置hadoop_en.sh

2配置core-site.xml

3配置vim hdfs-site.xml文件

4配置mapred-site.xml

5配置yarn-site.xml

6配置workers文件

7在master、slave1、slave2分别启动journalnode

8.在master格式化

10 .在master节点启动namenode

11.在slave1节点将namenode同步数据

12.在master节点让zkfc格式化 Zookeeper

13 启动集群

14启动历史服务器


1.创建目录,安装psmisc包

mkdir -p /export/hadoop/logs
yum -y install psmisc

2.hadoop配置

cd /export/hadoop/etc/hadoop/

1配置hadoop_en.sh

vim hadoop-env.sh
export JAVA_HOME=/export/jdk
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root                     

2配置core-site.xml

vim core-site.xml
<configuration>
  <!--设置默认使用的文件系统Hadoop支持file,HDFS,GFS,ali|Amazon云等文件系统 -->
    <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:8020</value>
    </property>
  <!--于指定文件读写时的缓冲区大小。缓冲区是一块内存区域,用于临时存储文件数据,以提高文件读写的性能-->
    <property>
            <name>io.file.buffer.size</name>
            <value>131072</value>
    </property>
  <!--文件系统垃圾桶保存时间-->
    <property>
            <name>fs.trash.interval</name>
            <value>1440</value>
    </property>

  <!--设置Hadoop本地保存数据路径-->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/export/hadoop/temp</value>
    </property>

  <!-- 设置HDFS web UI用户身份-->
    <property>
            <name>hadoop.http.staticuser.user</name>
            <value>root</value>
    </property>

  <!--整合hive用户代理设置-->
    <property>
            <name>hadoop.proxyuser.root.hosts</name>
            <value>*</value>
    </property>

  <!--配置Hadoop代理用户(proxyuser)的用户组(groups)权限-->
    <property>
           <name>hadoop.proxyuser.root.groups</name>
           <value>*</value>
     </property>

    <!--配置hadoopHA模式启动节点-->
    <property>
          <name>ha.zookeeper.quorum</name>
          <value>master,slave1,slave2</value>
     </property>

</configuration>  

3配置vim hdfs-site.xml文件

vim hdfs-site.xml
<configuration>
  <!--设置SNN进程运行机器位置信息-->
    <property>
           <name>dfs.namenode.secondary.http-address</name>
           <value>slave1:9868</value>
    </property>
  <!--设置bock副本数为2-->
   <property>
        <name>dfs.replication</name>
        <value>2</value>
   </property>
  <!--设置nameservices逻辑名称-->
   <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
   </property>

  <!--设置datenode节点连接名称-->
   <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2</value>
   </property>
  <!--部署datenode的nn1的主机名称-->
   <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1</name>
        <value>master:8020</value>
   </property>

  <!--部署datenode的节点nn2的主机名称-->
  <property>
      <name>dfs.namenode.rpc-address.mycluster.nn2</name>
      <value>slave1:8020</value>
  </property>

  <!--部署datenode的节点1的网络地址-->
  <property>
      <name>dfs.namenode.http-address.mycluster.nn1</name>
      <value>master:9870</value>
  </property>
  <!--部署datenode的节点2的网络地址-->
  <property>
      <name>dfs.namenode.http-address.mycluster.nn2</name>
      <value>slave1:9870</value>
  </property>

  <!--设置journalnode的部署位置-->
  <property>
      <name>dfs.namenode.shared.edits.dir</name>
      <value>qjournal://master:8485;slave1:8485;slave2:8485/mycluster</value>
  </property>

  <!--设置journalnode持久化数据的目录-->
  <property>
      <name>dfs.journalnode.edits.dir</name>
      <value>/export/hadoop/data/my</value>
  </property>

   <!--故障切换的实现和代理-->
   <property>
        <name>dfs.client.failover.proxy.provider.mycluster</name>
          <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
  <property>
      <name>dfs.ha.fencing.methods</name>
      <value>sshfence</value>
  </property>
   <!--设置ssh免密公钥地址-->
  <property>
      <name>dfs.ha.fencing.ssh.private-key-files</name>
      <value>/root/.ssh/id_rsa</value>
  </property>

  <!--开启ha自动故障转移-->
  <property>
       <name>dfs.ha.automatic-failover.enabled</name>
       <value>true</value>
 </property>


</configuration>

4配置mapred-site.xml

vim mapred-site.xml
<configuration>
    <!-- 设置MR程序默认运行模式:YARN集群模式 local本地模式 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- MR程序历史服务地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:10020</value>
    </property>
    <!-- MR程序历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
    <!-- 设置MapReduce相关环境变量 -->
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <!-- MR任务优化设置,是否启用Ubertask -->
    <property>
        <name>mapreduce.job.ubertask.enable</name>
        <value>true</value>
    </property>
</configuration>

5配置yarn-site.xml

vim yarn-site.xml
<configuration>
    <!-- 配置yarn主节点的位置 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 设置yarn集群的内存分配方案 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>20480</value>
    </property>
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>2048</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
    </property>
    <!-- 开启日志聚合功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置聚合日志在hdfs上的保存时间 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <!-- 设置yarn历史服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://master:19888/jobhistory/logs</value>
    </property>
    <!-- 关闭yarn内存检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

    <!-- 设置ResourceManager的高可用性 -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>cluster1</value>
    </property>
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <!-- 设置ResourceManager位置 -->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>slave1</value>
    </property>
    <!-- 设置ResourceManager Web 应用程序地址 -->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>master:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>slave1:8088</value>
    </property>
    <!-- 设置nodemanager位置 -->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>master:2181,slave1:2181,slave2:2181</value>
    </property>
</configuration>

6配置workers文件

vim workers
master
slave1
slave2
cd /export
for i in {1..2}; do scp -r hadoop slave$i:$PWD; done

7在master、slave1、slave2分别启动journalnode

hdfs --daemon start journalnode

8.在master格式化

hdfs namenode -format
# 查看结果,successful表示成功

10 .在master节点启动namenode

hadoop-daemon.sh start namenode
或者
hdfs --daemon start namenode

11.在slave1节点将namenode同步数据

hdfs namenode -bootstrapStandby

12.在master节点让zkfc格式化 Zookeeper

hdfs zkfc -formatZK

13 启动集群

start-all.sh
端口: 9870   8088
master节点  slave1节点
master:9870 slave1:9870
master:8088 slave1:8088

14启动历史服务器

mapred --daemon start historyserver
19888
端口:19888 yarn MR程序历史服务器web端地址
master:19888
  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值