Your SlideShare is downloading. ×
Hadoop-分布式数据平台
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Hadoop-分布式数据平台

4,387
views

Published on

在云计算和大数据大行其道的今天,Hadoop及其相关技术起到了非常重要的作用,是这个时代不容忽视的一个技术平台。事实上,由于其开源、低成本和和前所未有的扩展性,Hadoop正成为新一代的数据处理平台。

在云计算和大数据大行其道的今天,Hadoop及其相关技术起到了非常重要的作用,是这个时代不容忽视的一个技术平台。事实上,由于其开源、低成本和和前所未有的扩展性,Hadoop正成为新一代的数据处理平台。


0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,387
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
91
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Hadoop 第⼀一讲 @ 瑞友科技IT应用研究院池建强 Weibo: @池建强 Twitter: @sagacity
  • 2. 大数据胜于好算法‣ 如果数据足够多,可能产生出意想之外的应用‣ 无论算法好坏,更多的数据总能带了来更好的推荐效果
  • 3. 大数据存储和分析遇到的问题‣ 磁盘容量的增长远远大于磁盘读取速度‣ 1TB的磁盘,数据传输速度100MB/s,读⼀一遍2.5H‣ 写数据就更慢了...
  • 4. 解决之道‣ 磁盘数据并行读写‣ 分布式文件系统,冗余‣ MapReduce
  • 5. 2004年,Google发表论文,向全世界介绍了MapReduce2005年初,为了支持Nutch搜索引擎项目,Nutch的开发者基于Google发布的MapReduce报告,在Nutch上开发了⼀一个可工作的MapReduce应用2005年中,所有主要的Nutch算法被移植到MapReduce和NDFS(Nutch Distributed FileSystem )环境来运行2006年2月,Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展2007年,百度开始使用Hadoop做离线处理,目前差不多80%的Hadoop集群用作日志处理2008年,淘宝开始投入研究基于Hadoop的系统--云梯,并将其用于处理电子商务相关数据。云梯1的总容量大概为9.3PB,包含了1100台机器,每天处理约18000道作业,扫描500TB数据2008年1月,Hadoop成为Apache顶级项目2008年7月,Hadoop打破1TB数据排序基准测试记录。Yahoo的⼀一个Hadoop集群用209秒完成1TB数据的排序,比上⼀一年的纪录保持者保持的297秒快了将近90秒项目演化...
  • 6. Hadoop提供了⼀一个可靠的共享存储和分析系统。HDFS实现存储,MapReduce实现分析处理
  • 7. Google App Engine——Runtime,OpenAPIMapReduce BigTable Chubby GFS
  • 8. Hadoop MapReduce HBase/Hive Pig ZooKeeper HDFS Google App Engine——Runtime,OpenAPIMapReduce BigTable Chubby GFS
  • 9. 传统关系型数据库 MapReduce数据大小 GB PB 访问 交互式和批处理 批处理 更新 多次读写 ⼀一次写入多次读取 结构 静态模式 动态模式完整性 高 低横向扩展 非线性 线性
  • 10. Hadoop生态圈 分布式文件系统和通用I/O的组件与接口(序列化,Java RPC和持久化数Common 据结构) Avro 支持高效的跨语言RPC和持久数据存储的序列化系统MapReduce 分布式数据处理模型和执行环境,运行在大型商用机集群 HDFS 分布式文件系统,用于大型商用机集群 数据流语言和运行环境,检索大型数据集,Pig运行在MapReduce和HDFS PIG 的集群上 分布式、按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基 Hive 于SQL的查询语言(由运行时引擎翻译成MapReduce作业) 分布式、按列存储的数据库。HBase使用HDFS作为底层存储,同时支持 HBase MapReduce的批量式计算和点查询(随机读取)ZooKeeper 分布式、可用性高的协调服务。提供类似分布式锁的基础服务 Sqoop 在数据库和HDFS之间高效传输数据的工具
  • 11. Hadoop支持多种语言,包括Java/C/Python/Ruby
  • 12. MapReduce
  • 13. MapR educ e
  • 14. MapReduce对数据采用的是运行时解释的方式,所以对非结构化和半结构化数据非常有效MapReduce输入的键和值并不是数据固有的属性,而是有分析数据的人员来选择的
  • 15. 0067011990999991950051507004+68750+023550FM-12+038299999V0203301N00671220001CN9999999N9+00001+999999999990043011990999991950051512004+68750+023550FM-12+038299999V0203201N00671220001CN9999999N9+00221+999999999990043011990999991950051518004+68750+023550FM-12+038299999V0203201N00261220001CN9999999N9-00111+999999999990043012650999991949032412004+62300+010750FM-12+048599999V0202701N00461220001CN0500001N9+01111+999999999990043012650999991949032418004+62300+010750FM-12+048599999V0202701N00461220001CN0500001N9+00781+99999999999
  • 16. Mapperpublic class MaxTemperatureMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private static final int MISSING = 9999; //key:行偏移量; value:行文本 public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.toString(); String year = line.substring(15, 19); ...... if (airTemperature != MISSING && quality.matches("[01459]")) { output.collect(new Text(year), newIntWritable(airTemperature)); } }}
  • 17. Reducerpublic class MaxTemperatureReducer extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int maxValue = Integer.MIN_VALUE; while (values.hasNext()) { maxValue = Math.max(maxValue, values.next().get()); } output.collect(key, new IntWritable(maxValue)); }}
  • 18. Combinermap1: (1950, 0) map2: (1950, 30) (1950, 20) (1950, 20) (1950, 10)combine: (1950, [20,30])conf.setMapperClass(MaxTemperatureMapper.class);//指定合并函数conf.setCombinerClass(MaxTemperatureReducer.class);conf.setReducerClass(MaxTemperatureReducer.class);
  • 19. HDFS
  • 20. HDFS是Hadoop的首选分布式文件系统,同时Hadoop也可以支持其他文件系统,例如本地文件和其他分布式系统。
  • 21. 超大文件—>1024G—>1T—>1024T—>1PHDSF是为大数据吞吐设计的,这可能会以时间延迟为代价HDFS的block默认为64M,Map任务通常⼀一次处理⼀一个块的任务
  • 22. nodename存储文件的元数据,nodename是放在内存中的,所以文件存储的节点受限于namenode的内存大小。显示分布式系统的数据块结构:hadoop fsck / -files -blocks
  • 23. 安装部署
  • 24. 本地模式‣ JDK1.6‣ 无需运行守候进程‣ 默认配置文件无须修改‣ 在etc/hadoop/hadoop-env.sh设置JAVA_HOME‣ 执行:bin/hadoop version
  • 25. Hadoop控制脚本依赖SSH来执行伪分布模式 对整个集群的操作。 为了支持无缝工作,SSH安装好‣ 需要运行守候进程-sbin/startall.sh 后需要允许运行hadoop的用户无 需键入密码登录到集群内的机‣ 修改配置文件 器。 创建公钥和私钥对,在集群间‣ 配置SSH 共享密钥对。 ssh-keygen -t dsa -P -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys‣ 格式化HDFS文件系统‣ 查看分布式文件:hadoop -fs ls .‣ NameNode - http://localhost:50070/‣ JobTracker - http://localhost:50030/
  • 26. 全分布模式‣ 在至少两台机器安装hadoop 10.211.55.2-os x 10.211.55.7-linux‣ 配置SSH: cd ~/.ssh scp authorized_keys 10.211.55.7:/home/chjq/.ssh‣ 修改配置文件,增加Slave节点‣ 格式化全分布式HDFS文件系统‣ 查看分布式文件:hadoop -fs ls .‣ NameNode - http://10.211.55.2:50070/‣ JobTracker - http://10.211.55.2:50030/
  • 27. MapReduce和HDFS实践
  • 28. 如何运行第二章中Java的MaxTemperature例子?1、首先把所需数据提交到HDFS中。cd hadoop-bookhadoop fs -put input input2、建立java项目,把相关例程中的java代码导入项目包括:MaxTemperature.javaMaxTemperatureMapper.javaMaxTemperatureReducer.javaMaxTemperatureWithCombiner.javaNewMaxTemperature.java引入jar包:hadoop-core-1.0.0.jar编译通过,把源代码导出jar包,MaxTemperature.jar
  • 29. 3、执行命令运行map/reduce任务以jar包的形式执行任务:hadoop jar MaxTemperature.jar MaxTemperature input/ncdc/sample.txtoutputMaxTemperature是入口程序input/ncdc/sample.txt是HDFS上的数据文件可以采用目录方式处理多个数据,例如:hadoop jar MaxTemperature.jarMaxTemperature input/ncdc/*.txt outputhadoop jar MaxTemperature.jarMaxTemperature input/ncdc/* outputhadoop会自动遍历目录下的所有文件output是存放输出结果目录
  • 30. 4、查看执行结果输出数据写入output目录,其中每个reducer都有⼀一个输出文件,在这个例子中,包含⼀一个reducer,所以只能找到⼀一个文件,part-00000hadoop fs -cat output/part-00000
  • 31. 欲知后事如何且听下回分解
  • 32. Questions? Follow me 微博:@池建强 | twitter: @sagacity