一、安装环境

1,前期准备:官网下载“NuGet Package Manager”,按自己已有的VS环境下载对应版本;

2,利用NuGet下载Hadoop For .NET SDK,地址“http://hadoopsdk.codeplex.com/

3,安装。

4,通过HDInsight,安装Windows Azure,目前是预览版本。

5,参照网址“http://blogs.msdn.com/b/data_otaku/archive/2013/08/14/hadoop-for-net-developers.aspx” 系统学习API

二、测试DEMO

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Microsoft.Hadoop;
  7. using Microsoft.Hadoop.MapReduce;
  8. using Microsoft.Hadoop.WebClient.WebHCatClient;
  9. using System.Diagnostics;
  10. using System.IO;
  11. using System.IO.MemoryMappedFiles;
  12. namespace HadoopConsol
  13. {
  14. class Program
  15. {
  16. static void Main(string[] args)
  17. {
  18. Stopwatch sw = new Stopwatch();
  19. long hadoopTime=0;
  20. long normalTime=0;
  21. sw.Start();
  22. //start hadoop
  23. Console.WriteLine("     Hadoop Process Strating ....");
  24. #region Hadoop time
  25. #region hadoopconnet
  26. Console.WriteLine("     Hadoop Connect Strating ....");
  27. //establish job configuration
  28. HadoopJobConfiguration myConfig = new HadoopJobConfiguration();
  29. myConfig.InputPath = "/demo/simple/in";
  30. myConfig.OutputFolder = "/demo/simple/out";
  31. //connect to cluster
  32. Uri myUri = new Uri("http://localhost");
  33. string userName = "hadoop";
  34. string passWord = null;
  35. IHadoop myCluster = Hadoop.Connect(myUri, userName, passWord);
  36. hadoopTime += sw.ElapsedMilliseconds;
  37. Console.WriteLine("     Hadoop Connect End.");
  38. Console.WriteLine("     Hadoop Connect time:" + sw.ElapsedMilliseconds);
  39. #endregion
  40. #region hadoopmapreduce
  41. sw.Reset();
  42. sw.Start();
  43. Console.WriteLine("     Hadoop MapReduce Strating ....");
  44. //execute mapreduce job
  45. MapReduceResult jobResult =
  46. myCluster.MapReduceJob.Execute<MySimpleMapper, MySimpleReducer>(myConfig);
  47. hadoopTime += sw.ElapsedMilliseconds;
  48. Console.WriteLine("     Hadoop MapReduce End.");
  49. Console.WriteLine("     Hadoop MapReduce Time:"+sw.ElapsedMilliseconds);
  50. #endregion
  51. #region Hadoop End
  52. sw.Reset();
  53. sw.Start();
  54. Console.WriteLine("     Hadoop Endprocess Strating ....");
  55. //write job result to console
  56. int exitCode = jobResult.Info.ExitCode;
  57. string exitStatus = "Failure";
  58. if (exitCode == 0) exitStatus = "Success";
  59. exitStatus = exitCode + " (" + exitStatus + ")";
  60. Console.WriteLine();
  61. Console.Write("Exit Code = " + exitStatus);
  62. Console.WriteLine("     Hadoop Endprocess End.");
  63. hadoopTime += sw.ElapsedMilliseconds;
  64. Console.WriteLine("     Hadoop Exit Time:" + sw.ElapsedMilliseconds);
  65. Console.WriteLine("     Hadoop Process All Time:" + hadoopTime);
  66. #endregion
  67. #endregion
  68. #region Normal time
  69. //start Normal
  70. Console.WriteLine("     Normal Process Strating ....");
  71. sw.Reset();
  72. sw.Start();
  73. //normal process
  74. #region Normal Process
  75. int myevenCount = 0;
  76. int myeventSum = 0;
  77. int myoddCount = 0;
  78. int myoddSum = 0;
  79. StreamReader fs = new StreamReader(@"c:\TEMP\integers.txt");
  80. while (fs.Peek() >= 0)
  81. {
  82. string strTemp = fs.ReadLine();
  83. if (Int32.Parse(strTemp) % 2 == 0)
  84. {
  85. myevenCount++;
  86. myeventSum += Int32.Parse(strTemp);
  87. }
  88. else
  89. {
  90. myoddCount++;
  91. myoddSum += Int32.Parse(strTemp);
  92. }
  93. }
  94. //MemoryMappedFile m = MemoryMappedFile.
  95. Console.WriteLine("even:" + "\t" + myevenCount + "\t" + myeventSum);
  96. Console.WriteLine("odd:" + "\t" + myoddCount + "\t" + myoddSum);
  97. #endregion
  98. Console.WriteLine("     Normal Process End.");
  99. normalTime += sw.ElapsedMilliseconds;
  100. Console.WriteLine("     Normal Exit Time:" + sw.ElapsedMilliseconds);
  101. Console.WriteLine("     Normal Process All Time:" + normalTime);
  102. #endregion
  103. sw.Stop();
  104. Console.Read();
  105. }
  106. }
  107. public class MySimpleMapper : MapperBase
  108. {
  109. public override void Map(string inputLine, MapperContext context)
  110. {
  111. //interpret the incoming line as an integer value
  112. int value = int.Parse(inputLine);
  113. //determine whether value is even or odd
  114. string key = (value % 2 == 0) ? "even" : "odd";
  115. //output key assignment with value
  116. context.EmitKeyValue(key, value.ToString());
  117. }
  118. }
  119. public class MySimpleReducer : ReducerCombinerBase
  120. {
  121. public override void Reduce(
  122. string key, IEnumerable<string> values, ReducerCombinerContext context
  123. )
  124. {
  125. //initialize counters
  126. int myCount = 0;
  127. int mySum = 0;
  128. //count and sum incoming values
  129. foreach (string value in values)
  130. {
  131. mySum += int.Parse(value);
  132. myCount++;
  133. }
  134. //output results
  135. context.EmitKeyValue(key, myCount + "\t" + mySum);
  136. }
  137. }
  138. }

