zoukankan      html  css  js  c++  java
  • 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

    [csharp] view plain copy
     
    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.   
    13.   
    14. namespace HadoopConsol  
    15. {  
    16.     class Program  
    17.     {  
    18.         static void Main(string[] args)  
    19.         {  
    20.             Stopwatch sw = new Stopwatch();  
    21.             long hadoopTime=0;  
    22.             long normalTime=0;  
    23.   
    24.             sw.Start();  
    25.   
    26.             //start hadoop  
    27.             Console.WriteLine("     Hadoop Process Strating ....");  
    28.  
    29.             #region Hadoop time  
    30.  
    31.             #region hadoopconnet  
    32.   
    33.             Console.WriteLine("     Hadoop Connect Strating ....");  
    34.   
    35.             //establish job configuration  
    36.   
    37.             HadoopJobConfiguration myConfig = new HadoopJobConfiguration();  
    38.   
    39.             myConfig.InputPath = "/demo/simple/in";  
    40.   
    41.             myConfig.OutputFolder = "/demo/simple/out";  
    42.   
    43.   
    44.   
    45.             //connect to cluster  
    46.   
    47.             Uri myUri = new Uri("http://localhost");  
    48.   
    49.             string userName = "hadoop";  
    50.   
    51.             string passWord = null;  
    52.   
    53.             IHadoop myCluster = Hadoop.Connect(myUri, userName, passWord);  
    54.   
    55.             hadoopTime += sw.ElapsedMilliseconds;  
    56.   
    57.             Console.WriteLine("     Hadoop Connect End.");  
    58.   
    59.             Console.WriteLine("     Hadoop Connect time:" + sw.ElapsedMilliseconds);  
    60.  
    61.             #endregion  
    62.  
    63.  
    64.             #region hadoopmapreduce  
    65.   
    66.             sw.Reset();  
    67.             sw.Start();  
    68.   
    69.             Console.WriteLine("     Hadoop MapReduce Strating ....");  
    70.   
    71.             //execute mapreduce job  
    72.   
    73.             MapReduceResult jobResult =  
    74.   
    75.                 myCluster.MapReduceJob.Execute<MySimpleMapper, MySimpleReducer>(myConfig);  
    76.   
    77.             hadoopTime += sw.ElapsedMilliseconds;  
    78.   
    79.             Console.WriteLine("     Hadoop MapReduce End.");  
    80.             Console.WriteLine("     Hadoop MapReduce Time:"+sw.ElapsedMilliseconds);  
    81.  
    82.             #endregion  
    83.  
    84.             #region Hadoop End  
    85.   
    86.             sw.Reset();  
    87.             sw.Start();  
    88.   
    89.             Console.WriteLine("     Hadoop Endprocess Strating ....");  
    90.   
    91.             //write job result to console  
    92.   
    93.             int exitCode = jobResult.Info.ExitCode;  
    94.   
    95.   
    96.   
    97.             string exitStatus = "Failure";  
    98.   
    99.             if (exitCode == 0) exitStatus = "Success";  
    100.   
    101.             exitStatus = exitCode + " (" + exitStatus + ")";  
    102.   
    103.             Console.WriteLine();  
    104.   
    105.             Console.Write("Exit Code = " + exitStatus);  
    106.   
    107.             Console.WriteLine("     Hadoop Endprocess End.");  
    108.             hadoopTime += sw.ElapsedMilliseconds;  
    109.             Console.WriteLine("     Hadoop Exit Time:" + sw.ElapsedMilliseconds);  
    110.             Console.WriteLine("     Hadoop Process All Time:" + hadoopTime);  
    111.             #endregion  
    112.  
    113.             #endregion  
    114.  
    115.  
    116.             #region Normal time  
    117.             //start Normal  
    118.             Console.WriteLine("     Normal Process Strating ....");  
    119.   
    120.             sw.Reset();  
    121.             sw.Start();  
    122.   
    123.             //normal process  
    124.             #region Normal Process  
    125.   
    126.             int myevenCount = 0;  
    127.             int myeventSum = 0;  
    128.   
    129.             int myoddCount = 0;  
    130.             int myoddSum = 0;  
    131.   
    132.             StreamReader fs = new StreamReader(@"c:TEMPintegers.txt");  
    133.   
    134.             while (fs.Peek() >= 0)  
    135.             {  
    136.                 string strTemp = fs.ReadLine();  
    137.                 if (Int32.Parse(strTemp) % 2 == 0)  
    138.                 {  
    139.                     myevenCount++;  
    140.                     myeventSum += Int32.Parse(strTemp);  
    141.                 }  
    142.                 else  
    143.                 {  
    144.                     myoddCount++;  
    145.                     myoddSum += Int32.Parse(strTemp);  
    146.                 }  
    147.             }  
    148.                //MemoryMappedFile m = MemoryMappedFile.  
    149.             Console.WriteLine("even:" + " " + myevenCount + " " + myeventSum);  
    150.             Console.WriteLine("odd:" + " " + myoddCount + " " + myoddSum);  
    151.  
    152.             #endregion  
    153.   
    154.             Console.WriteLine("     Normal Process End.");  
    155.   
    156.             normalTime += sw.ElapsedMilliseconds;  
    157.             Console.WriteLine("     Normal Exit Time:" + sw.ElapsedMilliseconds);  
    158.             Console.WriteLine("     Normal Process All Time:" + normalTime);  
    159.  
    160.             #endregion  
    161.   
    162.             sw.Stop();  
    163.   
    164.             Console.Read();  
    165.   
    166.         }  
    167.   
    168.     }  
    169.   
    170.     public class MySimpleMapper : MapperBase  
    171.     {  
    172.   
    173.         public override void Map(string inputLine, MapperContext context)  
    174.         {  
    175.   
    176.             //interpret the incoming line as an integer value  
    177.   
    178.             int value = int.Parse(inputLine);  
    179.   
    180.             //determine whether value is even or odd  
    181.   
    182.             string key = (value % 2 == 0) ? "even" : "odd";  
    183.   
    184.             //output key assignment with value  
    185.   
    186.             context.EmitKeyValue(key, value.ToString());  
    187.   
    188.         }  
    189.   
    190.     }  
    191.   
    192.     public class MySimpleReducer : ReducerCombinerBase  
    193.     {  
    194.   
    195.         public override void Reduce(  
    196.   
    197.             string key, IEnumerable<string> values, ReducerCombinerContext context  
    198.   
    199.             )  
    200.         {  
    201.   
    202.             //initialize counters  
    203.   
    204.             int myCount = 0;  
    205.   
    206.             int mySum = 0;  
    207.   
    208.   
    209.   
    210.             //count and sum incoming values  
    211.   
    212.             foreach (string value in values)  
    213.             {  
    214.   
    215.                 mySum += int.Parse(value);  
    216.   
    217.                 myCount++;  
    218.   
    219.             }  
    220.   
    221.   
    222.   
    223.             //output results  
    224.   
    225.             context.EmitKeyValue(key, myCount + " " + mySum);  
    226.   
    227.         }  
    228.   
    229.   
    230.     }  
    231. }  

    三、测试结果

  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/jjg0519/p/6278020.html
Copyright © 2011-2022 走看看