HA-Hadoop-yarn安装



检查所有主机date是否一致
ntpdate -u ntp.sjtu.edu.cn




配置ssh的免密码登录 : 


登陆ssh : ssh localhost  (ssh node1)


ssh-keygen -t rsa  创建密钥(存在于 : ~/.ssh 下)


ssh-copy-id node1  +  两次输入密码








三台主机 : 


node1 :namenode , datanode , zkfc  (zookeeper , Failover Controller)
node2 : datanode , journalnode , 
node3 : namenode , datanode , journalnode , zkfc


启动顺序 :namenode , datanode , journalnode , zkfc


namenode(node1 node3) , datanode(node1 node2 node3) , journalnode(node2 node3) , zkfc(node1 node2 node3)


-----------------------------------------------------------------------------------------------------------------------------------------


zookeeper官网 : http://zookeeper.apache.org/


安装zookeeper


右侧Documentation 选择版本 : Release 3.4.6(stable)


Getting Started


选择集群安装 : Running Replicated ZooKeeper


在node1 , node2 , node3 : 


解压zookeeper.tar.gz 包,并且重命名为zookeeper : 
tar -zxvf zookeeper-3.4.6.tar.gz
rm -rf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper 


目录 conf 下查看是否有zoo.cfg 没有就创建。有zoo_sample.cfg 就 重命名为zoo.cfg : 
mv zoo_sample.cfg zoo.cfg


编辑 vi zoo.cfg


dataDir=/home/zk
最后追加 :
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888




创建目录 : mkdir /home/zk


新建:
vi /home/zk/myid
node1中: 1 , node2中: 2 ,node3中: 3 


node1 , node2 , node3 : 每台都要启动 : 
/usr/zookeeper/bin/zkServer.sh start


每台都要查看进程 : jps


查看每台的状态 :zkServer.sh status




--------------------------------------------------------------------------------------------------------------------------------------------------


HDFS : 




左侧选择模式 :High Availability With QJM


修改/etc/hadoop/hadoop-env.sh 中的JAVA_HOME


export JAVA_HOME=/usr/java/jdk1.7.0_79








修改配置文件 : 
etc/hadoop/hdfs-site.xml:


#关闭用户访问权限
<property>
 <name>dfs.permissions</name>
 <value>false</value>
</property>


#为nameservices定义一个逻辑名
<property>
  <name>dfs.nameservices</name>
  <value>sunshine</value>
</property>


#定义namenode的id为datanode提供确认
<property>
  <name>dfs.ha.namenodes.sunshine</name>
  <value>nnn1,nnn3</value>
</property>


#每个NameNode的完全限定的RPC地址监听
<property>
  <name>dfs.namenode.rpc-address.sunshine.nnn1</name>
  <value>node1:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.sunshine.nnn3</name>
  <value>node3:8020</value>
</property>


#完全限定的HTTP地址每个NameNode监听
<property>
  <name>dfs.namenode.http-address.sunshine.nnn1</name>
  <value>node1:50070</value>
</property>
<property>
  <name>dfs.namenode.http-address.sunshine.nnn3</name>
  <value>node3:50070</value>
</property>


#这就是一个配置的地址JournalNodes提供共享存储、编辑写的活跃nameNode和
阅读的备用nameNode保持更新所有文件系统的变化活动nameNode。
尽管你必须指定几个JournalNode地址,您应该只配置一个uri。
表单的URI应该:“qjournal:/ / host1:端口1;host2:端口2;host3:端口3 / journalId”
<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node2:8485;node3:8485/sunshine</value>
</property>


#配置的Java类的名称将使用DFS客户机,以确定哪些NameNode是当前活跃,因此,
NameNode目前为客户端请求提供服务。目前唯一实现附带Hadoop ConfiguredFailoverProxyProvider
<property>
  <name>dfs.client.failover.proxy.provider.sunshine</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>


#JournalNode守护进程的路径将其本地存储的状态
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/jn/data</value>
</property>


#自动故障转移
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
</property>




















etc/hadoop/core-site.xml:


#DFS的入口
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://sunshine</value>
        </property>


##存放fsimage元数据目录
<property>
<name>hadoop.tmp.dir</name>
<value>/home/data</value>
</property>


#指定集群应该设置为自动故障转移
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>node1,node2,node3</value>
        </property>




etc/hadoop/slaves:


##指定 DataNode 主机
node1
node2
node3








将在node1配制好的配置文件复制到node2,node3 :
 scp ./* root@node2:/usr/hadoop-2.5.1/etc/hadoop/


启动每台journalnode : hadoop-daemon.sh start journalnode
每台查看进程 : jps






注意 : 格式化namenode之前 要保证 :  三台 zookeeper 启动 ,三台journalnode 启动 





将node1的namenode格式化 :hdfs namenode -format


查看fsimage文件 : cd /home/data/dfs/name/current






将node1的fsimage数据复制到node3上 : 保证两台 namenode主机的fsimage相同 : 


先将刚刚格式化完的node1的namenode启动:


hadoop-daemon.sh start namenode


再在node3上home目录下执行 :hdfs namenode -bootstrapStandby






格式化ZooKeeper : 在任意一台namenode上初始化即可: hdfs zkfc -formatZK
(因为在配置文件中etc/hadoop/core-site.xml已经指明,即 : 执行一遍所有ZooKeeper都执行格式化)




注意 :namenode解决当点故障,需要两台namenode主机自动切换所以需要相互之间设置免密码登录 (ssh-copy-id node#)








---------------------------------------------------yarn---------------------------------------






重命名 : mv  mapred-site.xml.template mapred-site.xml




vi yarn-site.xml




 <!-- 指定YARN的老大(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <property>
         <name>yarn.resourcemanager.cluster-id</name>
        <value>RMaster</value>
    </property>
    <property>
       <name>yarn.resourcemanager.ha.rm-ids</name>
       <value>rm1,rm2</value>
    </property>
    <property>
       <name>yarn.resourcemanager.hostname.rm1</name>
       <value>node1</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>node3</value>
    </property>
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>node1:2181,node2:2181,node3:2181</value>
     </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
     </property>






编辑 : 
vi mapred-site.xml




    <!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>






环境变量配置:


export PATH
export JAVA_HOME=/opt/jdk1.7.0_79
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.6
export HADOOP_HOME=/opt/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin




集群启动:
启动每台ZooKeeper : /usr/zookeeper/bin/zkServer.sh start  (配置环境变量后 : zkServer.sh start)
再启动NameNode : node1 : start-dfs.sh
再 node1 : start-yarn.sh
再 node3 : yarn-daemon.sh start resourcemanager


假如某个节点未正常启动或关闭,可以 :


比如 datanode : hadoop-daemon.sh start datanode
     datanode : hadoop-daemon.sh stop datanode


hdfs访问: 172.16.231.3:50070


job执行进度:172.16.231.3:8088 / node1:8088



















  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值