适合大数据的分布式存储与计算平台
l作者:Doug Cutting
l受Google三篇论文的启发
lApache
官方版本(1.0.4)
lCloudera
使用下载最多的版本,稳定,有商业支持,在Apache的基础上打上了一些patch。推荐使用。
lYahoo
Yahoo内部使用的版本,发布过两次,已有的版本都放到了Apache上,后续不在继续发布,而是集中在Apache的版本上。
Hadoop核心项目
lHDFS: Hadoop Distributed File System 分布式文件系统
lMapReduce:并行计算框架
HDFS的架构
l主从结构
•主节点,只有一个: namenode
•从节点,有很多个: datanodes
•
lnamenode负责:
•维护文件系统的目录结构
•管理文件与block之间关系,block与datanode之间关系
l
ldatanode负责:
•存储文件
•文件被分成block存储在磁盘上
•为保证数据安全,文件会有多个副本
MapReduce的架构
l主从结构
•主节点,只有一个: JobTracker
•从节点,有很多个: TaskTrackers
lJobTracker负责:
•接收客户提交的计算任务
•把计算任务分给TaskTrackers执行
•监控TaskTracker的执行情况
lTaskTrackers负责:
•执行JobTracker分配的计算任务
hadoop具体能干什么?
hadoop擅长日志分析,facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是hive,少量尝试mahout!)
名词解释
lHadoop, Apache开源的分布式框架。源自Google GFS,BigTable,MapReduce 论文。
== HDFS ==
lHDFS (Hadoop Distributed File System),Hadoop 分布式文件系统。
lNameNode,HDFS命名服务器,负责与DataNode文件元信息保存。
lDataNode,HDFS数据节点,负责存储数据存储并汇报给NameNode。
lSecondaryNamenode,NameNode的镜像备份节点
l
l==Map Reduce==
lJobTracker,hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。
lTaskTracker,启动和管理Map和Reduce子任务的节点。
Hadoop试验集群部署结构:
Hadoop组件依赖关系:
为何需要 MapReduce|HDFS
诉求:
l海量数据需要及时分析和处理。[速度]
l海量数据需要深入分析和挖掘。[深度]
l数据需要长期保存 [数据资产]
Data processed by Google every month: 400 PB … in 2007
问题:
l磁盘IO成为一种瓶颈,而非CPU资源。
l网络带宽是一种稀缺资源
l硬件故障成为影响稳定的一大因素
l传统分布式编程模型[MPI],需要处理大量异常问题。
MapReduce|HDFS 如何解决?
MapReduce+HDFS思想:
l尽可能移动计算到数据端,而非移动数据到计算端。
l硬件和组件的故障是一种常态。
MapReduce 思想:
l分而治之,化整为零
l排序优化,降低内存
HDFS思想:
l文件单次写入,并多次读取。
l文件副本,分片保存 (64M一个块/ 分3份保存)
l顺序写入,流式顺序读取
l面向大文件存储,而非小文件
l系统吞吐量比反应时间更重要
哪些公司使用hadoop
lHadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。今年大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明显增加了Hadoop方面的投入
hadoop在淘宝
l从09年开始,用于对海量数据的离线处理,例如对日志的分析,交易记录的分析等
l规模从当初的3~4百台节点,增加到现在的一个集群有3000个节点,淘宝现在已经有2~3个这样的集群
l在支付宝的集群规模也有700台节点,使用Hbase对用户的消费记录可以实现毫秒级查询
&
集中存储和计算的主要瓶颈
Hadoop和虚拟化的差异点
Hadoop的特点
l扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。
l成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。
l高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。
l可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。
版本
lApache
官方版本(2.4.1)
lCloudera
使用下载最多的版本,稳定,有商业支持,在Apache的基础上打上了一些patch。推荐使用。
lHDP(Hortonworks Data Platform)
Hortonworks公司发行版本。
hadoop核心
lCommon -- HADOOP RPC
lHDFS: Hadoop Distributed File System 分布式文件系统
lYARN: Yet Another Resource Negotiator
资源管理调度系统
lMapreduce:分布式运算框架
问题:怎样解决海量数据的存储?
HDFS的架构
主从结构 主节点, namenode 从节点,有很多个: datanode namenode负责: 接收用户操作请求 维护文件系统的目录结构 管理文件与block之间关系,block与datanode之间关系 datanode负责: 存储文件 文件被分成block存储在磁盘上 为保证数据安全,文件会有多个副本
问题:怎样解决海量数据的计算?
hadoop1.0和hadoop2.0的对比
Hadoop部署方式
l本地模式
l伪分布模式
l集群模式
伪分布模式安装步骤
伪分布模式安装步骤
l关闭防火墙
l修改ip
l修改hostname
l设置ssh自动登录
l安装jdk
l安装hadoop
Hadoop集群的物理分布
单节点物理结构
Hadoop部署方式
l本地模式
l伪分布模式
l集群模式
安装前准备软件
lVitualbox
lrhel-server-6.3-i386-dvd.iso
ljdk-6u24-linux-xxx.bin
lhadoop-1.1.2.tar.gz
伪分布模式安装步骤
l关闭防火墙
l修改ip
l修改hostname
l设置ssh自动登录
l安装jdk
l安装hadoop
修改hadoop配置文件
1.hadoop-env.sh export JAVA_HOME=/usr/local/jdk/ 2.core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop0:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>
&
3.hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> 4.mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>hadoop0:9001</value> </property> </configuration>
浏览hadoop
&
练习:搭建伪分布环境
思考题
l培养目标是什么
lhadoop是什么
lhadoop的核心组成是什么,分别解释一下
l安装伪分布模式的步骤
lhadoop的目录包括哪些,分别解释一下
l如何运行jar包中的hadoop程序
常用linux命令