hadoop-2.3.0-cdh5.1.0完全分布式集群配置及HA配置(待)
一、安装前准备:
操作系统:CentOS
6.5
64
位操作系统
环境:jdk1.
7
.0_45以上,本次采用jdk-7u55-linux-x64.tar.gz
master01
10.10
.
2.57
namenode 节点
master02
10.10
.
2.58
namenode 节点
slave01:
10.10
.
2.173
datanode 节点
slave02:
10.10
.
2.59
datanode 节点
slave03:
10.10
.
2.60
datanode 节点
注:Hadoop2.
0
以上采用的是jdk环境是
1.7
,Linux自带的jdk卸载掉,重新安装
下载地址:http:
//www.oracle.com/technetwork/java/javase/downloads/index.html
软件版本:hadoop-
2.3
.
0
-cdh5.
1.0
.tar.gz, zookeeper-
3.4
.
5
-cdh5.
1.0
.tar.gz
下载地址:http:
//archive.cloudera.com/cdh5/cdh/5/
开始安装:
二、jdk安装
1
、检查是否自带jdk
rpm -qa | grep jdk
java-
1.6
.
0
-openjdk-
1.6
.
0.0
-
1.45
.
1.11
.
1
.el6.i686
2
、卸载自带jdk
yum -y remove java-
1.6
.
0
-openjdk-
1.6
.
0.0
-
1.45
.
1.11
.
1
.el6.i686
3
、安装jdk-7u55-linux-x64.tar.gz
在usr/目录下创建文件夹java,在java文件夹下运行tar –zxvf jdk-7u55-linux-x64.tar.gz
解压到java目录下
[root
@master01
java]# ls
jdk1.
7
.0_55
三、配置环境变量
远行vi /etc/profile
# /etc/profile
# System wide environment and startup programs,
for
login setup
# Functions and aliases go in /etc/bashrc
export JAVA_HOME=/usr/java/jdk1.
7
.0_55
export JRE_HOME=/usr/java/jdk1.
7
.0_55/jre
export CLASSPATH=/usr/java/jdk1.
7
.0_55/lib
export PATH=$JAVA_HOME/bin: $PATH
保存修改,运行source /etc/profile 重新加载环境变量
运行java -version
[root
@master01
java]# java -version
java version
"1.7.0_55"
Java(TM) SE Runtime Environment (build
1.7
.0_55-b13)
Java HotSpot(TM)
64
-Bit Server VM (build
24.55
-b03, mixed mode)
Jdk配置成功
四、系统配置
预先准备
5
台机器,并配置IP
关闭防火墙
chkconfig iptables off(永久性关闭)
配置主机名和hosts文件
[root
@master01
java]# vi /etc/hosts
127.0
.
0.1
localhost localhost.localdomain localhost4 localhost4.localdomain4
::
1
localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10
.
2.57
master01
10.10
.
2.58
master02
10.10
.
2.173
slave01
10.10
.
2.59
slave02
10.10
.
2.60
slave03
按照不同机器IP配置不同的主机名
3
、SSH无密码验证配置
因为Hadoop运行过程需要远程管理Hadoop的守护进程,NameNode节点需要通过SSH(Secure Shell)链接各个DataNode节点,停止或启动他们的进程,所以SSH必须是没有密码的,所以我们要把NameNode节点和DataNode节点配制成无秘密通信,同理DataNode也需要配置无密码链接NameNode节点。
在每一台机器上配置:
vi /etc/ssh/sshd_config打开
RSAAuthentication yes # 启用 RSA 认证,PubkeyAuthentication yes # 启用公钥私钥配对认证方式
Master01:运行:ssh-keygen –t rsa –P
''
不输入密码直接enter
默认存放在 /root/.ssh目录下,
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root
@master01
.ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
slave01执行相同的操作,然后将master01 /root/.ssh/目录下的id_rsa.pub放到 slave01 相同目录下的authorized_keys这样slave01就持有了master01的公钥 然后直接ssh slave01测试是否可以无密码连接到slave01上,然后将slave01 上的id_rsa.pub 追加到master01的authorized_keys中,测试ssh master01 是否可以直接连上slave01.
[root
@master01
~]# ssh slave01
Last login: Tue Aug
19
14
:
28
:
15
2014
from master01
[root
@slave01
~]#
Master01-master02
Master01-slave01
Master01-slave02
Master01-slave03
Master02-slave01
Master02-slave02
Master02-slave03
执行相同的操作。
五、安装Hadoop
建立文件目录 /usr/local/cloud 创建文件夹data,存放数据、日志文件,haooop原文件,zookeeper原文件
[root
@slave01
cloud]# ls
data hadoop tar zookeeper
5.1
、配置hadoop-env.sh
进入到/usr/local/cloud/hadoop/etc/hadoop目录下
配置vi hadoop-env.sh hadoop运行环境加载
export JAVA_HOME=/usr/java/jdk1.
7
.0_55
5.2
、配置core-site.xml
<!—hadoop.tmp.dir:hadoop很多路径都依赖他,namenode节点该目录不可以删除,否则需要重新格式化-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/cloud/data/hadoop/tmp</value>
</property>
<!—这个配置文件描述了集群的namenode节点的url,这里采用HA代表默认逻辑名,集群中的每个datanode节点都需要知道namenode的地址,数据才可以被使用-->
<property>
<name>fs.defaultFS</name>
<value>hdfs:
//zzg</value>
</property>
<!-- zookeeper集群的地址和端口,最好保持基数个至少
3
台-->
<property>
<name>ha.zookeeper.quorum</name>
<value>master01:
2181
,slave01:
2181
,slave02:
2181
</value>
</property>
(
2
)hdfs-site.xml配置
<!—hadoop namenode数据的存储目录,只是针对与namenode,包含了namenode的系统信息元数据信息-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/cloud/data/hadoop/dfs/nn</value>
</property>
<!—datanode 要存储到数据到本地的路径,不必每一台机器都一样,但是为了方便管理最好还是一样-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/cloud/data/hadoop/dfs/dn</value>
</property>
<!—系统中文件备份数量,系统默认是
3
分-->
<property>
<name>dfs.replication</name>
<value>
3
</value>
</property>
<!-- dfs.webhdfs.enabled 置为
true
,否则一些命令无法使用如:webhdfs的LISTSTATUS -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>
true
</value>
</property>
<!—可选,关闭权限带来一些不必要的麻烦-->
<property>
<name>dfs.permissions</name>
<value>
false
</value>
</property>
<!—可选,关闭权限带来一些不必要的麻烦-->
<property>
<name>dfs.permissions.enabled</name>
<value>
false
</value>
</property>
<!—HA配置-->
<!—设置集群的逻辑名-->
<property>
<name>dfs.nameservices</name>
<value>zzg</value>
</property>
<!—hdfs联邦集群中的namenode节点逻辑名-->
<property>
<name>dfs.ha.namenodes.zzg</name>
<value>nn1,nn2</value>
</property>
<!—hdfs namenode逻辑名中RPC配置,rpc 简单理解为序列化文件上传输出文件要用到-->
<property>
<name>dfs.namenode.rpc-address.zzg.nn1</name>
<value>master01:
9000
</value>
</property>
<property>
<name>dfs.namenode.rpc-address.zzg.nn2</name>
<value>master02:
9000
</value>
</property>
<!—配置hadoop页面访问端口端口-->
<property>
<name>dfs.namenode.http-address.zzg.nn1</name>
<value>master01:
50070
</value>
</property>
<property>
<name>dfs.namenode.http-address.zzg.nn2</name>
<value>master02:
50070
</value>
</property>
<!—建立与namenode的通信-->
<property>
<name>dfs.namenode.servicerpc-address.zzg.nn1</name>
<value>master01:
53310
</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.zzg.nn2</name>
<value>master02:
53310
</value>
</property>
<!—journalnode 共享文件集群-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal:
//master01:8485;slave01:8485;slave02:8485/zzg</value>
</property>
<!—journalnode对namenode的进行共享设置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/cloud/data/hadoop/ha/journal</value>
</property>
<!—设置故障处理类-->
<property>
<name>dfs.client.failover.proxy.provider.zzg</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!—开启自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>
true
</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>master01:
2181
,slave01:
2181
,slave02:
2181
</value>
</property>
<!—使用ssh方式进行故障切换-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!—ssh通信密码通信位置-->
<property>
<name>dfs.ha.fencing.ssh.
private
-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
5.3
配置maped-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5.4
配置yarn HA
配置yarn-en.sh java环境
# some Java parameters
export JAVA_HOME=/usr/java/jdk1.
7
.0_55
5.5
配置yarn-site.xml
<!—rm失联后重新链接的时间-->
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>
2000
</value>
</property>
<!—开启resource manager HA,默认为
false
-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>
true
</value>
</property>
<!—开启故障自动切换-->
<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>
true
</value>
</property>
<!—配置resource manager -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!—在master01上配置rm1,在master02上配置rm2,-->
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
<description>If we want to launch more than one RM in single node, we need
this
configuration</description>
</property>
<!—开启自动恢复功能-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>
true
</value>
</property>
<!—配置与zookeeper的连接地址-->
<property>
<name>yarn.resourcemanager.zk-state-store.address</name>
<value>localhost:
2181
</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>localhost:
2181
</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-cluster</value>
</property>
<!—schelduler失联等待连接时间-->
<property>
<name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
<value>
5000
</value>
</property>
<!—配置rm1-->
<property>
<name>yarn.resourcemanager.address.rm1</name>
<value>master01:
23140
</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm1</name>
<value>master01:
23130
</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>master01:
23188
</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm1</name>
<value>master01:
23125
</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address.rm1</name>
<value>master01:
23141
</value>
</property>
<property>
<name>yarn.resourcemanager.ha.admin.address.rm1</name>
<value>master01:
23142
</value>
</property>
<!—配置rm2-->
<property>
<name>yarn.resourcemanager.address.rm2</name>
<value>master02:
23140
</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm2</name>
<value>master02:
23130
</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>master02:
23188
</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm2</name>
<value>master02:
23125
</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address.rm2</name>
<value>master02:
23141
</value>
</property>
<property>
<name>yarn.resourcemanager.ha.admin.address.rm2</name>
<value>master02:
23142
</value>
</property>
<!—配置nodemanager-->
<property>
<description>Address where the localizer IPC is.</description>
<name>yarn.nodemanager.localizer.address</name>
<value>
0.0
.
0.0
:
23344
</value>
</property>
<!—nodemanager http访问端口-->
<property>
<description>NM Webapp address.</description>
<name>yarn.nodemanager.webapp.address</name>
<value>
0.0
.
0.0
:
23999
</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.
class
</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/usr/local/cloud/data/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/usr/local/cloud/data/logs/hadoop</value>
</property>
<property>
<name>mapreduce.shuffle.port</name>
<value>
23080
</value>
</property>
<!—故障处理类-->
<property>
<name>yarn.client.failover-proxy-provider</name>
<value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
</property>
六、配置zookeeper集群
在zookeeper目录下建立data目录 和logs目录,
配置zoo.cnf
dataDir=/usr/local/cloud/zookeeper/data
dataLogDir=/usr/local/cloud/zookeeper/logs
# the port at which the clients will connect
clientPort=
2181
server.
1
=master01:
2888
:
3888
server.
2
=master02:
2888
:
3888
server.
3
=slave01:
2888
:
3888
server.
4
=slave02:
2888
:
3888
server.
5
=slave03:
2888
:
3888
在data目录下创建myid文件,并在对应的机器上填写数字,如上配置master01 server01 的myid写入
1
,
master02 中的data的myid写入
2
,依次在其他机子上执行相同操作。
在各个机器下zookeeper目录下的bin目录下执行zkServer.sh start命令
再运行zkServer.sh status如果出现leader 或fllower 则说明集群配置正确。
到此各个配置文件配置完毕
七、启动Hadoop集群严格按照以下顺序执行(第一次)
(
1
)各个节点启动zookeeper,在zookeeper/bin/zkServer.sh start
(
2
) 在hadoop/bin/hdfs zkfc –formatZK 进行格式化创建命名空间
(
3
)在配置了journalnode的节点启动,master01,slave01,slave02
在hadoop/sbin/hadoop-daemon.sh journalnode
(
4
)在主namenode节点执行格式化
./bin/hadoop namenode -format zzg
主机器上启动namenode
hadoop/sbin/ hadoop-daemon.sh start namenode
(
5
)将主namenode节点格式化的目录拷贝到从主namenode节点上
hadoop/bin/hdfs namenode –bootstrapStandby
hadoop/sbin/hadoop-daemon.sh start namenode
(
6
) 在两个namenode节点都执行以下命令
./sbin/hadoop-daemon.sh start zkfc
(
7
) 在所有datanode节点都执行以下命令启动datanode
./sbin/hadoop-daemon.sh start datanode
(
8
)在主namenode节点启动yarn,运行yarn-start.sh命令
jps可以看到
namenode节点
[root
@master01
~]# jps
38972
JournalNode
38758
NameNode
39166
DFSZKFailoverController
37473
QuorumPeerMain
39778
ResourceManager
42620
Jps
datanode节点
[root
@slave01
~]# jps
33440
DataNode
35277
Jps
32681
QuorumPeerMain
33568
JournalNode
34231
NodeManager
一、安装前准备:
操作系统:CentOS
6.5
64
位操作系统
环境:jdk1.
7
.0_45以上,本次采用jdk-7u55-linux-x64.tar.gz
master01
10.10
.
2.57
namenode 节点
master02
10.10
.
2.58
namenode 节点
slave01:
10.10
.
2.173
datanode 节点
slave02:
10.10
.
2.59
datanode 节点
slave03:
10.10
.
2.60
datanode 节点
注:Hadoop2.
0
以上采用的是jdk环境是
1.7
,Linux自带的jdk卸载掉,重新安装
下载地址:http:
//www.oracle.com/technetwork/java/javase/downloads/index.html
软件版本:hadoop-
2.3
.
0
-cdh5.
1.0
.tar.gz, zookeeper-
3.4
.
5
-cdh5.
1.0
.tar.gz
下载地址:http:
//archive.cloudera.com/cdh5/cdh/5/
开始安装:
二、jdk安装
1
、检查是否自带jdk
rpm -qa | grep jdk
java-
1.6
.
0
-openjdk-
1.6
.
0.0
-
1.45
.
1.11
.
1
.el6.i686
2
、卸载自带jdk
yum -y remove java-
1.6
.
0
-openjdk-
1.6
.
0.0
-
1.45
.
1.11
.
1
.el6.i686
3
、安装jdk-7u55-linux-x64.tar.gz
在usr/目录下创建文件夹java,在java文件夹下运行tar –zxvf jdk-7u55-linux-x64.tar.gz
解压到java目录下
[root
@master01
java]# ls
jdk1.
7
.0_55
三、配置环境变量
远行vi /etc/profile
# /etc/profile
# System wide environment and startup programs,
for
login setup
# Functions and aliases go in /etc/bashrc
export JAVA_HOME=/usr/java/jdk1.
7
.0_55
export JRE_HOME=/usr/java/jdk1.
7
.0_55/jre
export CLASSPATH=/usr/java/jdk1.
7
.0_55/lib
export PATH=$JAVA_HOME/bin: $PATH
保存修改,运行source /etc/profile 重新加载环境变量
运行java -version
[root
@master01
java]# java -version
java version
"1.7.0_55"
Java(TM) SE Runtime Environment (build
1.7
.0_55-b13)
Java HotSpot(TM)
64
-Bit Server VM (build
24.55
-b03, mixed mode)
Jdk配置成功
四、系统配置
预先准备
5
台机器,并配置IP
关闭防火墙
chkconfig iptables off(永久性关闭)
配置主机名和hosts文件
[root
@master01
java]# vi /etc/hosts
127.0
.
0.1
localhost localhost.localdomain localhost4 localhost4.localdomain4
::
1
localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10
.
2.57
master01
10.10
.
2.58
master02
10.10
.
2.173
slave01
10.10
.
2.59
slave02
10.10
.
2.60
slave03
按照不同机器IP配置不同的主机名
3
、SSH无密码验证配置
因为Hadoop运行过程需要远程管理Hadoop的守护进程,NameNode节点需要通过SSH(Secure Shell)链接各个DataNode节点,停止或启动他们的进程,所以SSH必须是没有密码的,所以我们要把NameNode节点和DataNode节点配制成无秘密通信,同理DataNode也需要配置无密码链接NameNode节点。
在每一台机器上配置:
vi /etc/ssh/sshd_config打开
RSAAuthentication yes # 启用 RSA 认证,PubkeyAuthentication yes # 启用公钥私钥配对认证方式
Master01:运行:ssh-keygen –t rsa –P
''
不输入密码直接enter
默认存放在 /root/.ssh目录下,
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root
@master01
.ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
slave01执行相同的操作,然后将master01 /root/.ssh/目录下的id_rsa.pub放到 slave01 相同目录下的authorized_keys这样slave01就持有了master01的公钥 然后直接ssh slave01测试是否可以无密码连接到slave01上,然后将slave01 上的id_rsa.pub 追加到master01的authorized_keys中,测试ssh master01 是否可以直接连上slave01.
[root
@master01
~]# ssh slave01
Last login: Tue Aug
19
14
:
28
:
15
2014
from master01
[root
@slave01
~]#
Master01-master02
Master01-slave01
Master01-slave02
Master01-slave03
Master02-slave01
Master02-slave02
Master02-slave03
执行相同的操作。
五、安装Hadoop
建立文件目录 /usr/local/cloud 创建文件夹data,存放数据、日志文件,haooop原文件,zookeeper原文件
[root
@slave01
cloud]# ls
data hadoop tar zookeeper
5.1
、配置hadoop-env.sh
进入到/usr/local/cloud/hadoop/etc/hadoop目录下
配置vi hadoop-env.sh hadoop运行环境加载
export JAVA_HOME=/usr/java/jdk1.
7
.0_55
5.2
、配置core-site.xml
<!—hadoop.tmp.dir:hadoop很多路径都依赖他,namenode节点该目录不可以删除,否则需要重新格式化-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/cloud/data/hadoop/tmp</value>
</property>
<!—这个配置文件描述了集群的namenode节点的url,这里采用HA代表默认逻辑名,集群中的每个datanode节点都需要知道namenode的地址,数据才可以被使用-->
<property>
<name>fs.defaultFS</name>
<value>hdfs:
//zzg</value>
</property>
<!-- zookeeper集群的地址和端口,最好保持基数个至少
3
台-->
<property>
<name>ha.zookeeper.quorum</name>
<value>master01:
2181
,slave01:
2181
,slave02:
2181
</value>
</property>
(
2
)hdfs-site.xml配置
<!—hadoop namenode数据的存储目录,只是针对与namenode,包含了namenode的系统信息元数据信息-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/cloud/data/hadoop/dfs/nn</value>
</property>
<!—datanode 要存储到数据到本地的路径,不必每一台机器都一样,但是为了方便管理最好还是一样-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/cloud/data/hadoop/dfs/dn</value>
</property>
<!—系统中文件备份数量,系统默认是
3
分-->
<property>
<name>dfs.replication</name>
<value>
3
</value>
</property>
<!-- dfs.webhdfs.enabled 置为
true
,否则一些命令无法使用如:webhdfs的LISTSTATUS -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>
true
</value>
</property>
<!—可选,关闭权限带来一些不必要的麻烦-->
<property>
<name>dfs.permissions</name>
<value>
false
</value>
</property>
<!—可选,关闭权限带来一些不必要的麻烦-->
<property>
<name>dfs.permissions.enabled</name>
<value>
false
</value>
</property>
<!—HA配置-->
<!—设置集群的逻辑名-->
<property>
<name>dfs.nameservices</name>
<value>zzg</value>
</property>
<!—hdfs联邦集群中的namenode节点逻辑名-->
<property>
<name>dfs.ha.namenodes.zzg</name>
<value>nn1,nn2</value>
</property>
<!—hdfs namenode逻辑名中RPC配置,rpc 简单理解为序列化文件上传输出文件要用到-->
<property>
<name>dfs.namenode.rpc-address.zzg.nn1</name>
<value>master01:
9000
</value>
</property>
<property>
<name>dfs.namenode.rpc-address.zzg.nn2</name>
<value>master02:
9000
</value>
</property>
<!—配置hadoop页面访问端口端口-->
<property>
<name>dfs.namenode.http-address.zzg.nn1</name>
<value>master01:
50070
</value>
</property>
<property>
<name>dfs.namenode.http-address.zzg.nn2</name>
<value>master02:
50070
</value>
</property>
<!—建立与namenode的通信-->
<property>
<name>dfs.namenode.servicerpc-address.zzg.nn1</name>
<value>master01:
53310
</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.zzg.nn2</name>
<value>master02:
53310
</value>
</property>
<!—journalnode 共享文件集群-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal:
//master01:8485;slave01:8485;slave02:8485/zzg</value>
</property>
<!—journalnode对namenode的进行共享设置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/cloud/data/hadoop/ha/journal</value>
</property>
<!—设置故障处理类-->
<property>
<name>dfs.client.failover.proxy.provider.zzg</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!—开启自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>
true
</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>master01:
2181
,slave01:
2181
,slave02:
2181
</value>
</property>
<!—使用ssh方式进行故障切换-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!—ssh通信密码通信位置-->
<property>
<name>dfs.ha.fencing.ssh.
private
-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
5.3
配置maped-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5.4
配置yarn HA
配置yarn-en.sh java环境
# some Java parameters
export JAVA_HOME=/usr/java/jdk1.
7
.0_55
5.5
配置yarn-site.xml
<!—rm失联后重新链接的时间-->
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>
2000
</value>
</property>
<!—开启resource manager HA,默认为
false
-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>
true
</value>
</property>
<!—开启故障自动切换-->
<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>
true
</value>
</property>
<!—配置resource manager -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!—在master01上配置rm1,在master02上配置rm2,-->
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
<description>If we want to launch more than one RM in single node, we need
this
configuration</description>
</property>
<!—开启自动恢复功能-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>
true
</value>
</property>
<!—配置与zookeeper的连接地址-->
<property>
<name>yarn.resourcemanager.zk-state-store.address</name>
<value>localhost:
2181
</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>localhost:
2181
</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-cluster</value>
</property>
<!—schelduler失联等待连接时间-->
<property>
<name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
<value>
5000
</value>
</property>
<!—配置rm1-->
<property>
<name>yarn.resourcemanager.address.rm1</name>
<value>master01:
23140
</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm1</name>
<value>master01:
23130
</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>master01:
23188
</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm1</name>
<value>master01:
23125
</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address.rm1</name>
<value>master01:
23141
</value>
</property>
<property>
<name>yarn.resourcemanager.ha.admin.address.rm1</name>
<value>master01:
23142
</value>
</property>
<!—配置rm2-->
<property>
<name>yarn.resourcemanager.address.rm2</name>
<value>master02:
23140
</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm2</name>
<value>master02:
23130
</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>master02:
23188
</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm2</name>
<value>master02:
23125
</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address.rm2</name>
<value>master02:
23141
</value>
</property>
<property>
<name>yarn.resourcemanager.ha.admin.address.rm2</name>
<value>master02:
23142
</value>
</property>
<!—配置nodemanager-->
<property>
<description>Address where the localizer IPC is.</description>
<name>yarn.nodemanager.localizer.address</name>
<value>
0.0
.
0.0
:
23344
</value>
</property>
<!—nodemanager http访问端口-->
<property>
<description>NM Webapp address.</description>
<name>yarn.nodemanager.webapp.address</name>
<value>
0.0
.
0.0
:
23999
</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.
class
</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/usr/local/cloud/data/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/usr/local/cloud/data/logs/hadoop</value>
</property>
<property>
<name>mapreduce.shuffle.port</name>
<value>
23080
</value>
</property>
<!—故障处理类-->
<property>
<name>yarn.client.failover-proxy-provider</name>
<value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
</property>
六、配置zookeeper集群
在zookeeper目录下建立data目录 和logs目录,
配置zoo.cnf
dataDir=/usr/local/cloud/zookeeper/data
dataLogDir=/usr/local/cloud/zookeeper/logs
# the port at which the clients will connect
clientPort=
2181
server.
1
=master01:
2888
:
3888
server.
2
=master02:
2888
:
3888
server.
3
=slave01:
2888
:
3888
server.
4
=slave02:
2888
:
3888
server.
5
=slave03:
2888
:
3888
在data目录下创建myid文件,并在对应的机器上填写数字,如上配置master01 server01 的myid写入
1
,
master02 中的data的myid写入
2
,依次在其他机子上执行相同操作。
在各个机器下zookeeper目录下的bin目录下执行zkServer.sh start命令
再运行zkServer.sh status如果出现leader 或fllower 则说明集群配置正确。
到此各个配置文件配置完毕
七、启动Hadoop集群严格按照以下顺序执行(第一次)
(
1
)各个节点启动zookeeper,在zookeeper/bin/zkServer.sh start
(
2
) 在hadoop/bin/hdfs zkfc –formatZK 进行格式化创建命名空间
(
3
)在配置了journalnode的节点启动,master01,slave01,slave02
在hadoop/sbin/hadoop-daemon.sh journalnode
(
4
)在主namenode节点执行格式化
./bin/hadoop namenode -format zzg
主机器上启动namenode
hadoop/sbin/ hadoop-daemon.sh start namenode
(
5
)将主namenode节点格式化的目录拷贝到从主namenode节点上
hadoop/bin/hdfs namenode –bootstrapStandby
hadoop/sbin/hadoop-daemon.sh start namenode
(
6
) 在两个namenode节点都执行以下命令
./sbin/hadoop-daemon.sh start zkfc
(
7
) 在所有datanode节点都执行以下命令启动datanode
./sbin/hadoop-daemon.sh start datanode
(
8
)在主namenode节点启动yarn,运行yarn-start.sh命令
jps可以看到
namenode节点
[root
@master01
~]# jps
38972
JournalNode
38758
NameNode
39166
DFSZKFailoverController
37473
QuorumPeerMain
39778
ResourceManager
42620
Jps
datanode节点
[root
@slave01
~]# jps
33440
DataNode
35277
Jps
32681
QuorumPeerMain
33568
JournalNode
34231
NodeManager
hadoop-2.3.0-cdh5.1.0完全分布式集群配置及HA配置(待)的更多相关文章
- Hadoop学习之路(十二)分布式集群中HDFS系统的各种角色
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...
- 通过tarball形式安装HBASE Cluster(CDH5.0.2)——HBASE 真分布式集群配置
一.应该先配置好zookeeper并成功启动,否则hbase无法启动 二.配置HBASE集群 1,配置hbase-env.sh,下面是最少配置项目 [hadoop@zk1 conf]$ vim hba ...
- spark2.4.0+hadoop2.8.3全分布式集群搭建
集群环境 hadoop-2.8.3搭建详细请查看hadoop系列文章 scala-2.11.12环境请查看scala系列文章 jdk1.8.0_161 spark-2.4.0-bin-hadoop2. ...
- Hadoop上路-01_Hadoop2.3.0的分布式集群搭建
一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...
- hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)
目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...
- Hadoop 3.0完全分布式集群搭建方法(CentOS 7+Hadoop 3.2.0)
本文详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是3.2.0,JDK版本是1.8. 一.准备环境 1. 在VMware worksta ...
- Hadoop 2.0完全分布式集群搭建方法(CentOS7+Hadoop 2.7.7)
本文详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是2.7.7,JDK版本是1.8. 一.准备环境 1. 在VMware worksta ...
- hadoop-2.3.0-cdh5.1.0完全分布式集群配置HA配置
一.安装前准备: 操作系统:CentOS 6.5 64位操作系统 环境:jdk1.7.0_45以上,本次采用jdk-7u55-linux-x64.tar.gz master01 10.10.2.57 ...
- 分布式集群搭建(hadoop2.6.0+CentOS6.5)
摘要:之前安装过hadoop1.2.1集群,发现比较老了,后来安装cloudera(hadoop2.6.0),发现集成度比较高,想知道原生的hadoop什么样子,于是着手搭建一个伪分布式集群(三台), ...
随机推荐
- java并发实现原子操作
来自<java并发编程的艺术>.只是方便自己以后查找. 处理器如何实现原子操作 32位IA-32处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作.首先处理器会自动保证基 ...
- GAN基础
Generative Adversarial Networks GAN框架 GAN框架是有两个对象(discriminator,generator)的对抗游戏.generator是一个生成器, ...
- java面试_数据库
1.group by 根据表里的字段名分类,相同字段名只显示一行记录,通常与聚集函数max.min合用选择最大值最小值,或者与having合用筛选,结果按照group by的字段排序 例:select ...
- 算法(Algorithms)第4版 练习 1.5.24
package com.qiusongde; import edu.princeton.cs.algs4.StdOut; public class Exercise1524 { public stat ...
- Hadoop集群初始化启动
hadoop集群初始化启动 启动zookeeper ./zkServer.sh start 启动journalnode ./hadoop-daemon.sh start journalnode 格式化 ...
- HDU 4417 Super Mario(2012杭州网络赛 H 离线线段树)
突然想到的节约时间的方法,感觉6翻了 给你n个数字,接着m个询问.每次问你一段区间内不大于某个数字(不一定是给你的数字)的个数 直接线段树没法做,因为每次给你的数字不一样,父节点无法统计.但是离线一 ...
- jquery带下拉菜单和焦点图
jQuery,下拉菜单,二级菜单,索引按钮,焦点图代码,jquery带下拉菜单和焦点图是一款顶部通栏带二级下拉菜单和banner导航菜单代码. JQuery特效代码来源:http://www.huiy ...
- ajax如何处理返回的数据格式是xml的情况
<!DOCTYPE html> <html> <head> <title>用户注册</title> <meta charset=&qu ...
- Tstrings类简单介绍及实例
用TStrings保存文件;var S: TStrings;begin S := TStringList.Create(); { ... } S.SaveToFile('config.txt' ...
- C++(二)— STL容器的基本用法
1.vector基本操作 关于vector简单的讲就是一个动态增长的数组,里面有一个指针指向一片连续的内存空间,当空间装不下的时候会自动申请一片更大的空间(空间配置器)将原来的数据拷贝到新的空间,然后 ...