gpt4 book ai didi

hadoop - 从客户端应用程序写入的 Google Dataproc 将集群的内部 IP 用于数据节点

转载 作者:行者123 更新时间:2023-12-04 15:07:00 25 4
gpt4 key购买 nike

我在 Google Cloud 上设置了 Dataproc 集群。它已启动并正在运行,我可以访问 HDFS 并从“浏览器”控制台中的 SSH 复制文件。所以问题不在 Dataproc 端。

我现在正在使用Pentaho(ELT软件)复制文件。Pentaho 需要访问主节点和数据节点。

我有以下错误信息:

456829 [Thread-143] WARN org.apache.hadoop.hdfs.DataStreamer - Abandoning BP-1097611520-10.132.0.7-    1611589405814:blk_1073741911_1087
456857 [Thread-143] WARN org.apache.hadoop.hdfs.DataStreamer - Excluding datanode DatanodeInfoWithStorage[10.132.0.9:9866,DS-6586e84b-cdfd-4afb-836a-25348a5080cb,DISK]
456870 [Thread-143] WARN org.apache.hadoop.hdfs.DataStreamer - DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/jmonteilx/pentaho-shim-test-file.test could only be replicated to 0 nodes instead of minReplication (=1). There are 2 datanode(s) running and 2 node(s) are excluded in this operation.
at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1819)
at org.apache.hadoop.hdfs.server.namenode.FSDirWriteFileOp.chooseTargetForNewBlock(FSDirWriteFileOp.java:265)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2569)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:846)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:510)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:503)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:989)
at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:871)
at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:817)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1893)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2606)

日志中使用的 IP 地址是我在 Dataproc 中的第一个数据节点的内部 IP。我需要使用外部 IP。

我的问题如下,

在客户端文件中的配置文件中有什么要更改的吗?

我试过了:

<property>    
<name>dfs.client.use.datanode.hostname</name>
<value>true</value>
</property>

没有成功,非常感谢,

最佳答案

ETL 工具无法通过本地数据中心的外部 IP 访问 DataNode,因为您的防火墙规则可能阻止了来自互联网的访问,或者您创建了 Dataproc cluster with internal IPs .

也就是说,允许从互联网访问 HDFS 存在安全风险。默认情况下,Dataproc 集群不配置带 Kerberos 的安全身份验证,因此如果您决定向互联网开放集群,您至少应该 configure secure access

首选解决方案是在本地和 GCP 集群之间建立安全的网络连接,并通过它访问 HDFS。您可以在 GCP documentation 中阅读有关此选项的更多信息.

关于hadoop - 从客户端应用程序写入的 Google Dataproc 将集群的内部 IP 用于数据节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65938388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com