准备工作:

1、搭建完成zookeeper,如果没有搭建,请跳转到zookeeper集群搭建保姆级教程
2、集群的jdk都安装完成,如果没有,请跳转到linux编写个脚本快速搭建jdk保姆级教程
3、在/opt/install 下有Hadoop2.6.0的包
4、高可用集群搭建结构表

操作步骤:

1、首先对Hadoop包进行解压缩
[root@nnode2 install]# tar -zxf hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt/soft/

为了后期使用Hadoop文件夹方便,我们将它更改个名字。mv hadoop-2.6.0-cdh5.14.2/ hadoop260

进入到etc/hadoop/目录下修改文件。vim hadoop-env.sh

vim yarn-env.sh

vim mapred-env.sh

修改完jdk后,接下来是重头戏。

vim core-site.xml

<configuration>
<!--指定hdfs的nameservice 为 mycluster -->
<property><name>fs.defaultFS</name><value>hdfs://mycluster</value>
</property><!--指定Hadoop工作目录 -->
<property><name>hadoop.tmp.dir</name><value>/opt/soft/hadoop260/hadooptmp</value>
</property><!--指定zookeeper集群访问地址  -->
<property><name>ha.zookeeper.quorum</name><value>nnode2:2181,nnode3:2181,nnode4:2181</value>
</property><!-- 配置为了解决以后其他组件连接HDFS集群 -->
<property><name>hadoop.proxyuser.bigdata.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.bigdata.groups</name><value>*</value>
</property>
</configuration>

vim hdfs-site.xml

