Hadoop之入门

随着大数据的来临,hadoop应用而生,

hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节 的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。

hadoop的历史

始于2002年的apache项目Nutch
2003年Google发表了关于GFS的论文
2004年Nutch的开发者开发了NDFS
2004年Google发表了关于MapReduce的论文
2005年MapR被引入了NDFS
2006年改名为Hadoop,NDFS的创始人加入Yahoo,Yahoo成立了一个专门的小组发展
Hadoop

hadoop解决的问题

海量数据的存储 -- HDFS

海量数据的分析 -- MapReduce

Hadoop = The Hadoop projects

Common, Avro, MapReduce, HDFS, Pig, Hive, Hbase, ZooKeeper, Sqoop, Oozie

hadoop设计目

very large files  大文件     单个文件大小可以到几百G , 文件总的大小到T以及P级别

Streaming data access

write-once, read-many-times

一次写多次读取,无法对写入的文件进行修改,目
前可以添加。
Commodity hardware 普通的硬件。

hadoop不适合场景

Low-latency data access 低延迟

Lots of small files 小文件

Multiple writers, arbitrary file modifications 不支持多次写

HDFS架构

在Hadoop中,一个文件被划分成大小固定的多个文件块,分布的存储在集群中的节点中

同一个文件块在不同的节点中有多个副本。

一个集中的地方保存文件信息。

/home/hdfs/a.txt.part1,3,(dn1,dn2,dn3)

/home/hdfs/a.txt.part2,3,(dn2,dn3,dn6)

/home/hdfs/a.txt.part3,3,(dn7,dn8,dn11)

HDFS架构图

Hadoop

Block:一个文件分块,默认64M

NameNode:保存整个文件系统的目录信息,文件信息以及文件相应的分块信息。

DataNode:用于存储Blocks HDFS的HA策略:NameNode一旦宕机,整个文件系统将无法工作。如果NameNode中的数据丢失,整个文件系统也就丢失了。

2.x开始,HDFS支持NameNodeactive-standy模式

MapReduce原理

问题:

求出以下数组当中最大的数

 1,3,23,3,4,18,2,8,10,16,7,5

 int Max(int a[], n)

{

  int m=0;

  for(int i=0; i<n; i++)

  if(m<a[i]) m=a[i];

  return m;

}

MapReduce是一种编程模型,用于大规模数据集的并行计算,用它来计算式非常快的。

通过这种方式就可以很快的遍历。

原文地址:https://www.cnblogs.com/wujin/p/2868507.html