大数据入门

总结一下近期学习的大数据知识,

学习之前没搞清楚的知识

  1. 传统的web应用(LAMP、JavaEE、NODE系等)与大数据什么关系?

    之前一直以为大数据的东西就是来取代传统的Web应用的,其实并不是这样;即使是大数据的架构,应用层依然会是传统的web应用,但是会根据数据特点对数据存储(结构化数据依然会保存在传统的关系型数据库——如MySql,日志等非结构数据会保存在分布式文件系统——如Hadoop的HDFS)。

    大数据的东西不是取代传统的web应用,而是对web应用的增强。基于分布式存储和分布式计算,以前单机或者小规模集群无法解决的问题,使用了大数据技术之后就可以解决了,比如日志等数据当数据量非常大的时候(TB甚至PB),对这些数据的分析在传统架构上是不可能或者是非常慢的,使用了大数据技术之后就是可能的了——主要是将数据处理通过MapReduce等拆分到不同的节点(电脑)上执行,然后将节点上的结果合并,最后生成分析结果。

  2. 云计算和大数据

    这个话题在“第一讲 大数据概述”里介绍的非常好,感兴趣的朋友可以自己去看看,这里概括总结为:“云计算为大数据提供了技术基础,大数据为云计算提供了用物之地”。

    现在几乎所有的公司都把自己的产品吹成“云”...但是真的都是“云”么?其实很多都是传统的web应用部署到阿里云这些第三方云平台吧;还有一部分有自己服务器(一般配置),然后搞个公网ip,部署上去也说自己是“云”。                                                                                                                                                                                                                                                                                                                                                                                                                                                              推荐一个大数据学习群 119599574每天晚上20:10都有一节【免费的】大数据直播课程,专注大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货分享

Hadoop结构(更新)

参照大数据技术原理与应用-教材配套讲课视频-第2讲-大数据处理架构Hadoop

这部分内容请观看林子雨老师的视频,讲得比较透彻。下面的内容是在看视频之前(那会儿只看了林子雨老师的教材和博客,如林子雨老师在视频中说得,教材上的内容都是基于Hadoop1.0的,在视频中已经更新到了2.0)写的,作为一些参考吧。

学习历程

  1. 了解Hadoop生态系统,了解一下生态系统中各模块的作用,文章后面对各模块有一些简单的总结

    • HDFS
    • YARN
    • HBase
    • MapReduce
    • Hive
    • Pig
    • Mahout
    • Zookeeper
    • Sqoop
    • Flume
    • Kafka等

  1. 了解Spark,了解Spark比MapReduce的优势,学习RDD编程

    • Spark SQL
    • Spark Streaming
    • Spark Mlib
    • ...
  2. 找两台电脑搭个Hadoop、Spark集群,配置Spark开发环境(SBT),运行一些demo例程,典型如WordCount
  3. 研究一下MapReduce的WordCount和Spark的WorkCount的代码,通过对比加深理解
  4. 参考如下案例,了解大数据应用,熟悉HBase,Hive,Sqoop等

整理一些知识

HBase

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表

HBase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥HBase处理大数据量等功能,需要使用Hadoop作为文件系统。与Hadoop一样,HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器来增加计算和存储能力。

HIVE

Hive是一个构建于Hadoop顶层的数据仓库工具,由Facebook公司开发,并在2008年8月开源。Hive在某种程度上可以看作是用户编程接口,其本身并不存储和处理数据,而是依赖HDFS来存储数据,依赖MapReduce来处理数据。Hive定义了简单的类似SQL的查询语言——HiveQL,它与大部分SQL语法兼容,但是,并不完全支持SQL标准,比如,HiveSQL不支持更新操作,也不支持索引和事务,它的子查询和连接操作也存在很多局限。

HiveQL语句可以快速实现简单的MapReduce任务,这样用户通过编写的HiveQL语句就可以运行MapReduce任务,不必编写复杂的MapReduce应用程序。对于Java开发工程师而言,就不必花费大量精力在记忆常见的数据运算与底层的MapReduce Java API的对应关系上;对于DBA来说,可以很容易把原来构建在关系数据库上的数据仓库应用程序移植到Hadoop平台上。所以说,Hive是一个可以有效、合理、直观地组织和使用数据的分析工具。

