1. 程式人生 > >hbase偽集群搭建

hbase偽集群搭建

hbase偽集群

hbase 數據存儲有三種跑法,跑在本地磁盤上、跑在偽分布式上、跑在完全分布式上--------
額。。。官網的文檔挺坑爹的,結合官網、百度、谷歌的各種文檔看,只要理解原理,搭建也不算難(當然照的官網文檔個看就比較坑爹了)
單機模式 ------->> 這個最簡單,免寫了,下了包直接解壓配置個路徑就可以啟動了,zk 和 hbase 都是起在同一個 jvm 中的,數據落到本地磁盤。
偽分布式部署方式 ------->> 先部署 hdfs , 再部署 hbase ,它們的各個進程跑在不同的 jvm 中 , hbase只是將數據落到了 hdfs 上。
完全分布式 ------->> 完全分布式用大白話來說,我理解的就是個 偽分布式的 升級款,只是把偽分布式的一臺服務器變成了 n 臺。。。

完全分布式一定要部署在 物理機上

上邊蛋扯的差不多了,下面直接入正題,開始部署
下載什麽版本的包自己解決,要想下載最輕松的全部安裝包,直接到 cdh 上去下載,百度搜索 cdh ,你懂的、、、然後配置文件每個版本的基本上差不多,沒有太大的出入
下面是以 hadoop-2.7.2 、 hbase-1.1.2 為例

一、新系統的話,自己先處理一下系統,這個習慣相信所有運維同行的哥哥們都是有這習慣的。。。關閉不用的防火墻、最大文件打開數、jdk全局變量、dns、主機名解析
建議配置時用 ip 的最後用內網的域名,這樣的話,開發的代碼也好接入做好的 hbase,用主機名的話,開發的還得自己的 hosts ,我這裏用的 內網的 dns 域名。

二、部署 hdfs

   hadoop-2.7.2.tar.gz  包傳到 服務器上,解壓
         tar xvf  hadoop-2.7.2.tar.gz  -C /home
         cd /home/hadoop-2.7.2
         vim etc/hadoop/hadoop-env.sh
         export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_72
   配置HDFS
         mkdir data
         vim etc/hadoop/core-site.xml

    <configuration>
 <property>
    <name>fs.defaultFS</name>
    <value>hdfs://pretend.hdfs.gag.cn:9000</value>
            <!--這裏設置 hdfs 文件系統接口-->
 </property>
 <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop-2.7.2/data/tmp</value>
            <!--這裏為 hdfs 數據存儲路徑-->
 </property>
</configuration>

    ----------------------------
        vim etc/hadoop/hdfs-site.xml
   <configuration>
   <property>
    <name>dfs.replication</name>
    <value>1</value>
            <!--指定創建的副本數-->
   </property>

</configuration>

    ----------------------------
       配置YARN
         這原配置文件裏什麽也沒有,都是註釋內容,直接改名就行
         mv etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
         vim etc/hadoop/mapred-site.xml
  <configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <!--使用yarn運行mapreduce程序-->
  </property>

</configuration>

         vim etc/hadoop/yarn-site.xml
  <configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
            <!--NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,才可運行MapReduce程序-->
  </property>

</configuration>
    ------------------------------------
    啟動 hdfs
    初次啟動 hdfs 先要初始化文件系統,也可以說是格式化文件系統

    bin/hdfs namenode -format

     ![](http://i2.51cto.com/images/blog/201803/05/afb7e0d1a567cae57e0219508b614a64.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

     格式化完畢,啟動NameNod和DataNode進程
     啟動之前如果修改 jvm 參數的話,在 vim etc/hadoop/hadoop-env.sh  修改 HADOOP_HEAPSIZE 這一項就可以了,默認應該是 1024M 吧

     sbin/start-dfs.sh
     啟動以後,有這裏顯示有 三個配置文件,是 out 後綴的,看日誌的話,看 log 後綴的,看有沒有 error 級別的報錯
     ![](http://i2.51cto.com/images/blog/201803/05/b1fb3c375924ba49aa3cabbee725af10.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

     -----------------------------
     啟動YARN
     sbin/start-yarn.sh 
     同樣是去看這兩個的 log 後綴的日誌
     這裏了 hdfs 就算啟動完畢了,這時再 jps 命令可以看到除  jps 進程外有 5 個

     ![](http://i2.51cto.com/images/blog/201803/05/36625774e3955f1fd3014eb85036cadd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

     查看端口已經有這麽多了, 50070 是 hdfs 的 web 端口,以後輸入 ip:port 或者 域名:port  來查看 web 頁面
     ![](http://i2.51cto.com/images/blog/201803/05/f63bcacf66e6c9eafed5fc72fd97d2e7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

     ![](http://i2.51cto.com/images/blog/201803/05/eda0a0aca56cfe831f9ecfe0f061696e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

     ======================================================================

     以上 hdfs 啟動沒問題後,就可以啟動 hbase 了

     tar xvf hbase-1.1.2-bin.tar.gz -C /home/

     cd /home/hbase-1.1.2/

     vim conf/hbase-env.sh

     export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_72

     配置Hbase

     mkdir data

     vim conf/hbase-site.xml 

     <configuration>
   <property>
      <name>hbase.rootdir</name>
      <value>hdfs://pretend.hdfs.gag.cn:9000/hbase</value>
            <!--使用 hdfs 文件系統,端口為上面配置的 hdfs 接口-->
  </property>
  <property>
     <name>hbase.zookeeper.property.dataDir</name>
     <value>/home/hbase-1.1.2/data</value>
             <!--zookeeper數據存儲路徑,用hbase自帶的zookeeper-->
  </property>
  <property>
     <name>hbase.cluster.distributed</name>
     <value>true</value>
             <!--設置hbase模式為集群模式-->
  </property>
</configuration>

 hbase 集群內的服務器,如果是啟動完全分布式,這裏要填寫hbase所有的服務器域名或者 ip 或者 主機名,順便說一下,hbase和 hadoop 集群全部是已 ssh 遠程 調用命令的方式啟動其他節點的
    vim conf/regionservers 

    pretend.hbase.gag.cn

    這裏的話,我把內存調整了一下,因為開發那邊要用,服務器是 8G 的
    vim conf/hbase-env.sh 
    export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=1024m -XX:MaxPermSize=512m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=1024m -XX:MaxPermSize=512m"

啟動Hbase

 先啟動 zookeeper,如果是完全分布式的話,所有的 hbase節點會以臨時節點的方式註冊在 zk 裏,偽分布式也一樣,只不過zk 裏只有一個節點,zk 也只有一個節點
 bin/hbase-daemon.sh start zookeeper         啟動後查看日誌
     bin/hbase-daemon.sh start master               啟動後查看日誌
     bin/hbase-daemon.sh start regionserver      啟動後查看日誌

     此時的 jps 可以查看到除 jps 外 8 個進程
     ![](http://i2.51cto.com/images/blog/201803/05/692fd3b3f0fddc59044ac10c47b52adb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

    hbase 的 web 頁面端口是 16010
    ![](http://i2.51cto.com/images/blog/201803/05/13f8e5501414a49cf0165f36cad233e3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

     如果要加 開機啟動的話,最好加上sleep等待,我是這樣加的
     ![](http://i2.51cto.com/images/blog/201803/05/d72489bbf28360c894972e2b46a048aa.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

     正常停止方式:
     一定要按照順序停止
     停止 hbase、zookeeper、hdfs

hbase偽集群搭建