访问远程计算机中hdfs中的数据

时间:2017-01-31 08:06:43

标签: c# .net hadoop

我正在尝试使用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>

两台机器都在同一个网络中。当我运行上面的代码时,我收到以下错误: 已发现聚合异常/发生一个或多个错误。 任何帮助将不胜感激。

0 个答案:

没有答案