bigdata-02-hadoop2.8.4-resourceHA安装
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安装的更多相关文章
- hadoop2.6完全分布式安装HBase1.1
本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...
- hadoop2.1.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- hadoop2.1.0和hadoop2.2.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- Hadoop2.2集群安装配置-Spark集群安装部署
配置安装Hadoop2.2.0 部署spark 1.0的流程 一.环境描写叙述 本实验在一台Windows7-64下安装Vmware.在Vmware里安装两虚拟机分别例如以下 主机名spark1(19 ...
- [BigData]关于HDFS的伪分布式安装和虚拟机网络的配置
[BigData]关于Hadoop学习笔记第一天(段海涛老师)(三) 视频2: hadoop的应用在电商,"浏览了该商品的人还看了","浏览了该商品的人最终购买的&quo ...
- Hadoop2.3.0具体安装过程
前言: Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-co ...
- 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. 免密码登 ...
- 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. 免密码登 ...
- 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. 约 ...
- 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登录范 ...
随机推荐
- 类中main函数的快捷创建
方法一: 新建类时,选择创建 方法二: 打出main-->Alt + /
- 使用PinYin4j.jar将汉字转换为拼音
package com.Test.util; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...
- ASP.NET Web API 框架研究 核心的消息处理管道
ASP.NET Web API 的核心框架是一个由一组HttpMessageHandler有序组成的双工消息处理管道:寄宿监听到请求接受后,把消息传入该管道经过所有HttpMessageHandler ...
- Chubby是什么?
先简单的理解,以后补充: 为了解决hadoop分布式系统的一致性问题 ,有很多人提出很多protocol,其中就有有名的Paxos算法(Latex作者提出,算法需要学习), 但是Chubby并不是一个 ...
- poj 3321 单点更新 区间求和
Apple Tree Time Limit: 2000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Java c ...
- 分形之拆分三角形(Split Triangle)
前面讲了谢尔宾斯基三角形,它是不停地将一个三角形拆分三个与之相似的三角形.这一节给大家展示的图形是将一个等腰钝角三角形不停地拆分两个与之相似的三角形. 核心代码: static void SplitT ...
- c# 数据写入三菱PLC
public void Data_Write_Value(int[] m_write_data) { int lSize = 2; string[] Address ...
- AngularJs从数据库获取数据并显示
哈哈,昨天下午和今天早上,花上一些时间,学习AngularJs,仅是粗略预览一下.很好,非常好. 由于手上有开发ASP.NET MVC环境,就在这测试下,去数据库获取数据并显示数据. 数据库表创建,添 ...
- [Ynoi2018]未来日记(分块)
分块神题. 看了一会儿题解,看懂了思路,然后写了两个小时,调了一个多小时,好多地方写错了. 我们考虑对序列和值域都分块.\(sum1[i][j]\) 表示前 \(i\) 个块,第 \(j\) 块值域有 ...
- 读取型CSRF-需要交互的内容劫持
本文作者:i春秋作家——jing0102 前言 最近在挖洞,"实践出真知"这句话说的很对,在实际挖掘过程中我会思考很多东西,跟朋友一起准备做一份手册,忽然的想到了一些漏洞的定义和规 ...