hadoop+hbase部署,phoeni的安裝和使用(三)

1. 安裝

1.1 下載Phoenix

從Apache下載Phoenix(下載鏈接),從4.8.0到4.10.0各版本都有,本地安裝的Hbase版本為1.1.9,所以選擇對(duì)應(yīng)Hbase是1.1版本的下載。這里我下載的是4.9.0版本,資源包 apache-phoenix-4.9.0-HBase-1.1-bin.tar.gz

(Hbase 1.1.9版本下載鏈接)

這里注意,使用的phoeni版本一定要和hbase的版本匹配,要不然會(huì)出錯(cuò)。

1.2 配置

首先,將下載的資源包解壓到本地,將phoenix-4.9.0-HBase-1.1-client.jarphoenix-core-4.9.0-HBase-1.1.jar兩個(gè)jar包拷貝至Hbase的/lib文件夾。另外,將Hbase的配置文件base-site.xml拷貝至Phoenix根目錄中的/bin文件夾下到此就完成了配置。

1.3 啟動(dòng)

首先啟動(dòng)Hadoop,然后啟動(dòng)Hbase,在Phoenix文件夾下執(zhí)行:

bin/sqlline.py master

如此,就可以開始對(duì)非關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行sql 語(yǔ)言的操作了。

2. hadoop、hbase、phoeni的聯(lián)合使用

三者的打開、關(guān)閉順序:

先打開hadoop,再打開hbase,最后打開Phoenix;關(guān)閉是相反的順序先關(guān)閉Phoenix,再關(guān)閉hbase,最后關(guān)閉hadoop。

啟動(dòng)

cc@cc-fibric:~$ sudo -i
[sudo] password for cc: 
root@cc-fibric:~# ssh localhost
root@localhost's password: 
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-36-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

170 packages can be updated.
11 updates are security updates.

Last login: Fri Sep 28 11:20:52 2018 from 127.0.0.1
root@cc-fibric:~# 
root@cc-fibric:~# cd /usr/local/hadoop/
root@cc-fibric:/usr/local/hadoop# cd sbin/
啟動(dòng)hadoop:
root@cc-fibric:/usr/local/hadoop/sbin# ./start-all.sh 
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [localhost]
root@localhost's password: 
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-root-namenode-cc-fibric.out
root@localhost's password: 
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-cc-fibric.out
Starting secondary namenodes [account.jetbrains.com]
root@account.jetbrains.com's password: 
account.jetbrains.com: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-root-secondarynamenode-cc-fibric.out
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-root-resourcemanager-cc-fibric.out
root@localhost's password: 
localhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-cc-fibric.out
root@cc-fibric:/usr/local/hadoop/sbin# jps
12721 NodeManager
12850 Jps
12035 DataNode
11866 NameNode
12399 ResourceManager
12239 SecondaryNameNode
root@cc-fibric:/usr/local/hadoop/sbin# cd /usr/local/hbase/bin/

啟動(dòng)hbase:

root@cc-fibric:/usr/local/hbase/bin# start-hbase.sh 
starting master, logging to /usr/local/hbase/logs/hbase-root-master-cc-fibric.out
root@cc-fibric:/usr/local/hbase/bin# 
root@cc-fibric:/usr/local/hbase/bin# cd /usr/local/phoenix/bin/

啟動(dòng)Phoenix:

root@cc-fibric:/usr/local/phoenix/bin# ./sqlline.py localhost
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:localhost none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:localhost
18/10/06 16:10:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Connected to: Phoenix (version 4.14)
Driver: PhoenixEmbeddedDriver (version 4.14)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
137/137 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:localhost> 

Phoenix的使用:

Phoenix是構(gòu)建在HBase上的一個(gè)SQL層,能讓我們用標(biāo)準(zhǔn)的JDBC APIs而不是HBase客戶端APIs來(lái)創(chuàng)建表,插入數(shù)據(jù)和對(duì)HBase數(shù)據(jù)進(jìn)行查詢。

打開服務(wù)

root@cc-fibric:/usr/local/phoenix/bin# ./queryserver.py start
starting Query Server, logging to /tmp/phoenix/phoenix-root-queryserver.log
root@cc-fibric:/usr/local/phoenix/bin# ./sqlline.py localhost
創(chuàng)建一個(gè)表:
0: jdbc:phoenix:localhost> create table person(id varchar primary key, name varchar);
No rows affected (1.328 seconds)
插入元素:
0: jdbc:phoenix:localhost> upsert into person values ('111','jone');
1 row affected (0.073 seconds)
查找表:
0: jdbc:phoenix:localhost> select * from person;
+------+-------+
|  ID  | NAME  |
+------+-------+
| 111  | jone  |
+------+-------+
1 row selected (0.074 seconds)
顯示全部的表:
0: jdbc:phoenix:localhost> !tables 
+------------+--------------+-------------+---------------+----------+------------+--------------+
| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFEREN |
+------------+--------------+-------------+---------------+----------+------------+--------------+
|            | SYSTEM       | CATALOG     | SYSTEM TABLE  |          |            |              |
|            | SYSTEM       | FUNCTION    | SYSTEM TABLE  |          |            |              |
|            | SYSTEM       | LOG         | SYSTEM TABLE  |          |            |              |
|            | SYSTEM       | SEQUENCE    | SYSTEM TABLE  |          |            |              |
|            | SYSTEM       | STATS       | SYSTEM TABLE  |          |            |              |
|            |              | PERSON      | TABLE         |          |            |              |
+------------+--------------+-------------+---------------+----------+------------+--------------+
0: jdbc:phoenix:localhost> 

