您好,登錄后才能下訂單哦!
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 域名。
包傳到 服務器上,解壓
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 之 core-site.xml
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, 這原配置文件里什么也沒有,都是注釋內容,直接改名就行
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.xml
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。