hadoop - Kafka HDFS 2接收器连接器无法在HDFS上写入

标签 hadoop apache-kafka hdfs apache-kafka-connect

以下是我的kafka连接器json文件:

curl -s -k -X POST  http://cpnode.local.lan:8083/connectors -H "Content-Type: application/json" --data '{
"name":"jdbc-Hdfs2-Sink-Connector",
"config":{
"tasks.max":"1",
"batch.size":"1000",
"batch.max.rows":"1000",
"hdfs.poll.interval.ms":"500",
"connector.class":"io.confluent.connect.hdfs.HdfsSinkConnector",
"hdfs.url":"hdfs://hadoopnode.local.lan:9000",
"topics":"BookList2",
"flush.size":"1",
"confluent.topic.bootstrap.servers":"cpnode.local.lan:9092",
"confluent.topic.replication.factor":"1",
"value.converter":"io.confluent.connect.avro.AvroConverter",
"value.converter.schemas.enable":"true",
"value.converter.schema.registry.url":"http://cpnode.local.lan:8081",
"key.converter":"io.confluent.connect.avro.AvroConverter",
"key.converter.schemas.enable":"true",
"key.converter.schema.registry.url":"http://cpnode.local.lan:8081"
}
}' | jq '.'

当我尝试使用此连接器时,出现以下错误:
{
  "name": "jdbc-Hdfs2-Sink-Connector",
  "connector": {
    "state": "RUNNING",
    "worker_id": "192.168.1.153:8083"
  },
  "tasks": [
    {
      "id": 0,
      "state": "FAILED",
      "worker_id": "192.168.1.153:8083",
      "trace": "org.apache.kafka.connect.errors.ConnectException: org.apache.hadoop.security.AccessControlException: Permission denied: user=cp-user, access=WRITE, inode=\"/\":hadoop:supergroup:drwxr-xr-x

我尝试了export HADOOP_USER_NAME=hdfs并且
hadoop配置hdfs-site.xml
<property>
   <name>dfs.permissions</name>
   <value>false</value>
</property>

但是我想要一个不牺牲安全性的解决方案。

cp用户是我的融合平台用户的名字...
汇合和hdfs都在不同的VM上

提前致谢....

最佳答案

您的用户:user = cp-user

正在尝试access=WRITE

到位置inode=\"/\"
具有 hadoop:supergroup:drwxr-xr-x 的用户/组所有权

可能的解决方案(不重叠):

  • cp-user更改为hadoop(我假设您正在使用Docker容器?如果这样,请引用Docker 的user指令;否则,请引用export HADOOP_USER_NAME=hadoop)
  • 创建cp-user Unix帐户并将其添加到Hadoop集群的NameNode和所有数据节点
  • 并将其添加
  • 使用Kerberos
  • 关于hadoop - Kafka HDFS 2接收器连接器无法在HDFS上写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60441919/

    相关文章:

    clojure - Kafka MockConsumer 未收到记录

    java - 添加自定义 UDF 后 ksql-server 未启动

    hadoop - 如何计算hadoop中使用的df?

    hadoop - 在没有类(-对象)的情况下创建 Avro 模式

    java - Flink Kafka - 如何使应用程序并行运行?

    hadoop - Hadoop中 super 用户和 super 组的区别

    hadoop - 如何计算文件 hdfs 的行数?

    hadoop - 如何获取 hadoop 中键的整数索引?

    xml - 如何在 xmlinputformat hadoop 中给带有属性的 xml 开始标记

    java - 尝试使用自定义 SerDe 创建 Hive 表时出错