HP DL160 Gen9服務器集羣部署文檔

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

相關文章
相關標籤/搜索