Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 从客户端应用程序编写GoogleDataProc使用集群';数据节点的内部IP_Hadoop_Hdfs_Google Cloud Dataproc_Pentaho Data Integration_Datanode - Fatal编程技术网

Hadoop 从客户端应用程序编写GoogleDataProc使用集群';数据节点的内部IP

Hadoop 从客户端应用程序编写GoogleDataProc使用集群';数据节点的内部IP,hadoop,hdfs,google-cloud-dataproc,pentaho-data-integration,datanode,Hadoop,Hdfs,Google Cloud Dataproc,Pentaho Data Integration,Datanode,我已经在谷歌云上安装了Dataproc集群。 它是sup并且正在运行,我可以访问HDFS并从SSH“浏览器中”控制台复制文件。因此问题不在Dataproc端 我现在使用Pentaho(ELT软件)复制文件。 Pentaho需要访问主节点和数据节点 我收到以下错误消息: 456829 [Thread-143] WARN org.apache.hadoop.hdfs.DataStreamer - Abandoning BP-1097611520-10.132.0.7- 161158940581

我已经在谷歌云上安装了Dataproc集群。 它是sup并且正在运行,我可以访问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中my firs datanode的内部IP。 我需要使用外部IP

我的问题是,

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

我试过:

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

dfs.client.use.datanode.hostname
真的
没有成功,,
非常感谢,

ETL工具无法通过外部IP从内部数据中心访问数据节点,因为您的防火墙规则可能会阻止从internet或您创建的数据中心进行访问

这就是说,允许从internet访问HDFS是一种安全风险。默认情况下,Dataproc群集不配置带有Kerberos的安全身份验证,所以如果您决定向internet开放群集,您至少应该访问它


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

您在哪里运行Pentaho ETL工具?在GCE虚拟机、本地机器、prem数据中心或其他一些云上?我在premise上使用Pentaho让我补充一下,我已经创建了用户可以在Linux主节点VM和HDFS中使用pentaho