Apache版Phoenix的安裝(圖文詳解)


 

 

 

  不多說,直接上干貨!

 

 

 

寫在前面的話  

  我這里,三個節點的bigdata集群。分別為master、slave1和slave2。

 

 

 

 

 

 

1、Phoenix的下載

  我的HBase版本是hbase-0.98.19。

 

下載地址:

  http://mirror.bit.edu.cn/apache/phoenix/  或者 http://apache.fayea.com/phoenix/ 

  注意:(hbase的版本一定要與phoenix的版本保持一致,否則運行報錯,hbase-0.99沒有相關的版本下載)

 

 前提是是我們的 Hadoop 集群,zookeeper,Hbase 都安裝成功。 

 

 

 

 

  然后,自行去找自己相應的版本。

  

  或者(我這里,選擇這個版本)

 

 

  或者,大家,也可以安裝下面的這個版本

 

 

 

 

 

 

 

 

  最新下載的Phoenix文件名中都會標明對應的HBase版本  例: apache-phoenix-4.10.0-HBase-0.98-bin.tar.gz

 

 

 

 

 

 

 

 

2、上傳壓縮包

  將apache-phoenix-4.10.0-HBase-0.98-bin.tar.gz 上傳hbase集群的其中一個服務器的一個目錄下。(我建議放在master節點上)。

  或者我們可以單獨選擇一台服務器作為 Client 客戶端安裝 Phoenix,然后將安裝包 。

  我這里選擇在master上。

  我上傳的目錄為/home/hadoop/app。

 

 

 

 

 

3、解壓縮文件

 

[hadoop@master app]$ tar -zxvf apache-phoenix-4.10.0-HBase-0.98-bin.tar.gz 

 

 

 

 

[hadoop@master app]$ rm apache-phoenix-4.10.0-HBase-0.98-bin.tar.gz 
[hadoop@master app]$ ln -s apache-phoenix-4.10.0-HBase-0.98-bin/ phoenix
... ... [hadoop@master app]$ ll lrwxrwxrwx
1 hadoop hadoop 37 Jul 3 22:18 phoenix -> apache-phoenix-4.10.0-HBase-0.98-bin/

 

 

 

 然后進入 Phoenix 目錄可以看到所有目錄結構 

[hadoop@master apache-phoenix-4.10.0-HBase-0.98-bin]$ pwd
/home/hadoop/app/apache-phoenix-4.10.0-HBase-0.98-bin
[hadoop@master apache-phoenix-4.10.0-HBase-0.98-bin]$ ls
bin                                          phoenix-flume-4.10.0-HBase-0.98-tests.jar    phoenix-queryserver-4.10.0-HBase-0.98.jar
examples                                     phoenix-hive-4.10.0-HBase-0.98.jar           phoenix-queryserver-4.10.0-HBase-0.98-sources.jar
LICENSE                                      phoenix-hive-4.10.0-HBase-0.98-sources.jar   phoenix-queryserver-4.10.0-HBase-0.98-tests.jar
NOTICE                                       phoenix-hive-4.10.0-HBase-0.98-tests.jar     phoenix-queryserver-client-4.10.0-HBase-0.98.jar
phoenix-4.10.0-HBase-0.98-client.jar         phoenix-kafka-4.10.0-HBase-0.98.jar          phoenix-queryserver-client-4.10.0-HBase-0.98-sources.jar
phoenix-4.10.0-HBase-0.98-hive.jar           phoenix-kafka-4.10.0-HBase-0.98-minimal.jar  phoenix-queryserver-client-4.10.0-HBase-0.98-tests.jar
phoenix-4.10.0-HBase-0.98-pig.jar            phoenix-kafka-4.10.0-HBase-0.98-sources.jar  phoenix-spark-4.10.0-HBase-0.98.jar
phoenix-4.10.0-HBase-0.98-queryserver.jar    phoenix-kafka-4.10.0-HBase-0.98-tests.jar    phoenix-spark-4.10.0-HBase-0.98-sources.jar
phoenix-4.10.0-HBase-0.98-server.jar         phoenix-pherf-4.10.0-HBase-0.98.jar          phoenix-spark-4.10.0-HBase-0.98-tests.jar
phoenix-4.10.0-HBase-0.98-thin-client.jar    phoenix-pherf-4.10.0-HBase-0.98-minimal.jar  phoenix-tracing-webapp-4.10.0-HBase-0.98.jar
phoenix-core-4.10.0-HBase-0.98.jar           phoenix-pherf-4.10.0-HBase-0.98-sources.jar  phoenix-tracing-webapp-4.10.0-HBase-0.98-runnable.jar
phoenix-core-4.10.0-HBase-0.98-sources.jar   phoenix-pherf-4.10.0-HBase-0.98-tests.jar    phoenix-tracing-webapp-4.10.0-HBase-0.98-sources.jar
phoenix-core-4.10.0-HBase-0.98-tests.jar     phoenix-pig-4.10.0-HBase-0.98.jar            phoenix-tracing-webapp-4.10.0-HBase-0.98-tests.jar
phoenix-flume-4.10.0-HBase-0.98.jar          phoenix-pig-4.10.0-HBase-0.98-sources.jar    README
phoenix-flume-4.10.0-HBase-0.98-sources.jar  phoenix-pig-4.10.0-HBase-0.98-tests.jar
[hadoop@master apache-phoenix-4.10.0-HBase-0.98-bin]$ 

 

 

 

 

 

 

 配置 Phoenix
  1、將 Phoenix 目錄下的 phoenix-core-4.10.0-HBase-0.98.jar、phoenix-4.10.0-HBase-0.98-client.jar 拷貝到 hbase 集群各個節點 hbase 安裝目錄 lib 中。

  首先,大家明白為什么這么做。比如,你是有master、slave1和slave2以及client,你是把這個phoenix安裝在client里,則此刻。你就需拷貝到master、slave1和slave2上。

  而,我這里,是只有master、slave1和slave2,我現在是將phoenix安裝在master上,所以,我需拷貝到master、slave1和slave2上即可。

 

  以下是master、slave1和slave2下lib的默認情況

 

 

 

 

 

 

  然后  

   得到

  master、slave和slave2上都去做。這里不多贅述了

 

 

 

 