Impala

Hive 作为现有比较流行的数据仓库分析工具之一,得到了广泛的应用,但是由于Hive采用MapReduce 来完成批量数据处理,因此,实时性不好,查询延迟较高。Impala 作为新一代开源大数据分析引擎,支持实时计算,它提供了与Hive 类似的功能,并在性能上比Hive高出3~30 倍。Impala 发展势头迅猛,甚至有可能会超过Hive 的使用率而成为Hadoop 上最流行的实时计算平台。

Hive 与Impala 的不同点总结如下:

  • 第一,Hive 比较适合进行长时间的批处理查询分析,而Impala 适合进行实时交互式SQL 查询。
  • 第二,Hive 依赖于MapReduce 计算框架,执行计划组合成管道型的MapReduce 任务模式进行执行,而Impala 则把执行计划表现为一棵完整的执行计划树,可以更自然地分发执行计划到各个Impalad执行查询。
  • 第三,Hive在执行过程中,如果内存放不下所有数据,则会使用外存,以保证查询能顺序执行完成,而Impala在遇到内存放不下数据时,不会利用外存,所以,Impala目前处理查询时会受到一定的限制。

Hive与Impala的相同点总结如下:

  • 第一,Hive与Impala使用相同的存储数据池,都支持把数据存储于HDFS和HBase中,其中,HDFS支持存储TEXT、RCFILE、PARQUET、AVRO、ETC等格式的数据,HBase存储表中记录。
  • 第二,Hive与Impala使用相同的元数据。
  • 第三,Hive与Impala中对SQL的解释处理比较相似,都是通过词法分析生成执行计划。

总的来说,Impala的目的不在于替换现有的MapReduce工具,把Hive与Impala配合使用效果最佳,可以先使用Hive进行数据转换处理,之后再使用Impala在Hive处理后的结果数据集上进行快速的数据分析。

PIG

Pig 是Hadoop 生态系统的一个组件,提供了类似SQL 的Pig Latin 语言(包含Filter、GroupBy、Join、OrderBy 等操作,同时也支持用户自定义函数),允许用户通过编写简单的脚本来实现复杂的数据分析,而不需要编写复杂的MapReduce 应用程序,Pig 会自动把用户编写的脚本转换成MapReduce 作业在Hadoop 集群上运行,而且具备对生成的MapReduce程序进行自动优化的功能,所以,用户在编写Pig 程序的时候,不需要关心程序的运行效率,这就大大减少了用户编程时间。因此,通过配合使用Pig 和Hadoop,在处理海量数据时就可以实现事半功倍的效果,比使用Java、C++等语言编写MapReduce 程序的难度要小很多,并且用更少的代码量实现了相同的数据处理分析功能。Pig 可以加载数据、表达转换数据以及存储最终结果,因此,在企业实际应用中,Pig通常用于ETL(Extraction、Transformation、Loading)过程,即来自各个不同数据源的数据被收集过来以后,采用Pig 进行统一加工处理,然后加载到数据仓库Hive 中,由Hive 实现对海量数据的分析。需要特别指出的是,每种数据分析工具都有一定的局限性,Pig 的设计和MapReduce 一样,都是面向批处理的,因此,Pig 并不适合所有的数据处理任务,特别是当需要查询大数据集中的一小部分数据时,Pig 仍然需要对整个或绝大部分数据集进行扫描,因此,实现性能不会很好。

Tez

Tez 是Apache 开源的支持DAG 作业的计算框架,通过DAG 作业的方式运行MapReduce 作业,提供了程序运行的整体处理逻辑,就可以去除工作流当中多余的Map 阶段,减少不必要的操作,提升数据处理的性能。Hortonworks把Tez 应用到数据仓库Hive 的优化中,使得性能提升了约100 倍。如图15-13 所示,可以让Tez 框架运行在YARN 框架之上,然后让MapReduce、Pig 和Hive 等计算框架运行在Tez框架之上,从而借助于Tez 框架实现对MapReduce、Pig 和Hive 等的性能优化,更好地解决现有MapReduce 框架在迭代计算(如PageRank 计算)和交互式计算方面存在的问题。