三、测试结果

C# Hadoop学习笔记(一)—环境安装的更多相关文章

  1. openresty 学习笔记一:环境安装

    openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...

  2. hadoop学习笔记壹 --环境搭建及配置文件的修改

    Hadoop生态和其他生态最大的不同之一就是“单一平台多种应用”的理念了. hadoop能解决是什么问题: 1.HDFS :海量数据存储 MapReduce: 海量数据分析   YARN :资源管理调 ...

  3. appium学习笔记(环境安装配置,设备启动)

      Android SDK下载及配置 下载地址 下载后解压缩,打开SDK Manager.exe,下载适当版本的Android包 配置环境变量:目录下的tools路径(含uiautomatorview ...

  4. Hadoop学习笔记-008-CentOS_6.5_64_yum安装mysql

    ******************************卸载mysql***************************** 第一步,查看centos上是否已经安装了mysql数据库 # rp ...

  5. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  6. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  7. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

  8. PHP学习笔记----IIS7下安装配置php环境

    原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...

  9. Hadoop学习笔记(10) ——搭建源码学习环境

    Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...

  10. Hadoop学习笔记(1) ——菜鸟入门

    Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...

随机推荐

  1. [LintCode] Longest Increasing Continuous subsequence

    http://www.lintcode.com/en/problem/longest-increasing-continuous-subsequence/# Give you an integer a ...

  2. CAS Ticket票据:TGT、ST、PGT、PT、PGTIOU

    CAS的核心就是其Ticket,及其在Ticket之上的一系列处理操作.CAS的主要票据有TGT.ST.PGT.PGTIOU.PT,其中TGT.ST是CAS1.0协议中就有的票据,PGT.PGTIOU ...

  3. 一步步改造wcf,数据加密传输-匿名客户端加密传输(2)

    1         引言 前面的例子中, encodedValue这一串代码是自动生成的,所以在生产环境中,你需要安装一个VS201X,把代码放上去,然后刷新引用!!!就可以了,这么做的话,你可能是只 ...

  4. Markdown的学习笔记一

    之前学习看些书籍.学些技术都喜欢用xmind做思维导图的笔记,慢慢的发现想把一些笔记做的详细一些就会变得很复杂,个人觉得误了思维导图本意,而且用手机查看的时候也各种不方便.所以开始学习使用markdo ...

  5. cisco 的ACL

    搞网络好几年了,怎么说呢,水平一直停留在NA-NP之间,系统的学完NA后,做了不少实验,后来也维护了企业的网络,各种网络设备都玩过(在商汤用的Juniper srx 550 我认为在企业环境,非IDC ...

  6. 值不能为 null。 参数名: source

    今天调试程序总是报一个异常: 值不能为 null.参数名: source 异常详细信息: System.ArgumentNullException: 值不能为 null.参数名: source 通过断 ...

  7. DNS 预解析

    DNS 解析也是需要时间的,可以通过预解析的方式来预先获得域名所对应的 IP. <link rel="dns-prefetch" href="//yuchengka ...

  8. Maven - Maven速成

    Maven Maven是一个项目构建和管理工具,有助于开发者快速完成项目的配置,快速建立开发环境,从而提高开发效率. 管理项目构建(build)的生命周期(清理.编译.测试.打包.发布.部署.报告等) ...

  9. Spring Integration Zip不安全解压(CVE-2018-1261)漏洞复现

    不敢说分析,还是太菜了,多学习. 文章来源: 猎户安全实验室 存在漏洞的源码下载地址:https://github.com/spring-projects/spring-integration-ext ...

  10. 在没有任何投票节点情况下将从节点转换为Primary节点脚本

    cfg={ "_id": "rs01", "version": 2, "protocolVersion": Number ...