此系列文章是探索大数据道路的记录,有些记录是为了备忘,有些记录是为了学习心得内容,有些是为了给大家提供一个好的学习资料。持续更新中…大家也可以到我的私人blog查看该系列文章。blog.cuteximi.com ,也可以关注【码省理工】公众号与我交流技术。

一、前提准备

1.准备操作系统:Linux centos 6.5 3台或者 5 台
2.JDK1.7 或者更高
3.关闭每台服务器的防火墙。service iptables stop,可以设置为永久关闭 chkconfig iptables off
4.同步每台服务器的时间,ntpdate cn.ntp.org.cn ,可以使用yum install ntp -y 来安装 ntp服务。
5.配置 linux 服务器之间的免密登录,可以看这边文章:SSH详解以及免密登录配置,很详细的。
6.修改好 hostname ,方便配置组件。vim /etc/sysconfig/network

二、服务器配置说明

NN DN ZK ZKFC JN RM NM
node01
node02
node03
node04
node05

说明:搭建的原则是尽量减少网络IO,配使用的组件尽量在一个机器上。

NN = NameNode , 部署了 两台,分别在 node04 和 node05
DN = DateNode , 部署了三台,分别在 node01 ,node02 , node03 上
ZK = Zookeeper , 部署了三台,分别在 node01 , node02 , node03上
ZKFC = ZookepperFailController,部署了两台,分别在 node04 , node05
JN = JournalNode,部署了三台,分别在 node01 ,node02 , node03 上
RM = ResorceManager,也就是 Yarn的资源调度,部署在 node04,node05,与NameNode一起、
NM = NodeManager ,是来代理数据节点的。

三、下载zookerper, 以及配置环境变量

下载
直接在node01上使用 wget 命令:

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz

Tip:不指定目录的话,会下载到当前目录下面。

解压

tar -zxvf zookeeper-3.4.12.tar.gz

配置环境变量
vim ~/.bash_profile*
添加如下内容:(注意标粗部分替换成你的安装目录)

export ZOOKEEPER_HOME = /root/zookeeper-3.4.12
export PATH =$ZOOKEEPER_HOME/bin:$PATH:

修改配置文件 zoo.cfg

dataDir=/opt/zookeeper
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888

在上面指定的 dataDir (也就是 /opt/zookeeper/)目录下面新建 myid
,里面的内容是 1

copy 到另外两个节点

执行:
scp ~/zookeeper-3.4.12 node02:~/
scp ~/zookeeper-3.4.12 node03:~/

分别到 node02 服务器和 node03 服务器上修改 myid文件的内容,
分别为 2,3

其实这里还需要 copy 环境变量 .bash_profile 。下面的步骤也才需要传 .bash_profile ,暂且放到后面一起复制吧。

四、下载 Hadoop 2.85,以及配置环境变量

下载

1.官网下载地址,找到对应版本,下载到本地,然后用 scp 命令把安装包传到 linux 服务器。(不推荐)
2.推荐直接在 Linux 服务器上使用 wget 命令从它的镜像服务器下载。
(前提是你的 linux 服务器可以访问外网)

wget  http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz

Tip:不指定目录的话,会下载到当前目录下面。

解压

tar -zxvf hadoop-2.8.5.tar.gz

配置环境变量

vim ~/.bash_profile
添加如下内容:(注意标粗部分替换成你的安装目录)

export HADOOP_HOME = /root/hadoop-2.8.5
export PATH =$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:

配置 Hadoop

以下配置文件均在 hadoop安装目录的 etc/hadoop目录下吗

1.配置默认的服务名,文件目录以及关联zookeeper

vim core-site.xml,添加或修改以下内容

<!-- core-site.xml  -->
<configuration><property><!-- server name --><name>fs.defaultFS</name><value>hdfs://tsl</value></property><!-- zookeeper配置 --><property><!-- 一致性协议 --><name>ha.zookeeper.quorum</name><value>node01:2181,node02:2181,node03:2181</value></property><!-- 路径设置 --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop</value></property>
</configuration>

