集群节点规划
集群部署节点角色的规划(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
fs.defaultFS
hdfs://ns1/
hadoop.tmp.dir
/home/hadoop/app/hadoop-2.4.1/tmp
ha.zookeeper.quorum
weekend05:2181,weekend06:2181,weekend07:2181
hdfs-site.xml:
configuration>
dfs.nameservices
ns1
dfs.ha.namenodes.ns1
nn1,nn2
dfs.namenode.rpc-address.ns1.nn1
weekend01:9000
dfs.namenode.http-address.ns1.nn1
weekend01:50070
dfs.namenode.rpc-address.ns1.nn2
weekend02:9000
dfs.namenode.http-address.ns1.nn2
weekend02:50070
dfs.namenode.shared.edits.dir
qjournal://weekend05:8485;weekend06:8485;weekend07:8485/ns1
dfs.journalnode.edits.dir
/home/hadoop/app/hadoop-2.4.1/journaldata
dfs.ha.automatic-failover.enabled
true
dfs.client.failover.proxy.provider.ns1
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
shell(/bin/true)
dfs.ha.fencing.ssh.private-key-files
/home/hadoop/.ssh/id_rsa
dfs.ha.fencing.ssh.connect-timeout
30000
/configuration>
集成运维测试
1.Datanode动态上下线
Datanode动态上下线很简单,步骤如下:
- 准备一台服务器,设置好环境
- 部署hadoop的安装包,并同步集群配置
- 联网上线,新datanode会自动加入集群
- 如果是一次增加大批datanode,还应该做集群负载重均衡
2.Namenode状态切换管理 使用的命令上hdfs haadmin
可用hdfs haadmin –help
查看所有帮助信息 可以看到,状态操作的命令示例: 查看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进程出现: 上述命令设置了Threshold为8%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值Threshold,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。Threshold的值为1到100之间,不显示的进行参数设置的话,默认是10。