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登录范 ...
随机推荐
- android:padding和android:margin的区别[转]
本文综合了:http://zhujiao.iteye.com/blog/1856980 和 http://blog.csdn.net/maikol/article/details/6048647 两篇 ...
- mysql同时使用order by和limit查询时的一个严重隐患 -- 丢失数据
转自: https://blog.csdn.net/tsxw24/article/details/44994835 我经常使用order by和limit来做数据分页显示并排序,一直也没发现过什么问题 ...
- ZUFE2486 Heap 2017-05-31 14:37 41人阅读 评论(0) 收藏
2486: Heap 时间限制: 2 Sec 内存限制: 128 MB 提交: 16 解决: 5 [提交][状态][讨论版] 题目描述 有n个非负整数,a1,a2,a3.....an. 有Q次询问 ...
- Delphi IDHTTP控件:GET/POST 请求
Delphi IDHTTP控件:GET/POST 请求 最近一直在使用IDHTTP,下面是一些关于 GET.POST 请求基本使用方法的代码 一.GET 请求 1 procedure GetDem ...
- [Leet code 2]Two Sum
1 题目 You are given two linked lists representing two non-negative numbers. The digits are stored in ...
- Docker Register部署与基本认证
准备 基本事项 Docker环境 登录授权方式 镜像存放地址 HTTPS外网访问 启动Docker Registry 1. 基本事项 本篇涉及到的数据文件都放在/data目录下, 其中会有三个子目录 ...
- dotnet core瘦身发布
需要安装nuget包Microsoft.Packaging.Tools.Trimming然后利用如下命令发布dotnet publish -r win10-x64 -c release --self- ...
- oracle 字符串分割函数
首先创建一个类型: CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000); 创建函数: CREATE OR REPLACE FUNC ...
- 浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
在<浏览器环境下JavaScript脚本加载与执行探析之defer与async特性>中,我们研究了延迟脚本(defer)和异步脚本(async)的执行时机.浏览器支持情况.浏览器bug以及 ...
- Android开发教程 - 使用Data Binding(六)RecyclerView Adapter中的使用
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...