2.配置 NameNode 节点信息,HA高可用,JN等
vim hdfs-site.xml,添加或修改以下内容

<!-- hdfs-site.xml -->
<configuration><property><name>dfs.nameservices</name><value>tsl</value></property><property><name>dfs.ha.namenodes.tsl</name><!-- 别名 --><value>nn4,nn5</value></property><property><name>dfs.namenode.rpc-address.tsl.nn4</name><value>node04:8020</value></property><property><name>dfs.namenode.rpc-address.tsl.nn5</name><value>node05:8020</value></property><property><name>dfs.namenode.http-address.tsl.nn4</name><value>node04:50070</value></property><property><name>dfs.namenode.http-address.tsl.nn5</name><value>node05:50070</value></property><property><!-- 指定namenode元数据存储在journalnode中的路径 --><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node01:8485;node02:8485;node03:8485/tsl</value></property><property><!-- 指定HDFS客户端连接active namenode的java类 --><name>dfs.client.failover.proxy.provider.tsl</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property><!-- 配置隔离机制为ssh 防止脑裂 --><name>dfs.ha.fencing.methods</name><value>sshfence</value></property><property><property><!-- 指定journalnode日志文件存储的路径 --><name>dfs.journalnode.edits.dir</name><value>/opt/hadoop/data</value></property><property><!-- 开启自动故障转移 --><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property>
</configuration>

3.配置 mapreduce

<!-- 配置 mapreduce -->
<!-- mapred-site.xml: -->
<configuration><property><!-- 指定使用 Yarn 来进行资源调度 --><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

4.配置 yarn

<!-- yarn-site.xml: -->
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><!-- 开启 ha 高可用 --><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><property><name>yarn.resourcemanager.cluster-id</name><value>mr_tsl</value></property><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!-- 指定 resourceManager的节点是谁 --><property><name>yarn.resourcemanager.hostname.rm1</name><value>node01</value></property><property><name>yarn.resourcemanager.hostname.rm2</name><value>node02</value></property><!-- 指定一下zookeeper的地址,Yarn与其进行关联 --><property><name>yarn.resourcemanager.zk-address</name><value>node01:2181,node02:2181,node03:2181</value></property>
</configuration>

5.配置slaves

vim slaves
加入DataNode 节点的hostname即可;

node01
node02
node03

6.copy 配置好的hadoop安装包到其他服务器节点

scp ~/hadoop-2.8.5 node02:~/

scp ~/hadoop-2.8.5 node03:~/

scp ~/hadoop-2.8.5 node04:~/

scp ~/hadoop-2.8.5 node05:~/

分别拷贝到了对应服务器的 home 目录了。

7.copy 环境变量文件到其他服务器节点

scp ~/.bash_profile node02:~/

scp ~/.bash_profile node03:~/

scp ~/.bash_profile node04:~/

scp ~/.bash_profile node05:~/

别忘记每台服务器上生效一下环境变量
source ~/.bash_profile

五、初始化并启动

1.启动三个 zookeeper 节点,分别在 node01 , node02 , node03 上执行:
zkServer.sh start

2.启动三个JournalNode:hadoop-daemon.sh start journalnode

3.在其中一个namenode上格式化:hdfs namenode -format

4.把刚刚格式化之后的元数据拷贝到另外一个namenode上

a)启动刚刚格式化的namenode : hadoop-daemon.sh start namenode

b)在没有格式化的namenode上执行:hdfs namenode -bootstrapStandby

c)启动第二个namenode : hadoop-daemon.sh start namenode

5.在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK
6.停止所有节点:stop-all.sh
7.全面启动:start-all-sh
8. 在 node01 和 node02 开启yarn: yarn-daemon.sh start resourcemanager

可以在浏览器访问一下:

192.168.33.14:50070 这个ip是我namenode的ip地址。
192.168.33.15:50070 这个ip是我另一个namenode的ip地址。

可以查看 active 和 standby 状态:

六、容易出错的几个点

