私はflumeを使ってjsonレコードをハイブに挿入しようとしていましたが、テーブルを作成しました。次のようにシンクが設定されている -Flume Json Hiveシンク
agent1.sinks.sk-json.type = hive
agent1.sinks.sk-json.hive.metastore = dt-s39.campus.ad.bgu.ac.il:3306
agent1.sinks.sk-json.hive.database = blackhole
agent1.sinks.sk-json.hive.partition = sort
agent1.sinks.sk-json.hive.table = blackholetable
agent1.sinks.sk-json.useLocalTimeStamp = true
agent1.sinks.sk-json.serializer = JSON
agent1.sinks.sk-json.channel = c-json
私は、次のエラーを取得しています:依存関係がクラスパスに見つからなかったため
は、エージェントの起動に失敗しました。エラーが発生します。
java.lang.NoClassDefFoundError: org/apache/hive/hcatalog/streaming/RecordWriter
at org.apache.flume.sink.hive.HiveSink.createSerializer(HiveSink.java:223)
at org.apache.flume.sink.hive.HiveSink.configure(HiveSink.java:203)
at org.apache.flume.conf.Configurables.configure(Configurables.java:41)
at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:413)
at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:98)
at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.apache.hive.hcatalog.streaming.RecordWriter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 13 more
シリアライザHiveJsonSerializerを使用するはずですか?
https://flume.apache.org/releases/content/1.7.0/apidocs/org/apache/flume/sink/hive/HiveJsonSerializer.htmlは、私は、誰もがそれに任意の経験を持っていたし、私にリードを与えることができ、私は少し失われていますJSONSerDe.java https://github.com/cloudera/cdh-twitter-example/tree/master/hive-serdes/src/main/java/com/cloudera/hive/serde
を使用するようになっていましたか?