Tez在解决Hive、Pig延迟大、性能低等问题的思路,是和那些支持实时交互式查询分析的产品(如Impala、Dremel和Drill等)是不同的。Impala、Dremel和Drill的解决问题思路是抛弃MapReduce计算框架,不再将类似SQL语句的HiveQL或者Pig语句翻译成MapReduce程序,而是采用与商用并行关系数据库类似的分布式查询引擎,可以直接从HDFS或者HBase中用SQL语句查询数据,而不需要把SQL语句转化成MapReduce任务来执行,从而大大降低了延迟,很好地满足了实时查询的要求。但是,Tez则不同,比如,针对Hive数据仓库进行优化的“Tez+Hive”解决方案,仍采用MapReduce计算框架,但是对DAG的作业依赖关系进行了裁剪,并将多个小作业合并成一个大作业,这样,不仅计算量减少了,而且写HDFS次数也会大大减少。

Kafka

Kafka是由LinkedIn公司开发的一种高吞吐量的分布式发布订阅消息系统,用户通过Kafka系统可以发布大量的消息,同时也能实时订阅消费消息。

在大数据时代涌现的新的日志收集处理系统(Flume、Scribe等)往往更擅长批量离线处理,而不能较好地支持实时在线处理。相对而言,Kafka可以同时满足在线实时处理和批量离线处理。

Kafka设计的初衷是构建一个可以处理海量日志、用户行为和网站运营统计等的数据处理框架

最近几年,Kafka在大数据生态系统中开始扮演越来越重要的作用,在Uber、Twitter、Netflix、LinkedIn、Yahoo、Cisco、Goldman Sachs等公司得到了大量的应用。目前,在很多公司的大数据平台中,Kafka通常扮演数据交换枢纽的角色。

在公司的大数据生态系统中,可以把Kafka作为数据交换枢纽,不同类型的分布式系统(关系数据库、NoSQL数据库、流处理系统、批处理系统等),可以统一接入到Kafka,实现和Hadoop各个组件之间的不同类型数据的实时高效交换,较好地满足各种企业应用需求。

Sqoop

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

原文地址:https://www.cnblogs.com/baiyanfei502/p/9496555.html

时间: 2024-10-09 09:40:08

大数据入门的相关文章

大数据入门至精通视频集

大数据入门至精通视频集,包含Scala.Hadoop.Spark.docker等 王家林免费视频百度云地址: 1 <大数据不眠夜:Spark内核天机解密(共140讲)>: 51CTO在线观看(支持手机.平板.PC): http://edu.51cto.com/course/course_id-4703.html 百度云下载: http://pan.baidu.com/s/1eQsHZAq 2 <Hadoop深入浅出实战经典>http://pan.baidu.com/s/1mgpfR

大数据入门基础系列之初步认识大数据生态系统圈(博主推荐)

之前在微信公众平台里写过 大数据入门基础系列之初步认识hadoop生态系统圈 http://mp.weixin.qq.com/s/KE09U5AbFnEdwht44FGrOA 大数据入门基础系列之初步认识大数据生态系统圈 1.概述 最近收到一些同学和朋友的邮件,说能不能整理一下 Hadoop 生态圈的相关内容,然后分享一些,我觉得这是一个不错的提议,于是,花了一些业余时间整理了 Hadoop 的生态系统,并将其进行了归纳总结,进而将其以表格的形式进行了罗列.涉及的内容有以下几点: 分布式文件系统

大数据入门小知识

之前写过大数据入门小知识和大数据入门小知识进阶篇,今天为大家带来大数据入门小知识高阶篇. 推荐一个大数据学习群 119599574晚上20:10都有一节[免费的]大数据直播课程,专注大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货分享,你愿意来学习吗? 大数据入门小知识高阶篇,主要讲述的是因为大数据而衍生出来的一系列技术与科技创新. 说到因为大数据而衍生出来的一系列技术与科技创新,相信我们首先都会想到人工智能(Artificial Intelligence),英文

