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

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. js特效-仿照html属性title写一个弹出标题样式

    问题场景:商品描述,当营业员给客户介绍时会看着这些弹出标题来给客户讲解描述,一般采用html中属性title来实现,但是有些商品描述太长,这些title在IE浏览器中大约展示5s,营业员需要多次移动鼠 ...

  2. VB.NET开发中遇到的一个小问题

    在修改公司用vb.net的写的代码时,遇到一个小问题 页面上有一个button, ID是btnNext, 在属性页中,它的click事件对应的是cmdNext, 我像在c#中一样,在属性页中双击cmd ...

  3. MySQL Update语句用法

    用一个表的某列值更新另外一个表的某列值的sql语句: update tableA a innner join tableB b on a.column_1 = b.column_1 set a.col ...

  4. Starter Set of Functional Interfaces

    Java Development Kit 8 has a number of functional interfaces. Here we review the starter set-the int ...

  5. 常见MFC UI界面库

    Xtrme toolkit,BCGControlBar,SkinMagic,AppFace,Skin++,Uskin++,SYGUI,LibUIDK,GuiToolkit,GardenUI等等,除了后 ...

  6. 线程暴长~Quartz中创建Redis频繁后导致线程暴长

    在最近项目开发过程中,在进行任务调度处理过程中,出现了一个问题,它的线程数暴长,从20多个可以到1000多个,如果你的服务器性能好的话,可以到10000多个,太恐怖了,就算你的服务再好,早晚有一天也会 ...

  7. PostgreSQL的 initdb 源代码分析之二十五

    继续分析: make_postgres(); 展开: 目的是创建postgres数据库. cmd是:/home/pgsql/project/bin/postgres" --single -F ...

  8. android开发在adapter中使用反射添加元素

    android开发中最常用的控件之一就是listview,伴随listview还要有adapter和放入适配器的item.然后假设其中有一部分item的生成符合一定规律,Item item = new ...

  9. 【转】python中的lambda函数

    http://www.cnblogs.com/coderzh/archive/2010/04/30/python-cookbook-lambda.html lambda函数也叫匿名函数,即,函数没有具 ...

  10. ListView返回选中的多项目

    ListView返回选中的多项目     procedure TForm1.Button3Click(Sender: TObject);var  s: string;  I: Integer;begi ...