Hadoop(一)之初识大数据与Hadoop

前言linux

  从今天起,我将一步一步的分享大数据相关的知识,其实不少程序员感受大数据很难学,其实并非你想象的这样,只要本身想学,还有什么可贵呢?程序员

  学习Hadoop有一个8020原则,80%都是在不断的配置配置搭建集群,只有20%写程序!数据库

1、引言(大数据时代)

1.一、从数据中获得信息

  咱们看一张图片:apache

    

  咱们知道这个图片上的人叫张小妹,年龄20岁,职业模特。可是若是只有数据没有图片的话,就没有意义的数据了。因此数据必定是在特定的环境下才有意义的编程

  咱们再来看一张图片:服务器

    

  从这张图片分析出:从纵向分析,范范和张帆的购买东西十分的类似,因此若是要推荐东西给张帆的话,咱们就能够选择小米手环。网络

                从横向分析,无效鼠标,linux编程思想,皮鞋和小米手环都卖的比较火,其余几样销量少,因此咱们推荐就能够把这几样放上去。架构

1.二、大数据表象概念

  你们理解什么是大数据吗,那大数据到底有多大!咱们就以百度的数据来分析一下:框架

    

  首先:1PB=1024T机器学习

  分析:咱们就看最小的它天天产生的日志就能够看出来,百度天天要产生100TB~1PB的日志数据。通常咱们电脑的硬盘是1T的。那就须要电脑的100个硬盘到1024块硬盘,你想一想是多么的恐怖!

2、大数据基础

2.一、什么是大数据?

  其实对于大数据官方并无给出一个准确的定义,不一样机构有着不一样的定义。

  1)对于“大数据”(Big data)研究机构 Gartner 给出了这样的定义。“大数据”是须要新处理模式才能具备更强的决策力、洞察发现力和流程优化能力来适应海量、高增加率和多样化的信息资产
  2)麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具备海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征
  3)大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,
    若是把大数据比做一种产业,那么这种产业实现盈利的关键,在于提升对数据的“加工能力”,经过“加工”实现数据的“增值”。
  4) 从技术上看,大数据与云计算的关系就像一枚硬币的正反面同样密不可分。大数据必然没法用单台的计算机进行处
    理,必须采用分布式架构。它的特点在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。
  5)随着云时代的来临,大数据(Big data)也吸引了愈来愈多的关注。分析师团队认为,大数据(Big data)一般用来形容一个公司创造的大量非结构化数据和半结构化数据
    这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一块儿,由于实时的大型数据集分析须要像 MapReduce 同样的框架来向数10、数百或甚至数千的电脑分配工做。
  6) 大数据须要特殊的技术,以有效地处理大量的容忍通过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。

  7)谷歌给出的大数据定义和特色

    

2.二、大数据的基本特征

  容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息
  种类(Variety):数据类型的多样性
  速度(Velocity):指得到数据的速度
  可变性(Variability):妨碍了处理和有效地管理数据的过程
  真实性(Veracity):数据的质量

  复杂性(Complexity):数据量巨大,来源多渠道
  价值(Value):合理运用大数据,以低成本创造高价值

2.三、大数据的意义

1)如今的社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流愈来愈密切,生活也愈来愈方便,大数据就是这个高科技时代的产物。
  阿里巴巴创办人马云来台演讲中就提到,将来的时代将不是 IT 时代,而是 DT 的时代,DT 就是 Data Technology 数据科技,显示大数据对于阿里巴巴集团来讲举足轻重
2)有人把数据比喻为蕴藏能量的煤矿。煤炭按照性质有焦煤、无烟煤、肥煤、贫煤等分类,而露天煤矿、深山煤矿的挖掘成本又不同。与此相似,大数据并不在“大”,而在于“有用”。
  价值含量、挖掘成本比数量更为重要。对于不少行业而言, 如何利用这些大规模数据是赢得竞争的关键。
3)大数据的价值体如今如下几个方面:
   对大量消费者提供产品或服务的企业能够利用大数据进行精准营销
   作小而美模式的中小微企业能够利用大数据作服务转型
   面临互联网压力之下必须转型的传统企业须要与时俱进充分利用大数据的价值
4)不过,“大数据”在经济发展中的巨大意义并不表明其能取代一切对于社会问题的理性思考,科学发展的逻辑不能被湮没在海量数据中。
  著名经济学家路德维希·冯·米塞斯曾提醒过:“就今日言,有不少人忙碌于资料之无益累积,以至对问题之说明与解决,丧失了其对特殊的经济意义的了解。”这确实是须要警戒的。
5)在这个快速发展的智能硬件时代,困扰应用开发者的一个重要问题就是如何在功率、覆盖范围、传输速率和成本之间找到那个微妙的平衡点。
  企业组织利用相关数据和分析能够帮助它们下降成本、提升效率、开发新产品、作出更明智的业务决策等等。
  例如,经过结合大数据和高性能的分析,下面这些对企业有益的状况均可能会发生:
    及时解析故障、问题和缺陷的根源,每一年可能为企业节省数十亿美圆。
    为成千上万的快递车辆规划实时交通路线,躲避拥堵。
    根据客户的购买习惯,为其推送他可能感兴趣的优惠信息。
    从大量客户中快速识别出金牌客户。
    使用点击流分析和数据挖掘来规避欺诈行为。

