Flume采集Kafka数据存储到Hive
需求背景
将 Kafka 中的数据通过 Flume 收集并存储到 Hive 里。 环境准备
这里是使用 Apache 社区版部署的环境,而非 CDH、HDP 等方式,可以先参考官方文档搭建好环境。 配置 Hive修改hive-site.xml 文件,添加以下内容。 hive.txn.manager org.apache.hadoop.hive.ql.lockmgr.DbTxnManager Set to org.apache.hadoop.hive.ql.lockmgr.DbTxnManager as part of turning on Hive transactions, which also requires appropriate settings for hive.compactor.initiator.on, hive.compactor.worker.threads, hive.support.concurrency (true), and hive.exec.dynamic.partition.mode (nonstrict). The default DummyTxnManager replicates pre-Hive-0.13 behavior and provides no transactions. hive.support.concurrency true Whether Hive supports concurrency control or not. A ZooKeeper instance must be up and running when using zookeeper Hive lock manager hive.metastore.uris thrift://localhost:9083 Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore. 创建hive数据库和表,需要注意,建表时需要分区、分桶、事务 。CREATE DATABASE test_db; CREATE TABLE `test_kafka_to_hive`( `time` string, `type` string, `value` string, `code` string) PARTITIONED BY ( `partition_time` string) CLUSTERED BY ( `time`) INTO 2 BUCKETS stored AS ORC TBLPROPERTIES ("transactional"="true");配置 Flume新建配置文件kafka2hive.conf ,内容如下,更多相关的配置可以参考官方文档kafka-source和hive-sink。 #创建source、channel、sink a.sources=kafka_source a.channels=memory_channel a.sinks=hive_sink #kafka为souce的配置 a.sources.kafka_source.type=org.apache.flume.source.kafka.KafkaSource a.sources.kafka_source.zookeeperConnect=localhost:2181 a.sources.kafka_source.bootstrap.servers=localhost:9092 a.sources.kafka_source.topic=processed-realtimeData a.sources.kafka_source.channels=memory_channel a.sources.kafka_source.consumer.timeout.ms=1000 a.sources.kafka_source.batchSize=10 #hive为sink的配置 a.sinks.hive_sink.type=hive a.sinks.hive_sink.hive.metastore=thrift://host_hive_metadatastore:9083 a.sinks.hive_sink.hive.database=test_db a.sinks.hive_sink.hive.table=test_kafka_to_hive a.sinks.hive_sink.hive.partition=%Y-%m-%d a.sinks.hive_sink.hive.txnsPerBatchAsk=2 a.sinks.hive_sink.batchSize=1 a.sinks.hive_sink.serializer=JSON a.sinks.hive_sink.serializer.fieldnames=time,type,value,code #channel的配置 a.channels.memory_channel.type=com.my.flume.channel.JsonParsedMemoryChannel a.channels.memory_channel.capacity=1000 a.channels.memory_channel.transactionCapacity=100 #三者之间的关系 a.sources.kafka_source.channels=memory_channel a.sinks.hive_sink.channel=memory_channel拷贝Hadoop的配置文件core-site.xml 和hdfs-site.xml 到Flume的conf 目录里,编辑core-site.xml 文件,添加以下内容。 fs.hdfs.impl org.apache.hadoop.hdfs.DistributedFileSystem 运行Flume./bin/flume-ng agent -c ./conf -f ./conf/kafka2hive.conf -n a -Dflume.root.logger=INFO,console注意事项运行过程中遇到很多类不存在或者找不到类等相关的异常,解决办法是把Hive和Hadoop的相关jar包拷贝到Flume的lib 目录下,如下这些是部署过程中碰到的一些,具体可以根据实际情况来处理。#Hive hcatalog/share/hcatalog/hive-hcatalog-streaming-3.1.0.jar hcatalog/share/hcatalog/hive-hcatalog-core-3.1.0.jar hcatalog/share/hcatalog/hive-hcatalog-server-extensions-3.1.0.jar hcatalog/share/hcatalog/hive-hcatalog-pig-adapter-3.1.0.jar hcatalog/share/hcatalog/hive-hcatalog-core-3.1.0.jar lib/hive-jdbc-3.1.0.jar lib/log4j-1.2-api-2.10.0.jar lib/log4j-api-2.10.0.jar lib/log4j-core-2.10.0.jar lib/log4j-slf4j-impl-2.10.0.jar lib/log4j-web-2.10.0.jar lib/hive-standalone-metastore-3.1.0.jar lib/hive-contrib-3.1.0.jar lib/hive-exec-3.1.0.jar lib/libfb303-0.9.3.jar lib/calcite-core-1.16.0.jar jdbc/hive-jdbc-3.1.0-standalone.jar jdbc/hive-jdbc-3.1.0-standalone.jar #Hadoop share/hadoop/common/hadoop-common-2.7.7.jar share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.7.7.jar share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.7.jar share/hadoop/common/lib/commons-configuration-1.6.jar share/hadoop/common/lib/hadoop-auth-2.7.7.jar share/hadoop/hdfs/hadoop-hdfs-2.7.7.jar share/hadoop/hdfs/lib/htrace-core-3.1.0-incubating.jar
欧米茄全新海马威尼斯版多么出乎意料但令人耳目一新的惊喜。显然,正装表不是欧米茄的专长计时码表和潜水表才是。在优雅和正装钟表方面,该品牌的报价通常很短。然而,欧米茄决定用一款极其优雅比例完美且忠实于过去的
好看的羊毛袜子搭配,时尚又保暖一下子入冬了,还好我早就备好保暖的袜了,精梳棉的透气不捂脚,袜子很有厚度穿上也不会冷,对于怕冷的我太太太适合了上脚试穿,软软糯糯的月子袜感觉以前的袜子都白买了袜软乎乎的好暖和,袜头
模特斯维塔比利亚洛娃晒出了自己的最新照片最近,模特斯维塔比利亚洛娃晒出了自己的最新照片。斯维塔比利亚洛娃是俄罗斯的模特,演员和时尚博主,出生于1989年6月20日,出生地是莫斯科,父母是销售人员。斯维塔毕业于鲁登大学语言
耀眼的明星外国女明星穿这样的衣服博取你的眼球谁不喜欢亮片的好造型?这么多年来,许多美国女都穿着亮片礼服走红毯,亮片礼服总是经典的选择。无论是家庭聚会还是外出聚会,这些造型都非常适合假日穿着。海莉比伯(HaileyBieber
这不仅是借王冠,更是婆婆对儿媳的入门认可格雷维尔冠冕TheGrevilleTiara说起卡米拉,相比她那十多年如一日毫无看头的发型和衣品,她手里的古董珠宝可谓可圈可点。除了世人熟知其在2005年10月首次作为王室成员参加
好甜!新蝙蝠侠罗伯特帕丁森和女友出席时装秀,高颜值CP大撒狗粮作为迪奥香水代言人,罗伯特帕丁森(RobertPattinson)和女友SukiWaterhouse出席埃及迪奥男装秀。这对高颜值CP全程亲昵恩爱,向粉丝大撒狗粮!罗伯特穿着白色西
去年双11囤的化妆品过期了吗?这11个标识帮你判断作为言安堂的女人,相信糖精们也是阅护肤品无数了,不知道你们有没有关注过化妆品包装上的图标?在化妆品的瓶身标识处,从绿意盎然的小树到俏皮可爱的兔子,还有手指小书单独的字母等等,各种五
婚姻到底是什么?能带来什么?头条创作挑战赛我曾经在知乎上看到过一个问题,内容是人这一辈子,结婚到底图的啥?里面有个回答非常经典,我觉得也很有道理不是为了吃穿玩而结婚,而是嫁给一个人之后才开始思考的。下面是我总
青春是甜蜜的也是苦涩的,而生命中的那束光会指引你不断前行舒晚重逢前男友秦寒,是在八年后的一场陪酒局上。好巧不巧,这次她要陪的大佬,就是他。她装聋作哑假装不熟,他便沉着脸扼住她手腕,将她抵在了墙上1。酒局再见到秦寒,是八年后。舒晚作为公司
冬日街头那些窈窕动人的身影有时候不得不佩服那些懂得抓住时机展示自己的人,可以很敏锐的抓住一些稍纵即逝的时机,把自身的优点展露无遗,让人觉得特别的深刻。懂得利用好时机的人,怎么可能不会成功?大多数时候都会是成
风与雪的邂逅,三弄梅花如何红梅开了,欣然的眼底伴有丹桂的余香而你一直避而不见莫非要我等到花落满肩或者掌心化雪你才姗姗来迟这飘雪的冬季你看不见我的泪珠幽幽滴在你的城洒成满天的花雨只为一场不期而遇的惊喜在等你的