42 Hadoop的HA集群的安装部署

集群节点规划

集群部署节点角色的规划(10节点):

server01   namenode   zkfc    > start-dfs.sh
server02   namenode   zkfc

server03   resourcemanager    > start-yarn.sh
server04   resourcemanager

server05   datanode   nodemanager     
server06   datanode   nodemanager     
server07   datanode   nodemanager     

server08   journal node    zookeeper
server09   journal node    zookeeper
server10   journal node    zookeeper

集群部署节点角色的规划(3节点)

server01   namenode    resourcemanager  zkfc   nodemanager  datanode   zookeeper   journal node
server02   namenode    resourcemanager  zkfc   nodemanager  datanode   zookeeper   journal node
server05   datanode    nodemanager     zookeeper    journal node

环境准备

1.linux系统准备

  • ip地址配置
  • hostname配置
  • hosts映射配置
  • 防火墙关闭
  • init启动级别修改
  • sudoers加入hadoop用户
  • ssh免密登陆配置

2.java环境的配置

  • 上传jdk,解压,修改/etc/profile

3.zookeeper集群的部署

配置文件

core-site.xml

<configuration>
	
	<property>
		<name>fs.defaultFSname>
		<value>hdfs://ns1/value>
	property>
	
	<property>
		<name>hadoop.tmp.dirname>
		<value>/home/hadoop/app/hadoop-2.4.1/tmpvalue>
	property>
	
	
	<property>
		<name>ha.zookeeper.quorumname>
		<value>weekend05:2181,weekend06:2181,weekend07:2181value>
	property>
configuration>

hdfs-site.xml:

configuration>

<property>
	<name>dfs.nameservicesname>
	<value>ns1value>
property>

<property>
	<name>dfs.ha.namenodes.ns1name>
	<value>nn1,nn2value>
property>

<property>
	<name>dfs.namenode.rpc-address.ns1.nn1name>
	<value>weekend01:9000value>
property>

<property>
	<name>dfs.namenode.http-address.ns1.nn1name>
	<value>weekend01:50070value>
property>

<property>
	<name>dfs.namenode.rpc-address.ns1.nn2name>
	<value>weekend02:9000value>
property>

<property>
	<name>dfs.namenode.http-address.ns1.nn2name>
	<value>weekend02:50070value>
property>

<property>
	<name>dfs.namenode.shared.edits.dirname>
	<value>qjournal://weekend05:8485;weekend06:8485;weekend07:8485/ns1value>
property>

<property>
	<name>dfs.journalnode.edits.dirname>
	<value>/home/hadoop/app/hadoop-2.4.1/journaldatavalue>
property>

<property>
	<name>dfs.ha.automatic-failover.enabledname>
	<value>truevalue>
property>

<property>
	<name>dfs.client.failover.proxy.provider.ns1name>
	<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvidervalue>
property>

<property>
	<name>dfs.ha.fencing.methodsname>
	<value>
		sshfence
		shell(/bin/true)
	value>
property>

<property>
	<name>dfs.ha.fencing.ssh.private-key-filesname>
	<value>/home/hadoop/.ssh/id_rsavalue>
property>

<property>
	<name>dfs.ha.fencing.ssh.connect-timeoutname>
	<value>30000value>
property>
/configuration>

集成运维测试

1.Datanode动态上下线

Datanode动态上下线很简单,步骤如下:

  • 准备一台服务器,设置好环境
  • 部署hadoop的安装包,并同步集群配置
  • 联网上线,新datanode会自动加入集群
  • 如果是一次增加大批datanode,还应该做集群负载重均衡

2.Namenode状态切换管理
使用的命令上hdfs haadmin
可用hdfs haadmin –help查看所有帮助信息
42 Hadoop的HA集群的安装部署_第1张图片
可以看到,状态操作的命令示例:
查看namenode工作状态

hdfs haadmin -getServiceState nn1

将standby状态namenode切换到active

hdfs haadmin –transitionToActive nn1

将active状态namenode切换到standby

hdfs haadmin –transitionToStandby nn2

3.数据块的balance
启动balancer的命令:
start-balancer.sh -threshold 8
运行之后,会有Balancer进程出现:
42 Hadoop的HA集群的安装部署_第2张图片
上述命令设置了Threshold为8%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值Threshold,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。Threshold的值为1到100之间,不显示的进行参数设置的话,默认是10。

你可能感兴趣的:(#,基础,-,云计算/大数据)