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

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. 【转】linux代码段,数据段,BSS段, 堆,栈

    转载自 http://blog.csdn.net/wudebao5220150/article/details/12947445  linux代码段,数据段,BSS段, 堆,栈 网上摘抄了一些,自己组 ...

  2. LightOJ 1074 Extended Traffic (最短路spfa+标记负环点)

    Extended Traffic 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/O Description Dhaka city ...

  3. linux下登陆用户的行为信息—w和who命令详解

    查看用户的操作系统管理员若想知道某一时刻用户的行为,只需要输入命令w 即可,在SHELL终端中输入如下命令: [root@localhost ~]# w 可以看到执行w命令及显示结果. 命令信息含义上 ...

  4. Spring Data JPA教程, 第二部分: CRUD(翻译)

    我的Spring Data Jpa教程的第一部分描述了,如何配置Spring Data JPA,本博文进一步描述怎样使用Spring Data JPA创建一个简单的CRUD应用.该应用要求如下: pe ...

  5. TestDriven.NET – 快速入门

    TestDriven.NET – 快速入门[译文] 介绍 这部分将提供一个快速的入门向导,在vs.NET的任何一个版本上面使用TestDriven.NET TDD(测试驱动开发)在你写你的代码之前,写 ...

  6. C#自定义控件的开发:Pin和Connector

    C#自定义控件的开发:Pin和Connector 2009-08-03 14:46 wonsoft hi.baidu 我要评论(0) 字号:T | T 本文介绍了如何使用智能设备扩展C#自定义控件. ...

  7. ALT(预警)

    1. Alert简介 Alert是一种Oracle系统中的一种机制,它可以监视系统数据库,在规定的情况下给规定用户一个通知,通知可以是邮件或者其他形式,在标注的系统和客户化系统中都是可以定义使用的 2 ...

  8. maven使用.01.Hello World

    要说Java世界有什么东西是我最为留恋的:在写其他语言程序的时候,我最为想要的东西,那非maven莫属. 什么是Maven? Maven能做什么? Maven是一个针对Java的自动构建工具.所谓自动 ...

  9. URAL 1777 D - Anindilyakwa 暴力

    D - AnindilyakwaTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/v ...

  10. MaterialDesignLibrary

    https://github.com/navasmdc/MaterialDesignLibrary MaterialDesignLibrary.zip