hadoop(ha)hbase(双master)安装
一.軟件包準備
CentOS Linux release 7.2 ?Linux version 3.10.0-327.el7.x86_64
jdk-7u65-linux-x64.tar.gz
zookeeper-3.4.9
hadoop-2.7.3
hbase-1.3.0
?
集群機器配置
時間同步、設置時區
ssh免密登錄
安裝psmisc工具包
二.安裝、配置
節點規劃
| hostname | ip | Hadoop | Hbase | zk |
| ecloud-test06.cn | 192.168.200.80 | NameNode DataNode JournalNode DFSZKFailoveController | HMaster HRegionServer | QuorumPeerMain |
| ecloud-test07.cn | 192.168.200.81 | NameNode DataNode JournalNode DFSZKFailoveController | HMaster HRegionServer | QuorumPeerMain |
| ecloud-test09.cn | 192.168.200.83 | DataNode JournalNode | HRegionServer ThriftServer | QuorumPeerMain |
1.?zk安裝配置
解壓zk到安裝目錄
?
修改安裝目錄中zoo.cfg文件
dataDir=/sdb/data1/zookeeper/data ??#zk數據目錄
dataLogDir=/home/zookeeper/logs#zk日志目錄
clientPort=2181#zk端口
server.1=192.168.200.80:2888:3888# .x ?本節點id,需要在dataDir下創
server.2=192.168.200.81:2888:3888# 建myid文件并填入對應id
server.3=192.168.200.83:2888:3888
2888 集群通信端口,3888集群選主端口
?
在各機器上開啟服務 bin/zkServer.sh ?start
在其中一臺機器bin/zkClient.sh 連接服務測試
?
2.?Hadoop 安裝配置
解壓hadoop到安裝目錄
添加/etc/profile.d/hdfs.sh
HADOOP_HOME=/usr/local/hadoop-2.7.3PATH=$HADOOP_HOME/bin:$PATHexport HADOOP_HOMEexport PATHHADOOP_CONF=/usr/local/hadoop-2.7.3/etc/hadoopexport HADOOP_CONFexport JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native/export LD_LIBRARY_PATH=${HADOOP_HOME}/lib/native/:$LD_LIBRARY_PATH修改hadoop-env.sh
export JAVA_HOME=/Application/xx/enterprise/jdk/jdk1.7.0_65 export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Duser.timezone=GMT+08"修改hdfs-site.xml配置文件
<configuration> <!--NameNode集群名稱--><property><name>dfs.nameservices</name><value>hcluster</value></property><!--NameNode地址集群標識(hcluster),最多兩個--><property><name>dfs.ha.namenodes.hcluster</name><value>nn0,nn1</value></property><!--HDFS文件系統數據存儲位置,可以分別保存到不同硬盤,突破單硬盤性能瓶頸,多個位置以逗號隔開--><property><name>dfs.data.dir</name><value>/sdb/data1/hadoop/hdfs/data</value></property><!--數據副本數量,根據HDFS臺數設置,默認3份--><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.rpc-address.hcluster.nn0</name><value>ecloud-test06.cn:9000</value></property><!--RPC端口--><property><name>dfs.namenode.rpc-address.hcluster.nn1</name><value>ecloud-test07.cn:9000</value></property><!--NameNode HTTP訪問地址--><property><name>dfs.namenode.http-address.hcluster.nn0</name><value>ecloud-test06.cn:50070</value></property><property><name>dfs.namenode.http-address.hcluster.nn1</name><value>ecloud-test07.cn:50070</value></property><!--NN存放元數據和日志位置--><property><name>dfs.namenode.name.dir</name><value>/sdb/data1/hadoop/hdfs/name</value></property><!--同時把NameNode元數據和日志存放在JournalNode上(/home/hadoop/journal/hcluster)--><property><name>dfs.namenode.shared.edits.dir</name> <value>qjournal://ecloud-test06.cn:8485;ecloud-test07.cn:8485;ecloud-test09.cn:8485/hcluster</value></property><!--JournalNode上元數據和日志存放位置--><property><name>dfs.journalnode.edits.dir</name><value>/sdb/data1/hadoop/hdfs/journal</value></property><!--開啟NameNode失敗自動切換--><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!--NameNode失敗自動切換實現方式--><property><name>dfs.client.failover.proxy.provider.hcluster</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!--隔離機制方法,確保任何時間只有一個NameNode處于活動狀態--><property><name>dfs.ha.fencing.methods</name><value>sshfence</value></property><!--使用sshfence隔離機制要SSH免密碼認證--><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property> </configuration>修改core-site.xml配置文件
<configuration><!--HDFS路徑邏輯名稱--><property><name>fs.defaultFS</name><value>hdfs://hcluster</value></property><!--Hadoop存放臨時文件位置--><property><name>hadoop.tmp.dir</name><value>/sdb/data1/hadoop/hdfs/tmp</value></property><!--使用的zookeeper集群地址--><property><name>ha.zookeeper.quorum</name><value>ecloud-test06.cn:2181,ecloud-test07.cn:2181,ecloud-test09.cn:2181</value></property> </configuration>修改yarn-site.xml配置文件
<configuration> <!-- Site specific YARN configuration properties --><!--啟用RM高可用--><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!--RM集群標識符--><property><name>yarn.resourcemanager.cluster-id</name><value>rm-cluster</value></property><property><!--指定兩臺RM主機名標識符--><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!--RM故障自動切換--><property><name>yarn.resourcemanager.ha.automatic-failover.recover.enabled</name><value>true</value></property><!--RM故障自動恢復<property><name>yarn.resourcemanager.recovery.enabled</name> <value>true</value> </property> --><!--RM主機1--><property><name>yarn.resourcemanager.hostname.rm1</name><value>ecloud-test06.cn</value></property><!--RM主機2--><property><name>yarn.resourcemanager.hostname.rm2</name><value>ecloud-test07.cn</value></property><!--RM狀態信息存儲方式,一種基于內存(MemStore),另一種基于ZK(ZKStore)--><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property><!--使用ZK集群保存狀態信息--><property><name>yarn.resourcemanager.zk-address</name><value>ecloud-test06.cn:2181,ecloud-test07.cn:2181,ecloud-test09.cn:2181</value></property><!--向RM調度資源地址--><property><name>yarn.resourcemanager.scheduler.address.rm1</name><value>ecloud-test06.cn:8030</value></property><property><name>yarn.resourcemanager.scheduler.address.rm2</name><value>ecloud-test07.cn:8030</value></property><!--NodeManager通過該地址交換信息--><property><name>yarn.resourcemanager.resource-tracker.address.rm1</name><value>ecloud-test06.cn:8031</value></property><property><name>yarn.resourcemanager.resource-tracker.address.rm2</name><value>ecloud-test07.cn:8031</value></property><!--客戶端通過該地址向RM提交對應用程序操作--><property><name>yarn.resourcemanager.address.rm1</name><value>ecloud-test06.cn:8032</value></property><property><name>yarn.resourcemanager.address.rm2</name><value>ecloud-test07.cn:8032</value></property><!--管理員通過該地址向RM發送管理命令--><property><name>yarn.resourcemanager.admin.address.rm1</name><value>ecloud-test06.cn:8033</value></property><property><name>yarn.resourcemanager.admin.address.rm2</name><value>ecloud-test07.cn:8033</value></property><!--RM HTTP訪問地址,查看集群信息--><property><name>yarn.resourcemanager.webapp.address.rm1</name><value>ecloud-test06.cn:8088</value></property><property><name>yarn.resourcemanager.webapp.address.rm2</name><value>ecloud-test07.cn:8088</value></property> </configuration>修改mapred-site.xml配置文件
<configuration><!--指定MR框架為YARN--><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 配置 MapReduce JobHistory Server地址 ,默認端口10020 --><property><name>mapreduce.jobhistory.address</name><value>0.0.0.0:10020</value></property><!-- 配置 MapReduce JobHistory Server HTTP地址, 默認端口19888 --><property><name>mapreduce.jobhistory.webapp.address</name><value>0.0.0.0:19888</value></property> </configuration>修改slaves配置文件
ecloud-test06.cn ecloud-test07.cn ecloud-test09.cn?
在任一配置了journalnode的節點啟動JournalNode
sbin/hadoop-daemons.sh start journalnode ?
在 test06 上執行格式化namenode
hdfs namenode -format ?????????????????
在 test06 啟動 namenode
sbin/hadoop-daemon.sh start namenode
在 test07 執行同步
bin/hdfs namenode -bootstrapStandby
在 test07 啟動 namenode
sbin/hadoop-daemon.sh start namenode
在 test06格式化zkfc
hdfs zkfc -formatZK
在 test06啟動HDFS集群
sbin/start-dfs.sh
在命令行輸入jps查看hadoop上述節點,如果都存在則安裝成功
?
3.?Hbase安裝配置
解壓hbase到安裝目錄
修改hbase-env.sh配置文件
export JAVA_HOME=/Application/xx/enterprise/jdk/jdk1.7.0_65 export HBASE_OPTS="-XX:+UseConcMarkSweepGC -Duser.timezone=GMT+08" export HBASE_MANAGES_ZK=false修改hbase-site.xml配置文件
<configuration><property><name>hbase.rootdir</name><value>hdfs://hcluster/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>ecloud-test06.cn,ecloud-test07.cn,ecloud-test08.cn</value></property><property><name>hbase.master.port</name><value>60000</value></property><property><name>zookeeper.session.timeout</name><value>60000</value></property><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/sdb/data1/zookeeper/data</value></property> </configuration>修改regionservers配置文件
ecloud-test06.cn ecloud-test07.cn ecloud-test09.cn修改backup-masters配置文件
ecloud-test07.cn?
使用start-hbase.sh啟動集群
使用hbase shell打開shell驗證安裝
?
參考:
Hadoop2.6(NN/RM)高可用集群安裝與部署
hadoop HA高可用集群模式搭建指南
?
?
轉載于:https://www.cnblogs.com/B0-1/p/6485276.html
總結
以上是生活随笔為你收集整理的hadoop(ha)hbase(双master)安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模板实参推导 xx_cast的实现
- 下一篇: Ansible常用模块介绍及使用