可能会出错的地方
1,确认每台机器防火墙均关掉
2,确认每台机器的时间是一致的
3,确认配置文件无误,并且确认每台机器上面的配置文件一样
4,如果还有问题想重新格式化,那么先把所有节点的进程关掉
5,删除之前格式化的数据目录hadoop.tmp.dir属性对应的目录,所有节点同步都删掉,别单删掉之前的一个,删掉三台JN节点中dfs.journalnode.edits.dir属性所对应的目录
6,接上面的第五大步,又可以重新格式化,启动了

Linux 下配置 Hadoop2.x 高可用 zookeeper Yarn,详细步骤。相关推荐

  1. linux下配置nginx+keepalived高可用的各种问题以及解决办法

    本人的环境Centos 7 + nginx 1.12.2 + keepalived 1.3.5 nginx 主机 192.168.26.26 备机 192.168.26.126 安装: 在俩台服务器上 ...

  2. 基于linux下的 Pacemaker+Haproxy高可用负载均衡架构

    corosync + pacemaker + crmsh 高可用集群 corosync提供集群的信息层(messaging layer)的功能,传递心跳信息和集群事务信息,多台机器之间通过组播的方式监 ...

  3. linux开机自启动python脚本_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  4. python脚本自动运行失败_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  5. python程序开机自启动_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  6. Linux下配置tomcat+apr+native应对高并发

    一.三种运行模式介绍 Tomcat 有三种(bio,nio.apr) 运行模式,首先来简单介绍下 bio  bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传 ...

  7. Hadoop2.0高可用集群搭建【保姆级教程】

    搭载Hadoop2.0高可用集群 说明 准备 下载好所需要的文件 目录准备 虚拟机网络配置(可能会在其他文章中讲到) 文件的安装 配置环境变量 环境变量的验证 关闭防火墙 配置Hadoop高可用集群 ...

  8. 构建高可用ZooKeeper集群

    构建高可用ZooKeeper集群 2017/01/23 | 分类: 技术架构 | 0 条评论 | 标签: ZOOKEEPER 分享到:9 原文出处: cyfonly ZooKeeper 是 Apach ...

  9. 从0开始搭建Hadoop2.x高可用集群(HDFS篇)

    从0开始搭建Hadoop2.x高可用集群(HDFS篇) 演示目标 演示环境 注意事项 准备虚拟机 关闭防火墙 检查系统时间 修改host 设置免密登录 卸载OpenJDK 安装软件 准备HDFS 配置 ...

最新文章

  1. li 在 UL 中居中均匀显示
  2. 常用插值算法介绍(二)
  3. springmvc + jquery 错误.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
  4. 2014522420145238《信息安全设计基础》实验二
  5. 软件工程——理论、方法与实践⑨
  6. 如何保护你的 Python 代码—— 定制 Python 解释器
  7. VTK:PolyData之ExtractNormals
  8. 错误 Failed to load module “canberra-gtk-module“ 解决方案
  9. lambda理解与应用
  10. 【转】.Net 架构图
  11. mysqldump怎么用 mysqldump没反应 mysqldump语法错误 mysqldump备份 mysql恢复 source命令 采用Navicat备份与mysqldump备份的区别...
  12. 很喜欢博客园这个平台
  13. 游戏开发设计模式(一):单例模式
  14. 六 Python 字典与集合
  15. python中label组件参数_Tkinter:Label组件
  16. ei会议论文含金量高吗?
  17. Linux安装和部署
  18. 10月书讯(下)| 双节同庆,读书正当时
  19. JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
  20. Leaflet + eegeo.js 构建三维世界

热门文章

  1. IIS不能下载ini文件
  2. 轻雨物联网解决方案:农业物联网的市场前景分析
  3. git在eclipse中的配置 转载
  4. java 自动装箱自动拆箱
  5. InnoDB发展历史
  6. require.jsAMD模块化编程
  7. 面试精讲之面试考点及大厂真题 - 分布式专栏 19 系统中的降级熔断设计
  8. 面试官系统精讲Java源码及大厂真题 - 16 ConcurrentHashMap 源码解析和设计思路
  9. JavaScript玩转机器学习:模型和层
  10. QUIC - 低时延互联网传输层协议