CDH6.3.2 啓用Kerberos 集成使用phoenix
標籤(空格分隔):大數據平臺構建sql
- 1、下載並安裝Phoenix parcel
- 2、安裝CSD文件
- 3、在Cloudera Manager中添加Phoenix服務(前提是已經安裝了HBase服務)
- 4、配置HBase以用於Phoenix
- 5、驗證Phoenix安裝 與冒煙測試
- 6、導入數據驗證測試
- 7、關於phoinex 的schema 與 hbase 的namespace 集成
1、下載並安裝Phoenix parcel
下載地址 https://archive.cloudera.com/phoenix/6.2.0/parcels/ PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel.sha https://archive.cloudera.com/phoenix/6.2.0/csd/ PHOENIX-1.0.jar
1. 登陸Cloudera Manager,點「羣集」->「Parcel」,進入Parcel頁。 2. 點擊「配置」,添加遠程Phoenix Parcel URL,如圖1所示,而後保存更改。
4. 完成下載後,點擊「分配」
5. 分配完成後,點擊「激活」
2、安裝CSD文件
2.1 安裝 phoenix
在CDH中添加Phoenix服務以前,必須安裝Custom Service Descriptor(CSD)文件。 1. 肯定CSD文件存放位置。 登陸Cloudera Manager,點「管理」->「設置」,點擊「自定義服務描述符」,查看「本地描述符存儲庫路徑」 /opt/cloudera/csd 目錄 mv PHOENIX-1.0.jar /opt/cloudera/csd/ 重新啓動cloudera-scm-server 服務 systemctl restart cloudera-scm-server
登陸Cloudera Manager,重啓Cloudera Management Service服務
須要重新啓動hbase
三: 在Cloudera Manager中添加Phoenix服務
4、配置HBase以用於Phoenix
1. 添加屬性 選擇「Hbase」->「配置」,搜索「hbase-site.xml 的 HBase 服務高級配置代碼段」,單擊「以XML格式查看」,並添加如下屬性: <property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> </property> <property> <name>phoenix.functions.allowUserDefinedFunctions</name> <value>true</value> <description>enable UDF functions</description> </property> 將hbase.regionserver.wal.codec定義寫入預寫日誌(「wal」)編碼。 設置phoenix.functions.allowUserDefinedFunctions屬性啓用用戶自定義函數(UDF)。 重啓Hbase服務
登陸 phoinex 使用kerberos 的 hbase 帳號登陸 kadmin.local xst -kt /root/hbase.keytab -norandkey hbase/dev01.lanxintec.cn@LANXIN.COM kinit -kt hbase.keytab hbase/dev01.lanxintec.cn@LANXIN.COM klist 若是hbase的 keytab 文件過時 就 重新生成
五:冒煙測試
登陸集羣主機,並在命令提示符下運行如下冒煙測試: phoenix-psql /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/examples/WEB_STAT.sql /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/examples/WEB_STAT.csv /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/examples/WEB_STAT_QUERIES.sql
六. 導入數據驗證測試
導入測試用戶md5電話測試 vim user_md5_phone.txt --- 1312259769,440000,13113962870,6c4c8e6d1b8a352dbed4adccdbd0916b,2d18e767f4dd0a6b965f98e66146dcf3c57a92a59ed82bee58230e2ce29fd18e,7O3dO7OGm3oz+19WWHDyij9yA== 1312259770,440000,13113960649,869f01556dac3c9c594e79f27956a279,9f51d68d8dd6121cbb993f9a630db0356b599a5cdf51c1b23897245cf6e01798,b/S8Gb/JOSaHwa/Tc+6X60bfw== 1312259771,440000,13113960246,047c7ea330311966ca5e9ea47ad39d45,c643a9299090a751a5ec7994906bc02e4514ae881e61c9432dcae1292bb83c98,1Ivlz1IZEvBypRDfzWJ4gP+7w== 1312259772,440000,13113969966,c822d280828a99b8de813501d931f2bc,c06fadd37b332224deed002cbddc76bfea336450785de8a9ca07de8b88a51dc5,ubOOQub8OOnyh+fQ528AdpOkg== 1312259773,440000,13113969454,d58f7356ae473a7c24f880e4ae080121,746ec2332c0bc48c883deebb5c84e69b3e7293148be0ae9f0d9b2d82ea00bbb0,l3L2Xl3CvL23XhBlYuA/wnsGg== --- 數據字段介紹 字段 字段解釋 ID REGION_CODE 地區編碼 PHONE_NUMBER 電話號碼 MD5_PHONE_NUMBER 電話號碼md5加密 SHA256_PHONE_NUMBER 電話號碼sha256加密 AES_PHONE_NUMBER 電話號碼aes加密 這邊以 ID 做爲hbase 的rowkey
登陸hbase create 'ODS_USER.PHONE_NUMBER','INFO' list
二、在phoenix中創建相同表以實現與hbase表的映射 登陸phoinex !ph create table ODS_USER.PHONE_NUMBER(ID varchar primary key, INFO.REGION_CODE varchar, INFO.PHONE_NUMBER varchar, INFO.MD5_PHONE_NUMBER varchar, INFO.SHA256_PHONE_NUMBER varchar, INFO.AES_PHONE_NUMBER varchar) column_encoded_bytes=0;
將要導入數據上傳的hdfs hdfs dfs -mkdir /tmp/hbase hdfs dfs -mkdir /tmp/hfile hdfs dfs -chmod 777 /tmp/hbase hdfs dfs -chmod 777 /tmp/hfile hdfs dfs -put user_md5_phone.txt
三、生成HFILE文件 hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,INFO:REGION_CODE,INFO:PHONE_NUMBER,INFO:MD5_PHONE_NUMBER,INFO:SHA256_PHONE_NUMBER,INFO:AES_PHONE_NUMBER -Dimporttsv.separator=, -Dimporttsv.bulk.output=/tmp/hfile/user_md5_phone ODS_USER.PHONE_NUMBER /tmp/hbase/user_md5_phone.txt
四、加載HFILE文件到HBASE hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/hfile/user_md5_phone ODS_USER.PHONE_NUMBER
查看驗證: hbase shell list scan 'ODS_USER.PHONE_NUMBER'
!ph !table select * from ODS_USER.PHONE_NUMBER;
七:關於phoinex 的schema 與 hbase 的namespace 集成
選擇「Hbase」->「配置」,搜索「hbase-site.xml 的 HBase 服務高級配置代碼段」,單擊「以XML格式查看」,並添加如下屬性: 選擇「Hbase」->「配置」,搜索「hbase-site.xml 的 HBase 客戶端高級配置代碼段」,單擊「以XML格式查看」,並添加如下屬性: <property> <name>phoenix.schema.isNamespaceMappingEnabled</name> <value>true</value> <description>Enables mapping of tables of a Phoenix schema to a non-default HBase namespace. To enable mapping of a schema to a non-default namespace, set the value of this property to true. The default setting for this property is false.</description> </property> <property> <name>phoenix.schema.mapSystemTablesToNamespace</name> <value>true</value> <description>With true setting (default): After namespace mapping is enabled with the other property, all system tables, if any, are migrated to a namespace called system.With false setting: System tables are associated with the default namespace.</description> </property> <property> <name>phoenix.index.failure.handling.rebuild</name> <value>true</value> </property> <property> <name>phoenix.index.failure.block.write</name> <value>true</value> </property>
重新啓動 hbase
整理上傳數據測試: vim ip_shanghai.txt --- 2817314940,223.255.239.246,上海,上海,聯通 2817314941,223.255.239.247,上海,上海,聯通 2817314942,223.255.239.248,上海,上海,聯通 2817314943,223.255.239.249,上海,上海,聯通 2817314944,223.255.239.250,上海,上海,聯通 2817314945,223.255.239.251,上海,上海,聯通 2817314946,223.255.239.252,上海,上海,聯通 2817314947,223.255.239.253,上海,上海,聯通 2817314948,223.255.239.254,上海,上海,聯通 2817314949,223.255.239.255,上海,上海,聯通 --- id 自增ID ip ipv4地址 province 省份 city 城市 operator 運營商 country 國家 這邊用ip 地址 作爲rowkey
登陸phoenix !ph create scheam IP_LOCATION; create table IP_LOCATION.IP_ADDRESS(IP varchar primary key,INFO.ID varchar,INFO.PROVINCE varchar, INFO.CITY varchar, INFO.OPERATOR varchar, INFO.COUNTRY varchar) column_encoded_bytes=0;
登陸hbase 查看 會自動生成 一個 IP_LOCATION:IP_ADDRESS 表
導入數據: hdfs dfs -put ip_shanghai.txt /tmp/hbase
加載數據生成hfile hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=INFO:ID,HBASE_ROW_KEY,INFO:PROVINCE,INFO:CITY,INFO:OPERATOR,INFO:COUNTRY -Dimporttsv.separator=, -Dimporttsv.bulk.output=/tmp/hfile/ipshanghai IP_LOCATION:IP_ADDRESS /tmp/hbase/ip_shanghai.txt
將數據導入hbase 當中: hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/hfile/ipshanghai IP_LOCATION:IP_ADDRESS
驗證: !ph !table select * from IP_LOCATION.IP_ADDRESS;