??????????
????С????????????????????????????????????????????????????MapReduce?????????????????á?
????var spit = hamlet.Split(new[] { " "?? Environment.NewLine }?? StringSplitOptions.RemoveEmptyEntries);
????var mp = new MicroMapReduce<string>(new Master<string>());
????var result1= mp.MapReduce(spit);
????С?????????????????????????????????? ????fork???????????????????????????????????????????
??????????
??????????????????????????????????????????????????????mapReduce????????? ???????????mod??consistent hashing??vitual Buckets??Range Partition?????? ????consistent hashing????н???(???c#??????Hash???)????Hadoop??Hdfs??mapreduce?????????????????洢????????????????????????????????洢???????????????????????????????????????С?????????boss??????ü?????????????????????
?????????
????public List<IEnumerable<T>> Partition(IEnumerable<T> list)
????{
????var temp =new List<IEnumerable<T>>();
????temp.Add(list);
????temp.Add(list);
????return temp;
????}
????Worker???
????С???????Master??worker????? master??????????????????????? ????worker????????????????????????master?????master?????д??????????????
public void WorkerNode(IEnumerable<T> list)
{
new Thread(() =>
{
var map = Map(list);
var reduce = Reduce(map);
master.Merge(reduce);
}).Start();
}
public class Master<T>
{
public Dictionary<T?? int> Result = new Dictionary<T?? int>();
public  void Merge(Dictionary<T?? int> list)
{
foreach (var item in list)
{
lock (this)
{
if (Result.ContainsKey(item.Key))
Result[item.Key] += item.Value;
else
Result.Add(item.Key?? item.Value);
}
}
}
}
?????????????????

???????
????MapReduce???????????????????????????????????????????????????????????????????????????API??????HDFS??Hive????????????????????????????????????????????????????????????????????????????????к???????????????á??????????????????????????????????????????????hadoop????????????????????????????????????