hadoop - Kafka Hdfs 2 Sink 连接器无法在 hdfs 上写入
问题描述
以下是我的 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-user是我的 confluent 平台用户的名称... confluent 和 hdfs 都在不同的虚拟机上
提前致谢....
解决方案
您的用户: 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 集群的 NameNodes 和所有数据节点 - 使用 Kerberos
推荐阅读
- elasticsearch - 没有索引匹配模式“filebeat-*
- python - 如何将自己类目录中的图像文件 (jpg) 提供给 Tensorflow Estimator 进行训练?
- oracle - BYOL 与 oracle RDS
- python - 除了使用 PyDataLog 的传统方式之外,还有另一种在 CherryPy 中使用 PyDataLog 的方法吗?
- checkbox - ngbTabTitle 中的嵌套复选框不起作用
- ios - 在 iOS 应用程序中将 RTMP 转换为 RTP 以将其发送到 Kurento 媒体服务器
- java - Apache POI:内存不足
- html - 无法调整表格大小以适合表格中的图像
- javascript - 如何在单击事件上调用 ajax 时显示 CSS 加载
- node.js - 两台服务器之间建立Node JS连接