hadoop3.x(ha)安装部署

hadoop的安装部署只需要修改hdfs-site.xml,core-site.xml,mapred-site.xml,yarn-site.xml,workers这几个文件,前置需要配置网络,主机名以及免密操作。

修改core-site.xml文件

<configuration>
<!-- HA集群名称,该值要和hdfs-site.xml中的配置保持一致 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://mycluster</value> 
</property>
<!--临时目录:提前创建好-->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/servers/hadoop/data/hadoop_tmp_data</value>
</property>
<!--webUI展示时的用户-->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>
<!--高可用依赖的zookeeper的通讯地址-->
<property>
    <name>ha.zookeeper.quorum</name>
    <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!-- 传输文件大小配置 -->
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>

<!--用于连接hive server2(可选项)-->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
</configuration>

修改hdfs-site.xml文件

<configuration>
<!-- 指定副本数 -->
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
<property>
    <name>dfs.nameservices</name>
    <value>mycluster</value>
</property>
<!--定义hdfs集群中的namenode的ID号-->
<property>
    <name>dfs.ha.namenodes.mycluster</name>
    <value>nn1,nn2</value>
</property>
<!--定义namenode的主机名和rpc协议的端口-->
<property>
    <name>dfs.namenode.rpc-address.mycluster.nn1</name>
    <value>hadoop01:8020</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.mycluster.nn2</name>
    <value>hadoop02:8020</value>
</property>
<!--定义namenode的主机名和http协议的端口-->
<property>
    <name>dfs.namenode.http-address.mycluster.nn1</name>
    <value>hadoop01:9870</value>
</property>
<property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>hadoop02:9870</value>
</property>
<!--定义共享edits的url-->
<property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/mycluster</value>
</property>
<!--hdfs集群中两个namenode切换状态时的隔离方法-->
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
    <value>shell(/bin/true)</value>
</property>
    
 <!--ha的hdfs集群自动切换namenode的开关-->
<property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
</property>  

<!--hdfs集群中两个namenode切换状态时的隔离方法的秘钥-->
<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
</property>
<!-- 启用webhdfs -->
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>

<!--journalnode集群中用于保存edits文件的目录:提前创建好-->
<property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/servers/hadoop/data/journalnode_data</value>
</property>
 <!-- 指定该集群出故障时,哪个实现类负责执行故障切换 -->
        <property>
          <name>dfs.client.failover.proxy.provider.mycluster</name>
          <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
<!-- 配置sshfence隔离机制超时时间 -->
        <property>
                <name>dfs.ha.fencing.ssh.connect-timeout</name>
                <value>30000</value>
        </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

修改mapred-site.xml文件

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop01:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop01:19888</value>
</property>
<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>
</configuration>

修改yarn-site.xml文件

<configuration>
<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>
<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yarn_cluster1</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>
 <property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>hadoop01</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>hadoop02</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address.rm1</name>
    <value>hadoop01:8088</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address.rm2</name>
    <value>hadoop02:8088</value>
</property>
<property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!-- 指定 resourcemanager 的状态信息存储在 zookeeper 集群 -->
<property>
    <name>yarn.resourcemanager.store.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!-- 启用自动恢复 -->
<property>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>true</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!--虚拟内存检查-->
<!--如果出现container启动不了,说是虚拟内存超限,那么请配置以下配置-->
 <property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
 <property>
   <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>6</value>
  </property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>

</configuration>

修改workers文件

删除文件原有内容,将所有节点写入到该文件。

hadoop01
hadoop02
hadoop03

初次启动

所有节点均已安装jdk,zookeeper,且已启动zookeeper的情况。

hadoop01启动journalnode守护进程

hadoop-daemons.sh start journalnode

hadoop01下初始化

hdfs namenode -format

hadoop01注册ZNode

hdfs zkfc -formatZK

hadoop01启动hdfs

start-dfs.sh

hadoop01启动yarn

start-yarn.sh

切换到Hadoop02同步hadoop01数据

hdfs namenode -bootstrapStandby

在hadoop02上启动resourcemanager和namenode进程

yarn-daemon.sh start resourcemanager

hadoop-daemon.sh start namenode

hadoop01启动 MapReduce任务历史服务器

yarn-daemon.sh start proxyserver

mr-jobhistory-daemon.sh start historyserver

成功截图:

web页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值