Hadoop平臺安裝
目錄
- Hadoop 叢集環境安裝手冊
Hadoop 叢集環境安裝手冊
一、JDK安裝
1.1 JDK1.8下載
到oracle官網下載jdk-8u101-linux-x64.tar.gz
先查詢並解除安裝自帶openJDK
rpm -qa |grep openjdk
yum -y remove *openjdk*
解壓jdk-8u101-linux-x64.tar.gz到安裝目錄,如果沒有特別說明,全文中安裝目錄都是指/data0/soft/
remove jdk-8u101-linux-x64.tar.gz /data0/soft/ cd /data0/soft tar zxvf jdk-8u101-linux-x64.tar.gz mv jdk-8u101-linux-x64.tar.gz java
配置JAVA_HOME
echo '## java configuration ' >> /etc/profile
echo 'export JAVA_HOME=/data0/soft/java' >> /etc/profile
echo 'export PATH=.:$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
驗證是否安裝成功
java -version
二、Zookeeper安裝
2.1 Zookeeper下載準備
去Zookeeper官網或者用wget下載安裝包zookeeper-3.4.9.tar.gz
2.2 Zookeeper安裝配置
把zookeeper-3.4.9.tar.gz移動到安裝目錄並解壓
mv zookeeper-3.4.9.tar.gz /data0/soft/
cd /data0/soft
tar zxvf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 zookeeper
編輯並儲存zoo.cfg,配置檔案如下
vi /data0/soft/zookeeper/conf/zoo.cfg
#重新寫入以下配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data0/soft/zookeeper
clientPort=2181
server.1=dmp1:2888:3999
server.2=dmp2:2888:3999
server.3=dmp3:2888:3999
編輯hosts檔案,對應server.*的主機名
vi /etc/hosts
#寫入叢集主機名對映關係
10.20.26.30 dmp1
10.20.26.31 dmp2
10.20.26.32 dmp3
在dataDir下新增檔案myid,填寫值為server.*對應的編號
echo '1'>/data0/soft/zookeeper/myid
新增Zookeeper環境變數
echo '## zk configuration ' >> /etc/profile
echo 'export ZOOKEEPER_HOME=/data0/soft/zookeeper' >> /etc/profile
echo 'export PATH=$ZOOKEEPER_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
啟動Zookeeper並檢視狀態,可以看到節點是leader還是follower
zkServer.sh start
zkServer.sh status
三、Hadoop安裝
3.1 Hadoop下載準備
這裡用下載的hadoop-2.6.0-cdh5.5.0.tar.gz(!注:其中的配置檔案是已經配置過的,只需要改成對應叢集的名稱及目錄路徑即可)
如果只有一塊磁碟,該文件中的data0、data1都指data目錄
3.2Hadoop叢集規劃
hostname | ip | 安裝元件 |
---|---|---|
dmp1 | Namenode/ResourceManager/journalNode/zkfc/jobhistoryServer /timeLineServer/proxyServer/metastore/hiveSerer2 | |
dmp2 | namenode/ResourceManager/journalNode/zkfc | |
dmp3 | DataNode/NodeManager/journalNode | |
dmp4 | DataNode/NodeManager | |
dmp5 | DataNode/NodeManager | |
dmp6 | DataNode/NodeManager | |
... | DataNode/NodeManager |
3.2系統配置
#### 3.2.1修改hosts檔案####
dmp1xx.xx.xx.xx
dmp2xx.xx.xx.xx
...
修改所有節點的hosts檔案,新增ip和叢集列表中對應hostname
3.2.2修改hostname
修改所有節點的/etc/sysconfig/network檔案,修改對應的hostname,重啟生效
3.2.3關閉防火牆
service iptables off
//如果區域網內埠不設防火牆則不需要關閉
3.2.4修改linux引數
修改所有節點檔案:/etc/selinux/config,修改SELINUX=disabled
修改所有節點檔案開啟數量:/etc/security/limits.conf,增加一行內容 : * - nofile 1024000
修改所有節點最大程序數:/etc/security/limits.d/90-nproc.conf,增加一行:* - nproc 262144
修改所有節點記憶體配置:/etc/sysctl.conf,改為:
vm.overcommit_memory=1
vm.swappiness=0
#*# 1
net.core.somaxconn=32768
關閉THP:
#*# 2
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
#### 3.2.5新增使用者 ####
新增使用者hadoop,並將hadoop新增到hadoop組
useradd hadoop
useradd hadoop
usermod -a -G hadoop hadoop
passwd hadoop Paic1234
將每個節點的資料磁碟路徑許可權設為775,這裡假設每個磁碟掛載目錄為data0,data1..data*
chmod -R 775 /data0
chmod -R 775 /data1
3.2.6新增節點間hadoop使用者免密登陸
在dmp1上用hadoop使用者執行
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
//在每一個從節點執行 ssh-copy-id -i dmp1,將公鑰傳送到主節點
//將公鑰檔案傳送到各節點
for i in {2..6};do scp ~/.ssh/authorized_keys [email protected]$i:~/.ssh/;done;
//配置known_hosts驗證關閉
vi /etc/ssh/ssh_config
StrictHostKeyChecking no
3.2.7解壓安裝hadoop
將安裝包hadoop-2.6.0-cdh5.5.0.tar.gz解壓到/data0/soft,注意,如果安裝包根目錄native目錄為空則需要去下載編譯native檔案。
設定環境變數到~/.bashrc
export HADOOP_HOME=/data0/soft/hadoop
export HIVE_HOME=/data0/soft/hive
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
3.2.8建立工作目錄
為每個節點建立使用者工作目錄:/data0/hadoop/
建立hdfs工作目錄:/data0/hadoop/dfs、/data0/hadoop/dfs/logs、/data0/hadoop/dfs/pid
建立hive工作目錄:/data0/hadoop/hive、/data0/hadoop/hive/logs
3.3Hadoop配置
3.3.1修改core-site.xml
name | value | 描述 |
---|---|---|
fs.defaultFS | hdfs://dmp | 這裡的值指的是預設的HDFS路徑。 |
hadoop.tmp.dir | /data0/hadoop/tmp | 這裡的路徑預設是NameNode、DataNode、JournalNode等存放資料的公共目錄。使用者也可以自己單獨指定這三類節點的目錄 |
ha.zookeeper.quorum | dmp1:2181,dmp2:2181,dmp3:2181 | 這裡是ZooKeeper叢集的地址和埠。注意,數量一定是奇數,且不少於三個節點 |
fs.trash.interval | 2880 | 設定回收站儲存時間 |
hadoop.proxyuser.dmp.hosts | * | 指定有訪問許可權的地址 |
hadoop.proxyuser.dmp.group | * | 指定有訪問許可權的使用者組 |
3.3.2修改hdfs-site.xml
name | value | 描述 |
---|---|---|
dfs.replication | 3 | 指定DataNode儲存block的副本數量 |
dfs.namenode.name.dir | file:///data0/hdfs/name | 指定namenode元資料資訊儲存位置 |
dfs.datanode.data.dir | file:///data0/hdfs/data,file:///data1/hdfs/data,file:///data2/hdfs/data,.. | 指定datanode元資料資訊儲存位置, 設定成所有的磁碟; 測試環境中如果是隻有一個盤就只寫一個盤 |
dfs.nameservices | dmp | Hdfs的叢集名稱,自己定 |
dfs.ha.namenodes.dmp | dmp1,dmp2 | 指定NameService是dmp時的namenode有哪些,這裡的值也是邏輯名稱,名字隨便起,相互不重複即可 |
dfs.namenode.rpc-address.dmp.dmp1 | dmp1:9000 | 指定rm1的RPC地址 |
dfs.namenode.http-address | 0.0.0.0:50070 | 指定http地址 |
dfs.namenode.rpc-address.dmp.dmp2 | dmp2:9000 | 指定rm2的RPC地址 |
dfs.journalnode.http-address | 0.0.0.0:8480 | 指定journalnode http |
dfs.namenode.shared.edits.dir | qjournal://dmp1;dmp2;dmp3/dmp | 指定dmp的兩個NameNode共享edits檔案目錄時,使用的JournalNode叢集資訊 |
dfs.ha.automatic-failover.enabled | true | 即當NameNode出故障時,是否自動切換到另一臺NameNode |
dfs.client.failover.proxy.provider.dmp | org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider | 指定NameNode出故障時,哪個實現類負責執行故障切換 |
dfs.journalnode.edits.dir | /data0/hdfs/journal | 指定JournalNode叢集在對NameNode的目錄進行共享時,自己儲存資料的磁碟路徑 |
dfs.ha.fencing.methods | sshfence | (說明:如果節點的22埠改了,請標明改成什麼埠, hadoop2是使用者名稱, 36102是節點埠 |
dfs.ha.fencing.ssh.private-key-files | /home/hadoop/.ssh/id_rsa | 如果使用ssh進行故障切換,使用ssh通訊時用的金鑰儲存的位置 |
dfs.permissions | false | 是否開啟hdfs訪問許可權驗證 |
3.3.3修改檔案yarn-site.xml
key | value | desc |
---|---|---|
yarn.resourcemanager.ha.enabled | true | 開啟resourcemanager ha模式 |
yarn.resourcemanager.cluster-id | yarn-ha-cluster | 設定resourcemanager ha的叢集名稱,程序啟動後這個名稱可以在zookeeper中檢視 |
yarn.resourcemanager.ha.rm-ids | rm1,rm2 | 設定resourcemanager的id,可以與主機同名, 本例子與主機同名 |
yarn.resourcemanager.hostname.rm1 | dmp1 | 指定rm1對應哪一臺主機 |
yarn.resourcemanager.hostname.rm2 | dmp2 | 指定rm2對應哪一臺主機 |
yarn.resourcemanager.zk-address | dmp1:2181,dmp2:2181,dmp3:2181 | 設定zkurl |
yarn.nodemanager.aux-services | mapreduce_shuffle | 用什麼方式進行資料傳遞 |
yarn.log-aggregation-enable | true | |
yarn.log.server.url | http://dmp1:19888/jobhistory/logs/ | 設定jobhistory的地址。 在這個地址有 |
yarn.resourcemanager.scheduler.class | org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler | 設定調 度器,不設就用預設。預設也可以 |
yarn.resourcemanager.scheduler.monitor.enable | true | 支援資源搶佔 |
yarn.nodemanager.local-dirs | file:///data0/dfs/nm-local-dir,file:///data1/dfs/nm-local-dir,.. | |
yarn.nodemanager.resource.memory-mb | 20480 | nodeManager可分配的記憶體大小,設定成比總記憶體略小。120g的機器設定成110g |
yarn.nodemanager.resource.cpu-vcores | 32 | 設定nodemanager節點記憶體大小,CPU個數 |
yarn.timeline-service.enabled | true | 開啟timeline服務 |
yarn.log-aggregation.retain-seconds | 86400 | 日誌保留時間,預設不刪除 |
3.3.4修改mapred-site.xml
key | value | desc |
---|---|---|
mapreduce.framework.name | yarn | 開啟resourcemanager ha模式 |
mapreduce.jobhistory.address | dmp1:10020 | 設定jobhistory地址 |
mapreduce.jobhistory.webapp.address | dmp1:19888 | 設定ui jobhistory地址 |
mapreduce.reduce.input.buffer.percent | 0.8 | mr buffer佔最大記憶體比率 |
3.3.5修改slaves檔案
將datanode的hostname按行寫入slaves檔案
3.3.6修改yarn-env.sh檔案
YARN_LOG_DIR=/data0/hadoop/dfs/logs
YARN_PID_DIR=/data0/hadoop/dfs/pid
export JAVA_HOME=/data0/soft/java/jdk1.8.0_101
3.3.7修改hadoop-env.sh 檔案
export HADOOP_LOG_DIR=/data0/hadoop/dfs/log
export HADOOP_PID_DIR=/data0/hadoop/dfs/pid
export JAVA_HOME=/data0/soft/java/jdk1.8.0_101
3.3.8修改mapred-env.sh
export HADOOP_LOG_DIR=/data0/hadoop/dfs/log
export HADOOP_PID_DIR=/data0/hadoop/dfs/pid
export JAVA_HOME=/data0/soft/java/jdk1.8.0_101
3.3.9hadoop安裝目錄分發
將配置好的hadoop目錄用scp分發到所有節點上
每個節點配置相同
3.4啟動Hadoop叢集
3.4.1啟動journalNode
在dmp1、dmp2上執行:hadoop-daemon.sh start journalnode
3.4.2格式化zk
在dmp1上執行:hdfs zkfc -formatZK
3.4.3格式化namenode
在dmp1上執行
hdfs namenode -format
hadoop-daemon.sh start namenode
在dmp2上執行
hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namenode
3.4.4啟動hdfs
在dmp1上執行:start-dfs.sh
在dmp1上執行:start-yarn.sh
3.4.5啟動其他服務
在dmp1上執行:
mr-jobhistory-daemon.sh start historyserver
yarn-daemon.sh start proxyserver
yarn-daemon.sh start timelineserver
3.4.6Hadoop啟動與停止
初始化完以後的常規啟動和停止
啟動,在dmp1上執行:
start-dfs.sh
start-yarn.sh
停止,在dmp1上執行:
stop-dfs.sh
stop-yarn.sh
訪問
http://dmp1:50070
http://dmp2:50070
可以檢視hadoop叢集狀態,其中一個為active,一個為standby
四、Hive安裝
4.1Mysql安裝
這裡hive使用mysql作元資料儲存,mysql安裝過程略。
安裝完以後建立hive元資料的schema
create database hive default charset latin1;
4.2Hive下載準備
這裡使用hive2.1.1版本進行安裝。(!注:其中的配置檔案是已經配置過的,已包含mysql驅動包,只需要改成對應叢集的名稱及目錄路徑即可)
4.3Hive配置
4.3.1解壓Hive
將hive2.1.1.tar.gz解壓到/data0/soft
4.3.2修改環境變數
在hadoop安裝過程中已配置
4.3.3修改hive-size.xml
cp hive-default.xml.template hive-site.xml
修改javax.jdo.option.ConnectionURL的值為mysql連線url
修改javax.jdo.option.ConnectionDriverName為mysql使用者名稱
修改javax.jdo.option.ConnectionPassword的值為mysql密碼
修改hive.metastore.schema.verification的值為false
4.3.4修改日誌檔案
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
4.3.5初始化元資料
登陸mysql,執行:
create database hive default charset latin1;//database名稱與url一致
在hive的bin下面執行:./schematool -initSchema -dbType mysql
4.3.6新增metastore啟動指令碼
vi start-metastore.sh
#/bin/sh
if [ -z "${HIVE_HOME}" ]; then
export HIVE_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi
echo $HIVE_HOME
nohup $HIVE_HOME/bin/hive --service metastore > $HIVE_HOME/logs/metastore.log 2>&1 &
echo $$
chmod u+x start-metastore.sh
./start-metastore.sh
4.3.7新增hiveserver2啟動指令碼
vi start-hiveserver2.sh
#/bin/sh
if [ -z "${HIVE_HOME}" ]; then
export HIVE_HOME="$(cd "`dirname "$0"`"/..; pwd)"
fi
echo $HIVE_HOME
nohup $HIVE_HOME/bin/hive --service hiveserver2 > $HIVE_HOME/logs/hiveserver2.log 2>&1 &
echo $$
chmod u+x start-hiveserver2.sh
./start-hiveserver2.sh
4.4啟動hive客戶端
執行命令:hive
即可以操作hive sql
5.Azkaban安裝
5.1下載準備
下載並編譯Azkaban3.10.0,這裡直接使用已編譯和配置的安裝包Azkaban3.10.0.tar.gz
5.2安裝配置
將Azkaban3.10.0.tar.gz解壓到/data0/soft目錄下
進入/data0/soft/azkaban/plugins/jobtypes/hive/
將plugin.properties和private.properties中hive.aux.jars.path修改為hive lib目錄
hive.aux.jars.path=/data0/soft/hive2.1.1/lib
進入/data0/soft/azkaban/plugins/jobtypes/spark/
將private.properties中jobtype.classpath註釋掉
進入/data0/soft/azkaban/plugins/jobtypes,將common.properties中相關應用的根目錄修改為實際安裝目錄
hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0
hive.home=/data0/soft/hive2.1.1
pig.home=/dpata0/soft/azkaban/plugins/jobtype/pig
//spark.home=不存在的元件不用配置
azkaban.home=/data0/soft/azkaban
修改private.properties,參照上面修改應用對應目錄
hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0
hive.home=/data0/soft/hive2.1.1
jobtype.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*:${hive.home}/conf:${hive.home}/lib/*
修改commonprivate.properties,按上面修改應用對應根目錄,然後修改類路徑
hadoop.home=/data0/soft/hadoop-2.6.0-cdh5.5.0
hive.home=/data0/soft/hive2.1.1
pig.home=/dpata0/soft/azkaban/plugins/jobtype/pig
//spark.home=不存在的元件不用配置
azkaban.home=/data0/soft/azkaban
jobtype.global.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*:${hive.home}/conf:${hive.home}/lib/*
hadoop.classpath=${hadoop.home}/etc/hadoop:${hadoop.home}/share/hadoop/common/*:${hadoop.home}/share/hadoop/common/lib/*:${hadoop.home}/share/hadoop/hdfs/*:${hadoop.home}/share/hadoop/hdfs/lib/*:${hadoop.home}/share/hadoop/yarn/*:${hadoop.home}/share/hadoop/yarn/lib/*:${hadoop.home}/share/hadoop/mapreduce/*:${hadoop.home}/share/hadoop/mapreduce/lib/*
修改/data0/soft/azkaban/conf/azkaban.properties
default.timezone.id=Asia/Shanghai
database.type=mysql
mysql.port=3306
mysql.host=10.1.2.xxx
mysql.database=azkaban
mysql.user=user
mysql.password=pass
mysql.numconnections=50
azkaban.webserver.url=http://10.1.2.xxx:8081
azkaban.name=DMP
azkaban.label=DMP Scheduling Center
修改/data0/soft/azkaban/bin/azkaban-solo-start.sh,加入java環境變數
export PATH=/usr/java/jdk1.8.0_101/bin:$PATH
拷貝commons-configuration-1.6.jar和hadoop-common-2.6.0-cdh5.5.0.jar兩個jar包到/data0/soft/azkaban/lib目錄下(這裡已經打包在裡邊了)
5.3啟動和停止Azkaban
5.3.1啟動Azkaban
首先在mysql中建立azkaban庫
create database azkaban;
在根目錄下啟動Azkaban(必須),bin/azkaban-solo-start.sh
5.3.2停止Azkaban
在根目錄下關閉Azkaban,bin/azkaban-solo-shutdown.sh
6.Scala安裝
6.1 Scala下載
到scala官網下載spark所需版本的安裝包,scala-2.11.8.tgz。
6.2配置
將scala解壓到/user
在hadoop使用者下新增Scala環境變數
export SCALA_HOME=/usr/scala
export HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0
export HIVE_HOME=/data0/soft/hive2.1.1
export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
PATH=$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
配置生效後,輸入scala,可以顯示scala的版本資訊,則表示配置成功。
7. Spark安裝
7.1 Spark下載
對應scala2.11.8的版本,下載spark-2.1.0-bin-hadoop2.6.tgz
7.2安裝配置
將安裝包解壓到/data0/soft/下。
hadoop使用者配置環境變數到bashrc
export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6
export SCALA_HOME=/usr/scala
export HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0
export HIVE_HOME=/data0/soft/hive2.1.1
export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
PATH=$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
修改根目錄conf下spark-env.sh 新增
export SPARK_MASTER_IP=dmp1
export SPARK_WORKER_MEMORY=10g
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
修改slaves檔案,新增節點名稱
dmp2
dmp3
dmp4
dmp5
dmp6
將hive conf下面的hive-site.xml檔案拷貝到spark conf下面(完成sparksql和hive元資料共享)
7.3啟動並驗證
進入spark sbin目錄(防止與hadoop命令衝突),啟動start-all.sh
./start-all.sh
然後使用spark-shell進入scala操作介面來做spark操作。
8. Hbase 安裝
8.1 Hbase下載
到官網下載Hbase1.2.6版本
8.2 安裝配置
將Hbase1.2.6安裝包解壓到/data0/soft目錄下
配置環境變數
export SPARK_HOME=/data0/soft/spark-2.1.0-bin-hadoop2.6
export SCALA_HOME=/usr/scala
export HADOOP_HOME=/data0/soft/hadoop-2.6.0-cdh5.5.0
export HIVE_HOME=/data0/soft/hive2.1.1
export HBASE_HOME=/data0/soft/hbase-1.2.6
export ZOOKEEPER_HOME=/data0/soft/zookeeper-3.4.5-cdh5.5.0
PATH=$HBASE_HOME:$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
修改所有hbase根目錄下conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://dmp/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>dmp4:2182,dmp5:2182,dmp6:2182</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/data0/dfs/hbase/tmp/</value>
</property>
<property>
<name>hbase.local.dir</name>
<value>/data0/dfs/hbase/local/</value>
</property>
<property>
<name>hbase.master</name>
<value>30.16.94.72:60000/</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2182</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.client.socket-timeout</name>
<value>300000</value>
</property>
<!--zookeeper儲存資料位置-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data0/dfs/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.property.tickTime</name>
<value>6000</value>
</property>
<property>
<name>hbase.client.write.buffer</name>
<value>8388608</value>
</property>
<property>
<name>hbase.thrift.support.proxyuser</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.thrift.http</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.thrift.framed</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.thrift.type</name>
<value>TThreadPoolServer</value>
</property>
<!--這裡設定Master併發最大執行緒數-->
<property>
<name>hbase.regionserver.handler.count</name>
<value>300</value>
</property>
<property>
<name>hbase.table.sanity.checks</name>
<value>false</value>
</property>
<!--ZooKeeper 會話超時.HBase把這個值傳遞改zk叢集,向他推薦一個會話的最大超時時間-->
<property>
<!--every 30s,the master will check regionser is working -->
<name>zookeeper.session.timeout</name>
<value>1200000</value>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>32212254720</value>
</property>
<property>
<name>hbase.hstore.blockingStoreFiles</name>
<value>50</value>
</property>
</configuration>
修改master hbase-evn.sh
export JAVA_HOME=/data0/soft/java
export HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoop
export HBASE_HEAPSIZE=4096
export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data0/dfs/hbase/logs/hbase-gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60"
export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/dfs/hbase/logs/server-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=512M"
export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
export HBASE_MASTER_OPTS="-Xmx3g $HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"
export HBASE_REGIONSERVER_OPTS="-Xmx4g -XX:+ParallelRefProcEnabled -XX:-ResizePLAB -XX:ParallelGCThreads=15 $HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
export HBASE_LOG_DIR=/data0/dfs/hbase/logs
export HBASE_MANAGES_ZK=true
修改regionserver hbase-env.sh
export JAVA_HOME=/data0/soft/java
export HBASE_CLASSPATH=/data0/soft/hadoop-2.6.0-cdh5.5.0/etc/hadoop
export HBASE_HEAPSIZE=8192
export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data0/dfs/hbase/logs/hbase-gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60"
export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/data0/dfs/hbase/logs/server-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=1 -XX:GCLogFileSize=512M"
export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"
export HBASE_REGIONSERVER_OPTS="-Xmx32g -Xms32g -Xmn1g -Xss256k -XX:SurvivorRatio=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:MaxTenuringThreshold=15 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 $HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
export HBASE_LOG_DIR=/data0/dfs/hbase/logs
export HBASE_MANAGES_ZK=true
在conf下面新增backup-masters檔案
master2
在conf下面新增regionservers檔案
dmp3
dmp4
dmp5
dmp6
8.3 啟動與關閉
訪問master1:16010可以看到hbase叢集狀態
#啟動和停止hbase相關主要服務
start-hbase.sh
stop-hbase.sh
#啟動thrift服務
hbase-daemon.sh start thrift -p 9090
#啟動rest服務
hbase-daemon.sh start rest -p 8180