hbase 集群部署
阿新 • • 發佈:2018-07-10
usr path cti .com 系統參數 text lib tar ssh Hhase 集群部署
使用的軟件
hadoop-2.7.4
hbase-1.2.6
jdk-8u144
zookeeper-3.4.10
Hbase 自帶的有zookeeper,在這裏使用自己部署的zookeeper
zookeeper 集群部署
安裝jdk 下載zookeeper 程序 修改zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataLogDir=/zookeeper/logs dataDir=/zookeeper/data clientPort=2181 server.1= 10.39.6.178:2888:3888 server.2= 10.39.6.179:2888:3888 server.3= 10.39.6.180:2888:3888 添加myid,這裏的myid 對應的server.n 一一對應。 這裏的server.1 所以node 1節點myid=1 echo "1" /zookeeper/data/myid 創建所需要的目錄 添加環境變量 vi /etc/profile export ZOOKEEPER_HOME=/application/zookeeper-3.4.10 export PATH=$PATH:$ZOOKEEPER_HOME/bin
啟動
將node 1 的配置全部打包拷貝到其他節點上,啟動zookeeper 就行了
啟動有錯誤可以使用zkServer.sh start-foreground 來追蹤錯誤
角色
zkServer.sh status 會顯示zookeeper 狀態
Mode: leader
這裏的Mode: leader 和follower
一個集群中只有leader
leader 領導者,用於負責進行投票的發起決議,更新系統狀態
follower 跟隨者 用於接受客戶端請求並想客戶端返回結果,在選主過程中參與投票
配置參數詳解
tickTime 這個時間是作為zookeeper服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是說每個tickTime 時間就會發送一個心跳。 initLimit 這個配置項是用來配置zookeeper接受客戶端初始化連接時最長能忍受多少個心跳時間間隔數。 當已經超過10個心跳的時間(tickTime) 長度後zookeeper 服務器還沒有收到客戶端的返回信息,那麽表明這個客戶端連接失敗,總的時間長度就是10*2000=20秒 syncLimit 這個配置項標識leader 與follower 之間發送消息,請求和應答時間長度,最長不能超過多少個tickTime 的長度,總的時間長度是5*2000=10秒 dataDir 保存數據目錄 clientPort 端口,這個端口是客戶端連接zookeeper服務器端口,zookeeper 會監聽這個端口接受客戶端訪問請求 server.n=B:C:D 的n是一個數字,表示這個是第幾號服務器,B是這個服務器的IP地址,C第一個端口用來集群成員的信息交換,表示這個服務器與集群中的leader 服務器交換信息的端口,D是leader 掛掉時專門用來進行選舉leader 所用的端口
連接zookeeper集群
zkCli.sh -server 10.39.6.178:2181
Hadoop 安裝
下載地址 [http://apache.fayea.com/hadoop/common/stable/hadoop-2.7.4.tar.gz]()
hbase01 到hbase02 hbase03 需要使用ssh無密鑰登錄。
hadoop 配置文件
配置文件 | 配置對象 | 主要內容 |
---|---|---|
core-site.xml | 集群全局參數 | 用戶定義系統級別的參數,如HDFS URL Hadoop臨時目錄 |
hdfs-site.xml | HDFS 參數 | 如名稱節點和數據節點存放位置,文件副本的個數,文件讀取權限 |
mapred-site.xml | Mapreduce參數 | 包括JobHistry Server 和應用程序參數兩部分,如reduce 任務的默認個數,任務所能夠使用內存的默認上下限 |
yarn-site.xml | 集群資源管理系統參數 | 包括ResourceManager,NodeManager 的通信端口,web 監控端口等 |
集群配置
vi /application/hadoop-2.7.4/etc/hadoop/hadoop-env.sh
export JAVA_HOME="/usr/java/jdk1.8.0_144"
(rpm 安裝的jdk 存儲位置)
vi /application/hadoop-2.7.4/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hbase01:9000</value>
<description>The name of the default file system</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/zookeeper/hadoopdata/tmp</value>
<description>A base for other temporary directories</description>
</property>
<property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
</configuration>
vi /application/hadoop-2.7.4/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/zookeeper/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/zookeeper/hadoopdata/dfs/data</value>
</property>
</configuration>
vi /application/hadoop-2.7.4/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vi /application/hadoop-2.7.4/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hbase01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
vi /application/hadoop-2.7.4/etc/hadoop/slaves
hbase02
hbase03
將所有的配置COPY 到hbase02 hbase03
格式化HDFS存儲
1. 在namenode 上執行
進入到hadoop 目錄
./bin/hadoop namenode -format
2. 在datanode
./bin/hadoop datanode -format
啟動Hadoop
1. 啟動HDFS
./sbin/start-dfs.sh
./sbin/stop-dfs.sh
2. 啟動Yarn
./sbin/start-yarn.sh
./sbin/stop-yarn.sh
3.啟動MapReduce JobHistory Server
./sbin/mr-jobhistory-daemon.sh start historyserver
jps 查看進程
jps
12016 ResourceManager
11616 NameNode
11828 SecondaryNameNode
12317 JobHistoryServer
31453 Jps
web 訪問端口
NameNode 50070
ResourceManager 8088
MapReduce JobHistory Server 19888
Hbase 安裝
hbase 配置文件修改
vi conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_144
export HBASE_MANAGES_ZK=false
vi conf/hbase-site.xml
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hbase01:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hbase01,hbase02,hbase03</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/zookeeper/data</value>
</property>
</configuration>
vi conf/regionservers
hbase02
hbase03
將上述配置同步到其他節點
hbase 啟動
./bin/start-hbase.sh
查看Hbase 的狀態
jps
12016 ResourceManager
11616 NameNode
12546 HMaster
10403 QuorumPeerMain
11828 SecondaryNameNode
21225 Jps
12317 JobHistoryServer
進入hbase shell,使用命令查看hbase 狀態
./bin/hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/application/hbase-1.2.6/lib/slf4j-l
HBase Shell; enter ‘help<RETURN>‘ for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017
hbase(main):001:0> status
1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load
hbase(main):002:0>
Hbase web ui 端口為16010
hbase 集群部署