我是靠谱客的博主 朴素小熊猫,最近开发中收集的这篇文章主要介绍Hadoop for .NET开发方式将数据加载到HDFS,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Hadoop for .NET开发方式将数据加载到HDFS

参考文章:https://blog.csdn.net/WuLex/article/details/78069478

启动Visual Studio并创建一个新的C#控制台应用程序

使用NuGet软件包管理器,
将Microsoft.Hadoop.WebClient软件包的Microsoft .NET API添加到您的项目中
包括相关的依赖项DLL

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20505.0" targetFramework="net452" />
  <package id="Microsoft.Data.Edm" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.Data.OData" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.Hadoop.WebClient" version="0.12.5126.42915" targetFramework="net452" />
  <package id="Microsoft.Net.Http" version="2.0.20505.0" targetFramework="net452" />
  <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.8.0.0" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net452" />
  <package id="System.Spatial" version="5.2.0" targetFramework="net452" />
  <package id="WindowsAzure.Storage" version="2.0.4.1" targetFramework="net452" />
</packages>

请打开Program.cs文件并添加以下指令:
using Microsoft.Hadoop.WebHDFS;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Hadoop.WebHDFS;

namespace hadoopNetDevConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            string srcPath = @"D:vmjsontest_fenfu2000_1w.json";
            string destPath = "/arcgis/test_fenfu2000_1w_9.json";
            string destDir = "/arcgis/";

            //连接到hadoop集群
            Uri myUri = new Uri("http://192.168.10.200:50070");
            string userName = "hadoop3";


            //由于把hdfs-site.xml配置文件中dfs.permissions属性 设置false
            WebHDFSClient myClient = new WebHDFSClient(myUri, "");

            //将文件加载到目标目录         
            myClient.CreateFile(srcPath, destPath).Wait();

            //列出目标目录的文件内容
            Console.WriteLine();
            Console.WriteLine("Contents of " + destDir);
            //myClient.GetDirectoryStatus(destDir).ContinueWith(
            //    ds => ds.Result.Files.ToList().ForEach(
            //    f => Console.WriteLine("t" + f.PathSuffix)
            //    ));

            Console.ReadLine();
        }
    }
}

查看上传到hdfs上的情况:
http://192.168.10.201:50070/explorer.html#/arcgis

Browse Directory

/arcgis

Permission  Owner   Group   Size    Last Modified   Replication Block Size  Name
-rwxr-xr-x  hadoop3 supergroup  9.99 MB 2018/8/17 下午8:09:35 1   128 MB  11.json
-rwxr-xr-x  dr.who  supergroup  9.99 MB 2018/8/17 下午7:46:06 3   128 MB  test_fenfu2000_1w.json
-rwxr-xr-x  hadoop3 supergroup  9.99 MB 2018/8/17 下午8:00:30 1   128 MB  test_fenfu2000_1w11.json
-rwxr-xr-x  hadoop3 supergroup  9.99 MB 2018/8/17 下午7:48:02 1   128 MB  test_fenfu2000_1w_3.json
-rwxr-xr-x  dr.who  supergroup  9.99 MB 2018/8/17 下午7:56:16 3   128 MB  test_fenfu2000_1w_9.json
-rwxr-xr-x  dr.who  supergroup  9.99 MB 2018/8/17 下午8:15:59 3   128 MB  test_fenfu2000_1w_99.json
Hadoop, 2018.

遇见报错的问题: myClient.CreateFile(srcPath, destPath).Wait();
不能解析slave2 主机名

原因是hadoop集群有三台
192.168.10.200 master
192.168.10.201 slave1
192.168.10.202 slave2

hosts c:windowsSystem32driversetc
添加下面的内容就OK:机器名与IP互转换的问题

0.0.0.0 account.jetbrains.com
192.168.10.200  master
192.168.10.201  slave1
192.168.10.202  slave2

最后

以上就是朴素小熊猫为你收集整理的Hadoop for .NET开发方式将数据加载到HDFS的全部内容,希望文章能够帮你解决Hadoop for .NET开发方式将数据加载到HDFS所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部