1. hadoop介绍

    分布式存储系统HDFS(Hadoop Distributed File System),提供了高可靠性、高扩展性和高吞吐率的数据存储服务;

    资源管理系统YARN(Yet Another Resource Negotiator),负责集群资源的统一管理和调度,使得多种计算框架可以运行在一个集群中;

    分布式计算框架(MapReduce),具有易于编程、高容错性和高扩展性等特点的PB级以上海量数据的离线处理能力。

    Hive(基于MR的数据仓库),定义了一种类SQL查询语言——HQL,类似SQL,但不完全相同,通常用于进行离线数据处理(采用MapReduce),可认为是HQL到MR的语言翻译器,是为了低成本进行数据分析(不直接编写MR)。

    Pig,构建在Hadoop上的数据仓库,定义了一种数据流语言Pig-Latin,基于MR的ad-hoc数据分析工具,也用于离线分析,与Hive类似。

    Mahout(数据挖掘库),基于Hadoop的机器学习和数据挖掘分布式计算框架,实现了三大算法:推荐(Recommendation)、聚类(Clustering)、分类(Classification)、降维(Dimension Reduction),可以直接利用里面的算法进行分析。

    HBase(分布式数据库),高可靠性、高性能、面向列、良好的扩展性。Table:表,类似于传统数据库中的表;Column Family:列簇,Table在水平方向上有一个或多个Column Family组成,一个Column Family中可以由任意多个Column组成;Row Key:行健,Table的主键,Table中的记录按照Row Key排序;Timestamp:时间戳,每行数据均对应一个时间戳和版本号。

    Zookeeper(分布式写作任务),解决分布式环境下的数据管理问题,统一命名、状态同步、集群管理、配置同步。

    Sqoop(数据同步工具),连接Hadoop与传统数据库之间的桥梁,支持多种数据库包括MySQL、DB2等,用户可根据需要支持新的数据库(插拔式),其本质上是一个MapReduce程序。

    Flume(日志收集工具)。

    Oozie(作业流调度系统),如母亲计算框架和作业类似繁多(MR Java、Streaming、HQL、Pig等),如何对这些框架和作业统一管理和调度:不同作业之间存在依赖关系(DAG)、周期性作业、定时执行的作业、作业执行状态监控与报警(发邮件、短信)。

  2. 计算框架

    在yarn上可以运行多种计算框架。

    离线计算框架MapReduce

    将计算过程分为两个阶段,Map和Reduce:Map 阶段并行处理输入数据;Reduce阶段对Map结果进行汇总;Shuffle连接Map和Reduce两个阶段;Map Task将数据写到本地磁盘;Reduce Task从每个Map Task上读取一份数据。特点是:仅适合离线批处理;具有很好的容错性和扩展性;适合简单的批处理任务;缺点也很明显:启动开销大、过多使用磁盘导致效率低下等,要求数据源是静态的,不能动态变化。

    DAG计算框架Tez

    多个应用程序之间存在数据依赖关系,后一个应用程序的输入为前一个的输出。并形成一个依赖关系有向图(Directed Acyclic Graph),该图的计算称为"DAG计算",Apache Tez:基于YARN的DAG计算框架,运行在YARN之上,充分利用YARN的资源管理和容错等功能;提供了丰富的数据流(dataflow)API;扩展性良好的" Input-Processor-Output"运行时模型;动态生成物理数据流关系。

    流式计算框架Storm(实时计算)

    流式(Streaming)计算,是指被处理的数据像流水一样不断流入系统,而系统需要针对每条数据进行实时处理和计算,并永不停止(直到用户显式杀死进程);而传统做法:由消息队列和消息处理者组成的实时处理网络进行实时计算,因此传统做法缺乏自动化/健壮性/伸缩性差。

    内存计算框架Spark

    克服MapReduce在迭代式计算和交互式计算方面的不足;引入RDD(Resilient Distributed Datasets)数据表示模型;RDD是一个有容错机制,可以被并行操作的数据集合,能够被缓存到内存或磁盘上。

    MapReduce 2.0与YARN

    一个MR应用程序的成功运行需要若干模块:

    任务管理和资源调度

    任务驱动模块(MapTask、ReduceTask);

    用户代码(Mapper、Reducer…)

    MapReduce 2.0和YARN区别

    YARN是一个资源管理系统,负责资源管理和调度

    MapReduce只是运行在YARN上的一个应用程序

    如果把YARN看做" android",则MapReduce只是一个" app"

  3. hadoop版本

    Hadoop发行版介绍(开源版)有下面三种:

    Apache Hadoop

    推荐使用最新的2.x.x版本,比如2.4.0

    下载地址:http://hadoop.apache.org/releases.html

    SVN: http://svn.apache.org/repos/asf/hadoop/common/branches/

    CDH(Cloudera Distributed Hadoop)

    推荐使用最新的CDH5版本, 比如

    CDH4基于Apache Hadoop0.23.0版本开发

    CDH5基于Apache Hadoop2.2.0版本开发

    下载地址:http://archive.cloudera.com/cdh5/cdh/5/

    HDP (Hortonworks Data Platform)

    推荐使用最新的HDP 2.x版本, 比如HDP 2.1版本

    下载地址: http://zh.hortonworks.com/hdp/downloads

  4. hadoop下载

    http://archive.apache.org/dist/ 可以看到所有apache下的项目

    http://hadoop.apache.org

    http://archive.apache.org/dist/hadoop/core/stable/ 稳定版hadoop下载

    stable1是1.0的稳定版,stable2是2.0的稳定版

    hadoop-2.2.0.tar.gz

    hadoop-2.2.0-src.tar.gz

  5. hadoop目录

    bin:Hadoop最基本的管理脚本和使用脚本所在目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。

    etc:Hadoop配置文件所在的目录,包括hadoop-env.sh、core-site.xml、 hdfs-site.xml、mapred-site.xml等从Hadoop 1.0继承而来的配置文件和yarn-site.xml等Hadoop 2.0新增的配置文件。

    include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。

    lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。

    libexec:各个服务对应的shell配置文件所在目录,可用于配置日志输出目录、启动参数(比如JVM参数)等基本信息。

    sbin:Hadoop管理脚本所在目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。

    share:Hadoop各个模块编译后的jar包所在目录

