標籤:
首先,解決talend串連hbase的問題:
公司使用的機器是HDP2.2的機器,上面配置好Hbase服務,在叢集的/etc/hbase/conf/hbase-site.xml下,有如下配置:
<property> <name>zookeeper.znode.parent</name> <value>/hbase-unsecure</value> </property>
這個配置是決定, Hbase master在zookeeper中,儲存資料的根節點,如果不特別設定,預設位置是:/hbase (這個坑了我好久呀。。。,經過漫長的研究,終於頓悟,著實不易呀)。
在設定hbase databae時,配置如下:
測試zk的聯通性:
[[email protected] ~]$ zookeeper-client -server 172.28.3.61:2181[zk: 172.28.3.61:2181(CONNECTED) 15] ls /[hiveserver2, controller_epoch, controller, brokers, zookeeper, hbase-unsecure, hadoop-ha, rmstore, admin, consumers, config][zk: 172.28.3.61:2181(CONNECTED) 16] ls /hbase-unsecure[replication, meta-region-server, rs, splitWAL, backup-masters, table-lock, region-in-transition, online-snapshot, master, running, recovering-regions, draining, namespace, hbaseid, table]
最後的狀態是串連成功:
串連成功後,retrive schema:
在hbase中,表格資訊如下:
hbase(main):047:0> scan ‘zhangchao‘ROW COLUMN+CELL example column=cc2:name, timestamp=1436838509057, value=justin example2 column=cc1:age, timestamp=1436838869051, value=38 example3 column=cc1:sex, timestamp=1436839082133, value=male example4 column=cc1:age, timestamp=1436854903976, value=3344 row(s) in 0.0270 secondshbase(main):048:0> describe ‘zhangchao‘DESCRIPTION ENABLED ‘zhangchao‘, {NAME => ‘cc1‘, BLOOMFILTER => ‘ROW‘, VERSIONS => ‘1‘, IN_M true EMORY => ‘false‘, KEEP_DELETED_CELLS => ‘false‘, DATA_BLOCK_ENCODING => ‘NONE‘, TTL => ‘FOREVER‘, COMPRESSION => ‘NONE‘, MIN_VERSIONS => ‘0‘, BL OCKCACHE => ‘true‘, BLOCKSIZE => ‘65536‘, REPLICATION_SCOPE => ‘0‘}, {NA ME => ‘cc2‘, BLOOMFILTER => ‘ROW‘, VERSIONS => ‘1‘, IN_MEMORY => ‘false‘ , KEEP_DELETED_CELLS => ‘false‘, DATA_BLOCK_ENCODING => ‘NONE‘, TTL => ‘ FOREVER‘, COMPRESSION => ‘NONE‘, MIN_VERSIONS => ‘0‘, BLOCKCACHE => ‘tru e‘, BLOCKSIZE => ‘65536‘, REPLICATION_SCOPE => ‘0‘}1 row(s) in 0.0770 seconds
mysql中表的結構如下:
建立Talend模型,將hbase中的資料匯入到mysql中:
執行後,mysql中的表中有了hbase的資訊:
這樣hbase到mysql的資料通道就算打通,問題的關鍵其實是,如何設計mysql裡的行資料,讓其轉換為hbase中的類資料,因為hbase是列式儲存,按照表->行->列簇:列->值的形式來儲存。
talend 將hbase中資料匯入到mysql中