2、hbase 集群中的配置文件 hbase-site.xml 拷貝到 Phoenix bin 目錄下,覆蓋原有的配置文件。

  我這里是,master去做(因為我的phonenix是安裝在master上)

  以下是 Phoenix安裝后bin的默認目錄情況

 

 

 

 

 

 

 

 

3、hdfs 集群中的配置文件 core-site.xmlhdfs-site.xml 拷貝到 Phoenix bin 目錄下。

  我這里是,master去做(因為我的phonenix是安裝在master上)

  以下是 Phoenix的bin的目錄情況

 

 

  得到

 

 

 

 

 

  為了規范起見,最好配置環境變量

#phoenix
export PHOENIX_HOME=/home/hadoop/app/phoenix
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin

  因為,我這用的是軟連接,所以才是/home/hadoop/app/phoenix

   

   然后,再source下即可。

 

 

 


4、如果 hbase 之前已經在運行,安裝完 Phoenix,需要重啟 hbase 集群。

   見

HBase的多節點集群詳細啟動步驟(3或5節點)(分為Zookeeper自帶還是外裝)

   這里不多贅述。

 

   同時,修改apache-phoenix-4.10.0-HBase-0.98-bin/bin/下的psql.py和sqlline.py兩個文件的權限為777。

 

 

 

 

 

5、驗證 Phoenix 是否安裝成功
  命令格式:./sqlline.sh <hbase.zookeeper.quorum> 

 其中,hbase.zookeeper.quorum HBase 集群的 Zookeeper 隊列,對應 IP/Hostname 逗號分割的列表。

  在phoenix的安裝目錄下,輸入命令啟動

bin/sqlline.py master 

[hadoop@master apache-phoenix-4.10.0-HBase-0.98-bin]$ pwd
/home/hadoop/app/apache-phoenix-4.10.0-HBase-0.98-bin
[hadoop@master apache-phoenix-4.10.0-HBase-0.98-bin]$ ls
bin                                          phoenix-flume-4.10.0-HBase-0.98-tests.jar    phoenix-queryserver-4.10.0-HBase-0.98.jar
examples                                     phoenix-hive-4.10.0-HBase-0.98.jar           phoenix-queryserver-4.10.0-HBase-0.98-sources.jar
LICENSE                                      phoenix-hive-4.10.0-HBase-0.98-sources.jar   phoenix-queryserver-4.10.0-HBase-0.98-tests.jar
NOTICE                                       phoenix-hive-4.10.0-HBase-0.98-tests.jar     phoenix-queryserver-client-4.10.0-HBase-0.98.jar
phoenix-4.10.0-HBase-0.98-client.jar         phoenix-kafka-4.10.0-HBase-0.98.jar          phoenix-queryserver-client-4.10.0-HBase-0.98-sources.jar
phoenix-4.10.0-HBase-0.98-hive.jar           phoenix-kafka-4.10.0-HBase-0.98-minimal.jar  phoenix-queryserver-client-4.10.0-HBase-0.98-tests.jar
phoenix-4.10.0-HBase-0.98-pig.jar            phoenix-kafka-4.10.0-HBase-0.98-sources.jar  phoenix-spark-4.10.0-HBase-0.98.jar
phoenix-4.10.0-HBase-0.98-queryserver.jar    phoenix-kafka-4.10.0-HBase-0.98-tests.jar    phoenix-spark-4.10.0-HBase-0.98-sources.jar
phoenix-4.10.0-HBase-0.98-server.jar         phoenix-pherf-4.10.0-HBase-0.98.jar          phoenix-spark-4.10.0-HBase-0.98-tests.jar
phoenix-4.10.0-HBase-0.98-thin-client.jar    phoenix-pherf-4.10.0-HBase-0.98-minimal.jar  phoenix-tracing-webapp-4.10.0-HBase-0.98.jar
phoenix-core-4.10.0-HBase-0.98.jar           phoenix-pherf-4.10.0-HBase-0.98-sources.jar  phoenix-tracing-webapp-4.10.0-HBase-0.98-runnable.jar
phoenix-core-4.10.0-HBase-0.98-sources.jar   phoenix-pherf-4.10.0-HBase-0.98-tests.jar    phoenix-tracing-webapp-4.10.0-HBase-0.98-sources.jar
phoenix-core-4.10.0-HBase-0.98-tests.jar     phoenix-pig-4.10.0-HBase-0.98.jar            phoenix-tracing-webapp-4.10.0-HBase-0.98-tests.jar
phoenix-flume-4.10.0-HBase-0.98.jar          phoenix-pig-4.10.0-HBase-0.98-sources.jar    README
phoenix-flume-4.10.0-HBase-0.98-sources.jar  phoenix-pig-4.10.0-HBase-0.98-tests.jar
[hadoop@master apache-phoenix-4.10.0-HBase-0.98-bin]$ bin/sqlline.py master 

 

 

 

 

 

  當然,大家也可以跟我這樣,做個軟連接。

 

 

 

 

  如果大家這里,遇到這個問題

