1, 电脑环境准备

1), 关闭selinux

vim /etc/selinux/config

SELINUX=disabled

2), 时间同步

yum -y install chrony  

修改时间服务器配置, 并重启

vim  /etc/chrony.conf

[root@dock hadoop]# cat /etc/chrony.conf | grep -v ^$ | grep -v ^#
server .centos.pool.ntp.org iburst
server .centos.pool.ntp.org iburst
server .centos.pool.ntp.org iburst
server .centos.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0
rtcsync
allow 192.168.199.0/
local stratum
logdir /var/log/chrony

修改需要同步的服务器配置, 并重启

vim /etc/chrony.conf

[root@node1 ~]# cat /etc/chrony.conf | grep -v ^$ | grep -v ^#
server 192.168.199.131 iburst
driftfile /var/lib/chrony/drift
makestep 1.0
rtcsync
logdir /var/log/chrony

执行时间同步

systemctl restart chronyd

[root@node2 ~]# chronyc sources -v
Number of sources = .-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* dock -1590ns[ +62us] +/- 13ms

查看时间同步:

[root@node3 ~]# timedatectl
Local time: Wed -- :: EDT
Universal time: Wed -- :: UTC
RTC time: Wed -- ::
Time zone: America/New_York (EDT, -)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun -- :: EST
Sun -- :: EDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun -- :: EDT
Sun -- :: EST

3), 修改hostname, 很多集群都需要执行这一个

hostname node1,

hostname node2

hostname node3

4), jdk 版本

java  -version   1.8.0_161

5), 设置免密登陆

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

发送到namenode, 设置

非root用户, 记得修改authorized 权限为。600

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

2, zookeeper 安装

参照其他博客..

3, hadoop安装

zkFc-用来做HA的备份和切换的, 做active, standby的状态管理的, 监控namenode进程, 记录信息到zookeeper中

journalNode--复制fsimage和edtis的

1), 修改环境变量

export HADOOP_HOME=/usr/local/hadoop-2.7.
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

2), 修改hadoop-env.sh

cd {HADOOP_HOME}/etc/hadoop
export JAVA_HOME=/usr/local/jdk/jdk1..0_161

3), 配置core_site.xml

<configuration>
<property>
     <--! 指定hdfs的nameservice -->
<name>fs.defaultFS</name>
<value>hdfs://hdfscluster</value>
</property>
<property>
    <!-- 指定hadoop临时目录 -->
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.8.4/tmp</value>
</property> <property>
    <!-- 指定zookeeper地址 -->
<name>ha.zookeeper.quorum</name>
<value>node1:,node2:,node3:</value>
</property>
</configuration>

4), 修改 hdfs-site.xml

<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>hdfscluster</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.hdfscluster</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.hdfscluster.nn1</name>
<value>192.168.199.182:</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.hdfscluster.nn1</name>
<value>192.168.199.182:</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.hdfscluster.nn2</name>
<value>192.168.199.247:</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.hdfscluster.nn2</name>
<value>192.168.199.247:</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node1:8485;node2:8485;node3:8485/hdfscluster</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/hadoop-2.8.4/journaldata</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.hdfscluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
    <!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_dsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value></value>
</property>
</configuration>

备注: 如果集群成功后, 但创建目录显示: ipc.Client: Retrying connect to serve, 就更改为

5), 添加 slaves

vim slaves

node1
node2
node3

4, 配置yarn

1), 修改mapred-site.xml.template 为 mapred-site.xml

<configuration>
<!-- 指定mr框架为yarn方式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

2), 配置 yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
<!-- 开启RM高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定RM的cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarncluster</value>
</property>
<!-- 指定RM的名字 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 分别指定RM的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node1</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node2</value>
</property>
<!-- 指定zk集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node1:,node2:,node3:</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

5, 格式化namenode

1), 3台机器启动 journalenode

hadoop-daemon.sh start journalnode

2), 格式化namenode, 并启动

hdfs namenode -format
hadoop-daemon.sh start namenode

3), 在另一个namenode上拷贝, 或者手动拷贝

hdfs namenode -bootstrapStandby

4), 启动第二个namenode

hadoop-daemon.sh start namenode

5), 在activeNameNode上格式化zookeeper

hdfs zkfc -formatZK

6), 启动

start-dfs.sh

此时可通过  node1:50070 访问 hadoop

6, 启动yarn

1), 在nameNode上执行

start-yarn.sh

2), 启动 resourcenamenager

yarn-HA, 不需要记录状态, 所以非常简单

yarn-daemon.sh start resourcemanager

此时可通过  node1:8088 进行访问

以后启动时, 先启动3台zookeeper, 然后 start-dfs.sh 即可以了

7, 进行测试

1, 创建输入, 输出目录

hadoop fs -mkdir -p /data/wordcount
hadoop fs -mkdir -p /output

