Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.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
C++ 使用在AmazonEC2上运行的datanode的私有ip地址的hdfs客户端程序_C++_Hadoop_Amazon Ec2_Hdfs - Fatal编程技术网

C++ 使用在AmazonEC2上运行的datanode的私有ip地址的hdfs客户端程序

C++ 使用在AmazonEC2上运行的datanode的私有ip地址的hdfs客户端程序,c++,hadoop,amazon-ec2,hdfs,C++,Hadoop,Amazon Ec2,Hdfs,全部, 我将按照以下步骤在AmazonEC2上设置hadoop单节点集群。namenode和datanode都在一个AmazonEC2实例上运行 我有一个C++的HDFS客户端程序,它不运行EC2实例上的运行。 当我的客户机程序尝试将数据写入集群时,我遇到以下异常: 2014-02-13 14:37:01,027 INFO hdfs.DFSClient(DFSOutputStream.java:createBlockOutputStream(1175)) - Exception in cre

全部,

我将按照以下步骤在AmazonEC2上设置hadoop单节点集群。namenode和datanode都在一个AmazonEC2实例上运行

我有一个C++的HDFS客户端程序,它不运行EC2实例上的运行。 当我的客户机程序尝试将数据写入集群时,我遇到以下异常:

2014-02-13 14:37:01,027 INFO hdfs.DFSClient(DFSOutputStream.java:createBlockOutputStream(1175)) - Exception in createBlockOutputStream
org.apache.hadoop.net.ConnectTimeoutException: 60000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=/10.168.15.63:50010]
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:532)
at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:13
该文件是在hdfs上创建的,但为空。例外情况似乎表明它无法在datanode上创建数据块,因为它使用了私有ip地址(10.168.15.63:50010)而不是公共ip地址(ec2-54-xxx-xxx-233.us-xxx-1.compute.amazonaws.com或54.xxx.xxx.233)。我没有固定的ip地址(即弹性ip地址)

下面是我如何在hdfs-site.xml中定义datanode地址的

<property>
    <name>dfs.datanode.address</name>
    <value>ec2-54-xxx-xxx-233.us-xxx-1.compute.amazonaws.com:50010</value>
    <description>The host and port that the MapReduce job tracker runs at.  If "local", then jobs are run in-process as a single map and reduce task.
    </description>
</property>

dfs.datanode.address
ec2-54-xxx-xxx-233.us-xxx-1.compute.amazonaws.com:50010
MapReduce作业跟踪器运行的主机和端口。如果为“本地”,则作业作为单个映射在进程中运行,并减少任务。
为了使远程客户端能够访问EC2上的Hadoop集群,还需要配置什么

提前感谢您的帮助