[
https://issues.apache.org/jira/browse/ARROW-4058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16724205#comment-16724205
]
Krisztian Szucs commented on ARROW-4058:
----------------------------------------
Actually it requires
https://github.com/apache/arrow/blob/master/integration/hdfs/hdfs-site.xml#L40-L43
And to configure libhdfs and libhdfs3 with it:
https://github.com/apache/arrow/blob/master/integration/hdfs/runtest.sh#L23-L24
> [C++] arrow-io-hdfs-test fails when run against HDFS cluster from
> docker-compose
> --------------------------------------------------------------------------------
>
> Key: ARROW-4058
> URL: https://issues.apache.org/jira/browse/ARROW-4058
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++
> Reporter: Wes McKinney
> Priority: Major
> Fix For: 0.12.0
>
>
> When running HDFS with {{docker-compose up hdfs-data-node-1}} I get the
> following error:
> {code}
> [==========] Running 2 tests from 2 test cases.
> [----------] Global test environment set-up.
> [----------] 1 test from TestHadoopFileSystem/0, where TypeParam =
> arrow::io::JNIDriver
> [ RUN ] TestHadoopFileSystem/0.LargeFile
> [ OK ] TestHadoopFileSystem/0.LargeFile (1101 ms)
> [----------] 1 test from TestHadoopFileSystem/0 (1101 ms total)
> [----------] 1 test from TestHadoopFileSystem/1, where TypeParam =
> arrow::io::PivotalDriver
> [ RUN ] TestHadoopFileSystem/1.LargeFile
> Loading libhdfs3 failed, skipping tests gracefully. IOError:
> ../src/arrow/io/hdfs-internal.cc:566 code:
> try_dlopen(libhdfs3_potential_paths, "libhdfs3", shim->handle)
> Unable to load libhdfs3
> Driver not loaded, skipping
> [ OK ] TestHadoopFileSystem/1.LargeFile (0 ms)
> [----------] 1 test from TestHadoopFileSystem/1 (0 ms total)
> [----------] Global test environment tear-down
> [==========] 2 tests from 2 test cases ran. (1101 ms total)
> [ PASSED ] 2 tests.
> (arrow-dev) 21:06 ~/code/arrow/cpp/build (ARROW-2919)$
> ./debug/arrow-io-hdfs-test
> Running main() from gtest_main.cc
> [==========] Running 24 tests from 2 test cases.
> [----------] Global test environment set-up.
> [----------] 12 tests from TestHadoopFileSystem/0, where TypeParam =
> arrow::io::JNIDriver
> [ RUN ] TestHadoopFileSystem/0.ConnectsAgain
> [ OK ] TestHadoopFileSystem/0.ConnectsAgain (885 ms)
> [ RUN ] TestHadoopFileSystem/0.MultipleClients
> [ OK ] TestHadoopFileSystem/0.MultipleClients (194 ms)
> [ RUN ] TestHadoopFileSystem/0.MakeDirectory
> [ OK ] TestHadoopFileSystem/0.MakeDirectory (139 ms)
> [ RUN ] TestHadoopFileSystem/0.GetCapacityUsed
> [ OK ] TestHadoopFileSystem/0.GetCapacityUsed (119 ms)
> [ RUN ] TestHadoopFileSystem/0.GetPathInfo
> [ OK ] TestHadoopFileSystem/0.GetPathInfo (229 ms)
> [ RUN ] TestHadoopFileSystem/0.AppendToFile
> 18/12/17 21:06:38 WARN hdfs.DFSClient: DataStreamer Exception
> java.io.IOException: Failed to replace a bad datanode on the existing
> pipeline due to no more good datanodes being available to try. (Nodes:
> current=[172.19.0.3:50010], original=[172.19.0.3:50010]). The current failed
> datanode replacement policy is DEFAULT, and a client may configure this via
> 'dfs.client.block.write.replace-datanode-on-failure.policy' in its
> configuration.
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.findNewDatanode(DFSOutputStream.java:1036)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2ExistingPipeline(DFSOutputStream.java:1102)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrRecovery(DFSOutputStream.java:1249)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:593)
> FSDataOutputStream#close error:
> java.io.IOException: Failed to replace a bad datanode on the existing
> pipeline due to no more good datanodes being available to try. (Nodes:
> current=[172.19.0.3:50010], original=[172.19.0.3:50010]). The current failed
> datanode replacement policy is DEFAULT, and a client may configure this via
> 'dfs.client.block.write.replace-datanode-on-failure.policy' in its
> configuration.
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.findNewDatanode(DFSOutputStream.java:1036)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2ExistingPipeline(DFSOutputStream.java:1102)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrRecovery(DFSOutputStream.java:1249)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:593)
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> F1217 21:06:38.871151 25929 hdfs.cc:275] Check failed: impl_->Close().ok()
> *** Check failure stack trace: ***
> Aborted (core dumped)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)