日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

Hbase插件之Phoenix

發(fā)布時(shí)間:2023/12/13 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 Hbase插件之Phoenix 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

版本關(guān)系

若使用Phoenix,需下載與當(dāng)前使用MRS集群相對(duì)應(yīng)的Phoenix版本,具體請(qǐng)參見http://phoenix.apache.org。其對(duì)應(yīng)關(guān)系如表1所示:

表1MRS與Phoenix版本對(duì)應(yīng)關(guān)系一覽表

MRS版本

Phoenix版本

備注

MRS 1.5.x及其之前版本

無(wú)

MRS內(nèi)部提供

MRS 1.6.x/MRS 1.7.x/MRS 1.8.x

x.xx.x-HBase-1.3

例如,4.14.1-HBase-1.3

MRS 2.0

x.xx.x-HBase-2.0

例如,5.0.0-HBase-2.0

配置方式

MRS1.6之后的版本需要去官網(wǎng)下載第三方的phoenix包,然后進(jìn)行如下配置:

從官網(wǎng)(https://phoenix.apache.org/download.html)下載phoenix二進(jìn)制包上傳至集群的任一Master節(jié)點(diǎn),解壓后修改相應(yīng)權(quán)限并切換到omm用戶下(例如,apache-phoenix-4.14.1-HBase-1.3-bin.tar.gz)。

tar –xvf apache-phoenix-4.14.1-HBase-1.3-bin.tar.gz
chown omm:wheel apache-phoenix-4.14.1-HBase-1.3-bin -R
su - omm

2、進(jìn)入apache-phoenix-4.14.1-HBase-1.3-bin中,在該目錄中編輯如下腳本,例如,腳本名稱為“installPhoenixJar.sh”,則需執(zhí)行命令為:“sh installPhoenixJar.sh <PHOENIX_HBASE_VERSION> <MRS_VERSION> <IPs>”(IP為HBase安裝節(jié)點(diǎn)的IP,即所有Master和Core節(jié)點(diǎn)的IP,并以當(dāng)前集群實(shí)際IP為準(zhǔn))。若使用MRS 1.8.6版本的集群對(duì)接Phoenix,則可執(zhí)行命令為:“sh installPhoenixJar.sh 4.14.1-HBase-1.3 1.8.6 xx.xx.xx.xx,xx.xx.xx.xx,xx.xx.xx.xx,xx.xx.xx.xx”,若使用MRS 2.0.1版本的集群對(duì)接Phoenix,則可執(zhí)行命令為“sh installPhoenixJar.sh 5.0.0-HBase-2.0 2.0.1 xx.xx.xx.xx,xx.xx.xx.xx,xx.xx.xx.xx,xx.xx.xx.xx”,腳本如下所示:

#!/bin/bash

PHOENIX_HBASE_VERSION=$1
shift
MRS_VERSION=$1
shift
IPs=$1
shift
check_cmd_result() {
    echo "executing command: $*"
    str="$@"
    if [ ${#str} -eq 7 ]; then
        echo "please check input args, such as, sh installPhoenixJar.sh 5.0.0-HBase-2.0 2.0.1 xx.xx.xx.xx,xx.xx.xx.xx,xx.xx.xx.xx"
        exit 1
    fi
    if ! eval $*
    then
        echo "Failed to execute: $*"
        exit 1
    fi
}

check_cmd_result [ -n "$PHOENIX_HBASE_VERSION" ]
check_cmd_result [ -n "$MRS_VERSION" ]
check_cmd_result [ -n "$IPs" ]

if [ ${MRS_VERSION}X = "1.8.5"X ]; then
    MRS_VERSION="1.8.3"
fi
if [[ ${MRS_VERSION} =~ "1.6" ]]; then
    WORKDIR="FusionInsight"
elif [[ ${MRS_VERSION} =~ "1.7" ]]; then
    WORKDIR="MRS"
else
    WORKDIR="MRS_${MRS_VERSION}/install"
fi

check_cmd_result HBASE_LIBDIR=$(ls -d /opt/Bigdata/${WORKDIR}/FusionInsight-HBase-*/hbase/lib)
# copy jars to local node.
check_cmd_result cp phoenix-${PHOENIX_HBASE_VERSION}-server.jar ${HBASE_LIBDIR}
check_cmd_result cp phoenix-core-${PHOENIX_HBASE_VERSION}.jar ${HBASE_LIBDIR}

check_cmd_result chmod 700 ${HBASE_LIBDIR}/phoenix-${PHOENIX_HBASE_VERSION}-server.jar
check_cmd_result chmod 700 ${HBASE_LIBDIR}/phoenix-core-${PHOENIX_HBASE_VERSION}.jar

check_cmd_result chown omm:wheel ${HBASE_LIBDIR}/phoenix-${PHOENIX_HBASE_VERSION}-server.jar
check_cmd_result chown omm:wheel ${HBASE_LIBDIR}/phoenix-core-${PHOENIX_HBASE_VERSION}.jar

if [[ "$MRS_VERSION" =~ "2." ]]; then
    check_cmd_result rm -rf ${HBASE_LIBDIR}/htrace-core-3.1.0-incubating.jar
    check_cmd_result rm -rf /opt/client/HBase/hbase/lib/joda-time-2.1.jar
    check_cmd_result ln -s /opt/share/htrace-core-3.1.0-incubating/htrace-core-3.1.0-incubating.jar 
${HBASE_LIBDIR}/htrace-core-3.1.0-incubating.jar
    check_cmd_result ln -s /opt/share/joda-time-2.1/joda-time-2.1.jar /opt/client/HBase/hbase/lib/joda-time-2.1.jar    
fi

# copy jars to other nodes.
localIp=$(hostname -i)
ipArr=($(echo "$IPs" | sed "s|\,| |g"))
for ip in ${ipArr[@]}
do
    if [ "$ip"X = "$localIp"X ]; then
        echo "skip copying jar to local node."
        continue
    fi
    check_cmd_result scp ${HBASE_LIBDIR}/phoenix-${PHOENIX_HBASE_VERSION}-server.jar ${ip}:${HBASE_LIBDIR} 2>/dev/null
    check_cmd_result scp ${HBASE_LIBDIR}/phoenix-core-${PHOENIX_HBASE_VERSION}.jar ${ip}:${HBASE_LIBDIR} 2>/dev/null
    if [[ "$MRS_VERSION" =~ "2." ]]; then
        check_cmd_result ssh $ip "rm -rf ${HBASE_LIBDIR}/htrace-core-3.1.0-incubating.jar" 2>/dev/null
        check_cmd_result ssh $ip "rm -rf /opt/client/HBase/hbase/lib/joda-time-2.1.jar" 2>/dev/null
        check_cmd_result ssh $ip "ln -s /opt/share/htrace-core-3.1.0-incubating/htrace-core-3.1.0-incubating.jar 
${HBASE_LIBDIR}/htrace-core-3.1.0-incubating.jar" 2>/dev/null
        check_cmd_result ssh $ip "ln -s /opt/share/joda-time-2.1/joda-time-2.1.jar /opt/client/HBase/hbase/lib/joda-time-2.1.jar" 2>/dev/null
    fi
done
echo "installing phoenix jars to hbase successfully..."
華為hbase目錄:
/opt/huawei/Bigdata/FusionInsight_HD_6.5.0/install/FusionInsight-HBase-1.3.1/hbase/lib

./sqlline.py 192.168.52.173,192.168.52.174:24002

運(yùn)行腳本:
sh installPhoenixJar.sh 4.14.2-HBase-1.3 1.6 192.168.52.172,192.168.52.173,192.168.52.174

[root@192-168-52-171 client]# grep "kerberos.principal" /opt/client/HBase/hbase/conf/hbase-site.xml -A1
說(shuō)明:
請(qǐng)使用txt文本格式復(fù)制導(dǎo)入如上腳本,以避免導(dǎo)入格式錯(cuò)誤問(wèn)題。
<PHOENIX_HBASE_VERSION>:當(dāng)前使用的phoenix版本。例如MRS 2.x之前可使用的phoenix版本為4.14.1-HBase-1.3,MRS 2.x及之后可使用5.0.0-HBase-2.0。
<MRS_VERSION>:當(dāng)前使用的MRS版本。
<IPs>:hbase的安裝節(jié)點(diǎn)ip,以逗號(hào)分隔,即當(dāng)前集群的Master節(jié)點(diǎn)和Core節(jié)點(diǎn)ip。
執(zhí)行腳本后,打印出“installing phoenix jars to hbase successfully...”字樣則表示phoenix已安裝成功。

登錄MRS Manager界面,重啟HBase服務(wù)。
配置phoenix客戶端參數(shù)(未開啟Kerberos認(rèn)證集群可跳過(guò)此步驟)。
配置phoenix連接時(shí)使用的認(rèn)證信息。進(jìn)入$PHOENIX_HOME/bin,編輯hbase-site.xml文件,需配置參數(shù)如表 1 Phoenix參數(shù)配置所示。

可配置參數(shù)。如下所示,

<property>
<name>hbase.regionserver.kerberos.principal</name>
<value>hbase/hadoop.hadoop.com@HADOOP.COM</value>
</property>
<property>
<name>hbase.master.kerberos.principal</name>
<value>hbase/hadoop.hadoop.com@HADOOP.COM</value>
</property>
<property>
<name>hbase.security.authentication</name>
<value>kerberos</value>
</property>
說(shuō)明:
其中參數(shù)“hbase.master.kerberos.principal”和“hbase.regionserver.kerberos.principal”為開啟Kerberos認(rèn)證的安全集群中hbase的kerberos用戶,可搜索客戶端中hbase-site.xml文件得到參數(shù)值。例如,客戶端安裝在master節(jié)點(diǎn)的/opt/client下,則可使用命令“grep "kerberos.principal" /opt/client/HBase/hbase/conf/hbase-site.xml -A1”獲取,如圖1所示。
圖1 獲取hbase的principal

修改Phoenix路徑的bin目錄下的sqlline.py腳本(例如:apache-phoenix-4.14.1-HBase-1.3-bin/bin/sqlline.py),添加hbase客戶端的相關(guān)依賴信息如圖2所示。

圖2Phoenix依賴及zookeeper認(rèn)證

詳細(xì)配置。如下所示,

添加hbase client的lib包(eg,$HBASE_HOME/lib/*:)
添加相關(guān)認(rèn)證(eg,$HBASE_OPTS)

使用方法

Phoenix支持SQL的方式來(lái)操作HBase。以下簡(jiǎn)單介紹使用SQL語(yǔ)句建表/插入數(shù)據(jù)/查詢數(shù)據(jù)/刪表等操作,Phoenix同樣支持以JDBC的方式來(lái)操作HBase,具體請(qǐng)參見SQL查詢。

1、連接Phoenix

source /opt/client/bigdata_env
kinit MRS集群用戶(MRS集群用戶可以是內(nèi)置用戶hbase,或者已加入hbase組中的其他用戶,未開啟Kerberos認(rèn)證集群略過(guò)該命令)
cd $PHOENIX_HOME
bin/sqlline.py zookeerIp:2181
說(shuō)明:
1.MRS 1.6.2及以下版本ZooKeeper端口號(hào)為24002,詳見MRS Manager的Zookeeper集群配置。

2.若使用phoenix的索引功能,需在HBase服務(wù)端(包括HMaster和RegionServer)添加如下配置(詳情請(qǐng)參見https://phoenix.apache.org/secondary_indexing.html):

<property>

<name>hbase.regionserver.wal.codec</name>

<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>

</property>

2、建表:

CREATE TABLE TEST (id VARCHAR PRIMARY KEY, name VARCHAR);

3、插入數(shù)據(jù):

UPSERT INTO TEST(id,name) VALUES ('1','jamee');

4、查詢數(shù)據(jù):

SELECT * FROM TEST;

5、刪表:

DROP TABLE TEST;

總結(jié)

以上是生活随笔為你收集整理的Hbase插件之Phoenix的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。