這里注意一個(gè)問(wèn)題,在關(guān)系型數(shù)據(jù)庫(kù)中,如mysql,不用特別指定一個(gè)主鍵元素,但是在非關(guān)系型數(shù)據(jù)庫(kù)中,需要指定一個(gè)主元素,否則會(huì)報(bào)錯(cuò):

下面的是一個(gè)錯(cuò)誤的語(yǔ)句例子,使用Mysql 與Phoenix的區(qū)別:

錯(cuò)解:
0: jdbc:phoenix:localhost> create table "test11"(id varchar,names varchar);
Error: ERROR 509 (42888): The table does not have a primary key. tableName=test11 (state=42888,code=509)
java.sql.SQLException: ERROR 509 (42888): The table does not have a primary key. tableName=test11
    at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
...........
省略不寫
...........
    at sqlline.SqlLine.start(SqlLine.java:398)
    at sqlline.SqlLine.main(SqlLine.java:291)
    
正解:
0: jdbc:phoenix:localhost> create table "test11"(id varchar primary key,names varchar);
No rows affected (1.309 seconds)
這里一定要指定一個(gè)為主鍵

關(guān)閉順序:

關(guān)閉phoenix 服務(wù):
root@cc-fibric:/usr/local/phoenix/bin# ./queryserver.py start

root@cc-fibric:/usr/local/phoenix/bin# cd /usr/local/hbase/
關(guān)閉Hbase:
root@cc-fibric:/usr/local/hbase# ls
bin          conf      hbase-webapps  lib          logs        README.txt
CHANGES.txt  data-tmp  LEGAL          LICENSE.txt  NOTICE.txt
root@cc-fibric:/usr/local/hbase# cd bin/
root@cc-fibric:/usr/local/hbase/bin# stop-hbase.sh 
stopping hbase....................
關(guān)閉Hadoop:
root@cc-fibric:/usr/local/hbase/bin# cd ../..
root@cc-fibric:/usr/local# cd hadoop/
root@cc-fibric:/usr/local/hadoop# ls
bin  etc  include  lib  libexec  LICENSE.txt  logs  NOTICE.txt  README.txt  sbin  share  tmp
root@cc-fibric:/usr/local/hadoop# cd sbin/
查看進(jìn)程:
root@cc-fibric:/usr/local/hadoop/sbin# jps
6160 NodeManager
9730 Jps
5845 ResourceManager
5318 NameNode
5691 SecondaryNameNode
5486 DataNode
關(guān)閉:
root@cc-fibric:/usr/local/hadoop/sbin# ./stop-all.sh 
This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
Stopping namenodes on [localhost]
root@localhost's password: 
localhost: stopping namenode
root@localhost's password: 
localhost: stopping datanode
Stopping secondary namenodes [account.jetbrains.com]
root@account.jetbrains.com's password: 
account.jetbrains.com: stopping secondarynamenode
stopping yarn daemons
stopping resourcemanager
root@localhost's password: 
localhost: stopping nodemanager
no proxyserver to stop 
自此,全部關(guān)閉成功
root@cc-fibric:/usr/local/hadoop/sbin# jps
10479 Jps
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 說(shuō)明:不少讀者反饋,想使用開源組件搭建Hadoop平臺(tái),然后再部署Kylin,但是遇到各種問(wèn)題。這里我為讀者部署一...
    大詩(shī)兄_zl閱讀 2,185評(píng)論 0 2
  • 入門指南 1. 簡(jiǎn)介 Quickstart會(huì)讓你啟動(dòng)和運(yùn)行一個(gè)單節(jié)點(diǎn)單機(jī)HBase。 2. 快速啟動(dòng) – 單點(diǎn)HB...
    和心數(shù)據(jù)閱讀 5,018評(píng)論 1 41
  • Ambari安裝部署Hadoop Apache Ambari是一種基于Web的工具,支持Apache Hadoop...
    三杯水Plus閱讀 2,846評(píng)論 0 7
  • 轉(zhuǎn)自 沈釗偉 HBase 在大數(shù)據(jù)生態(tài)圈中的位置 提到大數(shù)據(jù)的存儲(chǔ),大多數(shù)人首先聯(lián)想到的是 Hadoop 和 Ha...
    wangxiaoda閱讀 1,308評(píng)論 0 19
  • 任憑紅塵滾滾臨,我皆自在菩提心。 清燈半盞經(jīng)半卷,千里路上明昨今。
    寒菊閱讀 364評(píng)論 9 2

友情鏈接更多精彩內(nèi)容