<configuration>
<!-- 指定副本数 -->
<property><name>dfs.replication</name><value>3</value>
</property><!-- 指定HDFS的nameservice为mycluster,需要跟core-site.xml中保持一致 -->
<property><name>dfs.nameservices</name><value>mycluster</value>
</property><!-- 设置mycluster集群有两个namenode,分别为nn1,nn2 -->
<property><name>dfs.ha.namenodes.mycluster</name><value>nn1,nn2</value>
</property><!-- 配置nn1的RPC通信地址 -->
<property><name>dfs.namenode.rpc-address.mycluster.nn1</name><value>nnode2:9000</value>
</property><!-- 配置nn1的http通信地址 -->
<property><name>dfs.namenode.http-address.mycluster.nn1</name><value>nnode2:50070</value>
</property><!-- 配置nn2的RPC通信地址 -->
<property><name>dfs.namenode.rpc-address.mycluster.nn2</name><value>nnode3:9000</value>
</property><!-- 配置nn1的http通信地址 -->
<property><name>dfs.namenode.http-address.mycluster.nn2</name><value>nnode3:50070</value>
</property><!-- 指定JournalNode 在本地磁盘存放数据的位置 -->
<property><name>dfs.journalnode.edits.dir</name><value>/opt/soft/hadoop260/journaldata</value>
</property><!-- 指定NameNode的edits元数据在journalNode上的服务器 -->
<property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://nnode2:8485;nnode3:8485;nnode4:8485/mycluster</value>
</property><!-- 开启NameNode自动切换 -->
<property><name>dfs.ha.automatic-failover.enabled</name><value>true</value>
</property>
<!-- 配置nameNode失败自动切换的实现方式 -->
<property><name>dfs.client.failover.proxy.provider.mycluster</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProvider</value>
</property><!-- 配置隔离机制方法 -->
<property><name>dfs.ha.fencing.methods</name><value>sshfenceshell(/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><property><name>dfs.webhdfs.enabled</name><value>true</value>
</property>
</configuration>

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

<configuration>
<!-- 指定mapreduce运算时资源调度为 yarn 模式 -->
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property><!-- 配置mapreduce历史服务器地址 端口号 -->
<property><name>mapreduce.jobhistory.address</name><value>nnode5:10020</value>
</property><!-- 配置mapreduce历史服务器WEB访问地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>nnode5:19888</value>
</property>
</configuration>

vim yarn-site.xml

<configuration>
<!-- 开启高可用 -->
<property><name>yarn.resourcemanager.ha.enabled</name><value>true</value>
</property><!-- 指定ResourceManager的标识:yrc -->
<property><name>yarn.resourcemanager.cluster-id</name><value>yrc</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>nnode2</value>
</property><!-- 指定rm2服务器 -->
<property><name>yarn.resourcemanager.hostname.rm2</name><value>nnode3</value>
</property><!-- 指定rm 被管理的zk地址 -->
<property><name>yarn.resourcemanager.zk-address</name><value>nnode2:2181,nnode3:2181,nnode4:2181</value>
</property><!-- 运行mapreduce任务需要使用的服务 -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property><!-- 开启yarn集群的日志聚合功能 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property><!-- 设置日志保存时间 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>86400</value>
</property><!-- 启动rm自动恢复功能 -->
<property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value>
</property><!-- 制定rm 状态信息存储在zookeeper集群上 -->
<property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
</configuration>

vim slaves 在slaves文件中,添加集群的各节点名称。

使用脚本将hadoop260文件夹分发到其他机器上。(rsync)

2、启动zookeeper集群(脚本启动)zkop start
zkop status 查看状态信息

3、启动journalnodehadoop-daemon.sh start journalnode
ssh nnode3 "source /etc/profile; hadoop-daemon.sh start journalnode"
ssh nnode4 "source /etc/profile; hadoop-daemon.sh start journalnode"

4、Hadoop格式化hadoop namenode -format
将nnode2格式化后的hadooptmp文件同步到nnode3
[root@nnode2 hadoop260]# scp -r hadooptmp/ root@nnode3:/opt/soft/hadoop260/

5、初始化zookeeper
hdfs zkfc -formatZK

6、启动hdfs
start-dfs.sh

7、启动yarn
start-yarn.sh

最后使用脚本去查看进程信息

配置完成~~记得去浏览器查看两台namenode

Hadoop搭建高可用集群(保姆级教程)相关推荐

  1. Hadoop HA 高可用集群搭建

    Hadoop HA 高可用集群搭建 一.首先配置集群信息 1 vi /etc/hosts 二.安装zookeeper 1.解压至/usr/hadoop/下 1 tar -zxvf zookeeper- ...

  2. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    一.服务器环境 主机名 IP 用户名 密码 安装目录 master 192.168.142.124 root xxx /usr/hadoop-2.6.5/ slave1 192.168.142.125 ...

  3. Hadoop HA 高可用集群启动报错 Encountered exception loading fsimage 解决方案

    笔者在搭建好Hadoop HA 高可用集群启动时报如下错误,后面是解决方案. 报错信息: 2018-08-24 11:18:07,475 INFO org.apache.hadoop.hdfs.ser ...

  4. 用Keepalived搭建高可用集群

    一.集群介绍 1.根据功能划分为两大类:高可用和负载均衡 2.高可用:一台工作,另一台冗余,当一台服务器故障宕机时,另一台服务器提供服务.开源软件有heartbeat,keepalived. 3.负载 ...

  5. 【Nginx那些事】nginx配置实例(四)搭建高可用集群

    [Nginx那些事]nginx配置实例(四)搭建高可用集群 nginx 实现高可用 安装keepalived keepalived配置 主Nginx服务器配置 从nginx服务器配置 脚本文件权限设置 ...

  6. k8s高可用集群_搭建高可用集群(初始化和部署keepalived)---K8S_Google工作笔记0055

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来部署keepalived,搭建高可用集群. 然后我们这里需要master,155, ma ...

  7. k8s高可用集群_搭建高可用集群(实现方式介绍)---K8S_Google工作笔记0054

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来说搭建高可用集群,为什么要搭建高可用集群. 因为,首先我们说master节点是用来管理其 ...

  8. Kafka基于Zookeeper搭建高可用集群实战

    Kafka基于Zookeeper搭建高可用集群实战 1 前言 1.1 高可用的由来 为何需要Replication? 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Bro ...

  9. 12. 搭建高可用集群

    文章目录 12.1 Keepalived+Nginx 高可用集群(主从模式) 12.1.1 集群架构图 12.1.2 具体搭建步骤 12.1.2.1 搭建高可用集群基础环境 12.1.2.2 完成高可 ...

最新文章

  1. 在计算机系统中有两种不同的图像编码方式,第二章计算机系统与计算原理.ppt...
  2. 二叉树的基本操作及哈夫曼编码/译码系统的实现
  3. LeetCode 987. 二叉树的垂序遍历(递归/循环)
  4. Spring Security:基于内存的认证信息
  5. bzoj1860 [Zjoi2006]麻将 结论+插数dp
  6. Mongodb学习教程一
  7. c语言 delphi,delphi和c语言的比较 极其粗浅 菜鸟共勉
  8. 雅虎将提供PHP网站托管服务
  9. 计算机应用二进制原因,计算机中采用二进制的主要原因是什么
  10. Visual Studio 2015官方汇总包括下载和视频
  11. Android百度地图,定位图标随着方向的改变而改变
  12. 英语单词辨析(同类单词)
  13. python导入siri_python利用不到一百行代码实现一个小siri
  14. kill -9 进程 杀掉僵死进程
  15. 如何在debian上安装google pingyin
  16. 京东C++开发工程师 2019校招卷总结
  17. mysql 生成日历视图_mysql sql语句生成日历表
  18. 大数据操纵下的10大顶级黑科技
  19. python图表制作方法_Python中一种简单的动态图表制作方法
  20. 直播app开发需要走的六大步骤

热门文章

  1. HTML5中绘制图形
  2. Unity接入微信支付SDK
  3. unity 实时画面投屏到手机_unity实战 手机屏幕适配
  4. 为什么要读书?“武︈汉疫︍情”给︍出了最最好的答案
  5. Linux下QT使用appimage打包程序,遇到的坑给你一一解答
  6. 5本对我影响很大的编程书籍(DHH)
  7. CSDN下载 | CSDN免积分下载 | CSDN积分攻略
  8. BUUCTF-Web-[极客大挑战 2019]Upload
  9. 修改Maven镜像仓库为阿里云Maven仓库,下载如有神
  10. Stata计算莫兰指数基本步骤