[英]Kafka Hdfs 2 Sink connector not able to write on 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和所有datanodes
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.