高可用集群之~ 三:hadoop

高可用的 hadoop 集群要依赖 zookeeper 进行托管,故要先配置 zookeeper

3.1 配置主节点的 Hadoop 环境

3.1.1 进入/opt/bigdata/hadoop260/etc/hadoop
与普通的集群相比,hadoop-yarn高可用集群配置的不同之处在于配置core-site.xml , hdfs-site.xml , yarn-site.xml
3.1.2配置 hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/opt/greeinstall/jdk18111

3.1.3 配置 mapred-env.sh
export JAVA_HOME=/opt/bigdata/jdk180
3.1.4 配置 yarn-env.sh
export JAVA_HOME=/opt/bigdata/jdk180
3.1.5 配置 core-site.xml (配置完此步,需要在hadoop260目录下建hadoop2目录)
<configuration>
<property>
<!-- HDFS namenode地址 -->
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>

<!-- hadoop运行是存储路径 -->
<property>
   <name>hadoop.tmp.dir</name>
   <value>/opt/bigdata/hadoop260ha/hadoopdata</value>
</property>
<property>
   <name>dfs.journalnode.edits.dir</name>
   <value>/opt/bigdata/hadoop260ha/hadoopdata/jn</value>
</property>
<property>
   <name>hadoop.proxyuser.root.hosts</name>
   <value>*</value>
 </property>
<property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>
 </property>
<property>
   <name>ha.zookeeper.quorum</name>
   <value>lijia2:2181,lijia3:2181,lijia4:2181</value>
 </property>
</configuration>

3.1.6 配置hdfs-site.xml
<configuration>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>lijia2:9000</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>lijia3:9000</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>lijia2:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>lijia3:50070</value>
</property>
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://lijia2:8485;lijia3:8485;lijia4:8485/mycluster</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.permissions.enable</name>
  <value>false</value>
</property>
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>shell(/bin/true)</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_rsa</value>
</property>
<property>
  <name>dfs.ha.automatic-failover.enabled</name>
  <value>true</value>
</property>
</configuration>

3.1.7 配置mapred-site.xml
<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>HostName:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>HostName:19888</value>
</property>
</configuration>

3.1.8 配置yarn-site.xml
<configuration>
<!-- reducer获取数据方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>


<!-- 激活 RM 高可用 -->
<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>
<!-- 指定 RM 的集群 id -->
<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>RM_CLUSTER</value>
</property>
<!-- 定义 RM 的节点-->
<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>
<!-- 指定 RM1 的地址 -->
<property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>lijia3</value>
</property>
<!-- 指定 RM2 的地址 -->
<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>lijia4</value>
</property>
<!-- 激活 RM 自动恢复 -->
<property>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>true</value>
</property>
<!-- 配置 RM 状态信息存储方式,有 MemStore 和 ZKStore-->
<property>
    <name>yarn.resourcemanager.store.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!-- 配置为 zookeeper 存储时,指定 zookeeper 集群的地址 -->
<property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>lijia2:2181,lijia3:2181,lijia4:2181</value>
</property>


<!-- 日志聚集功能使用 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
</configuration>
3.1.9 配置vi ./slaves

注意:此配置文件是确定 datanode 的,写哪台机器,就是在哪个节点上配置 datenode

luo1
luo2
luo3
3.1.10 Hadoop环境变量配置
vi /etc/profile.d/env.sh
export HADOOP_HOME=/opt/greeinstall/hadoop260
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
3.1.11 刷新profile.d/env.sh文件
[root@c1 profile.d]# source /etc/profile.d/env.sh 

3.2 用 rsync 写脚本分发配置hadoop和/etc/profile.d/env.sh到分节点(去各个节点刷新)

这是一个链接:点击此处:关于如何编写脚本和运行请参考 脚本专栏的xrsync 增量脚本

3.3 启动 Hadoop

在三台机器上启动 journalnode
查看进程,如没有进程将不能格式化

hadoop-daemon.sh start journalnode
在master上进行格式化,状态为0为成功
不是第一次装Hadoop的需要把name 、data 删除 ,否则将启动不了进程
hdfs namenode -format
在master上单独启动namenode
hadoop-daemon.sh start namenode
在master2上同步master,状态为0成功
hdfs namenode -bootstrapStandby
关闭master上namenode
hadoop-daemon.sh stop namenode
在master上格式化ZK,格式化成功标志为,在任意一台登陆zkCli 查看 ls / 会有 hadoop ha 目录
hdfs zkfc -formatZK
在master上启动集群
start-dfs.sh
启动yarn集群
start-yarn.sh
*以后启动顺序,先启动zookeeper集群,然后在master上执行 start-all.sh 即可
查看状态
 在浏览器上访问
 做yarn的故障切换测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值