- 浏览: 211290 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (267)
- java.lang (8)
- 问题汇总 (21)
- 异常记录 (20)
- 功能实现 (19)
- 面试总结 (25)
- 技巧总结 (8)
- 常用代码 (4)
- 编程习惯 (3)
- 编码规则 (3)
- java.util (10)
- java.io (1)
- JavaWeb (9)
- MySQL (16)
- SVN (3)
- MyBatis (11)
- Velocity (7)
- 其他知识 (10)
- 人生哲理 (1)
- 人生故事 (1)
- 自我感悟 (1)
- shiro (3)
- 基础知识 (0)
- 问题总结 (1)
- Spring 标签 (1)
- Spring (3)
- 点滴生活 (1)
- DOS (1)
- CAS (4)
- Linux (9)
- Storm (6)
- Shell (1)
- regex (1)
- Collection (4)
- poi (1)
- 经典语句 (1)
- NIO (5)
- concurrent (14)
- RPC (1)
- zookeeper (3)
- 待整理 (2)
- Hadoop (9)
- RabbitMq (2)
- flume (1)
- hive (7)
- hbase (4)
- kafka (1)
- scala (1)
- GC (0)
- java.util.concurrent.atomic (1)
- java.lang.ref (6)
- JVM (2)
- algorithm (1)
- conception (1)
- java key word (1)
- sun.misc (1)
最新评论
Hadoop2.0 HA 集群搭建步骤
一、准备
1.新建六台虚拟机
1.1 采用 clone 的方式快速新增六台虚拟机
安装方式
采用 clone 方式的优势,可以免去在原主机中软件的安装问题
clone 后主机中的这些软件依然可以使用
选择完全克隆
若安装错误,则删除系统重新安装
删除VM上安装的系统
1.2 网络配置
VM -- 选择克隆后的虚拟机 -- 右键 -- 设置 -- 网络 -- 高级 -- MAC 地址
此时的地址时VM 分配给 克隆机的MAC地址
但克隆后会拷贝原机器的MAC地址信息在网络配置文件中
克隆后的虚拟机如何配置网络连接
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除UUID 、 MAC地址配置
配置 IP地址
rm -rf /etc/udev/rules.d/70-persistent-net.rules
删除已有映射,重启机器后,重新读取当前机器的映射
vi /etc/sysconfig/network
配置hostname
shutdown -r now
重启机器
2.关闭防火墙
service iptables stop
chkconfig iptables off
3.修改host
vim /etc/hosts
编辑hosts文件,需要重启后生效
若不想重启,则 hostname xxxx 临时生效
4.免密设置
生成秘钥
ssh-keygen
回车,其他无需输入,默认即可
生成的文件:/root/.ssh/id_rsa
配置免密登录
ssh-copy-id -i /root/.ssh/id_rsa.put root@linux05
配置每台机器之间相互免密登录
5.文件传输
scp -r /etc/hosts
192.168.76.151 linux04
192.168.76.152 linux05
192.168.76.153 linux06
192.168.76.154 linux07
192.168.76.155 linux08
192.168.76.156 linux09
保持每台虚拟机上的host配置文件相同
二、集群节点分配
Park01
Zookeeper
NameNode(active)
Resourcemanager (active)
Park02
Zookeeper
NameNode (standby)
Park03
Zookeeper
ResourceManager(standby)
Park04
DataNode
NodeManager
JournalNode
Park05
DataNode
NodeManager
JournalNode
Park06
DataNode
NodeManager
JournalNode
三、安装 zookeeper
配置机器:前三台机器
linux04/linux05/linux06
上传安装包至 linux04
解压缩
tar -zxvf zookeeper.tar.gz
进入安装目录
cd /zookeeper/conf
重命名
cp zoo_example.cfg zoo.cfg
编辑配置文件
vim zoo.cfg
建立文件夹
cd ..
mkdir tmp
cd tmp
vim myid
1
表示第一台机器,即zookeeper的选举ID
scp -r /zookeeper root@linux05
scp -r /zookeeper root@linux06
将配置好的zookeeper发送到其他两台机器上
传输结束后,vim myid 分别改为 2 、 3
四、安装hadoop
安装机器:linux04
上传安装包并解压
cd ./hadoop/etc/hadoop
vim hadoop-env.sh
JDK配置路径
export JAVA_HOME=/usr/java/jdk1.8.0_121
配置文件路径
export HADOOP_CONF_DIR=/usr/local/software/hadoop-2.7.1/etc/hadoop
立即生效
source hadoop-env.sh
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/software/hadoop/usr/local/software/hadoop-2.7.1/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>linux04:2181,linux05:2181,linux06:2181</value>
</property>
</configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>linux04:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>linux04:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>linux05:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>linux05:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value> qjournal://linux07:8485;linux08:8485;linux09:8485/ns</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/software/hadoop-2.7.1/journal</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<property>
</property>
<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>linux04</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>linux06</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value> org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore </value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>linux04:2181,linux05:2181,linux06:2181</value>
<description>For multiple zk services, separate them with comma</description>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-ha</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux04</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置slave文件
linux07
linux08
linux09
配置环境变量
vim /etc/profile
创建目录
mkdir journal
mkdir tmp
cd tmp
mkdir datanode
mkdir namenode
将配置好的hadoop发往其他5台机器
scp -r hadoop root@linux05 ...
scp -r /etc/profile root@linux05 ...
source /etc/profile
五、启动集群
1.启动三台zookeeper
cd zookeeper
cd bin
sh zkServer.sh start
检验启动是否成功
sh zkServer.sh status
2.在 zookeeper 中 leader 的节点上 执行
hdfs zkfc -formatZK
3.在 linux07 linux08 linux09 上启动 journalnode
cd /hadoop/sbin
sh hadoop-daemons.sh start journalnode
jps
查看 journalnode 已启动
4.linux 04
namenode 格式化
hadoop namenode -format
启动
hadoop-daemon.sh start namenode
5.linux 05
hdfs namenode-bootstrapStandby
hadoop-daemon.sh start namenode
6.linux 07 08 09
启动 dataNode
hadoop-daemon.sh start datanode
7.linux 04 05
hadoop-daemon.sh start zkfc
8.linux 04
start-yarn.sh
9.linux 06
yarn-daemon.sh start resourcemanager
六、
linux01:50070
linux01:8088
一、准备
1.新建六台虚拟机
1.1 采用 clone 的方式快速新增六台虚拟机
安装方式
采用 clone 方式的优势,可以免去在原主机中软件的安装问题
clone 后主机中的这些软件依然可以使用
选择完全克隆
若安装错误,则删除系统重新安装
删除VM上安装的系统
1.2 网络配置
VM -- 选择克隆后的虚拟机 -- 右键 -- 设置 -- 网络 -- 高级 -- MAC 地址
此时的地址时VM 分配给 克隆机的MAC地址
但克隆后会拷贝原机器的MAC地址信息在网络配置文件中
克隆后的虚拟机如何配置网络连接
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除UUID 、 MAC地址配置
配置 IP地址
rm -rf /etc/udev/rules.d/70-persistent-net.rules
删除已有映射,重启机器后,重新读取当前机器的映射
vi /etc/sysconfig/network
配置hostname
shutdown -r now
重启机器
2.关闭防火墙
service iptables stop
chkconfig iptables off
3.修改host
vim /etc/hosts
编辑hosts文件,需要重启后生效
若不想重启,则 hostname xxxx 临时生效
4.免密设置
生成秘钥
ssh-keygen
回车,其他无需输入,默认即可
生成的文件:/root/.ssh/id_rsa
配置免密登录
ssh-copy-id -i /root/.ssh/id_rsa.put root@linux05
配置每台机器之间相互免密登录
5.文件传输
scp -r /etc/hosts
192.168.76.151 linux04
192.168.76.152 linux05
192.168.76.153 linux06
192.168.76.154 linux07
192.168.76.155 linux08
192.168.76.156 linux09
保持每台虚拟机上的host配置文件相同
二、集群节点分配
Park01
Zookeeper
NameNode(active)
Resourcemanager (active)
Park02
Zookeeper
NameNode (standby)
Park03
Zookeeper
ResourceManager(standby)
Park04
DataNode
NodeManager
JournalNode
Park05
DataNode
NodeManager
JournalNode
Park06
DataNode
NodeManager
JournalNode
三、安装 zookeeper
配置机器:前三台机器
linux04/linux05/linux06
上传安装包至 linux04
解压缩
tar -zxvf zookeeper.tar.gz
进入安装目录
cd /zookeeper/conf
重命名
cp zoo_example.cfg zoo.cfg
编辑配置文件
vim zoo.cfg
建立文件夹
cd ..
mkdir tmp
cd tmp
vim myid
1
表示第一台机器,即zookeeper的选举ID
scp -r /zookeeper root@linux05
scp -r /zookeeper root@linux06
将配置好的zookeeper发送到其他两台机器上
传输结束后,vim myid 分别改为 2 、 3
四、安装hadoop
安装机器:linux04
上传安装包并解压
cd ./hadoop/etc/hadoop
vim hadoop-env.sh
JDK配置路径
export JAVA_HOME=/usr/java/jdk1.8.0_121
配置文件路径
export HADOOP_CONF_DIR=/usr/local/software/hadoop-2.7.1/etc/hadoop
立即生效
source hadoop-env.sh
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/software/hadoop/usr/local/software/hadoop-2.7.1/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>linux04:2181,linux05:2181,linux06:2181</value>
</property>
</configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>linux04:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>linux04:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>linux05:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>linux05:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value> qjournal://linux07:8485;linux08:8485;linux09:8485/ns</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/software/hadoop-2.7.1/journal</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<property>
</property>
<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/software/hadoop-2.7.1/tmp/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>linux04</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>linux06</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value> org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore </value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>linux04:2181,linux05:2181,linux06:2181</value>
<description>For multiple zk services, separate them with comma</description>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-ha</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux04</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置slave文件
linux07
linux08
linux09
配置环境变量
vim /etc/profile
创建目录
mkdir journal
mkdir tmp
cd tmp
mkdir datanode
mkdir namenode
将配置好的hadoop发往其他5台机器
scp -r hadoop root@linux05 ...
scp -r /etc/profile root@linux05 ...
source /etc/profile
五、启动集群
1.启动三台zookeeper
cd zookeeper
cd bin
sh zkServer.sh start
检验启动是否成功
sh zkServer.sh status
2.在 zookeeper 中 leader 的节点上 执行
hdfs zkfc -formatZK
3.在 linux07 linux08 linux09 上启动 journalnode
cd /hadoop/sbin
sh hadoop-daemons.sh start journalnode
jps
查看 journalnode 已启动
4.linux 04
namenode 格式化
hadoop namenode -format
启动
hadoop-daemon.sh start namenode
5.linux 05
hdfs namenode-bootstrapStandby
hadoop-daemon.sh start namenode
6.linux 07 08 09
启动 dataNode
hadoop-daemon.sh start datanode
7.linux 04 05
hadoop-daemon.sh start zkfc
8.linux 04
start-yarn.sh
9.linux 06
yarn-daemon.sh start resourcemanager
六、
linux01:50070
linux01:8088
发表评论
-
hadoop
2017-06-17 09:03 392一、 hadoop job list 查看 hadoop ... -
MapReduce(4)
2017-06-05 22:32 402一、处理多个文件 求每个同学每科成绩的总分 chinese.t ... -
MapReduce(3)
2017-06-04 20:51 571一、Mapper分区数量 1.Mapper 分区数量 = 文 ... -
MapReduce(2)
2017-06-04 18:46 541一、去除重复的内容 源文件: 192.168.234.21 ... -
MapReduce
2017-06-03 20:52 574WordCount 统计文本单词的数量 源文件内容: word ... -
Hadoop插件
2017-05-19 22:35 3091.启动hadoop cd ../sbin sh ./sta ... -
HDFS命令
2017-05-15 23:01 4931.创建目录 hadoop fs -mkdir /park0 ... -
搭建Hadoop
2017-05-11 22:01 5171.修改虚拟机内存为1GB 2.Xshell / Ser ...
相关推荐
所谓HA,即高可用,实现高可用最关键的是消除单点故障,hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA;通过双namenode消除单点故障;通过双namenode协调工作
在搭建Hadoop2.0 HA环境之前,需要对虚拟机进行相应的配置: - **安装JDK 1.8**:Hadoop2.0需要Java 1.8环境支持。 - **创建用户**:推荐使用非root用户(例如work用户)进行安装和管理,避免权限问题。 - **SSH...
在搭建Hadoop 2.6.4 HA集群之前,我们需要进行以下准备工作: 1. **配置Linux环境**:首先确保所有节点的操作系统版本一致,并且已安装必要的软件包。此外,还需要设置正确的主机名和IP地址映射。 2. **网络配置**...
10. **学习与实践**:掌握Hadoop不仅需要理解理论,还需要通过实际操作来熟悉Hadoop集群的搭建、数据导入导出、作业提交等步骤。这26页的PPT课件可能包含丰富的示例和习题,帮助学习者加深理解。 通过深入学习这个...
### Hadoop 2.2.0 集群搭建详细指南 #### 一、环境配置与准备工作 在开始搭建 Hadoop 2.2.0 的集群之前,我们需要确保所有节点都处于良好的工作状态,并完成一系列的基础环境配置。具体步骤如下: 1. **更新 ...
#### 一、HA2.0集群搭建与测试 **准备工作:** 1. **停掉之前的服务:** - 在搭建Hadoop2.x HA集群之前,需要确保所有相关的服务都已经停止运行,避免与新搭建的集群产生冲突。 2. **操作系统上的免密钥登录设置...
本文将详细探讨Hadoop2.0的新特性,特别是高可用架构的搭建,以及相关的组件和配置过程。 Hadoop1.0的主要局限在于NameNode和JobTracker这两个关键组件的单点故障问题。NameNode负责管理文件系统的元数据,而...
本教程将详细介绍如何在Linux环境下搭建一个高可用(HA)的Hadoop完全分布式集群,主要涉及到HDFS(Hadoop Distributed File System)的HA以及YARN(Yet Another Resource Negotiator)的高可用设置。 1. **HDFS HA**: ...
本文将依次介绍搭建过程中的关键步骤,包括环境准备、数据库搭建、Ambari安装及Hadoop集群的配置等。 #### 二、环境准备 1. **操作系统**:确保所有节点均安装了Centos7.2版本。 2. **硬件配置**:推荐配置至少...
为解决单点故障问题,Hadoop2.0引入了HA和YARN。 4.2 High Availability(HA) HA通过设置多个NameNode实现,确保即使主NameNode故障,系统仍能继续运行。 4.3 Yet Another Resource Negotiator(YARN) YARN作为...
### CDH-5.XX离线安装与升级详解 ...遵循上述步骤,可以较为顺利地完成CDH集群的搭建,并实现高效的数据处理能力。此外,熟悉安装过程中的常见错误及解决方法,有助于快速定位和解决问题,确保集群稳定运行。