我正在尝试使用Microsoft提供的WebHDFS API(Microsoft.Hadoop.WebHDFS)访问远程计算机中部署的hadoop。为了在客户端计算机上显示HDFS文件的内容,我使用以下代码:
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Hadoop.WebHDFS;
using System.Windows.Forms;
public static List<string> listFilesName(string strHadoopUserName, string strDirectoryPath)
{
//uri to access the hadoop through the web
Uri uri = new Uri("http://192.168.0.165:50070/");
List<string> lstFilesName = new List<string>();
try
{
WebHDFSClient hdfsClient = new WebHDFSClient(uri, strHadoopUserName);
Microsoft.Hadoop.WebHDFS.DirectoryListing directroyStatus = hdfsClient.GetDirectoryStatus(strDirectoryPath).Result;
List<DirectoryEntry> lst = directroyStatus.Files.ToList();
foreach (DirectoryEntry var in lst)
{
lstFilesName.Add(var.PathSuffix);
MessageBox.Show(var.PathSuffix);
}
return lstFilesName;
}
catch(Exception exException)
{
MessageBox.Show(exException.Message);
return null;
}
此相关配置文件内容显示如下:
芯-site.xml中
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.165:9000</value>
</property>
</configuration>
hdfs-site .xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/data/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hadoop/data/dfs/datanode</value>
</property>
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
两台机器都在同一个网络中。当我运行上面的代码时,我收到以下错误: 已发现聚合异常/发生一个或多个错误。 任何帮助将不胜感激。