中企动力 > 商学院 > 大数据库是什么
  • ?

    人人都在说的大数据到底是什么?(技术层)

    蛊毒

    展开

    前沿技术普及系列·写在前面

    不知道大家有没有和象牙妹儿一样的感觉,便是最近1年很多AI产品铺天盖地的来到了我们的生活,比如某些家的智能陪伴音响、翻译棒、智能机器人、AR拍照手机等等。

    这里面背后的前沿技术大数据、云计算、区块链、物联网、 5G、数字化…前几年甚至到现在听着还很遥远,但却已有不少在冲击着商业的世界,渗透进我们的生活!

    如何拨开层层浓雾,抵达未来的彼岸?如何把握技术的钥匙,启开未来商业世界的大门!

    大象互联网圈发起主办的第二届中国【郑州】开发者大会不但关注技术·商业的融合,也关注着前沿技术的分享。

    因此,从今天起,大象互联网圈公众号将目光聚焦在大数据、云计算、物联网IOT、人工智能AI、区块链、VR/AR等板块,一一从概念层、目前行业发展状况、企业实际应用层、技术层、岗位前景等为大家带来干货的普及,快来和象牙儿妹一块围观吧!

    上一篇:人人都在说的大数据到底是什么?(概念层)

    本文由“壹伴编辑器”提供技术支持

    提到大数据技术,最基础和核心的仍是大数据的分析和计算。在2017年,大数据分析和计算技术仍旧在飞速的发展,无论老势力Hadoop还是当红小生Spark,亦或是人工智能,都在继续自己的发展和迭代。

    目前绝大部分传统数据计算和数据分析服务均是基于批量数据处理模型:使用ETL系统或OLTP系统进行构造数据存储,在线的数据服务通过构造SQL语言访问上述数据存储并取得分析结果。这套数据处理的方法伴随着关系型数据库在工业界的演进而被广泛采用。

    本文将分别讨论大数据技术涉及到的技术框架、平台以及未来的发展趋势。

    本文由“壹伴编辑器”提供技术支持

    1.批处理框架

    传统的批量数据处理模型通常基于如下处理模型:

    1.使用ETL系统或者OLTP系统构造原始的数据存储,以提供后续的数据服务进行数据分析和数据计算。用户装载数据,系统根据自己的存储和计算情况,对于装载的数据进行索引构建等一些列查询优化工作。

    因此,对于批量计算,数据一定需要加载到计算机系统,后续计算系统才在数据加载完成后方能进行计算。

    2.用户或系统主动发起一个计算作用并向上述数据系统进行请求。此时计算系统开始调度(启动)计算节点进行大量数据计算,该过程的计算量可能巨大,耗时长达数分钟乃至数小时。

    同时,由于数据累计的不可及时性,上述计算过程的数据一定是历史数据,无法保证数据的实时性。

    3.计算结果返回,计算作业完成后将数据以结果集形式返回用户,或者可能由于计算结果数量巨大保存着数据计算系统中,用户进行再次数据集成到其他系统。一旦数据结果巨大,整体的数据集成过程漫长,耗时可能长达数分钟乃至数小时。

    典型代表:Hadoop

    Hadoop是Apache的一个开源项目,是可以提供开源、可靠、可扩展的分布式计算工具。它主要包括HDFS和MapReduce两个组件,分别用于解决大数据的存储和计算。

    HDFS是独立的分布式文件系统,为MapReduce计算框架提供存储服务,具有较高的容错性和高可用性,基于块存储以流数据模式进行访问,数据节点之间项目备份。默认存储块大小为64M,用户也可以自定义大小。

    HDFS是基于主从结构的分布式文件系统,结构上包括NameNode目录管理、DataNode的数据存储和Client的访问客户端3部分。

    NameNode主要负责系统的命名空间、集群的配置管理以及存储块的复制;DataNode是分布式文件系统存储的基本单元;Client为分布式文件系统的应用程序。

    对于数据存储,HDFS采用的是多副本的方式来存储数据,即Client将数据首先通过NameNode获取数据将要存储在哪些DataNode上,之后这些存储到最新数据的DataNode将变更数据以同步或异步方式同步到其他DataNode上。

    在Hadoop3.0之后,采用Erasure Coding可以大大的降低数据存储空间的占用。对于冷数据,可以采用EC来保存,这样才能降低存储数据的花销,而需要时,还可以通过CPU计算来读取这些数。

    MapReduce是一种分布式计算框架,适用于离线大数据计算。采用函数式编程模式,利用Map和Reduce函数来实现复杂的并行计算,主要功能是对一个任务进行分解,以及对结果进行综合汇总。

    具体来说,MapReduce是将那些没有经过处理的海量数据进行数据分片,即分解成多个小数据集;每个Map并行地处理每一个数据集中的数据,然后将结果存储为,并把key值相同的数据进行归并发送到Reduce处理。

    本文由“壹伴编辑器”提供技术支持

    2.流计算框架

    不同于批量计算模型,流式计算更加强调计算数据流和低时延,流式计算数据处理模型如下:

    1.使用实时集成工具,将数据实时变化传输到流式数据存储(即消息队列,如RabbitMQ);此时数据的传输编程实时化,将长时间累积大量的数据平摊到每个时间点不停地小批量实时传输,因此数据集成的时延得以保证。

    2.数据计算环节在流式和批量处理模型差距更大,由于数据集成从累计变成实时,不同于批量计算等待数据集成全部就绪后才启动计算作业,流式计算作业是一种常驻计算服务,一旦启动将一直处于等待事件触发的状态,一旦小批量数据进入流式数据存储,流计算立刻计算并迅速得到结果。

    3.不同于批量计算结果数据需要等待数据计算结果完成后,批量将数据传输到在线系统;流式计算作业在每次小批量数据计算后可以立刻将数据写入在线系统,无需等待整个数据的计算结果,可以立刻将数据结果投递到在线系统,进一步做到实时计算结果的实时化展现。

    典型代表:Spark

    Spark是一个快速且通用的集群计算平台。它包含Spark Core、Spark SQL、Spark Streaming、MLlib以及Graphx组件。

    Spark SQL是处理结构化数据的库,它支持通过SQL查询数据。Spark Streming是实时数据流处理组件。MLlib是一个包含通用机器学习的包。GraphX是处理图的库,并进行图的并行计算一样。

    Spark提出了弹性分布式数据集的概念(Resilient Distributed Dataset),简称RDD,每个RDD都被分为多个分区,这些分区运行在集群的不同节点上。一般数据操作分为3个步骤:创建RDD、转换已有的RDD以及调用RDD操作进行求值。

    在Spark中,计算建模为有向无环图(DAG),其中每个顶点表示弹性分布式数据集(RDD),每个边表示RDD的操作。

    RDD是划分为各(内存中或者交换到磁盘上)分区的对象集合。在DAG上,从顶点A到顶点B的边缘E意味着RDD B是RDD A上执行操作E的结果。有两种操作:转换和动作。

    转换(例如;映射、过滤器、连接)对RDD执行操作并产生新的RDD。

    本文由“壹伴编辑器”提供技术支持

    3.交互式分析框架

    在解决了大数据的可靠存储和高效计算后,如何为数据分析人员提供便利日益受到关注,而最便利的分析方式莫过于交互式查询。

    这几年交互式分析技术发展迅速,目前这一领域知名的平台有十余个,包括Google开发的Dremel和PowerDrill,Facebook开发的Presto,Hadoop服务商Cloudera和HortonWorks分别开发的Impala和Stinger,以及Apache项目Hive、Drill、Tajo、Kylin、MRQL等。

    一些批处理和流计算平台如Spark和Flink也分别内置了交互式分析框架。由于SQL已被业界广泛接受,目前的交互式分析框架都支持用类似SQL的语言进行查询。早期的交互式分析平台建立在Hadoop的基础上,被称作SQL-on-Hadoop。

    后来的分析平台改用Spark、Storm等引擎,不过SQL-on-Hadoop的称呼还是沿用了下来。SQL-on-Hadoop也指为分布式数据存储提供SQL查询功能。

    典型代表:Hive

    ApacheHive是最早出现的架构在Hadoop基础之上的大规模数据仓库,由Facebook设计并开源。Hive的基本思想是,通过定义模式信息,把HDFS中的文件组织成类似传统数据库的存储系统。

    Hive保持着Hadoop所提供的可扩展性和灵活性。Hive支持熟悉的关系数据库概念,比如表、列和分区,包含对非结构化数据一定程度的SQL支持。它支持所有主要的原语类型(如整数、浮点数、字符串)和复杂类型(如字典、列表、结构)。

    它还支持使用类似SQL的声明性语言HiveQueryLanguage(HiveQL)表达的查询,任何熟悉SQL的人都很容易理解它。HiveQL被编译为MapReduce过程执行。下图说明如何通过MapReduce实现JOIN和GROUPBY。

    部分HiveQL操作的实现方式

    Hive与传统关系数据库对比如下:

    Hive的主要弱点是由于建立在MapReduce的基础上,性能受到限制。很多交互式分析平台基于对Hive的改进和扩展,包括Stinger、Presto、Kylin等。其中Kylin是中国团队提交到Apache上的项目,其与众不同的地方是提供多维分析(OLAP)能力。

    Kylin对多维分析可能用到的度量进行预计算,供查询时直接访问,由此提供快速查询和高并发能力。Kylin在eBay、百度、京东、网易、美团均有应用。

    本文由“壹伴编辑器”提供技术支持

    5.其他类型的框架

    除了上面介绍的几种类型的框架外,还有一些目前还不太热门但具有重要潜力的框架类型。图计算是DAG之外的另一种迭代式计算模型,它以图论为基础对现实世界建模和计算,擅长表达数据之间的关联性,适用于PageRank计算、社交网络分析、推荐系统及机器学习。这一类框架有GooglePregel、ApacheGiraph、ApacheHama、PowerGraph、,其中PowerGraph是这一领域目前最杰出的代表。很多图数据库也内置图计算框架。

    另一类是增量计算框架,探讨如何只对部分新增数据进行计算来极大提升计算过程的效率,可应用到数据增量或周期性更新的场合。这一类框架包括GooglePercolator、MicrosoftKineograph、阿里Galaxy等。

    另外还有像

    ApacheIgnite、ApacheGeode(GemFire的开源版本)这样的高性能事务处理框架。

    本文由“壹伴编辑器”提供技术支持

    6.总结与展望

    从Hadoop横空出世到现在10余年的时间中,大数据分布式计算技术得到了迅猛发展。不过由于历史尚短,这方面的技术远未成熟。各种框架都还在不断改进,并相互竞争。

    性能优化毫无疑问是大数据计算框架改进的重点方向之一。而性能的提高很大程度上取决于内存的有效利用。这包括前面提到的内存计算,现已在各种类型的框架中广泛采用。

    拥抱机器学习和人工智能也是大数据计算的潮流之一。Spark和Flink分别推出机器学习库SparkML和FlinkML。更多的平台在第三方大数据计算框架上提供机器学习,如Mahout、Oryx及一干Apache孵化项目SystemML、HiveMall、PredictionIO、SAMOA、MADLib。

    在同一平台上支持多种框架也是发展趋势之一,尤其对于那些开发实力较为雄厚的社区。

    Spark以批处理模型为核心,实现了交互式分析框架SparkSQL、流计算框架SparkStreaming(及正在实现的StructuredStreaming)、图计算框架GraphX、机器学习库SparkML。

    本文由“壹伴编辑器”提供技术支持

    7.学习资料

    最后介绍一下大数据计算方面的学习资料。

    论坛

    首推知乎、Quora、StackOverflow,运气好的话开发者亲自给你解答。其他值得关注的网站或论坛包括炼数成金、人大经济论坛、CSDN、博客园、云栖社区、360大数据、推酷、伯乐在线、小象学院等。

    微信订阅号

    InfoQ是最权威的,其他还有THU数据派、大数据杂谈、CSDN大数据、数据猿、Hadoop技术博文等,各人根据偏好取舍。

    官方网站文档

    若要进行系统的学习,则首先应参考官方网站文档。不少大数据平台的官方文档内容都比较详实,胜过多数教材。

    书籍

    国外O\'Reilly、Manning两家出版社在大数据领域出版了不少优秀书籍,特别是Manning的InAction系列和O\'Reilly的DefinitiveGuide系列。

    本篇关于大数据的技术层面分析就介绍到这,下一篇我们将对大数据的最终价值体现——大数据实践进行分析介绍。

    END

    第二届中国【郑州】开发者大会

    线上报名通道全面开放

    本次大会将开设从数字化到大数据落地专场,现已开放报名通道,门票分为49.9普通票和VIP票两种,其中VIP票权益非常丰富,票价为199元且仅限200张,下面是两种票的权益对比:

  • ?

    什么是大数据?你需要知道的一切

    雪迷离

    展开

    大数据定义

    一般而言,大数据是指数量庞大且复杂的数据集,以至于传统的数据处理软件无法在合理的时间内捕获,管理和处理数据。

    这些大数据集可以包括结构化,非结构化和半结构化数据,每个数据都可以挖掘出价值潜力。

    究竟有多少数据实际上构成“大”呢是有争议的,但它通常可能是PB级的倍数,可能对应于EB级的数据。(1EB=1024PB 1PB=1024TB 1TB=1024GB)

    大数据通常以三个特征:

    极端的数据量广泛的多种类型的数据能够加工处理的数据

    构成大数据存储的数据可以来自网站,社交媒体,桌面和移动应用,科学实验以及物联网中越来越多的传感器和其他设备。

    大数据和分析

    大数据分析工具

    真正能够从所有大数据中获得价值的是应用于数据的分析。没有分析,这仅仅只是一堆数据。

    数据分析包括检查数据集以获得见解或得出数据中的有价值内容。

    通过分析数据可以做出更明智的业务决策,例如何时何地进行营销活动或引入新产品或服务。

    分析可以指基本的商业分析或更高级的预测性分析,例如科学机构使用的分析。在最先进的数据分析类型中,数据挖掘是分析师评估大型数据集来发现看似无关事务之间关系的一种方式。

    IT中的架构来支持大数据

    对于大数据工作,团队需要有适当的设备来收集和存储数据,提供对数据的访问,并在存储和传输过程中保护信息。

    由于公司希望继续利以数据为中心的投资,因此大部分基于大数据的架构可能都是公司内部自己部署的。但越来越多的机构依靠云计算服务来处理大部分大数据需求。

    数据收集需要有数据源。其中很多,如网络应用程序,社交媒体渠道,移动应用程序和电子邮件已经成为了重要的几个数据源。但随着物联网逐渐成熟,企业可能需要在各种设备和产品上部署传感器来收集数据,并生成用户对应的数据。

    为了存储所有传入的数据,大数据需要有适当的数据存储方式。存储方式包括传统的数据仓库,数据池和基于云的存储。

    以上这些关于大数据的基本知识你get到了吗。

  • ?

    都说大数据,你知道到底什么是大数据吗?

    Shell

    展开

    俺黑君够黑,慎关注!

    究竟什么是大数据?如何对大数据进行定义?大数据有哪些特征?了解了这些才能更好的知道自己学习是怎样的一门技术,以及它的前景如何。本文达妹就带大家一起了解大数据。

    DT时代,人人言必称大数据,所有的新系统几乎都是基于大数据,有人认为用了MongoDB就是大数据,也有人用了Hadoop就是大数据,或者认为数据量大就是大数据。

    更有甚者,笔者看到一篇新闻报道,说某企业成功实施大数据项目,结果只是SQL-Server集群……天呐,这可是上世纪的技术了!

    说了这么多到底什么是大数据呢,其实大数据并没有教科书式的明确定义,但是却有比较公认的特性描述,符合这些特性的就可以称作大数据,即大数据的4个V。

    第一个V——高容量

    这个最好理解,数据量一定要大,才好意思称自己为大数据嘛。大到什么程度呢?依目前行情来看,至少也要到TB级,很多案例都是PB甚至更高。但如果是GB级,非说自己是大数据也不是不可以,就是有点无颜见江东父老啊……

    第二个V——多样化

    这个很关键了!是区别于以往海量数据挖掘的最主要特征。它有两层含义,一是数据来源多样化,系统数据、设备日志、传感器、文件系统等等来源。二是数据结构多样化,这是核心特征!要包含结构化数据、非结构数据(包括所谓半结构化数据)。

    总结起来就是,多源异构。这就是为什么有人认为使用NoSQL数据库(如MongoDB)就是大数据了,因为满足了多样化的特征,但其实还不够。

    第三个V——高速

    即时效性,基本上至少也要达到亿级数据一秒查询,做的比较好的可以达到千亿级数据一秒查询。这个特征几乎决定了传统技术架构无法满足要求,因此Hadoop架构的出现催化了大数据的发展,也是有人认为Hadoop就是大数据的原因。

    第四个V——价值

    这个很好理解,数据一定要有价值、而后才能产生价值。就好比存商品的叫才能仓库,存垃圾的叫垃圾填满坑一样。没价值的数据就像一个垃圾填满坑,这也是为什么数据治理在大数据实施中非常重要的原因之一。

    最后,也是最重要的,以上4个V是逻辑与的关系,即需同时、注意是同时满足上述四个特征,就可以放心的说自己是大数据了!

    文版权归原作者所有。转载文章仅为传播更多信息之目的,如有侵权请与我们联系,我们将及时处理。

  • ?

    什么叫大数据分析

    牧瑾瑜

    展开

    大数据行业发展如火如荼,国家政策利好,互联网大佬纷纷在大数据行业布局,我们想让自己的职业生涯在一个朝阳行业发展,肯定又要学习相关技术,让自己与时俱进,但是难就难在大数据是一个新兴事物,目前我国大学的专业里面还鲜少有这个专业,国家刚批的大数据专业,全国目前35个高校,但是从17年开始招生,2021年才有第一批毕业生进入职场,在四年期间,是大数据行业发展的飞速时期,没有行业发展是等着人才进入的,而是需要要虚位以待、蓄势待发,所以在没有高等教育准备好的大数据教育,如何高效的学习大数据,如何快速的与行业发展想契合,那么需要我们成为第一个吃螃蟹的人,作为一个随着大数据行业成长的职业人,首先要知道大数据是个啥?

    大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    那来帮大家分析下:如何高效的学习大数据。

    经常有初学者会问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高……首先,如果你确定了想往这个方面发展,先考虑自己的过去从业经历、专业、兴趣是什么。计算机专业——操作系统、硬件、网络、服务器?软件专业——软件开发、编程、写代码?还是数学、统计学专业——对数据和数字特别感兴趣?

    那么你能找师傅带吗?

    但凡有这种想法的人,或多或少都会存有侥幸之心,或者叫做“天真,单纯”。希望不花一分钱,就能更快速的学到更优质,更实用的技能。

    关于这一点,我只想反问一句你:“如果你是大师,你凭什么愿意带我?”

    其实这就是想告诉你大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。

    先说一下大数据的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

    ······

    第一步:初识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到底在干些什么;

    ResourceManager到底在干些什么;

    1.6 自己写一个MapReduce程序

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

    打包并提交到Hadoop运行。

    不会Java的话,Shell、Python都可以,有个东西叫Hadoop Streaming。

    如果能认真完成了以上几步,恭喜你,你的一只脚已经进来了。

    第二步:更高效的WordCount

    2.1 学点SQL吧

    如果不懂数据库的童鞋先学习使用SQL句。

    2.2 SQL版WordCount

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

    如果用SQL的话:

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

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

    2.3 安装配置Hive

    Hive算是数据仓库工具,安装不难,网上有很多教程,配置完成后,可以正常进入Hive命令行。

    2.4 试试使用Hive

    尝试在Hive中创建wordcount表,并运行2.2中的SQL语句。在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致。

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

    2.5 学会Hive的基本命令

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

    0和Hadoop2.0的区别

    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,提交运行。

    第三步:把别处的数据搞到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表;

    PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.4 Flume

    Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;

    PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.5 阿里开源的DataX

    之所以介绍这个,是因为以前某公司客户目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,个人感觉非常好用。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。

    PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    至此,你的“大数据平台”应该是这样的:

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

    前面介绍了如何把数据源的数据采集到Hadoop上,数据到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.4

    此时,“你的大数据平台”应该是这样的:

    走完第三步和第四步的流程,那么你应该已经具备以下技能和知识点:

    · 知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;

    · 知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;

    · 知道flume可以用作实时的日志采集;

    至此,对于大数据平台,应该已经掌握如何搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题就是,Hive使用的越来越多,你会发现很多不愉快的地方,特别是速度慢,

    大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

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

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

    目前我们的方案使用的是SparkSQL,至于为什么用SparkSQL,原因大概如下:

    · 使用Spark还做了其他事情,不想引入过多的框架;

    · Impala对内存的需求太大,没有过多资源部署;

    5.1 关于Spark和SparkSQL

    什么是Spark,什么是SparkSQL。

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

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

    5.2 如何部署和运行SparkSQL

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。

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

    第六步:一夫多妻制

    其实我想说的是数据的一次采集、多次消费。

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

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

    6.1 关于Kafka

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    6.2 如何部署和使用Kafka

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。

    使用Java程序自己编写并运行生产者和消费者程序。

    Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    至此,“大数据平台”应该扩充成这样:

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

    总结:

    为什么Spark比MapReduce快。

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

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

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

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

  • ?

    大数据基础必备,大数据是什么?

    石水之

    展开

    随着互联网时代的到来,颠覆了传统行业的盈利模式,大家都把注意力集中在了互联网上。前几年大数据时代的来临,为各行各业提供了更加开阔的数据用作分析。

    百科对于大数据是这样解释的:麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。

    大数据大数据,核心仍然是‘数据’。在学习大数据技术前,我们首先应该明白大数据的‘数据的本质’。

    首先,不论是企业行为或是政府决策,亦或者个人文化和心智修养,判断世间万物,甚至包括洞察宏大的宇宙变化和时空转换,都可以也应该嵌入数据化去思考,若是无法理解这一点,那么就要思考自身是否适合往大数据方向发展。

    其次,研究并开发利用绝大部分数据大多是无用且有害的,这个过程既枯燥而且也不确定得来数据的价值。但是,可以利用一些好的办法和简单的规律,使数据活用起来,否则,学习发展大数据将失去本该有的意义。

    最后,从事大数据工作的各类人才在进行数据化思考时,一定要时刻想到、意识到‘关联’二字。关联一是要找出数据与数据之间的关联性,二是要处理好的数据从自动生成到传输存储,三是要加工挖掘再到形成有价值的东西流通交易,最后再回到对源数据生成及其采集流程的有针对性地再造。这一循环各环节缺一不可,以此建立人与人之间合作信任的长效可持续机制。

    大数据不是独奏,而是不断连接、无处不在的数据

    前几天有私信给我要大数据学习资料,我连夜整理了一些有深度的教程和参考资料,从入门到高级,文件已经上传好,正在学习大数据的可以免费下载学习,文件下载方式:

    首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!哈哈!编程是们手艺活。什么意思?得练啊!

  • ?

    什么是大数据?你需要知道……

    Roderick

    展开

    分析大量数据只是使大数据与以前的数据分析不同的部分原因之一。让我们来从下面三个方面看看。

    我们每天都在吃饭,睡觉,工作,玩耍,与此同时产生大量的数据。根据IBM调研的说法,人类每天生成2.5亿(250亿)字节的数据。 这相当于一堆DVD数据从地球到月球的距离,涵盖我们发送的文本、上传的照片、各类传感器数据、设备与设备之间的通信的所有信息等。

    这也就是为什么“大数据”成为如此常见的流行词的一个重要原因。简单地说,当人们谈论大数据时,他们指的是获取大量数据的能力,分析它,并将其转化为有用的东西。

    1.确切的说,什么是大数据?

    当然,大数据还远远不止这些?

    · 通常从多个来源获取大量数据

    · 不仅仅是大量的数据,而且是不同类型的数据,同时也有多种数据,以及随时间变化的数据,这些数据不需要转换成特定的格式或一致性。

    · 以一种方式分析数据,允许对相同的数据池进行分析,从而实现不同的目的

    · 尽快实现所有这一切

    在早些时候,这个行业提出了一个缩略词来描述这四个方面中的三个:VVV,体积(数量巨大),多样性(不同类型的数据和数据随时间变化的事实)和周转率(速度)。

    2. 大数据与数据仓库:

    VVV的缩写词所忽略的是数据不需要永久更改(转换)的关键概念——进行分析。这种非破坏性分析意味着,组织可以分析相同的数据连接池以不同的目的,并可以收集到不同目的的来源分析数据。

    (备注:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。)

    相比之下,数据仓库是专门为特定目的分析特定数据,数据结构化并转换为特定格式,原始数据在该过程中基本上被销毁,用于特定目的,而不是其他被称为提取,转换和加载(ETL)。 数据仓库的ETL方法有限分析具体数据进行具体分析。 当您的所有数据都存在于您的交易系统中时,这是非常好的,但在当今互联网连接的世界中,数据来自无处不在。

    信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理OLTP的业务系统和办公自动化系统,用来记录事务处理的各种相关数据。据统计,数据量每2~3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占在总数据量的2%~4%左右。

    因此,企业仍然没有最大化地利用已存在的数据资源,以至于浪费了更多的时间和资金,也失去制定关键商业决策的最佳契机。于是,企业如何通过各种技术手段,并把数据转换为信息、知识,已经成了提高其核心竞争力的主要瓶颈。

    数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。

    但是,不要认为大数据会使数据仓库过时。大数据系统可以让您在很大程度上处理非结构化数据,但是所得到的查询结果与数据仓库的复杂程度是不一样的。毕竟,数据仓库是为了深入数据而设计的,它之所以能够做到这一点,是因为它已经将所有数据转换成一种一致的格式,让您可以像构建立方体一样进行深入查询。

    多年来,数据仓库供应商一直在优化他们的查询引擎,以回答典型的业务环境问题。大数据可以让你从更多的数据源中获取更多的数据,但分辨率要低一些。因此,在未来一段时间内,我们将与传统的数据仓库一起并存。

    3.技术突破大数据背后

    为了完成大数据量,品种,非破坏性使用和速度的四个方面,包括分布式文件系统(hadoop)的开发,一种意识到不同数据的方法(Google的Map、Reduce以及最近的Apache Spark),以及云/互联网基础设施,用于根据需要访问和移动数据。

    直到大约十几年前,在任何一个时间都不可能操纵比较少的数据。(嗯,我们都认为数据仓库当时是巨大的,随着互联网的产生和连接的数据到处都是这样的背景)。对数据存储的数量和位置的限制、计算能力以及处理来自多个数据源的不同数据格式的能力使得这项任务几乎不可能完成。

    然后,在2003年左右的时间里,Google的研究人员开发了Map、Reduce。 这种编程技术通过首先将数据映射到一系列键/值对来简化处理大数据集,然后对类似的键执行计算以将它们减少到单个值,以数百或数千个低位并行处理每个数据块 成型机。 这种巨大的并行性允许Google从越来越大量的数据中产生更快的搜索结果。

    在2003年,Google创造了两个突破,使得大数据成为可能:一个是Hadoop,它由两个关键服务组成:

    · 使用Hadoop分布式文件系统(HDFS)可靠的数据存储

    · 使用称为Map、Reduce的技术进行高性能并行数据处理。

    Hadoop运行在商品,无共享服务器的集合上。您可以随意添加或删除Hadoop集群中的服务器; 系统检测并补偿任何服务器上的硬件或系统问题。 换句话说,Hadoop是自我修复的。 尽管发生系统更改或故障,它可以提供数据并运行大规模,高性能的处理作业。

    使用Hadoop,仍然需要一种存储和访问数据的方法。 这通常通过诸如MongoDB之类的NoSQL数据库(如CouchDB或Cassandra)完成,该数据库专门处理分布在多台计算机上的非结构化或半结构化数据。与在数据仓库中不同的是,大量数据和类型的数据融合成统一格式并存储在单个数据存储中,这些工具不会改变数据的底层性质或位置 – 电子邮件仍然是电子邮件,传感器数据仍然是 传感器数据 – 可以几乎存储在任何地方。

    尽管如此,在使用多台机器的数据库中存储大量的数据并不是很好,直到你做了一些事情。 这就是大数据分析的原理。像Tableau,Splunk和Jasper BI这样的工具可以让您解析这些数据,以识别模式,提取意义并揭示新的见解。 你所做的事情会因你的需要而有所不同。

  • ?

    到底什么叫大数据?

    冰安

    展开

    大数据到底是什么,到今天应该还是稀里糊涂的一笔账。

    百度百科是这样定义的:

    大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

    这个定义最大的特点,和很多红皮书白皮书黑皮书之类的差不多,就是装逼。说白了,不说人话。反正我是没听明白大数据和小数据有什么本质的区别。无非是数据和处理数据的工具以及从数据里面提取有用信息变成钱的过程。曾经我们在做这些事情,现在我们在做这些事情,将来我们也会继续做这些事情。

    以前几年国内大数据概念炒上天的情况来看,其实真的谁也不知道大数据是什么,谁也不清楚大数据怎么玩,但是各行各业忽如一夜春风来,冒出无数个大数据公司大数据专家。

    现在我们可以看到各行各业都在谈论大数据。从政府到企业,从互联网行业到传统行业,随便写个App背后没有大数据都不能叫好App。现在大数据都上升到国家高度了。比如说政府办公要上大数据,一个三线城市,放两三台机器搞定的,这数据真的非常的大。

    如果我们撇开大数据这个概念不谈,自从有了数据以来,人类一直做的事情是什么?这个其实也是今天大数据的背景下大家都在做的事情,概括起来讲:分析数据,产生有价值的信息。

    这个事情20年前在做10年前也在做,今天还是在做,其实没什么变化。 那么什么东西发生了变化呢?最大的一个是工具的能力发生了变化。 现在我们可以几千几万台机器一起协同做计算了。其次是性价比的变化。以前买Oracle的数据库IBM大型机Teradata的解决方案,贼贵。现在开源软件一搭,弄些PC机就好。糙一点无所谓,所谓便宜才能普及。

    然而本质来讲,大家做的事情并无改变。所以我们不需要去纠结于大数据到底是什么,而是要看清楚具体业务问题是什么,有什么合适的工具去解决。这些工具可能是新的也可能是旧的。我想大数据的所谓发展无非就是工具的进步使得大家能够更有能力去在限定的时间内处理更多的数据,获得更有效的信息。

    关注佳源信息,关注更多资讯。

    【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至jy@jiayuaninfo,我们将及时沟通与处理。

  • ?

    什么是大数据,大数据培训是干什么的?

    维尼熊

    展开

    什么是大数据?

      大数据是指:“无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。”

      那么,大数据究竟需要什么样的人才呢?

      1、大数据系统研发工程师:

      负责大数据系统的研发,包括大规模非结构化数据业务模型构建、大数据存储、数据库构设、优化数据库构架、解决数据库中心设计等,同时,还要负责数据集群的日常运作和系统的监测等。

      2、大数据应用开发工程师:

      负责搭建大数据应用平台以及开发分析应用程序,研发各种基于大数据技术的应用程序及行业解决方案。从不同的源头抽取数据,转换并导入数据仓库以满足企业的需要,将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库,成为联机分析处理、数据挖掘的基础,为提取各类型的需要数据创造条件。

      3、大数据分析师

      从事数据挖掘工作,运用算法来解决和分析问题,让数据显露出真相,并推动数据解决方案的不断更新。

      4、数据可视化工程师

      负责在收集到的高质量数据中,利用图形化的工具及手段的应用,清楚地揭示数据中的复杂信息,将其可视化,帮助用户更好地进行大数据应用开发。

      5、数据安全研发人才

      负责企业内部大型服务器、存储、数据安全管理工作,并对网络、信息安全项目进行规划、设计和实施。

      为了更好地培养大数据人才,尽可能填补大数据行业人才缺口,兄弟连开设了Java+大数据课程,培养大数据开发方向的技术人才。

  • ?

    什么是大数据?大数据应用在哪些地方

    卓若烟

    展开

    大家好,今天带大家了解大数据。对于外行来说,大数据名词听起来很高端、大气。却很抽象,让人无法理解。但作为编程人员、数据库管理员,大数据是需要详细了解的。这将会成为你们未来的发展方向。

    首先简介一下大数据能干什么?大家都知道,我们在淘宝购物。需要注册帐号,然后选购商品、加入购物车、付款发货、货物的物流信息等等。这些信息在电脑里被称为数据。产生的数据都会存储到淘宝的服务器里。每天数以亿计的数据,被存储到淘宝服务器里。由于这些数据很庞大,所以被称为大数据。再根据基础大数据,在后台进行智能分析。就能分析出指定用户的购物喜好。某些产品的销售量等等信息。然后通过挖掘大数据的结果,向用户推送指定商品。这就是大数据时代,给你我带来的便利。

    由于大数据里有海量的数据,存储和分析这些数据最主要就是要解决效率的问题。如何快速存储和分析海量的数据?目前都采用了一些什么技术?带着这些问题。我来讲一下,需要充电学习的方面。首先java语言是必须精通掌握的基础,用于大数据开发。接下来必须了解网络编程,mysql等数据库。再进一步学习,就需要了解集群技术。因为海量的数据需要采用多个数据库来进行存储和处理。即分布式存储。目前解决的方案,是采用hadoop架构。Hadoop实现一个分布式存储,具有高容错性、高吞吐量来访问应用程序的数据,适合超大数据集的应用程序。Hadoop的高吞吐,海量数据处理的能力使人们可以方便地处理海量数据。但hadoop不擅长实时计算,另一项大数据技术storm由此而生。他具有实时的数据处理能力。比如你昨天在淘宝买了一双鞋,今天你想买一顶帽子。而大数据分析的结果还是昨天的,系统不断的在向你推荐鞋子。而不去考虑你今天的需求。使用了storm技术,就会实时的分析你的需求,系统就会根据结果,向你推荐帽子。大数据的另一项技术Apache spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。用于配合hadoop和storm技术处理大数据。通过并行化地计算,加快的大数据的处理。

    大数据的另一方向就是机器学习,要想得到一个高效的机器学习系统。就需要先用少量的数据去训练它。在少量的数据下机器学习系统不出错。再加大学习量,最终就能通过反复测试上线。大数据下的机器学习需要很多学习样本,在大量的学习样本下。机器可以类似于人工一样筛选,分析处理得到有用的数据,最终将结果反馈给用户。机器学习要掌握R语言、python和mahout技术。机器学习应用前景很广,不只是大数据可以使用。可能会成为未来程序员必修的课程。

  • ?

    什么是大数据和大数据平台?

    残缺美

    展开

    “大数据”时下一个热门的词语,近几年来,关于大数据的著作和文章铺天盖地,似乎也在共同在传递一个信息:越来越多的行业、人士开始关注并实际探索大数据的应用,我们正在一起描绘着大数据巨大效用的蓝图,但在实践的路上,我们都孩子起步阶段小步前行。

    大数据根基于互联网,数据仓库、数据挖掘、云计算等互联网技术的发展为大数据应用奠定基础。对于任何一个大数据的从业者或初接触者,或者都会有个共同的感触:大数据很有用!但大数据是什么呢?

    今天就给大家讲解一下:

    对于大数据的定义,我们来引用3个比较差用的大数据定义:

    1)Gartner:需要信息处理模式才能具有更强的决策力,洞察发现力和流程优化能力的海量、高增长率很多样化的信息资产。

    2)IDC:海量的数据规模(Volunme)、快速的数据流转和数据体系(Velocity)、多样的数据类型(Variety)、巨大的数据价值(Value)。

    3)Wiki:或称巨量数据、海量数据、大资料,指所涉及的数据量规模巨大到无法通过人工,在合理时间内达到截取、管理、处理、并整理成为人类所能解读的信息。

    其他关于大数据的定义也大抵类型,我们可以用几个关键词对大数据做一个界定。

    首先,“大规模”,这种规模可以从两个维度来衡量,一是时间序列累积大量的数据,二是在深度上更加细化的数据。

    其次,“多样化”,可以是不同的数据格式,如文字、图片、视频等,可以是不同的数据类别,如入口数据,经济数据等,还可以有不同的数据来源,如互联网、传感器等。

    最后,“动态化”,数据是不停变化的,可以随着时间快速增加大量数据,也可以是在空间上不断移动变化的数据。

    这三 个关键词对大数据从形象上做了界定。

    但是还需要一个关键能力,就是“处理速度快”。如果这么大规模、多样化又动态变化的数据有了,但需要很长的时间去处理分析,那不叫大数据。从另一个角度,要实现这些数据快速处理,靠人工肯定是没办法实现的,因此,需要借助于机器实现。

    最终,我们借助机器,通过对这些数据进行快速的处理分析,获取想要的信息或者应用的整套体系,才能称为大数据。

    我们可以用下面的图示给大数据定义:

    这下,就知道什么是大数据了吧

大数据库是什么

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

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

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP