我想用kafka hdfs接收器连接器连接到azure blob存储。到目前为止,我已经做了:
套 kafka-connect
属性:
hdfs.url=wasbs://<my_url>
hadoop.conf.dir={hadoop_3_home}/etc/hadoop/
hadoop.home={hadoop_3_home}
而且在 core-site.xml
增加了对WASB的支持:
<property>
<name>fs.wasbs.impl</name>
<value>org.apache.hadoop.fs.azure.NativeAzureFileSystem</value>
</property>
出口 HADOOP_CLASSPATH
变量,添加到 PATH
但无论如何,hadoop找不到类- NativeAzureFileSystem
:
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at io.confluent.connect.hdfs.storage.StorageFactory.createStorage(StorageFactory.java:29)
... 11 more
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.azure.NativeAzureFileSystem not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2654)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
你能帮我解决这个问题吗。有可能吗?
1条答案
按热度按时间kuuvgm7e1#
我的目标是:备份从kafka到任何数据格式的azure blob的所有内容。
hdfs和云连接器不能备份“任何格式”。confluent的avro是文件格式的一级公民。其次是json,但据我所知,没有“纯文本”格式。我认为hdfs连接器确实支持“字节数组”格式。
正如我在评论中提到的,在我看来,Kafka的备份不同于无限期地将数据保留到文件系统中。将Kafka备份到Kafka包括使用mirrormaker。
如果您想使用任何格式,spark、flink、nifi或streamset都有更大的灵活性,可以直接处理这些格式