一、說明
先創建一個hbase表格,能夠導入本地數據到hbase中,最后能夠通過phoneix進行訪問。
1、數據准備(10W條,樣例如下),文件test.txt
0,20190520164020,171.15.136.201,ie 1,20190520164020,139.203.75.112,chorm 2,20190520164020,121.77.62.91,chorm 3,20190520164020,139.213.175.14,ie 4,20190520164020,210.45.253.237,chorm 5,20190520164020,171.12.45.87,chrome 6,20190520164020,139.200.93.224,firefox 7,20190520164020,222.61.160.72,chorm
2、上傳到hdfs /tmp/下
hadoop fs -put test.txt /tmp/test.txt
1、在hbase中創建好表
create 'TEST','INFO'
2、在phoenix中建立相同的表名以實現與hbase表的映射
create table if not exists TEST(ID varchar primary key, INFO.DATA varchar, INFO.IP varchar, INFO.BROWER varchar );
注意:
a、phoneix中創建的表與hbase中映射的表名要相同
b、phoneix的主鍵名稱不需要和hbase中相同,兩邊通過表格內置結構可以自動關聯起來,因為表格自動識別到主鍵
c、phoneix中的column必須以hbase的columnFamily開頭
3、hdfs數據導入到hbase中,執行下面兩條命令
a、通過importtsv.separator指定分隔符,否則默認的分隔符是tab鍵。
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,INFO:DATA,INFO:IP,INFO:BROWER -Dimporttsv.separator=, -Dimporttsv.bulk.output=/tmp/who_goods_label_output TEST /tmp/test.txt
b、將生成的hfile文件導入到hbase
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/who_goods_label_output TEST
4、查看結果
a、hbase
b、phoneix