2, 上传文件

hadoop fs -put README.txt /data/wordcount

3, 执行样例

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7..jar wordcount /data/wordcount /output/wordcount

4, 查看分片文件

hadoop fs -text /output/wordcount/part-r-

HA编程的时候应该注意:

1, 代码访问hdfs的时候,

FileSystem.get(new URI("hfs://hdfscluster/", conf), conf, "root);

需要将配置文件

hdfs-site.xml, core-site.xml, yarn-site.xml, mapred-site.xml 放在resources下,

在 new Configuration() 的时候, 会自动加载resources中的配置文件

bigdata-02-hadoop2.8.4-resourceHA安装的更多相关文章

  1. hadoop2.6完全分布式安装HBase1.1

    本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...

  2. hadoop2.1.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  3. hadoop2.1.0和hadoop2.2.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  4. Hadoop2.2集群安装配置-Spark集群安装部署

    配置安装Hadoop2.2.0 部署spark 1.0的流程 一.环境描写叙述 本实验在一台Windows7-64下安装Vmware.在Vmware里安装两虚拟机分别例如以下 主机名spark1(19 ...

  5. [BigData]关于HDFS的伪分布式安装和虚拟机网络的配置

    [BigData]关于Hadoop学习笔记第一天(段海涛老师)(三) 视频2: hadoop的应用在电商,"浏览了该商品的人还看了","浏览了该商品的人最终购买的&quo ...

  6. Hadoop2.3.0具体安装过程

    前言:       Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-co ...

  7. Hadoop-2.8.0分布式安装手册

    目录 目录 1 1. 前言 3 2. 特性介绍 3 3. 部署 5 3.1. 机器列表 5 3.2. 主机名 5 3.2.1. 临时修改主机名 6 3.2.2. 永久修改主机名 6 3.3. 免密码登 ...

  8. Hadoop-2.7.2分布式安装手册

    目录 目录 1 1. 前言 3 2. 特性介绍 3 3. 部署 5 3.1. 机器列表 5 3.2. 主机名 5 3.2.1. 临时修改主机名 6 3.2.2. 永久修改主机名 6 3.3. 免密码登 ...

  9. Hadoop-2.4.0分布式安装手册

    目录 目录 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 临时修改主机名 3 2.2.2. 永久修改主机名 3 2.3. 免密码登录范围 4 3. 约 ...

  10. Hadoop-2.4.0分布式安装手冊

    文件夹 文件夹 1 1. 前言 2 2. 部署 2 2.1. 机器列表 2 2.2. 主机名 2 2.2.1. 暂时改动主机名 3 2.2.2. 永久改动主机名 3 2.3. 免password登录范 ...

随机推荐

  1. POJ3181--Dollar Dayz(动态规划)

    Farmer John goes to Dollar Days at The Cow Store and discovers an unlimited number of tools on sale. ...

  2. floyd算法之最小环问题

    最小环问题:都比较容易得到从u 到 v 经过中间某一些结点的最短路,但是我们得确保回来的时候,不能经过那些结点,这样我们就需要改一下floyd算法了 进而我们想到用Floyd算法.我们知道,Floyd ...

  3. chrome常用小插件

    1.广告终结者                    (去广告) 2.adsafe2.0.1                  (去广告) 3.Infinity New Tab           ( ...

  4. G - Christmas Play

    Description My kid's kindergarten class is putting up a Christmas play.  (I hope he gets the lead ro ...

  5. java基础梳理

  6. 在推送提交之后阻止Azure DevOps (TFS)持续集成

    在Azure DevOps服务器上配置生成定义时,可以配置连续集成(CI)生成.每次签入或提交到源代码库时都会自动运行一个CI构建.这种机制允许开发人员启动一个自动化的过程,例如编译和部署构建.这是一 ...

  7. 3.怎样将ASP.NET MVC应用程序发布到IIS

    这一篇,教大家怎么将ASP.NET MVC应用程序发布到本地或者IIS中.打开上一篇创建的ASP.NET MVC 5.0应用程序.[PS:上一篇--->2.第一个ASP.NET MVC 5.0应 ...

  8. BZOJ百题版切计划(不咕)

    传送门 BZOJ 前言 听说最近要省选,那么我就写一下吧.QwQ! 1000 过于简单,不写了. 1001 不会对偶图,直接优化最小割 题解 1002 高精度套公式计算 题解 (Code by hey ...

  9. 201621123018《Java程序设计》第10周学习报告

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 1.1 自己以前编写的代码中经常出现什么异常.需要捕获吗(为 ...

  10. [POI2015]LOG(树状数组)

    今天考试考了这题,所以来贡献\([POI2015]LOG\)的第一篇题解.代码略丑,调了快三个小时才调出来\(AC\)代码. 对于这种小清新数据结构题,所以我觉得树状数组才是这道题的正确打开方式. 首 ...