大数据入门学习者主要分为哪几类,从业方向有哪些?

人才荒”.“高考热门专业”.“需求大”.“缺口150万人”.“稀缺职位”.“年薪百万”,这些词汇成为当下网络媒体和社交人群提到大数据人才时,提到最多的词汇.当前,国家战略的支持.大数据技术的快速发展,催生了大量大数据应用产业.眼下不少就业者已经蠢蠢欲动想要加入到最时髦的信息技术行业“大数据”. 大数据分析显示,“怎样进行大数据的入门级学习?“.“零基础如何学习大数据?”.“想学习大数据要掌握些什么知识?”.“如何进入大数据领域,学习路线是什么?”是目前大数据学习者关注度最高的话题. 哪些人期望学

大数据入门:各种大数据技术介绍

转自:http://www.aboutyun.com/thread-7569-1-1.html 大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选择合适的技术,了解大数据各种技术之间的关系,选择合适的语言.我们可以带着下面问题来阅读本文章:1.hadoop都包含什么技术2.Cloudera公司与hadoop的关系是什么,都有什么产品,产品有什么特性

CSDN学霸课表——从应用解析到基础实战,大数据入门、晋级课程推荐

[大数据]Splunk企业级运维智能&大数据分析平台新手入门视频课程 讲师:张文星 本课程系Splunk入门系列课程,实战为主,实战中穿插相关概念和理论.课程包括Splunk基础知识.安装部署.数据采集和存储.数据可视化.创建Splunk应用等.数据分析和可视化部分基于两个案例,边动手边讲解. [Hadoop]Hadoop2.X 应用解析 讲师:李锋 通过学习Hadoop2.X的教程,使学员能够掌握Hadoop2的应用原理,对Hadoop2的体系结构有清晰的认识,并能够熟练部署Hadoop2的高

大数据入门学习路线分享,请大家收下

大数据的学习技术点Hadoop核心(1) 分布式存储基石:HDFSHDFS简介 入门演示 构成及工作原理解析:数据块,NameNode, DataNode.数据写入与读取过程.数据复制.HA方案.文件类型. HDFS常用设置 Java API代码演示(2) 分布式计算基础:MapReduceMapReduce简介.编程模型.Java API 介绍.编程案例介绍.MapReduce调优(3) Hadoop集群资源管家:YARNYARN基本架构 资源调度过程 调度算法 YARN上的计算框架离线计算(

大数据入门学习必读好书推荐,请收藏!

身处于一个大数据时代,大数据无疑是近期最时髦的词汇了. 不管是云计算.社交网络,还是物联网.移动互联网和智慧城市,都要与大数据搭上联系. 随着云计算.移动互联网和物联网等新一代信息技术的创新和应用普及.学习大数据,除了网课,一些经典的技术书籍是非常实用且有帮助的. 为了跟上技术更迭的节奏,不落人后,最好的方式是继续刷新自己的知识,同时保持上手的经验.在这行业中要取得成功,需要完美的项目经验和技能组合.尽管网上有大量的资源,我们仍要专门推荐一些好的实体书籍. 大数据书单 <Machine Lear

大数据入门,到底要怎么学习大数据?

很多人都知道大数据很火,就业很好,薪资很高,想往大数据方向发展.但该学哪些技术,学习路线是什么样的呢? 其实就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控.大数据开发/设计/架构.数据分析/挖掘.请不要问我哪个好学,哪个钱多. 先说一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 处理时效性高,海量数据的处理需求不再局限在离线计算

大数据入门学习之Hadoop技术优缺点

(1)Hadoop具有按位存储和处理数据能力的高可靠性. (2)Hadoop通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性. (3)Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性. (4)Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性. .在入门学习大数据的过程当中有遇见学习,行业,缺乏系统学习路线,系统学习规划,欢迎你加入我的大数据学习交流裙:5