中企动力 > 商学院 > 大数据入门到精通
  • ?

    大数据行业大佬介绍如何系统的学习大数据

    占平文

    展开

    引言

    大数据的领域非常广泛,往往使想要开始学习大数据及相关技术的人望而生畏。大数据技术的种类众多,这同样使得初学者难以选择从何处下手。

    这正是我想要撰写本文的原因。本文将为你开始学习大数据的征程以及在大数据产业领域找到工作指明道路,提供帮助。目前我们面临的最大挑战就是根据我们的兴趣和技能选定正确的角色。

    为了解决这个问题,我在本文详细阐述了每个与大数据有关的角色,同时考量了工程师以及计算机科学毕业生的不同职位角色。

    我尽量详细地回答了每一项人们在学习大数据过程中遇到或可能会遇到的问题。为帮助你根据兴趣选择发展途径,我添加了一组树图,相信会对你找到正确的途径有所帮助。

    注释:学习之路树状图

    在这个树状图的帮助下,你可以根据你的兴趣和目标选择路径。 然后,你可以开始学习大数据的旅程了。

    目录表

    1.如何开始?

    2.在大数据领域有哪些职位需求?

    3.你的领域是什么,适合什么方向?

    4.勾勒你在大数据领域的角色

    5.如何成为一名大数据工程师?

    o什么是大数据行业术语?

    o你需要了解的系统和结构

    o学习去设计解决方案并且学习相关技术

    6.大数据学习路径

    7.资源

    1.如何开始?

    人们想开始学习大数据的时候,最常问我的问题是,“我应该学Hadoop(hadoop是一款开源软件,主要用于分布式存储和计算,他由HDFS和MapReduce计算框架组成的,他们分别是Google的GFS和MapReduce的开源实现。由于hadoop的易用性和可扩展性,因此成为最近流行的海量数据处理框架。hadoop这个单词来源于其发明者的儿子为一个玩具大象起的名字。), 分布式计算,Kafka(Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统),NoSQL(泛指非关系型的数据库)还是Spark(Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处)?”

    而我通常只有一个答案:“这取决于你究竟想做什么。”

    因此,让我们用一种有条理的方式来解决这个问题。我们将一步步地探索这条学习之路。

    2. 在大数据行业有哪些职业需求?

    在大数据行业中有很多领域。通常来说它们可以被分为两类:

    大数据工程大数据分析

    这些领域互相独立又互相关联。

    大数据工程涉及大量数据的设计,部署,获取以及维护(保存)。大数据工程师需要去设计和部署这样一个系统,使相关数据能面向不同的消费者及内部应用。

    而大数据分析的工作则是利用大数据工程师设计的系统所提供的大量数据。大数据分析包括趋势、图样分析以及开发不同的分类、预测预报系统。

    因此,简而言之,大数据分析是对数据的高级计算。而大数据工程则是进行系统设计、部署以及计算运行平台的顶层构建。

    3.你的领域是什么,适合什么方向?

    现在我们已经了解了行业中可供选择的职业种类,让我们想办法来确定哪个领域适合你。这样,我们才能确定你在这个行业中的位置。

    通常来说,基于你的教育背景和行业经验我们可以进行如下分类:

    教育背景(包括兴趣,而不一定与你的大学教育有关)计算机科学数学行业经验新人数据学家计算机工程师(在数据相关领域工作)

    因此,通过上面的分类,你可以把自己的领域定位如下:

    例1:“我是一名计算机科学毕业生,不过没有坚实的数学技巧。”

    你对计算机科学或者数学有兴趣,但是之前没有相关经验,你将被定义为一个新人。

    例2:“我是一个计算机科学毕业生,目前正从事数据库开发工作。”

    你的兴趣在计算机科学方向,你适合计算机工程师(数据相关工程)的角色。

    例3:“我正作为数据科学家从事统计工作。”

    你对数学领域有兴趣,适合数据科学家的职业角色。

    因此,参照着定位你的领域吧。

    (此处定义的领域对你确定在大数据行业的学习路径至关重要。)

    4.根据领域规划你的角色

    现在你已经确定了你的领域,下一步,让我们规划出你要努力的目标职位吧。

    如果你有卓越的编程技巧并理解计算机如何在网络(基础)上运作,而你对数学和统计学毫无兴趣,在这种情况下,你应该朝着大数据工程职位努力。

    如果你擅长编程同时有数学或者统计学的教育背景或兴趣,你应该朝着大数据分析师职位努力。

    5.如何成为一名大数据工程师

    让我们先定义一下,一名受到行业承认的大数据工程师都需要学习和了解什么。首先以及最重要的一步是确认你的需求。你不能在不清楚个人需求的情况下直接开始学习大数据。否则,你将一直盲人摸象。

    为了明确你的需求,你必须了解常用的大数据术语。所以让我们来看一下大数据到底意味着什么?

    5.1 大数据术语

    大数据工程通常包括两个方面 – 数据需求以及处理需求。

    5.1.1 数据需求术语

    结构:你应该知道数据可以储存在表中或者文件中。储存在一个预定义的数据模型(即拥有架构)中的数据称为结构化数据。如果数据储存在文件中且没有预定义模型,则称为非结构化数据。(种类:结构化/非结构化)。

    容量:我们用容量来定义数据的数量。(种类:S/M/L/XL/XXL/流)

    Sink吞吐量:用系统所能接受的数据率来定义Sink吞吐量。(种类:H/M/L)

    源吞吐量:定义为数据更新和转化进入系统的速度。(种类:H/M/L)

    5.1.2 处理需求术语

    查询时间:系统查询所需时间。(种类:长/中/短)

    处理时间:处理数据所需时间。(种类:长/中/短)

    精度:数据处理的精确度。(种类:准确/大约)

    5.2 你需要知道的系统和架构

    情景1:

    为分析一个公司的销售表现需要设计一个系统,即创建一个数据池,数据池来自于多重数据源,比如客户数据、领导数据、客服中心数据、销售数据、产品数据、博客等。

    5.3 学习设计解决方案和技术

    情节1的解决方案:销售数据池

    (这是我的个人解决方案,如果你想到一个更高明的解决方案请在下面分享一下)

    那么,一个数据工程师会怎样解决这个问题呢?

    需要记住的一点是,大数据系统的目的不仅仅是无缝整合各种来源的数据,而使其可用,同时它必须能使得,用于开发应用系统的数据的分析和利用变得简单迅速和易得(在这个案例中是智能控制面板)。

    定义最后的目标:

    通过整合各种来源的数据创建一个数据池。每隔一定时间自动更新数据(在这个案例中可能是一周一次)。可用于分析的数据(在记录时间内,甚至可能是每天)易得的架构和无缝部署的分析控制面板。

    既然我们知道了我们最后的目标,让我们尽量用正式术语制定我们的要求吧。

    5.3.1 数据相关要求

    结构:大部分数据是结构化的,并具有一个定义了的数据模型。但数据源如网络日志,客户互动/呼叫中心数据,销售目录中的图像数据,产品广告数据等是非结构化的。 图像和多媒体广告数据的可用性和要求可能取决于各个公司。

    结论:结构化和非结构化数据

    大小:L或XL(选择Hadoop)

    Sink 吞吐量:高

    质量:中等(Hadoop&Kafka)

    完整性:不完整

    5.3.2 处理相关要求

    查询时间:中至长

    处理时间:中至短

    精度:准确

    随着多个数据源的集成,重要的是要注意不同的数据将以不同的速率进入系统。 例如,网络日志可用高颗粒度连续流进入系统。

    基于上述我们对系统要求的分析,我们可以推荐以下大数据体系。

    6.大数据学习路径

    现在,你已经对大数据行业,大数据从业人员的不同角色和要求有所了解。 我们来看看你应该遵循哪条路来成为一名大数据工程师。

    我们知道大数据领域充斥着多种技术。 因此,你学习与你的大数据工作角色相关的技术非常重要。这与任何常规领域有点不同,如数据科学和机器学习中,你可以从某些地方开始并努力完成这一领域内的所有工作。

    下面你会发现一个你应该通过的树状图,以找到你自己的路。即使树状图中的一些技术被指向是数据科学家的强项,但是如果你走上一条路,知道所有的技术直到“树叶节点”总是很好的。 该树状图源自lambda架构范例。

    注释:学习之路树状图

    任何想要调配应用程序的工程师必须知道的基本概念之一是Bash 脚本编程。你必须对linux和bash 脚本编程感到舒适。这是处理大数据的基本要求。

    核心是,大部分大数据技术都是用Java或Scala编写的。但是别担心,如果你不想用这些语言编写代码,那么你可以选择Python或者R,因为大部分的大数据技术现在都支持Python和R。

    因此,你可以从上述任何一种语言开始。 我建议选择Python或Java。

    接下来,你需要熟悉云端工作。 这是因为如果你没有在云端处理大数据,没有人会认真对待。 请尝试在AWS,softlayer或任何其他云端供应商上练习小型数据集。 他们大多数都有一个免费的层次,让学生练习。如果你想的话,你可以暂时跳过此步骤,但请务必在进行任何面试之前在云端工作。

    接下来,你需要了解一个分布式文件系统。最流行的分布式文件系统就是Hadoop分布式文件系统。在这个阶段你还可以学习一些你发现与你所在领域相关的NoSQL数据库。下图可以帮助你选择一个NoSQL数据库,以便根据你感兴趣的领域进行学习。

    到目前为止的路径是每个大数据工程师必须知道的硬性基础知识。

    现在,你决定是否要处理数据流或静止的大量数据。 这是用于定义大数据(Volume,Velocity,Variety和Veracity)的四个V中的两个之间的选择。

    那么让我们假设你已经决定使用数据流来开发实时或近实时分析系统。 之后你应该采取卡夫卡(kafka)之路,或者还可以采取Mapreduce的路径。然后你按照你自己创建的路径。 请注意,在Mapreduce路径中,你不需要同时学习pig和hive。 只学习其中之一就足够了。

    总结:通过树状图的方式。

    从根节点开始,并执行深度优先的通过方式。在每个节点停止查验链接中给出的资源。如果你有充足的知识,并且在使用该技术方面有相当的信心,那么请转到下一个节点。在每个节点尝试完成至少3个编程问题。移动到下一个节点。到达树叶节点。从替代路径开始。

    最后一步(#7)阻碍你! 说实话,没有应用程序只有流处理或慢速延迟数据处理。 因此,你在技术上需要成为执行完整的lambda架构的高手。

    另外,请注意,这不是学习大数据技术的唯一方法。 你可以随时创建自己的路径。 但这是一个可以被任何人使用的路径。

    如果你想进入大数据分析世界,你可以遵循相同的路径,但不要尝试让所有东西都变得完美。

    对于能够处理大数据的数据科学家,你需要在下面的树状图中添加一些机器学习渠道,并将重点放在机器学习渠道上,而不是下面提供的树状图。 但我们可以稍后讨论机器学习渠道。

    根据你在上述树状图中使用的数据类型,添加选择的NoSQL数据库。

    该表格表示数据存储类型要求及相应的软件选择

    如你所见,有大量的NoSQL数据库可供选择。 所以它常常取决于你将要使用的数据类型。

    而且为了给采用什么类型的NoSQL数据库提供一个明确的答案,你需要考虑到你的系统需求,如延迟,可用性,弹性,准确性当然还有你当前处理的数据类型。

    7资源

    推荐下我自己创建的大数据学习交流Qun531629188

    无论是大牛还是想转行想学习的大学生

    小编我都挺欢迎,晚上20:10都有一节【免费的】大数据直播课程,专注大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货分享,

  • ?

    大数据hadoop从入门到精通之hadoop家族产品

    鲁从云

    展开

    大数据这个词也许几年前你听着还会觉得陌生,但我相信你现在听到hadoop这个词的时候你应该都会觉得“熟悉”!越来越发现身边从事hadoop开发或者是正在学习hadoop的人变多了。作为一个hadoop入门级的新手,你会觉得哪些地方很难呢?运行环境的搭建恐怕就已经足够让新手头疼。如果每一个发行版hadoop都可以做到像大快DKHadoop那样把各种环境搭建集成到一起,一次安装搞定所有,那对于新手来说将是件多么美妙的事情!

    dkhadoop

    闲话扯得稍微多了点,回归整体。这篇准备给大家hadoop新入门的朋友分享一些hadoop的基础知识——hadoop家族产品。通过对hadoop家族产品的认识,进一步帮助大家学习好hadoop!同时,也欢迎大家提出宝贵意见!

    一、Hadoop定义

    Hadoop是一个大家族,是一个开源的生态系统,是一个分布式运行系统,是基于Java编程语言的架构。不过它最高明的技术还是HDFS和MapReduce,使得它可以分布式处理海量数据。

    二、Hadoop产品

    hadoop产品

    HDFS(分布式文件系统):

    它与现存的文件系统不同的特性有很多,比如高度容错(即使中途出错,也能继续运行),支持多媒体数据和流媒体数据访问,高效率访问大型数据集合,数据保持严谨一致,部署成本降低,部署效率提高等,如图是HDFS的基础架构。

    hadoop产品

    MapReduce/Spark/Storm(并行计算架构):

    1、数据处理方式来说分离线计算和在线计算:

    角色描述:

    (1)MapReduce:MapReduce常用于离线的复杂的大数据计算

    (2)Storm:Storm用于在线的实时的大数据计算,Storm的实时主要是一条一条数据处理;

    (3)Spark:可以用于离线的也可用于在线的实时的大数据计算,Spark的实时主要是处理一个个时间区域的数据,所以说Spark比较灵活。

    2、数据存储位置来说分磁盘计算和内存计算:

    角色描述:

    (1)MapReduce:数据存在磁盘中

    (2)Spark和Strom:数据存在内存中

    Pig/Hive(Hadoop编程):

    角色描述:

    (1)Pig:是一种高级编程语言,在处理半结构化数据上拥有非常高的性能,可以帮助我们缩短开发周期。

    (2)Hive:是数据分析查询工具,尤其在使用类SQL查询分析时显示出极高的性能。可以在分分钟完成ETL要一晚上才能完成的事情,这就是优势,占了先机!

    HBase/Sqoop/Flume(数据导入与导出):

    角色描述:

    (1)HBase:是运行在HDFS架构上的列存储数据库,并且已经与Pig/Hive很好地集成。通过Java API可以近无缝地使用HBase。

    (2)Sqoop:设计的目的是方便从传统数据库导入数据到Hadoop数据集合(HDFS/Hive)。

    (3)Flume:设计的目的是便捷地从日志文件系统直接把数据导入到Hadoop数据集合(HDFS)中。

    以上这些数据转移工具都极大地方便了使用的人,提高了工作效率,把精力专注在业务分析上。

    ZooKeeper/Oozie(系统管理架构):

    角色描述:

    (1)ZooKeeper:是一个系统管理协调架构,用于管理分布式架构的基本配置。它提供了很多接口,使得配置管理任务简单化。

    (2)Oozie:Oozie服务是用于管理工作流。用于调度不同工作流,使得每个工作都有始有终。这些架构帮助我们轻量化地管理大数据分布式计算架构。

    Ambari/Whirr(系统部署管理):

    角色描述:

    (1)Ambari:帮助相关人员快捷地部署搭建整个大数据分析架构,并且实时监控系统的运行状况。

    (2)Whirr:Whirr的主要作用是帮助快速地进行云计算开发。

    Mahout(机器学习):

    Mahout旨在帮助我们快速地完成高智商的系统。其中已经实现了部分机器学习的逻辑。这个架构可以让我们快速地集成更多机器学习的智能。

  • ?

    大数据Hadoop介绍及学习经验分享

    白茹嫣

    展开

    最近许多人都在讨论学习hadoop大数据,阿里大佬马云也说了:“未来最大的资源就是数据,不参与大数据十年后一定会后悔!”对于此种情况,我们首先得了解什么是大数据,大数据的作用是什么,如何学习大数据。

    首先我们说大数据就是分析数据,通过数据整理来分析我们生活中的种种事物。大数据指的是过于庞大或复杂(或两者兼具)、无法用标准软件高效管理的数据集。金融市场是大数据的重要产生者,交易、报价、业绩报告、消费者研究报告、官方统计数据公报、调查、新闻报道无一不是它的来源。

    那么我们如何去学习呢? 学习大数据,很多人是为了高薪就业,而盲目的去学习,不去了解一些大数据的学习思路。今天小编告诉你如何学习大数据。

    第一步、零基础入门方法论(预习下知识再听课吧,实际上很多人不预习知识就去听课,却连自己想要通过课程解决什么问题都不知道,这其实就是盲目。就像很多人去炒股,却从没有下功夫提前去学习投资的知识。)

    第二步、数据结构入门(预习完知识后,你肯定心中会很多知识方便的问题,这时候带着问题去听课效才能更好有针对性的去学习。 )

    第三步、简单的数据分析。

    第四步、复杂数据分析。

    第五步、SQL入门到精通。第六步、统计概率知识。

    当你了解学习大数据,那么你必须来了解Hadoop,人们在谈论大数据不可避免地要提到Hadoop,可惜的是当今社会大多数的人们是大数据鼓吹者,甚至那些专业的大数据人士也并不能不能说清楚Hadoop到底是什么,而是表面意义上的模糊理解。在学习中,很多人也是一头的雾水,不知道怎么去学习。

    众所周知,Hadoop是Apache软件基金会管理的开源软件平台,但Hadoop到底是什么呢?简单来说,Hadoop是在分布式服务器集群上存储海量数据并运行分布式分析应用的一种方法。

    欢迎关注小编,有需要学习视频资料的,可以私信小编哦!(领取资料)小编随时与你分享交流,小编乐于助人。

  • ?

    书单 | 从入门到精通,数据分析不得不看的10本「好书」!

    魍魉

    展开

    1、深入浅出数据系列书籍

    深入浅出数据分析

    入门级别,比较简单,但基本的内容涉及全面,讲解的比较清晰,最后谈到了R语言。以下两本是同一系列。

    深入浅出统计学

    深入浅出SQL

    2、资料之美:优雅资料解决方案的幕后秘籍

    知识普及性的书籍,集结了39位数据处理领域的翘楚,现身说法,分享他们如何开发各种简约而优雅的解决方案克服各种挑战,每章都解决一个具体问题,对理解数据分析的应用领域和具体做法很有帮助。

    3、R 语言实战

    全面而细致的R指南,高度概括了该软件和它的强大功能,展示了使用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。

    4、数据之魅-基于开源工具的数据分析

    包含大量的模拟过程及结果展示,并通过实例来阐述如何使用开源工具来进行数据分析。通过本书的阅读,读者可以清楚地了解这些方法的实际用法及用途。

    5、数据挖掘技术:应用于市场营销、销售与客户关系管理

    如何利用最新的数据挖掘方法和技术来解决常见的业务问题。

    比如提高营销活动的响应率,识别新的客户群并估算信用风险。此外,它涵盖更多高级主题,如准备分析数据以及为公司数据挖掘创建必要的基础架构。

    6、Python数据科学手册

    每章介绍一到两个Python数据科学中的重点工具包。适合有编程背景,并打算将开源Python工具用作分析、操作、可视化以及学习数据的数据科学研究人员。对于需要处理大量数据的人而言,这是一本非常有价值的工作书,可以有效率地处理每天面对的问题,像是操作、转换,以及清理数据、可视化不同形式的数据,建立统计学或机器学习的模型等等。

    7、用数据讲故事

    通过大量案例研究介绍数据可视化的基础知识,以及如何利用数据创造出吸引人的、信息量大的、有说服力的故事,进而达到有效沟通的目的。如何充分理解上下文,如何选择合适的图表,如何消除杂乱,如何聚焦受众的视线,如何像设计师一样思考,以及如何用数据讲故事。

    8、利用Python进行数据分析

    提供了大量的实践案例研究,展示如何使用Python库(如NumPy,pandas,matplotlib, IPython等)有效解决一系列数据分析问题。

    9、机器学习实战

    用简单的语言把复杂难懂的机器学习算法解释清楚了,它将机器学习的基础理论与日常数据分析的实际工具相结合。使用灵活的Python编程语言来构建实现数据分类、预测、建议以及汇总和简化等更高级功能的算法的程序。

    10、机器学习系统设计

    比较简单,使用Python进行机器学习并开始构建自己的机器学习项目。本书适用于机器学习初学者的Python程序员,但希望学习机器学习。

    最后,花时间将这些中外文书籍吃透,数据分析理论部分就基本入门了,实践方面就需要根据企业业务需求来进行系统的练习和学习!

  • ?

    从入门到精通 参加好程序员大数据培训秒变牛人

    宋立果

    展开

    先说下入学好程序员大数据高端班的感受吧,刚来的时候还不是很适应这里紧张的节奏,觉得睡眠不够,注意力不集中,精神不振,好在后期通过调整,慢慢适应了这里的节奏,也慢慢的融入到这个集体之中。

    最直观的感想可能就是学习氛围非常的好,大家来这里都是为了找到一份满意的工作,虽然好程序员的教学质量和就业服务非常的到位,但是找工作面试主要还是依靠个人的能力,良好的学习氛围离不开严格的管理制度,只有严格的管理才能打造出精英的学生,才会有高薪的工作。这里的老师可以说非常负责,能够看出是在行业中有着多年经验的专家,试图用最容易理解的方式将知识点传达给学生,课后也留一些作业帮助学生巩固课堂知识,平时也积极辅导学生,虽然大家相处的时间不长,但是感情处的非常好,像朋友一样。多次交谈也让我受益其中,对未来增添了希望。那谈及学习则是个漫长而需要全力以赴的过程,举例分享下最近的笔记,相信大家会发现,温故确实能知新,学而不厌,定能发现新的知识与框架。

    一、MapReduce原理

    MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是“任务的分解与结果的汇总”。

    在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。

    在分布式计算中,MapReduce框架负责处理并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来。

    需要注意的是,用MapReduce来处理的数据集(或任务)必须具备一个特点,那就是待处理的数据集必须可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。

    二、那么简单描述下流程

    总的来说通过:input -> map -> shuffle/sort/merge -> reduce -> output

    一个reduce任务: (input -> map -> sort) => (merge -> reduce -> output)

    多个reduce任务: (input -> map -> shuffle -> sort) => (merge -> reduce -> output)

    注意reduce任务不具备数据本地化的优势,单个reduce任务的输入通常来自所有mapper的输出。 reduce的输出通常存储在HDFS中以实现可靠存储。

    这时需要提及combiner的作用和partition的作用。前者是通过reduce来实现,在map端运行计算任务,减少map端的输出数据。输出结果与reduce的输出一致。(集群上的可用带宽限制了MapReduce作业的数量,因此尽量避免map和reduce任务之间的数据传输是有利的)。后者partition的作用在于, partition的默认实现是hashpartition,它是map端将数据按照reduce个数取余,进行分区,不同的reduce来copy自己的数据。partition的作用是将数据分到不同的reduce进行计算,加快计算效果。

    三、 如何解决数据倾斜问题

    数据倾斜, map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,此称之为数据倾斜。

    解决方式通过自己实现partition类,用key和value相加取hash值,如java:

    修改前public int getPartition(K key, V value, int numReduceTasks) {

    return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks; }

    修改后public int getPartition(K key, V value, int numReduceTasks)

    {return ((key.hashCode() + value.hashCode()) & Integer.MAX_VALUE) % numReduceTasks;

    到此是近期学习的一处总结,课程已经过半,收获颇多,倍感压力的同时,也看见了未来的希望和曙光,年轻之所以被认作希望,就在于我们可以创造出无数种可能,或许,希望渺茫,再或许跌倒在前行的路上,但是,无付出则无回报,无果敢则无未来,年轻就在于拼搏,在于策马扬鞭,矢志不渝向未来!

  • ?

    从入门到精通,全球20个最佳大数据可视化工具!

    紫罗兰

    展开

    同 享 网 络 安 全

    共 治 网 络 社 会

    广州网警巡查执法

    数据可视化之初级篇

    零编程工具

    1. Tableau

    Tableau 是一款企业级的大数据可视化工具。Tableau 可以让你轻松创建图形,表格和地图。 它不仅提供了PC桌面版,还提供了服务器解决方案,可以让您在线生成可视化报告。服务器解决方案可以提供了云托管服务。Tableau的客户包括巴克莱银行,Pandora和Citrix等企业

    2. Infogram

    Infogram的最大优势在于,让您的可视化信息图表与实时大数据相链接。只须三个简单步骤,您可以选择在众多图表,地图,甚至是视频可视化模板中进行选择。 Infogram支持团队账号。

    3. ChartBlocks

    ChartBlocks是一个易于使用在线工具,它无需编码,便能从电子表格,数据库中构建可视化图表。整个过程可以在图表向导的指导下完成。您的图表将在HTML5的框架下使用强大的JavaScript库D3.js创建图表。你的图表是响应式的,并且可以和任何的屏幕尺寸及设备兼容。 您还可以将图表嵌入任何网页中,分享在Twitter和Facebook上。

    4. Datawrapper

    Datawrapper是一款专注于新闻和出版的可视化工具。华盛顿邮报,卫报,华尔街日报和Twitter等媒体都使用了这一工具。Datawrapper非常容易使用,不需要任何编程基础。你只需要上传你的数据,便能轻松地创建和发布图表,甚至是地图。Datawrapper提供了众多的自定义布局及地图模板。

    5. Plotly

    Plotly帮助你在短短几分钟内,从简单的电子表格中开始创建漂亮的图表。Plotly已经为谷歌、美国空军和纽约大学等机构所使用。 Plotly是一个非常人性化的网络工具,让你在几分钟内启动。如果你的团队希望为JavaScript和Python等编程语言提供一个API接口的话,Plotly是一款非常人性化的工具。

    6. RAW

    RAW弥补了很多工具在电子表格和矢量图形(SVG)之间的缺失环节。你的大数据可以来自MicrosoftExcel中,谷歌文档或是一个简单的逗号分隔的列表。它最厉害的功能是可以很容易地导出可视化结果,因为它和Adobe Illustrator,Sketch 和Inkscape是相容的。

    7. Visual.ly

    Visual.ly是一个可视化的内容服务。它提供专门的大数据可视化的服务,用户包括了VISA,耐克,Twitter,福特和国家地理等。如果你想完全外包可视化文件给第三方。你可以使用非常简化的在线流程:你只需描述你的项目,服务团队将在项目的整个持续时间内和你在一起。 Visual.ly给您发送所有项目关键点的邮件通知,也将让你不断给出反馈。

    数据可视化之开发展篇

    JavaScript库

    8. D3.js

    毋容置疑D3.js是最好的数据可视化工具库。D3.js运行在JavaScript上,并使用HTML,CSS和SVG。 D3.js是开源工具,使用数据驱动的方式创建漂亮的网页。 D3.js可实现实时交互。这个库非常强大和前沿,所以它带有没有预置图表也不支持IE9。

    9. Ember Charts

    Ember Charts – 顾名思义是一种基于Ember.js框架和使用d3.js的可视化工具。Ember Charts以绘制时间序列图,柱状图,饼图和散点图为主。它非常优易于扩展。同为Ember.js开发团队,Ember Charts聚焦于图形互动性。它有极强的错误处理能力,当你遇到坏数据时,系统也不会崩溃。

    10. NVD3

    NVD3运行在d3.js之上, 它可建立可重用的图表组件。该项目的目标是保持所有的图表整洁和可定制性。 NVD3是d3.js之上的简单的接口,保持了d3.js的所有强大功能。 NVD3由Novus Partners前端工程师开发和使其保持了图表技术洞察力。

    11. Google Charts

    Google Charts 以HTML5和SVG为基础,充分考虑了跨浏览器的兼容性,并通过VML支持旧版本的IE浏览器。所有您将创建的图表是交互式的,有的还可缩放。Google Charts是非常人性化和他们的网站拥有一个非常好的,全面的模板库,你可以从中找到所需模板。

    12. FusionCharts

    FusionCharts是最全面的JavaScript图表库,包括90个图表和900种地图。如果你不是特别喜欢的JavaScript。FusionCharts可以轻松集成像jQuery库,Angularjs和React框架以及ASP.NET和PHP语言。 FusionCharts支持JSON和XML数据,并提供许多格式图表:PNG,JPEG,SVG和PDF。

    13. Highcharts

    Highcharts是一个JavaScript API与jQuery的集成,全球最大的100家公司中有61家正在使用它。图表使用SVG格式,并使用VML支持旧版浏览器。它提供了两个专门的图表类型:Highstock和Highmaps,并且还配备了一系列的插件。你可以免费使用它,而如果你想建立付费的应用,只须支付少量牌照费用。此外,你还可以使用Highcharts云服务。

    14. Chart.js

    对于一个小项目的图表,chart.js是一个很好的选择。开源,只有11KB大小,这使得它快速且易于使用,它支持多种图表类型: 饼图,线性图和雷达图等。

    15. Leaflet

    你是否专注于专业的大数据解决方案?无需饼图和条形图?Leafleft 基于Open Street Map数据,使用HTML5 / CSS3绘制互动式可视化图。您可以使用他们的扩展插件库添加热点图(heatmaps)和动画标记。 Leaflet 是开源和只有33 KB大小。

    16. Chartist.js

    Chartist.js的开发社区一直致力于打败所有其他JavaScript图表库。它使用了Sass的个性化风格,它的SVG输出是响应式的。

    17. n3-charts

    N3-charts是一种基于AngularJS框架的工具。它建立在D3.js之上,帮助您创建简单的互动图表。 N3-charts是一种小型化的图表工具,不适用于大型项目。

    18. Sigma JS

    Sigma JS 是交互式可视化工具库。由于使用了WebGL技术,你可以使用鼠标和触摸的方式来更新和变换图表。Sigma JS同时支持JSON和GEXF两种数据格式。这为它提供了大量的可用互动式插件。Sigma JS 专注于网页格式的网络图可视化。因此它在大数据网络可视化中非常有用。

    19. Polymaps

    Polymaps是一款地图可视化一个JavaScript工具库。 Polymaps使用SVG实现从国家到街道一级地理数据的可视化。您可以使用CSS格式来修改你的样式。Polymaps使用GeoJSON来解释地理数据。它是创建heatmap热点图的最好的工具之一。您创建的所有地图都可以变成动态图。

    20. Processing.js

    Processing.js是一个基于可视化编程语言的JavaScript库。作为一种面向Web的JavaScript库,Processing.js是您能够有效进行网页格式图表处理。这使得它成为了一种非常好交换式可视化工具。 Processing.js需要一个兼容HTML5的浏览器来实现这一功能。

    来源:数据分析

    精彩回顾

    图解:建设网络强国,习近平在网信工作会上提出这些重大论断!

    朋友圈这样发很危险!但这些事很多人不知道……

    他们正在微信朋友圈窃取你的信息,赶紧拉黑!

    偷信息!偷钱!手机有这10个APP赶紧删!

  • ?

    大数据工程师零基础小白学习路线纯干货分享

    繁茂的

    展开

    大数据已经被炒的很热了,但通过我多年从事数据相关工作的经验,这个行业目前已经逐渐成熟了,每天我们在互联网都要存留大量的信息,但如何收集、整理这海量的信息,并产生价值,已经是各行各业都在探索的重要课题,且不说在海量数据中挖掘用户需求,预测未来的市场导向,就连政府的政务数据也要云计算、大数据。但是目前大数据工程师的人才缺口非常大,现在投身大数据领域绝对是绝佳的时机。但但从技术角度来看,有一定难度,大数据需要很多种基础理论知识与编程框架、分布式服务器等来支撑,这也是使得一个大数据工程师的人才要比做应用开发、做业务系统编程的人才缺的多。所以我们通过多年的经验,来设置大数据工程师学习路线,希望能让童鞋们更容易的踏上这条路!

    如果有编程背景这是最好的了,会节省很多学习时间,更容易理解。因为大数据环境比较复杂,并不像学习编程软件一样,机器安装一下,跟老师敲几行代码就可以了,但大数据可就要麻烦多了,至少要准备好虚拟化的集群环境,然后又要安装部署各种计算框架,所以需要有耐心,有一定解决问题的能力,坚持不懈,才有可能学好大数据。我推荐的学习步骤是:打好基础,理解为主。多动手实践,一定自己搭建出编程环境。后面再不断的学习spark、python、storm、云计算等相关课程,慢慢自己的头脑中会形成一套知识体系,对大数据的理解也会越来越透彻!

    首先是基础入门,大数据包含的知识面非常广泛涉及很多技术,我根据自己多年工作经验与自己收集整理的课程做的设置。基础进阶,重点是从Java语言学起,然后是对Linux的学习,统计学的学习。大数据包含几个部分一是数据的采集与处理,二是大数据的应用,第一部分依靠分布式、云计算与一些处理特殊情况,数据处理的技术框架组成,这里重点是hadoop分布式框架,spark框架。分别解决大数据存储问题。同时对于关系数据库对大量数据的处理也需要学习,毕竟很多大型商业系统的业务数据还是由传统的关系数据库进行管理的。最后,再linux与java上我也加入了深入学习的课程。供同学提高编程能力与水平。这套课程比较适合伴随职业生涯慢慢学。不适合填鸭式学习。不能当电视剧看,没意义。

    大数据的Java基础 14课

    大数据的linux基础 21课

    大数据的统计学基础 15课

    Hadoop数据分析平台 17课

    Hadoop2.X大数据平台 14课

    Scala语言入门 5课

    大数据平台Spark入门与精通 10课

    Maven教程 15课

    Linux文本编辑器VIM 6课

    Git权威指南 8课

    大数据平台Storm入门到精通 15课

    大数据C、C++基础 14课

    Linux运维 56课

    MYSQL高级性能优化与架构 16课

    Oracle11g海量数据架构设计 13课

    javaEE+Hadoop大数据

    中级进阶这部分重点在于大数据的数据处理的技术应用,storm对于大数据的实时数据分析,像微博实时榜单这种应用,需要storm。etl工具可以从多种数据源,大数据、关系库、文本等多种数据源抽取数据并统一加载。同时学习数据仓库架构与研发流程的课程,学习数据仓库的技术,对数据的整理与应用提出了一套方法论,通过OLAP的维度模型来处理各种数据应用需求,BI与数据接口等。同时学习mahout是做数据挖掘应用的深度学习的框架。还有Nosql的数据库,Redis与Mongodb技术,用于第三方数据抓取的编程语言Python,与分布式内存处理技术的spark框架与scala语言。并且设置的一些实战课程。未来课程内容也会不断更新

    Python网络程序开发 12课

    Storm大数据开发 8课

    Storm应用实战18课

    Hadoop应用开发实战案例 15课

    数据仓库全流程开发详解 15课

    ETL开发之Kettle 15课

    NoSQL与NewSQL数据库引航 19课

    MySQL数据库运维 15课

    大数据之Scala语言 5课

    Redis技术详解 26课

    Mongodb技术详解 18课

    Oracle职业直通车 26课

    Mahout数据挖掘 28课

    Docker大讲坛指引未来的云计算 10课

    Spark纯实战大讲坛 5课

    高级实战这个阶段的重点是深入学习、源码解析与实战,源码解析是希望能更深入的理解开源框架对解决实际问题的编程模型,同时很多大公司在对这些开源框架的应用上并不是直接拿来使用,因为标准版本可能无法解决这种大公司的一些特殊业务需求,都是对源代码进行二次开发,升级改造,重写等来满足自己的业务需要,所以大牛是要有改编能力的。百度就是这样干的,最好的例子就是咱们发货用的云盘,就是。同时数据挖掘、机器学习也是非常重要的大数据应用,阿尔法狗就是利用这个技术打败李世石的。openstack企业私有云是很多大企业内部都要用到的云服务技术,企业的内部应用目前也都是奔着SAAS,软件及服务的方式来实现,所以企业内部的大数据技术也是非常必要的。

    Hadoop源码解析与开发实战 43课

    大数据HBase源码解析与开发实战 26课

    大数据Hive源码解析与开发实战 24课

    大数据Hadoop数据挖掘实战

    Zookeeper入门到精通 8课

    Flume应用开发实战 12课

    Mahout入门与项目实战 20课

    大数据之机器学习 11课

    大数据之Linux内核探秘 13课

    深入浅出Hive企业级架构优化 7课

    Storm的集群搭建实战 8课

    OpenStack企业私有云实战培训课程 12课

    Nutch相关框架 20课

    基于大数据的推荐系统设计 9课

    大数据挖掘下的机器学习 11课

  • ?

    入门到精通的大数据架构师的修炼之路

    Leopold

    展开

    行数据分析经常有这样的困惑:自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。如果自己很迷茫,为了这些原因想往大数据方向发展,也可以。但是以下问题应该是清楚的:你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统、硬件、网络、服务器感兴趣?是软件专业,对软件开发、编程、写代码感兴趣?还是数学、统计学专业,对数据和数字特别感兴趣。

    其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。

    先扯一下大数据的4V特征:

    数据量大,TB->PB数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;处理时效性高,海量数据的处理需求不再局限在离线计算当中。现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

    文件存储:Hadoop HDFS、Tachyon、KFS离线计算:Hadoop MapReduce、Spark流式、实时计算:Storm、Spark Streaming、S4、HeronK-V、NOSQL数据库:HBase、Redis、MongoDB资源管理:YARN、Mesos日志收集:Flume、Scribe、Logstash、Kibana消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid分布式协调服务:Zookeeper集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager数据挖掘、机器学习:Mahout、Spark MLLib数据同步:Sqoop任务调度:Oozie眼花了吧,上面的有30多种吧,别说精通了,全部都会使用的,估计也没几个。以下针对第二个方向(开发/设计/架构)给出建议。

    1、初识Hadoop

    1.1 学会百度与Google

    不论遇到什么问题,先试试搜索并自己解决。Google首选,翻不过去的,就用百度吧。

    1.2 参考资料首选官方文档

    特别是对于入门来说,官方文档永远是首选文档。相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。

    1.3 先让Hadoop跑起来

    Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

    关于Hadoop,你至少需要搞清楚以下是什么:

    Hadoop 1.0、Hadoop 2.0MapReduce、HDFSNameNode、DataNodeJobTracker、TaskTrackerYarn、ResourceManager、NodeManager自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。建议先使用安装包命令行安装,不要使用管理工具安装。另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.

    1.4 试试使用Hadoop

    HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。

    1.5 你该了解它们的原理了

    MapReduce:如何分而治之;HDFS:数据到底在哪里,什么是副本;

    Yarn到底是什么,它能干什么;NameNode到底在干些什么;Resource Manager到底在干些什么;

    1.6 自己写一个MapReduce程序

    请仿照WordCount例子,自己写一个(照抄也行)WordCount程序,

    打包并提交到Hadoop运行。你不会Java?Shell、Python都可以,有个东西叫Hadoop Streaming。如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。

    2、更高效的WordCount

    2.1 学点SQL吧

    你知道数据库吗?你会写SQL吗?如果不会,请学点SQL吧。【文末SQL课程传送门】

    2.2 SQL版WordCount

    在1.6中,你写(或者抄)的WordCount一共有几行代码?给你以下:

    SELECT word,COUNT(1) FROM wordcount GROUP BY word;

    这便是SQL的魅力,编程需要几十行,甚至上百行代码,这一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。

    2.3 SQL On Hadoop之Hive

    什么是Hive?官方给的解释如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax.

    为什么说Hive是数据仓库工具,而不是数据库工具呢?有的朋友可能不知道数据仓库,数据仓库是逻辑上的概念,底层使用的是数据库,数据仓库中的数据有这两个特点:最全的历史数据(海量)、相对稳定的;所谓相对稳定,指的是数据仓库不同于业务系统数据库,数据经常会被更新,数据一旦进入数据仓库,很少会被更新和删除,只会被大量查询。而Hive,也是具备这两个特点,因此,Hive适合做海量数据的数据仓库工具,而不是数据库工具。

    2.4 安装配置Hive

    请参考1.1 和 1.2 完成Hive的安装配置。可以正常进入Hive命令行。

    2.5 试试使用Hive

    请参考1.1 和 1.2 ,在Hive中创建wordcount表,并运行2.2中的SQL语句。

    在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致。

    2.6 Hive是怎么工作的

    明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?

    2.7 学会Hive的基本命令

    创建、删除表;加载数据到表;下载Hive表的数据;请参考1.2,学习更多关于Hive的语法和命令。

    从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

    此时,你的”大数据平台”是这样的:那么问题来了,海量数据如何到HDFS上呢?

    3、把别处的数据搞到Hadoop上

    此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

    3.1 HDFS PUT命令

    这个在前面你应该已经使用过了。put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议熟练掌握。

    3.2 HDFS API

    HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。

    实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。建议了解原理,会写Demo。

    3.3 Sqoop

    Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库,Oracle、MySQL、SQLServer等之间进行数据交换的开源框架。就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

    自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。了解Sqoop常用的配置参数和方法。

    使用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.4 Flume

    Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。

    因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.5 阿里开源的DataX

    之所以介绍这个,是因为我们公司目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,非常好用。

    4、把Hadoop上的数据搞到别处去

    Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?其实,此处的方法和第三部分基本一致的。

    4.1 HDFS GET命令

    把HDFS上的文件GET到本地。需要熟练掌握。

    4.2 HDFS API

    同3.2.

    4.3 Sqoop

    同3.3.使用Sqoop完成将HDFS上的文件同步到MySQL;使用Sqoop完成将Hive表中的数据同步到MySQL。

    4.4 DataX

    知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;你已经知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;你已经知道flume可以用作实时的日志采集。

    从前面的学习,对于大数据平台,你已经掌握的不少的知识和技能,搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题来了,Hive使用的越来越多,你会发现很多不爽的地方,特别是速度慢,大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

    5、快一点吧,我的SQL

    其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。关于三者的比较,请参考1.1.

    我们目前使用的是SparkSQL,至于为什么用SparkSQL,原因大概有以下吧:使用Spark还做了其他事情,不想引入过多的框架;Impala对内存的需求太大,没有过多资源部署。

    5.1 关于Spark和SparkSQL

    什么是Spark,什么是SparkSQL。

    Spark有的核心概念及名词解释。

    SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

    SparkSQL为什么比Hive跑的快。

    5.2 如何部署和运行SparkSQL

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

    关于Spark和SparkSQL,如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的。

    6、一夫多妻制

    请不要被这个名字所诱惑。其实我想说的是数据的一次采集、多次消费。

    在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面章节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

    为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

    6.1 关于Kafka

    什么是Kafka?Kafka的核心概念及名词解释。

    6.2 如何部署和使用Kafka

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。使用Java程序自己编写并运行生产者和消费者程序。Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的。

    这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

    从前面的学习,你已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务之间又存在一定的依赖性,比如,必须等数据采集任务成功完成后,数据计算任务才能开始运行。如果一个任务执行失败,需要给开发运维人员发送告警,同时需要提供完整的日志来方便查错。

    7、越来越多的分析任务

    不仅仅是分析任务,数据采集、数据交换同样是一个个的任务。这些任务中,有的是定时触发,有点则需要依赖其他任务来触发。当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab远远不够了,这时便需要一个调度监控系统来完成这件事。调度监控系统是整个数据平台的中枢系统,类似于AppMaster,负责分配和监控任务。

    8、数据要实时

    在第六部分介绍Kafka的时候提到了一些需要实时指标的业务场景,实时基本可以分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、分钟级。对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming。当然,如果可以的话,也可以自己写程序来做。

    8.1 Storm

    1. 什么是Storm?有哪些可能的应用场景?

    2. Storm由哪些核心组件构成,各自担任什么角色?

    3. Storm的简单安装和部署。

    4. 自己编写Demo程序,使用Storm完成实时数据流计算。

    8.2 Spark Streaming

    1. 什么是Spark Streaming,它和Spark是什么关系?

    2. Spark Streaming和Storm比较,各有什么优缺点?

    3. 使用Kafka + Spark Streaming,完成实时计算的Demo程序。

    至此,你的大数据平台底层架构已经成型了,其中包括了数据采集、数据存储与计算(离线和实时)、数据同步、任务调度与监控这几大模块。接下来是时候考虑如何更好的对外提供数据了。

    9、数据要对外

    通常对外(业务)提供数据访问,大体上包含以下方面。

    离线:比如,每天将前一天的数据提供到指定的数据源(DBã...

  • ?

    干货:从入门到精通的大数据分析

    情丝

    展开

    什么是数据分析?数据分析是指用适当的统计分析对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。数据分析的目的是什么?数据分析的目的是把隐没在一大批看来杂乱无章的数据中的信息集中、萃取和提炼出来,以找出所研究对象的内在规律。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。数据分析是组织有目的地收集数据、分析数据,使之成为信息的过程。在产品的整个寿命周期,包括从市场调研到售后服务和最终处置的各个过程都需要适当运用数据分析过程,以提升有效性。在企业里面,数据分析可以帮助我们掌握企业的运营状况,商品的出售情况,用户的特征、产品的粘性、等等。数据分析的步骤?

    数据分析的步骤1.首先明确分析的思路和目的:数据分析一定的带着某种业务目的的。它可能是要追踪一个新产品上线之后的用户使用情况;也可能是观察用户在某段时间的留存情况,还有可能是运营某种优惠券是否有效。带着一定的目的,确定要从哪几个角度进行分析。然后找到能够说明目的的指标。比如想要验证运营最近的一批优惠券是否有效。我们可以从优惠券的领取情况和优惠券的使用情况两个方面分析,而优惠券的领取情况的指标可以细化为领取率;使用情况可细化为:使用率、客单价等。2.数据的收集:在确定了此次数据分析的核心指标后,就要针对数据指标做数据收集。有些企业的数据准备非常充分,数据仓库、数据集市等早早就建设好。有一些企业在数据分析上比较落后,那就需要我们自己做前期大量的数据收集工作。比如使用一些自己公司的或者第三方的数据分析工具进行埋点,拿到日志。或者使用数据库中的现有数据,比如订单数据、基础的用户信息等等。3.数据处理:数据提取出来之后,要剔除脏数据(清洗),然后数据转化。在进行最基本的数据汇总、聚合之后,我们就可以拿到比较简单的字段相对丰富的数据宽表。4.数据分析:数据分析是用适当的分析方法及工具,对处理过的数据进行分析,提取有价值的信息,形成有效结论的过程。一般公司所需要观察的数据大致分为如下几类:商业数据:付费金额,付费用户数,付费率客单价运营数据:新增用户数,日活、周活、月活(AARRR模型)产品数据:关键页面的pv、uv(漏斗模型)用户数据:用户生命周期、用户留存、用户客单价、用户类型(RFM模型…)商品数据:商品售卖情况,毛利分析….随着数据的重要性的凸显,越来越多的公司已经认识到数据对于公司的经营是十分重要的。所以绝大部分企业都有专门的BI部门进行初步的数据加工、分析,以周报表的形式汇总给管理层做为日常数据所需以及企业决策使用。在这里主要介绍两个简单的数据分析模型:AARRR模型:Acquisition(获取)、Activation(活跃)、Retention(留存)、Revenue(收益)、Refer(传播)

    AARRR模型获取用户(Acquisition)如何获取用户?线上通过网站通过SEO,SEM,app通过市场首发、ASO等方式获取。还有运营活动的H5页面,自媒体等方式。线下通过地推和传单进行获取用户。提高活跃度(Activation)来了用户后,通过运营价格优惠、编辑内容等方式进行提高活跃度。把内容做多,商品做多,价格做到优惠,但需要控制在成本至上的有生长空间。这样的用户是最有价值进行活跃。产品策略上,除了提供运营模块和内容深化。进行产品会员激励机制成长体制进行活跃用户。不仅商品优惠的,VIP等标示的ICON,对于长业务流程,进行流程激励体制,产品策略更具多元化。提高留存率(Retention)提高活跃度的,有了忠实的用户,就开始慢慢沉淀下来了。运营上,采用内容,相互留言等社区用户共建UCG,摆脱初期的PCG模式。电商通过商品质量,O2O通过优质服务提高留存。这些都是业务层面的提高留存。产品模式上,通过会员机制的签到和奖励的机制去提高留存。包括app推送和短信激活方式都是激活用户,提高留存的产品方式。通过日留存率、周留存率、月留存率等指标监控应用的用户流失情况,并采取相应的手段在用户流失之前,激励这些用户继续使用应用。获取收入(Revenue)获取收入其实是应用运营最核心的一块。即使是免费应用,也应该有其盈利的模式。收入来源主要有三种:付费应用、应用内付费、以及广告。付费应用在国内的接受程度很低,包括Google Play Store在中国也只推免费应用。在国内,广告是大部分开发者的收入来源,而应用内付费目前在游戏行业应用比较多。前面所提的提高活跃度、提高留存率,对获取收入来说,是必需的基础。用户基数大了,收入才有可能上量。自传播(Refer)以前的运营模型到第四个层次就结束了,但是社交网络的兴起,使得运营增加了一个方面,就是基于社交网络的病毒式传播,这已经成为获取用户的一个新途径。这个方式的成本很低,而且效果有可能非常好;唯一的前提是产品自身要足够好,有很好的口碑。从自传播到再次获取新用户,应用运营形成了一个螺旋式上升的轨道。而那些优秀的应用就很好地利用了这个轨道,不断扩大自己的用户群体。漏斗模型:

    用户访问的路径

    漏斗模型漏斗模型广泛应用于流量监控、产品目标转化等日常数据运营工作中。之所以称为漏斗,就是因为用户(或者流量)集中从某个功能点进入(这是可以根据业务需求来自行设定的),可能会通过产品本身设定的流程完成操作。按照流程操作的用户进行各个转化层级上的监控,寻找每个层级的可优化点;对没有按照流程操作的用户绘制他们的转化路径,找到可提升用户体验,缩短路径的空间。运用漏斗模型比较典型的案例就是电商网站的转化,用户在选购商品的时候必然会按照预先设计好的购买流程进行下单,最终完成支付。需要注意的是:单一的漏斗模型对于分析来说没有任何意义,我们不能单从一个漏斗模型中评价网站某个关键流程中各步骤的转化率的好坏,所以必须通过趋势、比较和细分的方法对流程中各步骤的转化率进行分析:趋势(Trend):从时间轴的变化情况进行分析,适用于对某一流程或其中某个步骤进行改进或优化的效果监控;比较(Compare):通过比较类似产品或服务间购买或使用流程的转化率,发现某些产品或应用中存在的问题;细分(Segment):细分来源或不同的客户类型在转化率上的表现,发现一些高质量的来源或客户,通常用于分析网站的广告或推广的效果及ROI。5.数据展现:数据可视化-基本的图表数据可视化是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。图表是”数据可视化”的常用手段,其中又以基本图表—-柱状图、折线图、饼图等等—-最为常用。

    数据可视化-图表有人觉得,基本图表太简单、太原始,不高端,不大气,因此追求更复杂的图表。但是,越简单的图表,越容易理解,而快速易懂地理解数据,不正是”数据可视化”的最重要目的和最高追求吗?所以,请不要小看这些基本图表。因为用户最熟悉它们,所以只要是适用的场合,就应该考虑优先使用。5.1柱状图(Bar Chart)柱状图是最常见的图表,也最容易解读。

    柱状图它的适用场合是二维数据集(每个数据点包括两个值x和y),但只有一个维度需要比较。年销售额就是二维数据,”年份”和”销售额”就是它的两个维度,但只需要比较”销售额”这一个维度。柱状图利用柱子的高度,反映数据的差异。肉眼对高度差异很敏感,辨识效果非常好。柱状图的局限在于只适用中小规模的数据集。通常来说,柱状图的X轴是时间维,用户习惯性认为存在时间趋势。如果遇到X轴不是时间维的情况,建议用颜色区分每根柱子,改变用户对时间趋势的关注。

    柱状图上图是英国足球联赛某个年度各队的赢球场数,X轴代表不同球队,Y轴代表赢球数。5.2 折线图(Line Chart)数据折线图适合二维的大数据集,尤其是那些趋势比单个数据点更重要的场合。

    折线图它还适合多个二维数据集的比较。

    折线图上图是两个二维数据集(大气中二氧化碳浓度,地表平均气温)的折线图。5.3 饼图(Pie Chart)饼图是一种应该避免使用的图表,因为肉眼对面积大小不敏感。

    饼图

    柱状图上图中,左侧饼图的五个色块的面积排序,不容易看出来。换成柱状图,就容易多了。一般情况下,总是应该用柱状图替代饼图。但是有一个例外,就是反映某个部分占整体的比重,比如贫穷人口占总人口的百分比。

    饼图5.4 散点图(Scatter Chart)散点图适用于三维数据集,但其中只有两维需要比较。

    散点图上图是各国的医疗支出与预期寿命,三个维度分别为国家、医疗支出、预期寿命,只有后两个维度需要比较。为了识别第三维,可以为每个点加上文字标示,或者不同颜色。

    散点图5.5 气泡图(Bubble Chart)气泡图是散点图的一种变体,通过每个点的面积大小,反映第三维。

    气泡图上图是卡特里娜飓风的路径,三个维度分别为经度、纬度、强度。点的面积越大,就代表强度越大。因为用户不善于判断面积大小,所以气泡图只适用不要求精确辨识第三维的场合。如果为气泡加上不同颜色(或文字标签),气泡图就可用来表达四维数据。比如下图就是通过颜色,表示每个点的风力等级。

    气泡图5.6 雷达图(Radar Chart)雷达图适用于多维数据(四维以上),且每个维度必须可以排序(国籍就不可以排序)。但是,它有一个局限,就是数据点最多6个,否则无法辨别,因此适用场合有限。下面是迈阿密热火队首发的五名篮球选手的数据。除了姓名,每个数据点有五个维度,分别是得分、篮板、助攻、抢断、封盖。

    雷达图画成雷达图,就是下面这样。

    雷达图面积越大的数据点,就表示越重要。很显然,勒布朗·詹姆斯(红色区域)是热火队最重要的选手。需要注意的时候,用户不熟悉雷达图,解读有困难。使用时尽量加上说明,减轻解读负担。总结

  • ?

    大数据构架师从入门到精通学习必看宝典

    Zou

    展开

    经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统、硬件、网络、服务器感兴趣?是软件专业,对软件开发、编程、写代码感兴趣?还是数学、统计学专业,对数据和数字特别感兴趣。

    其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。

    分享之前我还是要推荐下我自己创建的大数据学习交流Qun531629188无论是大牛还是想转行想学习的大学生小编我都挺欢迎,今天的已经资讯上传到群文件,不定期分享干货,包括我自己整理的一份最新的适合2018年学习的大数据教程,欢迎初学和进阶中的小伙伴。

    先扯一下大数据的4V特征:

    数据量大,TB->PB

    数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

    商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

    处理时效性高,海量数据的处理需求不再局限在离线计算当中。

    现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

    文件存储:Hadoop HDFS、Tachyon、KFS

    离线计算:Hadoop MapReduce、Spark

    流式、实时计算:Storm、Spark Streaming、S4、Heron

    K-V、NOSQL数据库:HBase、Redis、MongoDB

    资源管理:YARN、Mesos

    日志收集:Flume、Scribe、Logstash、Kibana

    消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ

    查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

    分布式协调服务:Zookeeper

    集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

    数据挖掘、机器学习:Mahout、Spark MLLib

    数据同步:Sqoop

    任务调度:Oozie

    眼花了吧,上面的有30多种吧,别说精通了,全部都会使用的,估计也没几个。就我个人而言,主要经验是在第二个方向(开发/设计/架构),且听听我的建议吧。

    第一章:初识Hadoop

    1.1 学会百度与Google

    不论遇到什么问题,先试试搜索并自己解决。Google首选,翻不过去的,就用百度吧。

    1.2 参考资料首选官方文档

    特别是对于入门来说,官方文档永远是首选文档。相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。

    1.3 先让Hadoop跑起来

    Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

    关于Hadoop,你至少需要搞清楚以下是什么:

    Hadoop 1.0、Hadoop 2.0

    MapReduce、HDFS

    NameNode、DataNode

    JobTracker、TaskTracker

    Yarn、ResourceManager、NodeManager

    自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。建议先使用安装包命令行安装,不要使用管理工具安装。另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.

    1.4 试试使用Hadoop

    HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。

    1.5 你该了解它们的原理了

    MapReduce:如何分而治之;HDFS:数据到底在哪里,什么是副本;

    Yarn到底是什么,它能干什么;NameNode到底在干些什么;Resource Manager到底在干些什么;

    1.6 自己写一个MapReduce程序

    请仿照WordCount例子,自己写一个(照抄也行)WordCount程序,

    打包并提交到Hadoop运行。你不会Java?Shell、Python都可以,有个东西叫Hadoop Streaming。如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。

    第二章:更高效的WordCount

    2.1 学点SQL吧

    你知道数据库吗?你会写SQL吗?如果不会,请学点SQL吧。

    2.2 SQL版WordCount

    在1.6中,你写(或者抄)的WordCount一共有几行代码?给你看看我的:

    SELECT word,COUNT(1) FROM wordcount GROUP BY word;

    这便是SQL的魅力,编程需要几十行,甚至上百行代码,我这一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。

    2.3 SQL On Hadoop之Hive

    什么是Hive?官方给的解释如下:The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax.

    为什么说Hive是数据仓库工具,而不是数据库工具呢?有的朋友可能不知道数据仓库,数据仓库是逻辑上的概念,底层使用的是数据库,数据仓库中的数据有这两个特点:最全的历史数据(海量)、相对稳定的;所谓相对稳定,指的是数据仓库不同于业务系统数据库,数据经常会被更新,数据一旦进入数据仓库,很少会被更新和删除,只会被大量查询。而Hive,也是具备这两个特点,因此,Hive适合做海量数据的数据仓库工具,而不是数据库工具。

    2.4 安装配置Hive

    请参考1.1 和 1.2 完成Hive的安装配置。可以正常进入Hive命令行。

    2.5 试试使用Hive

    请参考1.1 和 1.2 ,在Hive中创建wordcount表,并运行2.2中的SQL语句。

    在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致。

    2.6 Hive是怎么工作的

    明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?

    2.7 学会Hive的基本命令

    创建、删除表;加载数据到表;下载Hive表的数据;请参考1.2,学习更多关于Hive的语法和命令。

    如果你已经按照《写给大数据开发初学者的话》中第一章和第二章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:

    MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);

    HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;

    自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;

    会写简单的SELECT、WHERE、GROUP BY等SQL语句;

    Hive SQL转换成MapReduce的大致流程;

    Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

    从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

    此时,你的”大数据平台”是这样的:那么问题来了,海量数据如何到HDFS上呢?

    第三章:把别处的数据搞到Hadoop上

    此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

    3.1 HDFS PUT命令

    这个在前面你应该已经使用过了。put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议熟练掌握。

    3.2 HDFS API

    HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。

    实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。建议了解原理,会写Demo。

    3.3 Sqoop

    Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库,Oracle、MySQL、SQLServer等之间进行数据交换的开源框架。就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

    自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。了解Sqoop常用的配置参数和方法。

    使用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.4 Flume

    Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。

    因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.5 阿里开源的DataX

    之所以介绍这个,是因为我们公司目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,非常好用。

    可以参考我的博文《异构数据源海量数据交换工具-Taobao DataX 下载和使用》。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    第四章:把Hadoop上的数据搞到别处去

    Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?其实,此处的方法和第三章基本一致的。

    4.1 HDFS GET命令

    把HDFS上的文件GET到本地。需要熟练掌握。

    4.2 HDFS API

    同3.2.

    4.3 Sqoop

    同3.3.使用Sqoop完成将HDFS上的文件同步到MySQL;使用Sqoop完成将Hive表中的数据同步到MySQL。

    4.4 DataX

    同3.5. 如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

    如果你已经按照《写给大数据开发初学者的话2》中第三章和第四章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:

    知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;你已经知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;你已经知道flume可以用作实时的日志采集。

    从前面的学习,对于大数据平台,你已经掌握的不少的知识和技能,搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题来了,Hive使用的越来越多,你会发现很多不爽的地方,特别是速度慢,大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

    第五章:快一点吧,我的SQL

    其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。关于三者的比较,请参考1.1.

    我们目前使用的是SparkSQL,至于为什么用SparkSQL,原因大概有以下吧:使用Spark还做了其他事情,不想引入过多的框架;Impala对内存的需求太大,没有过多资源部署。

    5.1 关于Spark和SparkSQL

    什么是Spark,什么是SparkSQL。

    Spark有的核心概念及名词解释。

    SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

    SparkSQL为什么比Hive跑的快。

    5.2 如何部署和运行SparkSQL

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

    关于Spark和SparkSQL,如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的。

    第六章:一夫多妻制

    请不要被这个名字所诱惑。其实我想说的是数据的一次采集、多次消费。

    在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面章节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

    为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

    6.1 关于Kafka

    什么是Kafka?Kafka的核心概念及名词解释。

    6.2 如何部署和使用Kafka

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。使用Java程序自己编写并运行生产者和消费者程序。Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的。

    这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

    如果你已经按照《写给大数据开发初学者的话3》中第五章和第六章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:

    为什么Spark比MapReduce快。

    使用SparkSQL代替Hive,更快的运行SQL。

    使用Kafka完成数据的一次收集,多次消费架构。

    自己可以写程序完成Kafka的生产者和消费者。

    从前面的学习,你已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务之间又存在一...

大数据入门到精通

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP