HP DL160 Gen9服務器集羣部署文檔
硬件配置
=======================================================
Server Memory CPU DISK NetWork
DL160① 32GB 6*1.9GHZ 2*2TB(SATA) 2*1GBE
DL160② 32GB 6*1.9GHZ 2*2TB(SATA) 2*1GBE
DL160③ 24GB 6*1.9GHZ 2*2TB(SATA) 2*1GBE
DL160④ 24GB 6*1.9GHZ 2*2TB(SATA) 2*1GBE
DL160⑤ 24GB 6*1.9GHZ 2*2TB(SATA) 2*1GBE
DL160⑥ 8GB 6*1.9GHZ 2*1TB(SATA) 2*1GBE
=======================================================
集羣規劃
==============================================================
Host IP Role Soft Process
lf1 192.168.0.211 HDFS Master Hadoop2.4.1 NameNode(Active)
HBase Master Hbase0.98.8 DFSZKFailoverController
HMaster(Active)
lf3 192.168.0.213 YARN Master Hadoop2.4.1 ResourceManager(Active)
HBase Master Hbase0.98.8 DFSZKFailoverController
HMaster(Backup)
lf5 192.168.0.215 HDFS Slave Hadoop2.4.1 DataNode
JournalNode
YARN Slave Hadoop2.4.1 NodeManager
ZooKeeper Follower ZooKeeper3.4.5 QuorumPeerMain
HBase Slave Hbase0.98.8 HRegionServer
Sqoop Sqoop1.4.5 Sqoop
lf6 192.168.0.216 HDFS Slave Hadoop2.4.1 DataNode
JournalNode
YARN Slave Hadoop2.4.1 NodeManager
ZooKeeper Leader ZooKeeper3.4.5 QuorumPeerMain
HBase Slave Hbase0.98.8 HRegionServer
Hive Hive0.14.0
lf7 192.168.0.217 HDFS Slave Hadoop2.4.1 DataNode
JournalNode
YARN Slave Hadoop2.4.1 NodeManager
ZooKeeper Follower ZooKeeper3.4.5 QuorumPeerMain
HBase Slave Hbase0.98.8 HRegionServer
===============================================================
1、安裝JDK(在lf1節點上)
cd /home/lefuBigDataDev/clouds/
安裝jdk
tar -zxvf jdk-7u65-linux-x64.tar.gz
mv jdk1.7_65 jdk
配置JAVA_HOME到環境變量
vim /etc/profile
export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
shift+zz
刷新環境變量使JAVA_HOME當即生效
source /etc/profile
驗證jdk是否安裝成功
java -version
複製配置好的jdk和/etc/profile到其餘節點
scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf3:/home/lefuBigDataDev/clouds/
scp /etc/profile lefuBigDataDev@lf3:/etc/ ##在lf5節點上執行source /etc/profile使環境變量當即生效
scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf5:/home/lefuBigDataDev/clouds/
scp /etc/profile lefuBigDataDev@lf5:/etc/ ##在lf5節點上執行source /etc/profile使環境變量當即生效
scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/
scp /etc/profile lefuBigDataDev@lf6:/etc/ ##在lf6節點上執行source /etc/profile使環境變量當即生效
scp -r /home/lefuBigDataDev/clouds/jdk lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/
scp /etc/profile lefuBigDataDev@lf7:/etc/ ##在lf7節點上執行source /etc/profile使環境變量當即生效
2、安裝ZooKeeper(在lf5節點上)
cd /home/lefuBigDataDev/clouds/
安裝ZooKeeper
tar -zxvf zookeeper-3.4.5.tar.gz
mv zookeeper-3.4.5 zk
修改zookeeper配置文件
cd /home/lefuBigDataDev/clouds/zk/conf
mv zoo_sample.cfg zoo.cfg
zoo.cfg
dataDir=/home/lefuBigDataDev/clouds/zk/data
server.1=lf5:2888:3888
server.2=lf6:2888:3888
server.3=lf7:2888:3888
cd /home/lefuBigDataDev/clouds/zk/
mkdir data
cd data
echo "1">myid
配置ZOOKEEPER_HOME到環境變量
vim /etc/profile
export ZOOKEEPER_HOME=/home/lefuBigDataDev/clouds/jdk
export PATH=.:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
shift+zz
刷新環境變量使ZOOKEEPER_HOME當即生效
source /etc/profile
複製配置好的zk和/etc/profile到其餘節點
複製到lf6節點:scp -r /home/lefuBigDataDev/clouds/zk lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/ ##修改zk/data/myid的值爲2
scp /etc/profile lefuBigDataDev@lf6:/etc/ ##在lf6節點上執行source /etc/profile使環境變量當即生效
複製到lf7節點:scp -r /home/lefuBigDataDev/clouds/zk lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/ ##修改zk/data/myid的值爲3
scp /etc/profile lefuBigDataDev@lf7:/etc/ ##在lf7節點上執行source /etc/profile使環境變量當即生效
驗證ZooKeeper是否安裝成功
在lf5節點上執行啓動ZooKeeper命令:
zkServer.sh start ##啓動ZooKeeper
jps ##若是出現了QuorumPeerMain進程表示ZooKeeper啓動成功
zkServer.sh status ##偶數節點爲Follower
在lf6節點上執行命令:
zkServer.sh start ##啓動ZooKeeper
jps ##若是出現了QuorumPeerMain進程表示ZooKeeper啓動成功
zkServer.sh status ##奇數節點爲Leader
在lf7節點上執行命令:
zkServer.sh start ##啓動ZooKeeper
jps ##若是出現了QuorumPeerMain進程表示ZooKeeper啓動成功
zkServer.sh status ##偶數節點爲Follower
3、安裝Hadoop(在lf1節點上)
cd /home/lefuBigDataDev/clouds/
安裝Hadoop
tar -zxvf hadoop-2.4.1-x64.tar.gz
mv hadoop-2.4.1 hadoop
修改hadoop配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-env.sh、mapred-site.xml、yarn-env.sh、yarn-site.xml、slaves)
cd /home/lefuBigDataDev/clouds/hadoop/etc/hadoop
一、hadoop-env.sh
export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
export HADOOP_HEAPSIZE=2048
二、core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
<description>指定hdfs的nameservice爲ns1</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/lefuBigDataDev/clouds/hadoop/tmp</value>
<description>指定hadoop存放數據的臨時目錄</description>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>lf5:2181,lf6:2181,lf7:2181</value>
<description>採用QJM方式的高可用須要用到的zookeeper集羣節點</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>指定hadoop輔助IO操做的緩衝區爲128KB,默認是4KB</description>
</property>
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
<description>hdfs實現數據壓縮的算法包</description>
</property>
<property>
<name>fs.trash.interval</name>
<value>43200</value>
<description>開啓hadoop回收站功能,保存回收站的數據30天,回收站默認爲0分鐘,表示關閉</description>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>43200</value>
<description>開啓hadoop回收站檢查間隔(默認爲0分鐘,必須小於等於fs.trash.interval的時間)</description>
</property>
</configuration>
三、hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/lefuBigDataDev/clouds/hadoop/dfs/name</value>
<description>指定hadoop的NameNode存放元數據fsImage文件在本地文件系統上的路徑</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/lefuBigDataDev/clouds/hadoop/dfs/data</value>
<description>指定hadoop的DataNode存放數據塊在本地文件系統上的路徑,多個文件夾用逗號分隔</description>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>/home/lefuBigDataDev/clouds/hadoop/dfs/name</value>
<description>指定hadoop的NameNode存放編輯日誌edits文件在本地文件系統上的路徑</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>指定hdfs上存放數據的副本數爲3,徹底分佈式下默認爲3</description>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
<description>指定hdfs的數據塊大小爲128MB,默認塊大小爲128MB</description>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
<description>啓用REST方式經過web查看hdfs上的文件、文件夾等詳細信息</description>
</property>
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
<description>指定hdfs的nameservice爲ns1,須要和core-site.xml中的保持一致</description>
</property>
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
<description>ns1下面有兩個NameNode,分別是nn1,nn2</description>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>lf1:9000</value>
<description>nn1的RPC通訊地址</description>
</property>
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>lf1:50070</value>
<description>nn1的http通訊地址</description>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>lf2:9000</value>
<description>nn2的RPC通訊地址</description>
</property>
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>lf2:50070</value>
<description>nn2的http通訊地址</description>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://lf5:8485;lf6:8485;lf7:8485/ns1</value>
<description>指定NameNode的元數據在JournalNode上的存放位置</description>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/lefuBigDataDev/clouds/hadoop/dfs/journal</value>
<description>指定JournalNode在本地磁盤存放數據的位置</description>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
<description>活動NameNode失效時與備用NameNode完成自動切換</description>
</property>
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
<description>配置自動切換實現方式的java類</description>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
<description>非平穩故障轉移須要使用規避(fencing)機制,多種規避方法以換行分隔,每一個規避方法一行</description>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/lefuBigDataDev/.ssh/id_rsa</value>
<description>使用規避sshfence隔離機制時須要ssh免登錄</description>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
<description>配置規避sshfence隔離機制超時時間</description>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
<description>預留10GB給其餘非HDFS應用程序使用</description>
</property>
</configuration>
四、mapred-env.sh
export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
五、mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>指定mr框架爲yarn方式</description>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
<description>reducer進入排序(合併map的輸出)階段默認合併因子是10,這裏的100是爲了減小合併的次數</description>
</property>
<property>
<name>mapreduce.job.jvm.numtasks</name>
<value>-1</value>
<description>開啓jvm重用,在密集型任務計算時效率更高</description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.DefaultCodec</value>
<description>用於處理map任務輸出的編解碼器</description>
</property>
<property>
<name>mapreduce.map.maxattempts</name>
<value>4</value>
<description>map任務失敗最大嘗試次數,默認嘗試4次</description>
</property>
<property>
<name>mapreduce.reduce.maxattempts</name>
<value>4</value>
<description>reduce任務失敗最大嘗試次數,默認嘗試4次</description>
</property>
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>10</value>
<description>reduce任務複製map輸出的階段,默認啓用5個線程,這裏指定爲10,當map輸出數量小於該值時則只每一個map任務輸出對應一個reduce複製線程</description>
</property>
<property>
<name>mapreduce.map.speculative</name>
<value>false</value>
<description>關閉map任務的推測執行</description>
</property>
<property>
<name>mapreduce.reduce.speculative</name>
<value>false</value>
<description>關閉reduce任務的推測執行</description>
</property>
<property>
<name>mapreduce.job.reduce.slowstart.completedmaps</name>
<value>0.80</value>
<description>慢啓動reduce任務,默認調度器會等待做業5%的map任務結束後調用reduce任務開始等待,等待的時候reduce是會佔用reduce任務槽致使其餘做業分配不到reduce任務。若是是大型做業時會下降集羣的利用率,這裏設置某個做業的map任務運行到80%的時候再啓動reduce等待</description>
</property>
</configuration>
六、yarn-env.sh
export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
七、yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
<description>開啓ResourceManager的HA</description>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
<description>指定ResourceManager的集羣ID</description>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
<description>指定HA方式的活動和備用的ResourceManager的名字</description>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>lf3</value>
<description>指定活動的ResourceManager的節點</description>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>lf4</value>
<description>指定備用的ResourceManager的節點</description>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>lf5:2181,lf6:2181,lf7:2181</value>
<description>指定zk集羣地址</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>在NodeManager上擴展自定義服務</description>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>6</value>
<description>yarn使用虛擬cpu個數,默認8個;虛擬cpu個數在生產中建議和物理cpu核數相同</description>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>16384</value>
<description>yarn節點上可以使用的物理內存總量,默認8192MB(8GB),這裏設置爲16384MB(16GB)</description>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
<description>任務每使用1MB物理內存,最多可以使用虛擬內存量,默認是2.1MB</description>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>true</value>
<description>是否啓動一個線程檢查每一個任務正使用的物理內存量,若是任務超出分配值,則直接將其殺掉,默認是true</description>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>true</value>
<description>是否啓動一個線程檢查每一個任務正使用的虛擬內存量,若是任務超出分配值,則直接將其殺掉,默認是true</description>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
<description>單個任務可申請的最少物理內存量,默認是1024MB(1GB),若是一個任務申請的物理內存量少於該值,則該對應的值改成這個數</description>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>15360</value>
<description>單個任務可申請的最多物理內存量,默認是8192MB(8GB),這裏是15360MB(15GB)</description>
</property>
</configuration>
八、slaves
lf5
lf6
lf7
配置HADOOP_HOME到環境變量
vim /etc/profile
export HADOOP_HOME=/home/lefuBigDataDev/clouds/jdk
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
刷新環境變量使HADOOP_HOME當即生效
source /etc/profile
複製配置好的hadoop到其餘節點
複製到lf3節點:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf3:/home/lefuBigDataDev/clouds/ ##添加HADOOP_HOME到/etc/profile,而後執行source /etc/profile當即生效
複製到lf5節點:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf5:/home/lefuBigDataDev/clouds/ ##添加HADOOP_HOME到/etc/profile,而後執行source /etc/profile當即生效
複製到lf6節點:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/ ##添加HADOOP_HOME到/etc/profile,而後執行source /etc/profile當即生效
複製到lf7節點:scp -r /home/lefuBigDataDev/clouds/hadoop lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/ ##添加HADOOP_HOME到/etc/profile,而後執行source /etc/profile當即生效
開始準備啓動hadoop集羣,嚴格按照以下步驟執行
一、檢查lf五、lf六、lf7節點上的ZooKeeper集羣是否啓動(HDFS HA和YARN HA都須要依賴ZooKeeper集羣)
在lf5節點上執行命令:
zkServer.sh status ##若是沒有QuorumPeerMain進程則執行zkServer.sh start啓動
在lf6節點上執行命令:
zkServer.sh status ##若是沒有QuorumPeerMain進程則執行zkServer.sh start啓動
在lf7節點上執行命令:
zkServer.sh status ##若是沒有QuorumPeerMain進程則執行zkServer.sh start啓動
二、在lf1節點上啓動JournalNode
cd /home/lefuBigDataDev/clouds/hadoop/sbin
hadoop-daemons.sh start journalnode
三、在lf1節點上格式化hadoop的HDFS,即hadoop的分佈式文件系統
cd /home/lefuBigDataDev/clouds/hadoop/bin
hdfs namenode -format ##日誌中出現這行內容Storage directory /home/lefuBigDataDev/clouds/hadoop/dfs/name has been successfully formatted.則表示格式化HDFS成功
四、在lf1節點上格式化ZKFC,即ZooKeeper故障轉移控制器
cd /home/lefuBigDataDev/clouds/hadoop/bin
hdfs zkfc -formatZK ##日誌中出現這行內容ha.ActiveStandbyElector: Successfully created /hadoop-ha/ns1 in ZK.則表示格式化ZKFC成功
五、在lf1節點上啓動hadoop的HDFS
cd /home/lefuBigDataDev/clouds/hadoop/sbin
start-dfs.sh
六、在lf3節點上啓動hadoop的YARN
cd /home/lefuBigDataDev/clouds/hadoop/sbin
start-yarn.sh
七、驗證hadoop集羣是否啓動成功
一、使用shell驗證:
輸入命令:for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i `which jps`; done ##以下進程表示hadoop集羣啓動成功
lf1
3598 DFSZKFailoverController
9197 Jps
3283 NameNode
lf3
2902 ResourceManager
3037 JobHistoryServer
7491 Jps
lf5
3148 DataNode
3370 NodeManager
3255 JournalNode
3073 QuorumPeerMain
15238 Jps
lf6
3220 NodeManager
2917 QuorumPeerMain
10380 Jps
2997 DataNode
3105 JournalNode
lf7
2974 QuorumPeerMain
3163 JournalNode
3277 NodeManager
3056 DataNode
12048 Jps
二、使用瀏覽器方式驗證:
輸入lf1:50070驗證HDFS
輸入lf3:8088驗證YARN
輸入lf3:19888驗證HistoryServer
八、以上兩種方式驗證經過則表示Hadoop集羣正確部署並啓動成功
4、安裝HBase(在lf1節點上),前提條件是必須已有ZooKeeper集羣
cd /home/lefuBigDataDev/clouds/
安裝HBase
tar -zxvf hbase-0.98.8-hadoop2-bin.tar.gz
mv hbase-0.98.8-hadoop2-bin hbase
修改hbase配置文件(hbase-env.sh,hbase-site.xml,regionservers,須要將Hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下)
一、hbase-env.sh
export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
export HBASE_HEAPSIZE=3000
二、hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns1/hbase</value>
<description>指定hbase在HDFS上存儲的路徑</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>指定hbase集羣爲徹底分佈式</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>lf5:2181,lf6:2181,lf7:2181</value>
<description>指定HBase集羣使用外部的zookeeper集羣的地址</description>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
<description>RegionServer與zookeeper鏈接超時時間默認180000毫秒(3分鐘),當超過超時時間時,zookeeper會將超時節點的RegionServer從RegionServer集羣清單中清除,當HMaster收到移除通知後會對超時節點的Regions從新負載均衡,讓其餘存活的RegionServer接管。這裏改成60000毫秒(1分鐘)</description>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>80</value>
<description>RegionServer端開啓的RPC監聽器實例個數(RegionServer可以處理的IO請求線程數)。老版本默認10,0.98.8中默認是30,這裏改成80</description>
</property>
<property>
<name>hfile.block.cache.size</name>
<value>0.4</value>
<description>regionserver cache的大小,默認是0.4,是整個堆內存的多少比例做爲regionserver的cache,調大該值會提高查詢性能。若是有大量的查詢,寫入很少,則調到0.5。當這裏設置大了,有MapReduce做業Scan HBase時須要在MapReduce做業的Scan類中添加scan.setCacheBlocks(false),這樣能夠避免因爲MapReduce使用regionserver的cache都被替換,形成hbase的查詢性能明顯降低。</description>
</property>
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>268435456</value>
<description>regionserver的單個region memstore的大小,默認是128M,這裏設爲256。在hbase結構中,一個regionserver管理多個region,一個region對應一個hlog和多個store,一個store對應多個storefile和一個memstore,這裏的hbase.hregion.memstore.flush.size意思一個region下面的全部store裏面的memstore的達到多少時,開始將這些memstore flush到hdfs中去,配置這個值,需
要參考一下,平均每一個regionserver管理的region數量,若是每臺regionsever管理的region很少的話,能夠適當的調大該值,如512M時再flush</description>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>10737418240</value>
<description>默認10GB,regions會被hmaster balance入各個regionserver,後隨着單region的記錄數增長,觸發splite條件通常爲hbase.hregion.max.filesize,會對其進行splite,找到region的middlekey,以後一分爲二成爲兩個region,固然這是一個完整事務,以後會隨着balance入不一樣的regionserver進行負載方面的均衡。</description>
</property>
<property>
<name>hbase.hstore.compactionThreshold</name>
<value>5</value>
<description>設置執行Compaction(Major或Minor)操做的閾值,默認是3。對於HBase負載較重的系統,爲下降過頻繁的合併操做,這裏設置成5。</description>
</property>
</configuration>
三、regionservers
lf5
lf6
lf7
配置HBASE_HOME到環境變量
vim /etc/profile
export HBASE_HOME=/home/lefuBigDataDev/clouds/hbase
export PATH=.:$HBASE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
shift+ZZ
刷新環境變量使HBASE_HOME當即生效
source /etc/profile
複製配置好的hbase到其餘節點
複製到lf3節點:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf3:/home/lefuBigDataDev/clouds/ ##添加HBASE_HOME到/etc/profile,而後執行source /etc/profile當即生效
複製到lf5節點:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf5:/home/lefuBigDataDev/clouds/ ##添加HBASE_HOME到/etc/profile,而後執行source /etc/profile當即生效
複製到lf6節點:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf6:/home/lefuBigDataDev/clouds/ ##添加HBASE_HOME到/etc/profile,而後執行source /etc/profile當即生效
複製到lf7節點:scp -r /home/lefuBigDataDev/clouds/hbase lefuBigDataDev@lf7:/home/lefuBigDataDev/clouds/ ##添加HBASE_HOME到/etc/profile,而後執行source /etc/profile當即生效
開始準備啓動hbase集羣,嚴格按照以下步驟執行
一、驗證各個節點的時間偏差,HBase不容許最大時間差超過30秒
for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i date; done
二、若是各個節點的時間偏差超過30秒則執行以下命令
for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i date -s 月/日/年; done
for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i date -s 時/分/秒; done
三、檢查lf五、lf六、lf7節點上的ZooKeeper集羣是否啓動(HBase集羣須要依賴ZooKeeper集羣)
在lf5節點上執行命令:
zkServer.sh status ##若是沒有QuorumPeerMain進程則執行zkServer.sh start啓動
在lf6節點上執行命令:
zkServer.sh status ##若是沒有QuorumPeerMain進程則執行zkServer.sh start啓動
在lf7節點上執行命令:
zkServer.sh status ##若是沒有QuorumPeerMain進程則執行zkServer.sh start啓動
四、在lf1節點上啓動hbase HA Active進程
cd /home/lefuBigDataDev/clouds/hbase/bin
start-hbase.sh
五、在lf3節點上啓動hbase HA Backup進程
hbase-daemon.sh start master
六、驗證hbase集羣是否運行成功
一、使用shell驗證:
輸入命令:for i in lf1 lf3 lf5 lf6 lf7; do echo $i; ssh $i `which jps`; done ##以下進程表示hbase集羣啓動成功
lf1
11850 NameNode
15778 Jps
12167 DFSZKFailoverController
12407 HMaster
lf3
8861 ResourceManager
11192 Jps
9083 JobHistoryServer
9301 HMaster
lf5
17944 QuorumPeerMain
18029 DataNode
18250 NodeManager
21167 Jps
18136 JournalNode
18441 HRegionServer
lf6
15900 Jps
12687 NodeManager
5492 RunJar
12383 QuorumPeerMain
12466 DataNode
12878 HRegionServer
12573 JournalNode
lf7
14187 NodeManager
16753 Jps
13956 DataNode
13881 QuorumPeerMain
14073 JournalNode
14378 HRegionServer
二、使用瀏覽器方式驗證:
輸入lf1:60010驗證HBase集羣信息
輸入lf3:60010驗證HBase備用節點信息
七、以上兩種方式驗證經過則表示HBase集羣正確部署並啓動成功
5、安裝Sqoop(在lf5節點上),前提條件是已有Hadoop集羣
cd /home/lefuBigDataDev/clouds/
安裝Sqoop
tar -zxvf sqoop-1.4.5.bin.tar.gz
mv sqoop-1.4.5.bin sqoop
添加SQOOP_HOME到環境變量
export SQOOP_HOME=/home/lefuBigDataDev/clouds/sqoop
shift+ZZ
刷新環境變量使SQOOP_HOME當即生效
source /etc/profile
驗證sqoop是否安裝成功
sqoop version
6、安裝Hive(在lf6節點上),前提條件是已有Hadoop集羣
cd /home/lefuBigDataDev/clouds/
安裝Sqoop
tar -zxvf apache-hive-0.14.0-bin.tar.gz
mv apache-hive-0.14.0-bin hive
添加SQOOP_HOME到環境變量
export HIVE_HOME=/home/lefuBigDataDev/clouds/hive
shift+ZZ
刷新環境變量使HIVE_HOME當即生效
source /etc/profile
修改hive配置文件(hive-env.sh、hive-site.xml)
一、hive-env.sh
export JAVA_HOME=/home/lefuBigDataDev/clouds/jdk
export HADOOP_HOME=/home/lefuBigDataDev/clouds/hadoop
export HIVE_HOME=/home/lefuBigDataDev/clouds/hive
二、hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://lf5:3306/lefu?createDatabaseIfNotExist=true</value> ##若是寫成遠程訪問提示過時須要修改mysql庫的表
<description>指定hive的元數據存儲的數據庫爲mysql,使用JDBC的方式鏈接mysql,若是mysql中不存在hive數據庫則建立</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>指定hive元數據存儲的數據庫的JDBC鏈接驅動類</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>使用指定用戶登陸hive的元數據存儲數據庫</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>******</value>
<description>使用指定密碼登陸hive的元數據存儲數據庫</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>/home/lefuBigDataDev/clouds/hive/tmp</value>
<description>默認取值爲${system:java.io.tmpdir}/${system:user.name},這個目錄是不存在的</description>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/lefuBigDataDev/clouds/hive/tmp</value>
<description>默認取值爲${system:java.io.tmpdir}/${system:user.name},這個目錄是不存在的</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/lefuBigDataDev/clouds/hive/tmp</value>
<description>默認取值爲${system:java.io.tmpdir}/${hive.session.id}_resources,這個目錄是不存在的</description>
</property>
</configuration>
三、驗證hive安裝
一、使用shell驗證
hive
二、登錄mysql,mysql中有個lefu的數據庫表示hive配置成功
java