适合大数据的分布式存储与计算平台

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命令

 

[BigData]关于Hadoop学习笔记第一天(PPT总结)(一)的更多相关文章

  1. [BigData]关于Hadoop学习笔记第二天(PPT总结)(一)

    Plan: 分布式文件系统与HDFS HDFS体系结构与基本概念 HDFS的shell操作 java接口及常用api HADOOP的RPC机制 HDFS源码分析 远程debug 自己设计一分布式文件系 ...

  2. [BigData]关于Hadoop学习笔记第四天(PPT总结)(一)

    课程安排 Partitioner编程** 自定义排序编程** Combiner编程** 常见的MapReduce算法** ---------------------------加深拓展-------- ...

  3. [BigData]关于Hadoop学习笔记第三天(PPT总结)(一)

     课程安排 MapReduce原理*** MapReduce执行过程** 数据类型与格式*** Writable接口与序列化机制*** ---------------------------加深拓展- ...

  4. Hadoop学习笔记(5) ——编写HelloWorld(2)

    Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我 ...

  5. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  6. Hadoop学习笔记(10) ——搭建源码学习环境

    Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...

  7. Hadoop学习笔记(9) ——源码初窥

    Hadoop学习笔记(9) ——源码初窥 之前我们把Hadoop算是入了门,下载的源码,写了HelloWorld,简要分析了其编程要点,然后也编了个较复杂的示例.接下来其实就有两条路可走了,一条是继续 ...

  8. Hadoop学习笔记之HBase Shell语法练习

    Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...

  9. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

随机推荐

  1. 【转】深受开发者喜爱的10大Core Data工具和开源库

    http://www.cocoachina.com/ios/20150902/13304.html 在iOS和OSX应用程序中存储和查询数据,Core Data是一个很好的选择.它不仅可以减少内存使用 ...

  2. HDU 5821 Ball (贪心)

    Ball 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5821 Description ZZX has a sequence of boxes nu ...

  3. Spring EL method invocation example

    In Spring EL, you can reference a bean, and nested properties using a 'dot (.)' symbol. For example, ...

  4. [C语言 - 4] 指针

    存放变量地址的变量 int a = 1; int *p; p = &a;   在64位系统中,占用8个字节 直接引用 间接引用 *p : 指针指向的变量的值 不要使用未初始化的指针     1 ...

  5. TypeScript学习笔记(五):接口

    使用接口 在前面的笔记中我们知道可以使用Object Type来指定参数的属性,如下: function printLabel(labelledObj: {label: string}) { cons ...

  6. .NET Reflector插件FileDisassembler还原源码

    NET Reflector,它是一个类浏览器和反编译器,可以分析程序集并向您展示它的所有秘密..NET 框架向全世界引入了可用来分析任何基于 .NET 的代码(无论它是单个类还是完整的程序集)的反射概 ...

  7. CSS 边框的宽度

    边框的宽度 您可以通过 border-width 属性为边框指定宽度. 为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em:或者使用 3 个关键字之一,它们分别是 thin .me ...

  8. Squid代理服务器&&搭建透明代理网关服务器

    案例需求 ——公司选用RHEL5服务器作为网关,为了有效节省网络带宽.提高局域网访问Internet的速度,需要在网关服务器上搭建代理服务,并结合防火墙策略实现透明代理,以减少客户端的重复设置工作 需 ...

  9. ADO.NET 快速入门(十一):连接池

    这个示例演示了如何构建一个到数据源的连接池.你可以通过连接池部署高性能的应用程序.本例中使用连接串创建连接池,并且由 SqlConnection 自动管理.   string connString; ...

  10. cocos2d-x Mask的实现及优化

    转自:http://blog.ch-wind.com/cocos2d-x%E4%B8%ADmask%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%8F%8A%E4%BC%98%E5%8C ...