Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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# 在远程计算机中访问hdfs中的数据_C#_.net_Hadoop - Fatal编程技术网

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

C# 在远程计算机中访问hdfs中的数据,c#,.net,hadoop,C#,.net,Hadoop,我正在尝试使用Microsoft(Microsoft.hadoop.WebHDFS)提供的WebHDFS API访问部署在远程计算机中的hadoop。为了在客户机上显示HDFS文件的内容,我使用以下代码: using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.Hadoop.WebHDFS; using System.Windows.Forms; public static List<string

我正在尝试使用Microsoft(Microsoft.hadoop.WebHDFS)提供的WebHDFS API访问部署在远程计算机中的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;
    }
使用System.Threading.Tasks;
使用System.Windows.Forms;
使用Microsoft.Hadoop.WebHDFS;
使用System.Windows.Forms;
公共静态列表listFilesName(字符串strHadoopUserName,字符串strDirectoryPath)
{
//通过web访问hadoop的uri
Uri=新的Uri(“http://192.168.0.165:50070/");
List lstFilesName=新列表();
尝试
{
WebHDFSClient hdfsClient=新的WebHDFSClient(uri,strHadoopUserName);
Microsoft.Hadoop.WebHDFS.DirectoryListing directroyStatus=hdfsClient.GetDirectoryStatus(strDirectoryPath).Result;
List lst=directroyStatus.Files.ToList();
foreach(lst中的DirectoryEntry变量)
{
lstFilesName.Add(var.PathSuffix);
MessageBox.Show(var.PathSuffix);
}
返回文件名;
}
捕获(异常异常)
{
MessageBox.Show(exception.Message);
返回null;
}
此相关配置文件内容如下所示:

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.0.165:9000</value>
    </property>
</configuration>

fs.defaultFS
hdfs://192.168.0.165:9000
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>

dfs.replication
1.
dfs.namenode.name.dir
文件:/hadoop/data/dfs/namenode
dfs.datanode.data.dir
文件:/hadoop/data/dfs/datanode
dfs.0权限
真的
dfs.webhdfs.enabled
真的
两台机器都在同一个网络中。当我运行上述代码时,我得到以下错误: 捕获到聚合异常/发生一个或多个错误。
任何帮助都将不胜感激。

请编辑您的问题,并复制/粘贴实际错误消息的全文。没有额外的错误消息,它说,发生了一个或多个错误,当我进行调试时,出现了“已捕获聚合异常”?您能帮助解决问题@Grisha thnx吗