开始hadoop的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. 初识Hadoop、Hive

    2016.10.13 20:28 很久没有写随笔了,自打小宝出生后就没有写过新的文章.数次来到博客园,想开始新的学习历程,总是被各种琐事中断.一方面确实是最近的项目工作比较忙,各个集群频繁地上线加多版 ...

  3. hadoop 2.7.3本地环境运行官方wordcount-基于HDFS

    接上篇<hadoop 2.7.3本地环境运行官方wordcount>.继续在本地模式下测试,本次使用hdfs. 2 本地模式使用fs计数wodcount 上面是直接使用的是linux的文件 ...

  4. hadoop 2.7.3本地环境运行官方wordcount

    hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...

  5. 【Big Data】HADOOP集群的配置(一)

    Hadoop集群的配置(一) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...

  6. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  7. 程序员必须要知道的Hadoop的一些事实

    程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...

  8. Hadoop 2.x 生态系统及技术架构图

    一.负责收集数据的工具:Sqoop(关系型数据导入Hadoop)Flume(日志数据导入Hadoop,支持数据源广泛)Kafka(支持数据源有限,但吞吐大) 二.负责存储数据的工具:HBaseMong ...

  9. Hadoop的安装与设置(1)

    在Ubuntu下安装与设置Hadoop的主要过程. 1. 创建Hadoop用户 创建一个用户,用户名为hadoop,在home下创建该用户的主目录,就不详细介绍了. 2. 安装Java环境 下载Lin ...

  10. 基于Ubuntu Hadoop的群集搭建Hive

    Hive是Hadoop生态中的一个重要组成部分,主要用于数据仓库.前面的文章中我们已经搭建好了Hadoop的群集,下面我们在这个群集上再搭建Hive的群集. 1.安装MySQL 1.1安装MySQL ...

随机推荐

  1. maven是什么?(转自oracle官网)

    Maven 是一个项目管理和构建自动化工具.但是对于我们程序员来说,我们最关心的是它的项目构建功能.所以这里我们介绍的就是怎样用 maven 来满足我们项目的日常需要.Maven 使用惯例优于配置的原 ...

  2. Android数据存储技术

    Android提供了4种数据存储技术,分别是SharedPreferences.Files.SQLite数据库和网络存储数据.(有的开发者认为使用ContentProvider也可以算是一种,但我觉得 ...

  3. BigInteger构造函数解析

    1.BigInteger(byte[] val)这个构造函数用于转换一个字节数组包含BigInteger的二进制补码,以二进制表示成一个BigInteger. (用字节数组中值的ASCII码构造Big ...

  4. 原生js的数组除重复

    js对数组的操作在平常的项目中也会遇到,除去一些增加,或者减少的操作外,还有一个比较重要的操作就是数组的除重,通过数组的除重,我们可以将一个数组中存在的多个重复的数组进行清理,只留下不重复的.另外下面 ...

  5. javascript闭包的理解

    闭包是Javascript的一个难点,但也是一个很重要的知识点. 1.首先我们要知道变量作用域链 变量的作用域分两种:全局变量和局部变量.没有定义到任何函数中的变量为全局变量,在函数中定义的变量为局部 ...

  6. struts导包

    我用的是struts-2.2.3,开始把全部的jar包都放进去了,可是一直报 信息: Parsing configuration file [struts-plugin.xml]2011-6-11 8 ...

  7. linux 下串口的配置

    串口最基本的设置包括波特率 校验位 和停止位. 主要是设置个结构体的成员值, #include <termios.h> struct termio { unsigned short c_i ...

  8. (WinForm)FormBorderStyle属性

    此属性就是获取或设置窗体的边框样式,默认值为 FormBorderStyle.Sizable.共7个值. 属性 意义 None 无边框 FixedSingle 固定的单行边框 Fixed3D 固定的三 ...

  9. 对typesafe enum模式的改进

    按照一些资料上讲,其实enum也就是在编译器层面实现用类来包装枚举(typesafe enum 模式)的思想.以保证类型安全.自己用类来写枚举其实效果也还是不错的,只是代码略显啰嗦. 例子代码 pub ...

  10. XML3_XML元素和节点的具体解释

    就像一个树状的目录.可以把第一行当作它扎根的“土地”.XML文件是由节点构成的.它的第一个节点为“根节点”.一个XML文件必须有且只能有一 个根节点,其他节点都必须是它的子节点.我们在FLASH里使用 ...