NiFi使用总结 一 hive到hive的PutHiveStreaming processor和SelectHiveQL

我说实话,NiFi的坑真的挺多的。。。

1、PutHiveStreaming processor的使用

  具体配置可参考:https://community.hortonworks.com/articles/88309/using-puthivestreaming-processor-in-nifi.html

  该控制器配置需要hive启用事物;且目前只支持orc格式,且建表需要分桶,开启事务等,建表示例如下:

create table test_trancaction
(user_id Int,name String) 
clustered by (user_id) into 3 buckets 
stored as orc TBLPROPERTIES ('transactional'='true');

  hive的事物配置,hive-site.xml配置添加:

<!--start for trancaction -->

<property>
  <name>hive.support.concurrency</name>
  <value>true</value>
</property>

<property>
  <name>hive.enforce.bucketing</name>
  <value>true</value>
</property>

<property>
  <name>hive.exec.dynamic.partition.mode</name>
  <value>nonstrict</value>
</property>

<property>
  <name>hive.txn.manager</name>
  <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>

<property>
  <name>hive.compactor.initiator.on</name>
  <value>true</value>
</property>

<property>
  <name>hive.compactor.worker.threads</name>
  <value>1</value>
</property>

hive的事物性配置、验证参考:https://my.oschina.net/wangjiankui/blog/711942

  具体配置:

  PutHiveStreaming 

    

SelectHiveQL:

双击,进入config配置:

  

 HiveConnectionPool配置:

   

 勾选自动终止关系类型:可以都选上

 

选择调度策略:

有三种,常用的有time driven,CRON driven

简单测试使用Run Schedule不要用0秒,不然会一直不停的在写入数据。。。

有关调度策略下篇在做具体说明

 

 运行一下看看:

  源数据:

  

配置好之后右键点击start

  

过一分钟左右查看插入数据:

  

条数有可能不止14条,后续再研究调度的程序设置;

到此为止简单实现了hive-hive的配置

原文地址:https://www.cnblogs.com/zuizui1204/p/10019031.html