Kudu安裝和部署

(1)下載Kudu相關安裝包
Kudu版本是1.7.0-cdh5.15.1,使用rpm包安裝,網址如下:

http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.15.1/RPMS/x86_64/

打開後直接Ctrl + F 搜索Kudu,出現的rpm安裝包總共6個,全部下載

kudu-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-client-devel-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-client0-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-debuginfo-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-master-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-tserver-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

(2)進入到安裝包所在目錄,執行以下命令

sudo rpm -ivh --nodeps *

(3)創建master元數據目錄和table數據目錄以及log日誌目錄

sudo mkdir -p /data/kudu/kudu_master_data
sudo mkdir -p /data/kudu/kudu_tserver_data
sudo mkdir -p /data/log/kudu

進入/data目錄,將下面所有目錄和文件的用戶和組修改爲kudu(Kudu默認用戶,不修改可能會出現權限問題)

sudo chown -R kudu:kudu *

(4)修改Kudu配置文件
/etc/kudu/conf/master.gflagfile

--fs_wal_dir=/data/kudu/kudu_master_data
--fs_data_dirs=/data/kudu/kudu_master_data

/etc/kudu/conf/tserver.gflagfile

--fs_wal_dir=/data/kudu/kudu_tserver_data
--fs_data_dirs=/data/kudu/kudu_tserver_data
--tserver_master_addrs=hadoop000:7051

(5)啓動Kudu
分別啓動master和tserver

sudo /etc/init.d/kudu-master start
sudo /etc/init.d/kudu-tserver start

啓動報錯:

Failed to start Kudu Master Server. Return value: 1        [FAILED]

查看Master日誌

tail -200f var/log/kudu-master.out

發現如下錯誤:

Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock: Error reading clock. Clock considered unsynchronized

原因:
Kudu 默認的一致性模型是 Snapshot Consistency,即客戶端可以一致的訪問到某個時間點的一個快照。爲了實現更高要求的外部一致性(External Consistency),Kudu借鑑 Spanner 使用 commit-wait 機制,但是 commit-wait 強依賴於 TrueTime,而 TrueTime 需要各種昂貴的硬件設備支持,目前 Kudu通過純軟件算法的方式來實現時鐘算法,因此它要求Master和Tablet Server之間必須保證時鐘同步,否則無法啓動。

解決方法:
如果沒有安裝ntp,先安裝它

sudo yum -y install ntp

然後啓動ntp服務

sudo service ntpd start

設置ntp開機自啓

sudo chkconfig ntpd on

可以使用ntpd命令查看ntp是否同步,如果顯示unsynchronised,則需要等待。因爲ntpd服務開啓之後需要等待一段時間才能完成同步,可能三五分鐘,也可能一個小時才行,可以通過ntptime命令查看是否同步成功,等待ntp同步之後然後再重新啓動master和tserver。具體細節可以查看官網文檔中關於ntp的描述:

https://kudu.apache.org/docs/troubleshooting.html#ntp

重啓虛擬機之後發現時鐘又不同步,導致Kudu又無法啓動,不堪其擾,於是修改ntp配置文件,一勞永逸:

sudo vim /etc/ntp.conf

加入以下內容:

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
# 上面的server配置全部註釋,加入以下兩條
server 127.127.1.0 # 同步本地時間
fudge 127.127.1.0 stratum 8 # 本地服務器的stratum(層次)大小不能超過16

(6)驗證Kudu是否啓動成功
ps -ef | grep kudu
也可以通過WebUI查看,默認端口是8050:

hadoop000:8050
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章