频道栏目
首页 > 网络 > 云计算 > 正文

HadoopHDFS通过QJM实现高可用HA环境搭建

2017-08-10 09:52:00      个评论    来源:Algernon的博客  
收藏   我要投稿

环境准备

机器列表

主机 NN DN ZK ZKFC JN RM NM
node1 Y   Y Y      
node2 Y Y Y Y Y Y Y
node3   Y Y   Y   Y
node4   Y     Y   Y



所有主机已经安装好了jdk环境

zookeeper集群安装

下载解压zookeeper

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
tar -xvzf zookeeper-3.4.10.tar.gz -C /home

修改zookeeper配置文件zoo.cfg

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

创建zookeeper的myid文件

# vi /var/lib/zookeeper/myid
1 # 对应配置文件server.X的X

启动zookeeper

./bin/zkServer.sh start

hadoop安装

下载解压、配置ssh免密登录

修改配置

修改hadoop的JAVA环境变量etc/hadoop/hadoop-env.sh
# set to the root of your Java installation
export JAVA_HOME=/usr/local/jdk1.8
修改core-site.xml

    fs.defaultFS
    hdfs://myhdfs-cluster


    hadoop.tmp.dir
    /opt/hadoop-2.7


    ha.zookeeper.quorum
    node1:2181,node2:2181,node3:2181

修改hdfs-site.xml


  dfs.nameservices
  myhdfs-cluster


  dfs.ha.namenodes.myhdfs-cluster
  nn1,nn2


  dfs.namenode.rpc-address.myhdfs-cluster.nn1
  node1:8020


  dfs.namenode.rpc-address.myhdfs-cluster.nn2
  node2:8020


  dfs.namenode.http-address.myhdfs-cluster.nn1
  node1:50070


  dfs.namenode.http-address.myhdfs-cluster.nn2
  node2:50070


  dfs.namenode.shared.edits.dir
  qjournal://node2:8485;node3:8485;node4:8485/abc


  dfs.client.failover.proxy.provider.myhdfs-cluster
 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider


  dfs.ha.fencing.methods
  sshfence


  dfs.ha.fencing.ssh.private-key-files
  /root/.ssh/id_dsa


  dfs.journalnode.edits.dir
  /opt/journalnode

 
   dfs.ha.automatic-failover.enabled
   true
 

修改yarn-site.xml

    yarn.nodemanager.aux-services
    mapreduce_shuffle


    yarn.resourcemanager.ha.enabled
    true


    yarn.resourcemanager.cluster-id
    myhdfs-cluster


    yarn.resourcemanager.ha.rm-ids
    rm1,rm2


    yarn.resourcemanager.hostname.rm1
    node1


    yarn.resourcemanager.hostname.rm2
    node4


    yarn.resourcemanager.zk-address
    node1:2181,node2:2181,node3:2181

修改mapred-site.xml

    mapreduce.framework.name
    yarn

修改slaves
node2
node3
node4

启动集群

启动三个JournalNode
./sbin/hadoop-daemon.sh start journalnode
格式化其中一个namenode
./bin/hdfs namenode -format
namenode节点数据同步

把刚刚格式化之后的元数据拷贝到其他的namenode上

启动刚刚格式化的namenode ./sbin/start-dfs.sh 在没有格式化的namenode上执行:hdfs namenode -bootstrapStandby 启动其他的namenode

在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK
停止上面节点:stop-dfs.sh
全面启动:start-dfs.sh

上一篇:云计算时代IT资源扩容的思考
下一篇:aggregate和treeaggregate
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站