Traceback (most recent call last):
  File "./sqlline.py", line 27, in <module>
    import argparse
ImportError: No module named argparse

 

   則,解決辦法

安裝Phoenix時./sqlline.py執行報錯File "./sqlline.py", line 27, in <module> import argparse ImportError: No module named argparse解決辦法(圖文詳解)

 

 

 

 

  這里,建議搭建,你若如跟我一樣(master、slave1和slave2)集群的話,zookeeper也是都安裝在master、slave1和slave2上,則

  使用 sqlline.py 腳本來啟動,參數是 zookeeper 集群中各個節點的 hostname ,多個使用逗號隔開,另外端口為 2181

[hadoop@master apache-phoenix-4.8.2-HBase-0.98-bin]$ pwd
/home/hadoop/app/apache-phoenix-4.8.2-HBase-0.98-bin
[hadoop@master apache-phoenix-4.8.2-HBase-0.98-bin]$ bin/sqlline.py master,slave1,slave2:2181
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:master,slave1,slave2:2181 none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:master,slave1,slave2:2181
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/app/apache-phoenix-4.8.2-HBase-0.98-bin/phoenix-4.8.2-HBase-0.98-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/app/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
17/08/22 09:07:40 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Connected to: Phoenix (version 4.8)
Driver: PhoenixEmbeddedDriver (version 4.8)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
86/86 (100%) Done
Done
sqlline version 1.1.9
0: jdbc:phoenix:master,slave1,slave2:2181> 

如果出現上面的結果,說明 Phoenix 安裝成功。

 

 


6、 羅列所有表
在客戶端執行!tables 命令,羅列所有表到客戶端界面

0: jdbc:phoenix:master,slave1,slave2:2181> !tables
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-----------+
| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME  | REF_GENERATION  | INDEX_STATE  | IMMUTABLE_ROWS  | SALT_BUCKETS  | MULTI_TEN |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-----------+
|            | SYSTEM       | CATALOG     | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | false     |
|            | SYSTEM       | FUNCTION    | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | false     |
|            | SYSTEM       | SEQUENCE    | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | false     |
|            | SYSTEM       | STATS       | SYSTEM TABLE  |          |            |                            |                 |              | false           | null          | false     |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----------------+---------------+-----------+
0: jdbc:phoenix:master,slave1,slave2:2181> 

  注意: 通過該客戶端展示出來的表都是通過 Phoenix 客戶端創建的,通過其他方式創建的表在此處不顯示。

 

 

 

   若要退出,則

  Phoenix早期版本如(2.11版本)需輸入!quilt才可退出,目前高版本已改為!exit命令

0: jdbc:phoenix:master> !exit
Closing: org.apache.phoenix.jdbc.PhoenixConnection
[hadoop@master apache-phoenix-4.8.2-HBase-0.98-bin]$ 

 

 

 

 

 

  參考博客

HBase 4、Phoenix安裝和Squirrel安裝

 phoenix-4.8.1-HBase-1.2安裝(詳細圖文)

 

 

 

 

 

 

歡迎大家,加入我的微信公眾號:大數據躺過的坑     免費給分享
 
 
 

同時,大家可以關注我的個人博客

   http://www.cnblogs.com/zlslch/   和  http://www.cnblogs.com/lchzls/ 

 

  人生苦短,我願分享。本公眾號將秉持活到老學到老學習無休止的交流分享開源精神,匯聚於互聯網和個人學習工作的精華干貨知識,一切來於互聯網,反饋回互聯網。
  目前研究領域:大數據、機器學習、深度學習、人工智能、數據挖掘、數據分析。 語言涉及:Java、Scala、Python、Shell、Linux等 。同時還涉及平常所使用的手機、電腦和互聯網上的使用技巧、問題和實用軟件。 只要你一直關注和呆在群里,每天必須有收獲

 

       以及對應本平台的QQ群:161156071(大數據躺過的坑)

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM