本博客是在VMware15.5pro、hadoop-2.7.5、jdk1.8.0、hbase-1.2.10,下進行的
hbase-1.2.10-bin.tar.gz下載地址:Index of /dist/hbase
怎樣下載,同志們可以百度,這里不加以贅述,(這里不懂一些基礎命令的可以參考之前的博客,這個與hadoop偽分布式的搭建類似)
(12條訊息) hadoop的偽分布環境搭建(hadoop-2.7.5)_qq_45672631的博客-CSDN博客
下載好hbase-1.2.10-bin.tar.gz,利用Xftp(或其他檔案傳送工具),將其傳送至/usr/local/tmp(tmp是我自己創建的一個臨時檔案夾,用來存放這些壓縮包,與臨時檔案)
?
在當前目錄下通過命令
tar -zxf hbase-1.2.10-bin.tar.gz
進行解壓
?
然后通過命令(../后面可以跟已有檔案夾名,如果沒有認為是重命名)
mv hbase-1.2.10 ../hbase
移動到/usr/local 下
?
配置環境變數
vim /etc/profile
HBASE_HOME后面跟hbase的安裝路徑
?
重啟配置服務
source /etc/profile
然后查看版本號
hbase version
?
開始配置hbase偽分布式(這里只需要配置兩個檔案(在conf下),然后將hadoop/etc/hadoop下的core-site.xml與hdfs-site.xml復制到conf下)
cp core-site.xml ../../../hbase/conf
cp hdfs-site.cml ../../../hbase/conf
這里../,表示當前主體檔案所要復制到目的地的層數(我這里的hadoop,與hbase是在同一路徑下的(/usr/local)core-site.xml與hdfs-site.xml檔案是在hadoop/etc/hadoop下的所以這里先回到local下,然后找hbase下的conf),在GUI版的可以直接滑鼠操作,不在贅述,
?
編輯hbase-env.sh
vim hbase-env.sh
按i進入編輯模式,用方向鍵下移到26行,將27行修改,并添加(按下圖,第一個宣告jdk路徑,第二個宣告使用hbase內置的zookeeper)ESC退出編輯模式
:wq保存并退出,
?
2.編輯hbase-site.xml檔案
命令
vim hbase-site.xml
第一個標簽按照你的hadoop的core-site.xml 檔案來配置(埠號后面加上/hbase),
第二個標簽指定hbase是否為偽分布式,
配置完成退出

啟動hadoop、hbase(這里不需要yarn,在hadoop配置過免密登錄的這里就不用配置)
命令
start-dfs.sh
start-hbase.sh

通過主機名(ip):16010訪問hbase
lcy-1:16010

HBase的安裝、配置與實踐 - 顧北清歌寒, - 博客園 (cnblogs.com)
根據上面的博客熟悉hbase shell命令(這里不在演示,而是運行該博客的一個實體)
1.linux上的eclipse本地連接hbase
這個hbase依附于hadoop,只要之前hadoop,在eclipse上創建的連接沒問題就行(hdfs中會多一個hbase的檔案夾),

創建一個Java Project(java的專案)File->New->Project(選擇Java Project)點擊Next

Java Project (Project name(隨便創),選擇JRE旁的J2SE-1.5(點擊那個倒三角符號選擇J2SE-1.5)),

外部匯入jar包(右擊工程,Build Path->configure Build Path)

將hbase的lib下的jar全部匯入Liberaries,

點擊上圖右邊的 Add Extermal JARs...,(注意是全部的jar)

點擊Apply and Colse

在src下創建一個java包 (右擊Project,New->Package,名字任取),然后在Java包下創建一個java類(右擊java包,New->Class,名字任取),
將上述博客中的代碼copy一下(注意主類名與包名,建議分開復制(避免修改主類名,與java包名)),
同樣,也需要將log4j.properties搞到src下,

在代碼沒問題后,需要修改源代碼中創建連接的一個地方(修改成自己的主機名(ip),按照hbase-site.xml檔案),

然后按照主類中的注釋開始運行代碼

a.創建一個表,表名為Score,列族為sname,course

b.在Score表中插入一條資料,其行鍵為95001,sname為Mary(因為sname列族下沒有子列所以第四個引數為空)

c.在Score表中插入一條資料,其行鍵為95001,course:Math為88(course為列族,Math為course下的子列)

d.在Score表中插入一條資料,其行鍵為95001,course:English為85(course為列族,English為course下的子列)

e.洗掉Score表中指定列資料,其行鍵為95001,列族為course,列為Math

f.洗掉Score表中指定列族資料,其行鍵為95001,列族為course(95001的Math和English的值都會被洗掉)

g .洗掉Score表

這里洗掉就將指定的內容刪掉了(原博客也只是介紹不同的寫法),這個實體遇到的問題則是在連接上,
2.windows上的eclipse遠程連接hbase
同理,在windows上建立遠程連接,將有可能遇到一個問題(這里,老方法,將linux上的hbase拷到windows上,匯入jar包時就能(也可以試試自己將lib解壓使用,因為之前一直報錯,我以為是,hbase不完整,后面發現在windows上創建連接需要修改原博客中的代碼(創建連接哪里)))

按照下圖添加(如果仔細觀察代碼運行時控制臺會先連接zookeeper埠就是2181)


之前我以為是用戶(ASUS)的問題(在GUI上的這里顯示的root用戶,所以我感覺是不是hbase不完整(因為之前匯入jar時我只解壓了lib,當時直接百度這個問題,當時說修改conf.set(一時沒反應過來,我以為是hbase中的組態檔,沒找到就忽略了,害!)))

這個問題代碼運行時會一直去連接zookeeper,時間也挺長,代碼運行時很快的,(看到create table success)

這里的是配置了一個基于服務開發的linux(centos)

后面的就不再操作了,本篇博客中,有些命令的操作并沒有加以強調(到這里,其實也差不多了,也挺詳細的,畢竟都到這步了,那些什么ls這類的也沒必要),GUI的配置也和這個一樣,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/352162.html
標籤:其他