2.四、大数据的系统架构(总体架构)

  

2.五、大数据处理平台

  

2.六、大数据中的几个概念

1)集群(Cluster):服务器集群就是指将不少服务器集中起来一块儿进行同一种服务,在客户端看来就像是只有一个服务器。集群能够利用多个计算机进行并行 计算从而得到很高的计算速度,也能够用多个计算机作备份,
         从而使得任何一个机器坏了整个系统仍是能正常运行。(通俗来讲就是由若干计算机组成的,共同协做来完成一个大型复杂计算任务的计算机群体。 )
2)数据密集型(DIC):在集群中所计算的数据的量比较大,可是计算过程并不复杂。
3)计算密集型(CIC):数据量并不大,可是计算过程是比较复杂的。
4)向上扩展(Scale-up):对硬件的扩展。受限于硬件的发展。其实就是对cpu、内存、硬盘的扩展
5)向外扩展(Scale-out):经过计算机集群的方式来提升计算能力。 (例如当某个计算任务用 10 台计算机不能完成时就增长计算机台数来完成)。受限于网络资源。其实就是对服务器个数的扩展
6)机器学习(MachineLearning):当数据被处理完,用来获取所处理的信息。从数据集中获取信息
7)云计算(CloudComputing):经过互联网来提供动态易扩展且常常是虚拟化的资源

3、Hadoop概述

3.一、什么是Hadoop

1)Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构
2)用户能够在不了解分布式底层细节的状况下,开发分布式程序。充分利用集群的威力进行高速运算和存储
3)Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System),简称 HDFS。 HDFS 有高容错性的特色,而且设计用来部署在低廉的(low-cost)硬件上;
  并且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
   HDFS 放宽了(relax) POSIX 的要求,能够以流的形式访问(streaming access)文件系统中的数据。
4)Hadoop 的框架最核心的设计就是: HDFS 和 MapReduce。 HDFS 为海量的数据提供了存储,则 MapReduce 为海量的数据提供了计算

3.二、Hadoop的优势

  1)Hadoop 是一个可以对大量数据进行分布式处理的软件框架

  2) Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。
  3)Hadoop 是可靠的,由于它假设计算元素和存储会失败,所以它维护多个工做数据副本,确保可以针对失败的节点从新分布处理
  4)Hadoop 是高效的,由于它以并行的方式工做,经过并行处理加快处理速度
  5)Hadoop 仍是可伸缩的,可以处理 PB 级数据
  6)Hadoop 依赖于社区服务,所以它的成本比较低,任何人均可以使用
  7)Hadoop是一个可以让用户轻松架构和使用的分布式计算平台。用户能够轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有如下几个优势:
    高可靠性:Hadoop 按位存储和处理数据的能力值得人们信赖
    高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇能够方便地扩展到数以千计的节点中。
    高效性:Hadoop 可以在节点之间动态地移动数据,并保证各个节点的动态平衡,所以处理速度很是快
    高容错性:Hadoop 可以自动保存数据的多个副本,而且可以自动将失败的任务从新分配
    低成本:与一体机、商用数据仓库以及 QlikView、 Yonghong Z-Suite 等数据集市相比, hadoop 是开源的,项目的软件成本所以会大大下降。
  8)Hadoop 带有用 Java 语言编写的框架,所以运行在 Linux 生产平台上是很是理想的。 Hadoop 上的应用程序也可使用其余语言编写,好比 C++。

3.三、Hadoop发展历程

  

3.四、Hadoop生态圈

  通过几年的发展,Hadoop已经发展成包含多个相关项目的软件生态系统。(也就是说Hadoop包含着许多的子项目)

1)狭义的Hadoop

  核心项目:  

    Hadoop Common: 在 0.20 及之前的版本中,包含 HDFS、 MapReduce 和其余项目公共内容,从 0.21 开始 HDFS和 MapReduce 被分离为独立的子项目,其他内容为 Hadoop Common

              为Hadoop其余项目提供一些经常使用工具,如系统配置工具Configuration、远程过程调用RPC序列化机制、Had抽象文件系统FileSystem等。
    HDFS: Hadoop 分布式文件系统(Distributed File System),运行大型商用机集群,是Hadoop体系中海量数据储存管理的基础。  

    MapReduce: 并行计算框架, 0.20 前使用 org.apache.hadoop.mapred 旧接口, 0.20 版本开始引入 org.apache.hadoop.mapreduce 的新 API。

           分布式数据处理模型和执行环境,是Hadoop体系中海量数据处理的基础。
2)广义的Hadoop

  核心项目+其余项目(Avro、Zppkeeper、Hive、Pig、Hbase等):

    上面为基础,面向具体领域或应用的项目有:mahout、X-Rime、Crissbow、lvory等

    数据交换、工做流等外围支撑系统:Chukwa、Flume、Sqoop、Oozie

    

  子项目:

    Hbase:

      

    Zookeeper:

      

    Apache Pig:

      

    Apache Hive:

      

    Apache Flume:

      

    Apache sqoop:

      

    Mahout:

      

    Ambari:

      

相关文章
相关标签/搜索