flume的sink寫入hive表


flume的配置文件如下:
a1.sources=r1
a1.channels=c1
a1.sinks=s1

a1.sources.r1.type=netcat
a1.sources.r1.bind=master
a1.sources.r1.port=44444

a1.sinks.s1.type=hive
a1.sinks.s1.hive.metastore=thrift://master:9083
a1.sinks.s1.hive.database=bd14
a1.sinks.s1.hive.table=flume_user
a1.sinks.s1.serializer=DELIMITED
a1.sinks.s1.serializer.delimiter="\t"
a1.sinks.s1.serializer.serdeSeparator='\t'
a1.sinks.s1.serializer.fieldnames=user_id,user_name,age

a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100

a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1

 


保存
運行flume-ng agent -c conf -f netcat_to_hive_user.conf --name a1
hive根目錄下的/hcatalog/share/hcatalog文件夾中的如下三個文件夾添加到flume的lib目錄下
-rw-r--r--. 1 root root 260425 Jun 17  2016 hive-hcatalog-core-2.1.0.jar
-rw-r--r--. 1 root root  52709 Jun 17  2016 hive-hcatalog-pig-adapter-2.1.0.jar
-rw-r--r--. 1 root root  55274 Jun 17  2016 hive-hcatalog-server-extensions-2.1.0.jar
-rw-r--r--. 1 root root 121591 Jun 17  2016 hive-hcatalog-streaming-2.1.0.jar

在hive中

創建一張hive表 表名是flume_user,字段是user_id,user_name,age
create table flume_user(
user_id int
,user_name string
,age int
)
clustered by (user_id) into 2 buckets
stored as orc
tableproperties("transactional"='true')

set hive.support.concurrency=true
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
select * from flume_user
打開一個連接 到服務器然后輸入 :
telnet localhost 44444 
然后輸入 對應字符
1 tab鍵 王五 tab鍵 15 tab鍵


免責聲明!

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



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