hbase 數據存儲有三種跑法,跑在本地磁盤上、跑在僞分佈式上、跑在徹底分佈式上--------
額。。。官網的文檔挺坑爹的,結合官網、百度、谷歌的各類文檔看,只要理解原理,搭建也不算難(固然照的官網文檔個看就比較坑爹了)
單機模式 ------->> 這個最簡單,免寫了,下了包直接解壓配置個路徑就能夠啓動了,zk 和 hbase 都是起在同一個 jvm 中的,數據落到本地磁盤。
僞分佈式部署方式 ------->> 先部署 hdfs , 再部署 hbase ,它們的各個進程跑在不一樣的 jvm 中 , hbase只是將數據落到了 hdfs 上。
徹底分佈式 ------->> 徹底分佈式用大白話來講,我理解的就是個 僞分佈式的 升級款,只是把僞分佈式的一臺服務器變成了 n 臺。。。node
徹底分佈式必定要部署在 物理機上web
上邊蛋扯的差很少了,下面直接入正題,開始部署
下載什麼版本的包本身解決,要想下載最輕鬆的所有安裝包,直接到 cdh 上去下載,百度搜索 cdh ,你懂的、、、而後配置文件每一個版本的基本上差很少,沒有太大的出入
下面是以 hadoop-2.7.2 、 hbase-1.1.2 爲例vim
1、新系統的話,本身先處理一下系統,這個習慣相信全部運維同行的哥哥們都是有這習慣的。。。關閉不用的防火牆、最大文件打開數、jdk全局變量、dns、主機名解析
建議配置時用 ip 的最後用內網的域名,這樣的話,開發的代碼也好接入作好的 hbase,用主機名的話,開發的還得本身的 hosts ,我這裏用的 內網的 dns 域名。服務器
包傳到 服務器上,解壓運維
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_72ssh
配置HDFS 之 core-site.xml jvm
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>
配置HDFS 之 hdfs-site.xml分佈式
vim etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> <!--指定建立的副本數--> </property> </configuration>
配置HDFS 之 YARN, 這原配置文件裏什麼也沒有,都是註釋內容,直接更名就行ide
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>
配置HDFS 之 yarn-site.xmloop
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
格式化完畢,啓動NameNod和DataNode進程
啓動以前若是修改 jvm 參數的話,在 vim etc/hadoop/hadoop-env.sh 修改 HADOOP_HEAPSIZE 這一項就能夠了,默認應該是 1024M
sbin/start-dfs.sh
啓動之後,有這裏顯示有 三個配置文件,是 out 後綴的,看日誌的話,看 log 後綴的,看有沒有 error 級別的報錯
啓動YARN
sbin/start-yarn.sh
一樣是去看這兩個的 log 後綴的日誌
這裏了 hdfs 就算啓動完畢了,這時再 jps 命令能夠看到除 jps 進程外有 5 個
查看端口已經有這麼多了, 50070 是 hdfs 的 web 端口,之後輸入 ip:port 或者 域名:port 來查看 web 頁面
======================================================================
以上 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=512m -XX:MaxPermSize=512m" export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=512m -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 個進程
hbase 的 web 頁面端口是 16010
若是要加 開機啓動的話,最好加上sleep等待,我是這樣加的
正常中止方式:必定要按照順序中止中止 hbase、zookeeper、hdfs