C# Hadoop学习笔记(一)—环境安装
一、安装环境
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
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Microsoft.Hadoop;
- using Microsoft.Hadoop.MapReduce;
- using Microsoft.Hadoop.WebClient.WebHCatClient;
- using System.Diagnostics;
- using System.IO;
- using System.IO.MemoryMappedFiles;
- namespace HadoopConsol
- {
- class Program
- {
- static void Main(string[] args)
- {
- Stopwatch sw = new Stopwatch();
- long hadoopTime=0;
- long normalTime=0;
- sw.Start();
- //start hadoop
- Console.WriteLine(" Hadoop Process Strating ....");
- #region Hadoop time
- #region hadoopconnet
- Console.WriteLine(" Hadoop Connect Strating ....");
- //establish job configuration
- HadoopJobConfiguration myConfig = new HadoopJobConfiguration();
- myConfig.InputPath = "/demo/simple/in";
- myConfig.OutputFolder = "/demo/simple/out";
- //connect to cluster
- Uri myUri = new Uri("http://localhost");
- string userName = "hadoop";
- string passWord = null;
- IHadoop myCluster = Hadoop.Connect(myUri, userName, passWord);
- hadoopTime += sw.ElapsedMilliseconds;
- Console.WriteLine(" Hadoop Connect End.");
- Console.WriteLine(" Hadoop Connect time:" + sw.ElapsedMilliseconds);
- #endregion
- #region hadoopmapreduce
- sw.Reset();
- sw.Start();
- Console.WriteLine(" Hadoop MapReduce Strating ....");
- //execute mapreduce job
- MapReduceResult jobResult =
- myCluster.MapReduceJob.Execute<MySimpleMapper, MySimpleReducer>(myConfig);
- hadoopTime += sw.ElapsedMilliseconds;
- Console.WriteLine(" Hadoop MapReduce End.");
- Console.WriteLine(" Hadoop MapReduce Time:"+sw.ElapsedMilliseconds);
- #endregion
- #region Hadoop End
- sw.Reset();
- sw.Start();
- Console.WriteLine(" Hadoop Endprocess Strating ....");
- //write job result to console
- int exitCode = jobResult.Info.ExitCode;
- string exitStatus = "Failure";
- if (exitCode == 0) exitStatus = "Success";
- exitStatus = exitCode + " (" + exitStatus + ")";
- Console.WriteLine();
- Console.Write("Exit Code = " + exitStatus);
- Console.WriteLine(" Hadoop Endprocess End.");
- hadoopTime += sw.ElapsedMilliseconds;
- Console.WriteLine(" Hadoop Exit Time:" + sw.ElapsedMilliseconds);
- Console.WriteLine(" Hadoop Process All Time:" + hadoopTime);
- #endregion
- #endregion
- #region Normal time
- //start Normal
- Console.WriteLine(" Normal Process Strating ....");
- sw.Reset();
- sw.Start();
- //normal process
- #region Normal Process
- int myevenCount = 0;
- int myeventSum = 0;
- int myoddCount = 0;
- int myoddSum = 0;
- StreamReader fs = new StreamReader(@"c:\TEMP\integers.txt");
- while (fs.Peek() >= 0)
- {
- string strTemp = fs.ReadLine();
- if (Int32.Parse(strTemp) % 2 == 0)
- {
- myevenCount++;
- myeventSum += Int32.Parse(strTemp);
- }
- else
- {
- myoddCount++;
- myoddSum += Int32.Parse(strTemp);
- }
- }
- //MemoryMappedFile m = MemoryMappedFile.
- Console.WriteLine("even:" + "\t" + myevenCount + "\t" + myeventSum);
- Console.WriteLine("odd:" + "\t" + myoddCount + "\t" + myoddSum);
- #endregion
- Console.WriteLine(" Normal Process End.");
- normalTime += sw.ElapsedMilliseconds;
- Console.WriteLine(" Normal Exit Time:" + sw.ElapsedMilliseconds);
- Console.WriteLine(" Normal Process All Time:" + normalTime);
- #endregion
- sw.Stop();
- Console.Read();
- }
- }
- public class MySimpleMapper : MapperBase
- {
- public override void Map(string inputLine, MapperContext context)
- {
- //interpret the incoming line as an integer value
- int value = int.Parse(inputLine);
- //determine whether value is even or odd
- string key = (value % 2 == 0) ? "even" : "odd";
- //output key assignment with value
- context.EmitKeyValue(key, value.ToString());
- }
- }
- public class MySimpleReducer : ReducerCombinerBase
- {
- public override void Reduce(
- string key, IEnumerable<string> values, ReducerCombinerContext context
- )
- {
- //initialize counters
- int myCount = 0;
- int mySum = 0;
- //count and sum incoming values
- foreach (string value in values)
- {
- mySum += int.Parse(value);
- myCount++;
- }
- //output results
- context.EmitKeyValue(key, myCount + "\t" + mySum);
- }
- }
- }
三、测试结果
C# Hadoop学习笔记(一)—环境安装的更多相关文章
- openresty 学习笔记一:环境安装
openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...
- hadoop学习笔记壹 --环境搭建及配置文件的修改
Hadoop生态和其他生态最大的不同之一就是“单一平台多种应用”的理念了. hadoop能解决是什么问题: 1.HDFS :海量数据存储 MapReduce: 海量数据分析 YARN :资源管理调 ...
- appium学习笔记(环境安装配置,设备启动)
Android SDK下载及配置 下载地址 下载后解压缩,打开SDK Manager.exe,下载适当版本的Android包 配置环境变量:目录下的tools路径(含uiautomatorview ...
- Hadoop学习笔记-008-CentOS_6.5_64_yum安装mysql
******************************卸载mysql***************************** 第一步,查看centos上是否已经安装了mysql数据库 # rp ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
- PHP学习笔记----IIS7下安装配置php环境
原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...
- Hadoop学习笔记(10) ——搭建源码学习环境
Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...
- Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
随机推荐
- cnn公式推导
CNN公式推导 1 前言 在看此blog之前,请确保已经看懂我的前两篇blog[深度学习笔记1(卷积神经网络)]和[BP算法与公式推导].并且已经看过文献[1]的论文[Notes on Convolu ...
- Spring Boot 2 启动时加载properties文件
每个项目从开发到测试再到上线所需要的各种环境是不同的,这就需要维护相应的配置文件,比如properties或yml文件.有了配置文件后就要考虑如何与应用进行集成. 对于云环境来讲,项目发布需要打成镜像 ...
- ASP.NET Web API + Elasticsearch 6.x 快速做个全文搜索
最近想做个全文搜索,设想用 ASP.NET Web API + Elasticsearch 6.x 来实现. 网上搜了下 Elasticsearch 的资料,大部分是讲 linux 平台下如何用 ja ...
- C#把汉字转换成16进制(HEX)并向串口发送数据
报警器实例:(有发送,无返回获取) using System; using System.Collections.Generic; using System.Linq; using System.Te ...
- MVVM 简化的Messager类
看MVVMLight的Messager源码,自己实现了一个简单的Messager类. Messager类可以在MVVM中,实现View与VM.VM与VM.View与View的通信. public cl ...
- 知物由学 | AI在Facebook清理有害内容上扮演了什么角色?
"知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道."知物 ...
- 【BZOJ3193】 [JLOI2013]地形生成
BZOJ3193 [JLOI2013]地形生成 Solution 第一问不是很简单吗? 直接计数就好了. 第二问思考无果看了看hyj神仙的代码,发现可以dp求解. 具体可以看代码(其实主要是我说不清楚 ...
- VS2013 生成事件,删除不必要的DLL
解决方案中有一个 Project 是 Windows Service,用来从消息队列中取出事件,发送通知电邮: UI是一个MVC网站,两个Project都引用了同一个类库,这个类库引用了第三方的生成P ...
- select2插件使用小记
插件官网:https://select2.github.io/examples.html 页面引入: // 页面顶部 <link rel="stylesheet" type= ...
- 设置iptables NAT出外网
有时候云上部署环境,不能动态自设路由,没有公网ip地址的服务器,只能通过NAT的方式出外网,下面就记录一下设置过程. 当前状态 服务器A只有一个内网IP,不能上外网,内网IP与服务器B内网相通:服务器 ...