[1]??Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
 
2. 多个任务是怎么被分配到多个虚拟机当中的?
 
只有当数据量超过 1T 的大数据处理才能凸显 hadoop 的优势;??? 当然,用 hadoop 处理 几十G、几百G 这种小数据也是可以的,只是体现不了 hadoop的优势罢了,从硬件的角度,从效率的角度都是不太值得的。
 
像其他框架一样,hadoop 也是分层的,? 序号③? ⑤ 就是 hadoop 中重要的组成, HDFS 负责数据存储。MapReduce 是海量数据的分布式计算框架。
 
Structured Data(hiho,sqoop)?是 hadoop 中对传统数据和 hadoop中数据相互转化的工具。传统数据库中的数据可以导入到 hadoop中。hadoop中的数据也可以导入到传统的关系型数据库中。
 
HBASE?是 hadoop中用的最多和最重要的子项目之一。当然它也是构建于 MapReduce 和 HDFS 之上的。不过 HBASE 可以不基于 HDFS ,只是如果不基于 HDFS时就无法使用 MapReduce 计算框架了。是处理大数据读写操作的,尤其适合一些大型在线系统。
 
大数据有两层含义:第一层含义,大数据有自己的构造形态,key-value方式。? 另外一层含义,就是大家理解的海量数据。 之所以能成为 大数据 是因为 他是? key-value的构建方式。
 
HDFS文件系统,是用于管理分布式文件的存储与操作的。HDFS 就为我们提供了一套机制,让海量数据能够分布在不同的计算机上。他提供言外知音就是 我们不用关心数据是怎么存储的,HDFS 负责存储这件事情。这是我们使用 hadoop 的一个重要的原因,他帮我们屏蔽掉一些分布式操作的一些细节。
 
分布式系统中有很多台机器,每一台机器存储数据的一部分,我们使用 hadoop 之所以能够很快的计算得出结果,原因很简单 我们计算的代码会在不同的机器上运行, 每一台机器完成计算的一部分,因为每台机器上存储的只是我数据的一部分。多台机器并行计算。然后把计算结果收集过来得出最终的结果。这是Hadoop 之所以块的根源。所以 MapReduce 是我们要研究非常重要的核心,? HDFS 的操作是hadoop 框架屏蔽掉的,所以我们主要是去学习怎么去使用它。作为开发而言,聚焦到核心的核心,肯定是 MapReduce。 因为 MapReduce 是计算框架。也就是说数据已经存储了,我怎么计算它,这在任何一个框架中都是一个比较核心的问题。当然也是最有技术含量的问题。所以 如果学习hadoop 的话,有必要详细研究 MapReduce 的架构、使用、源代码等等所有的核心环节。
 
5,参照网址“http://blogs.msdn.com/b/data_otaku/archive/2013/08/14/hadoop-for-net-developers.aspx” 系统学习API
 
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:TEMPintegers.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);??
  
 ??
  
 ????????}??
  
 ??
  
 ??
  
 ????}??
  
 - 
} ?
来源2:http://blog.csdn.net/lansetiankong12/article/details/51086581
来源1:http://www.cnblogs.com/qq-757617012/archive/2016/11/28/6110623.html