加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

大数据知识图谱实战经验总结

发布时间:2019-11-13 14:45:17 所属栏目:教程 来源:阿福班主任
导读:【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》 作为数据科学家,我想把行业新的知识图谱总结并分享给技术专家们,让大数据知识真正转化为互联网生产力!大数据与人工智能、云计算、物联网、区块链等技术日益融合,成为全球

下面是我设计的AngularJS 的项目框架,可以应用于所有业务系统,在第四章的体检报告可视化展示中详细阐述。建立MVC的三层框架,先建立一个单页视图层Main.html, 然后创建一个模型层Service.js, 最后创建一个控制层App.js, App.js中包括多个模块的JS和Html文件,这样就构建了一个完整的AngularJS MVC框架。

05 高可靠海量存储服务

高可靠海量存储是大数据处理的核心需求之一。实际工作中,常常需要实现多模态、不同时间颗粒度的行业数据的统一高效和海量存储,并提供易于扩展的离线计算和批处理架构,例如,引入 Hadoop和Spark的大数据存储与计算方案。高可靠数据海量存储的总体设计中要吸纳主流的Hadoop架构,Hadoop集群是一个能够让用户轻松架构和使用的分布式计算平台,用户可以在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

  • 高可靠性。Hadoop按列存储和处理数据的能力值得信任。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  • 高扩展性。Hadoop是在可用的列簇中分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  • 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

数据海量存储的弹性设计中要吸纳主流的HBase架构。它是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,适用于结构化的存储,底层依赖于Hadoop的HDFS,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。因此HBase被广泛使用在大数据存储的解决方案中。从应用场景分析,因为HBase存储的是松散的数据,如果应用程序中的数据表每一行的结构是有差别的,使用HBase最好,因为HBase的列可以动态增加,并且列为空就不存储数据,所以如果你需要经常追加字段,且大部分字段是NULL值的,那可以考虑HBase。因为HBase可以根据Rowkey提供高效的查询,所以你的数据都有着同一个主键Rowkey。具体实现见第六章节。

06 实时计算服务

实时计算的总体设计中要考虑Spark生态技术框架。Spark 使用 Scala 语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集(Scala 提供一个称为 Actor 的并行模型)。Spark具有运行速度快、易用性好、通用性。Spark 是在借鉴了 MapReduce 思想之上发展而来的,继承了其分布式并行计算的优点并改进了 MapReduce 明显的缺陷,具体优势分析如下:

Spark 把中间数据放到内存中,迭代运算效率高。MapReduce 中计算结果需要落地,保存到磁盘上,这样势必会影响整体速度,而 Spark 支持 DAG 图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率。

Spark 容错性高。Spark 引进了弹性分布式数据集 RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统“对它们进行重建。另外在 RDD 计算时可以通过 CheckPoint 来实现容错。

Spark 具备通用性。在Hadoop 提供了 Map 和 Reduce 两种操作基础上,Spark 又提供的很多数据集操作类型有,大致分为:Transformations 和 Actions 两大类。Transformations 包括 Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、oin、Cogroup、MapValues、Sort 和 PartionBy 等多种操作类型,同时还提供 Count, Actions 包括 Collect、 Reduce、Lookup 和 Save 等操作。

强大的SparkMLlib机器学习库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。具体实现见第六章节。

07 基于机器学习的智能分析服务

智能分析服务的总体设计中要考虑Spark MLlib工具。当今主流的建模语言包括R语言,Weka,Mahout和Spark等,我们来分析一下它们的基因和应用场景。

R是一种数学语言,里面封装了大量的机器学习算法,但是它是单机的,不能够很好的处理海量的数据。Weka和R语言类似,里面包含大量经过良好优化的机器学习和数据分析算法,可以处理与格式化数据转换相关的各种任务,唯一的不足就是它对高内存要求的大数据处理遇到瓶颈。

Mahout是hadoop的一个机器学习库,有海量数据的并发处理能力,主要的编程模型是MapReduce。而基于MapReduce的机器学习在反复迭代的过程中会产生大量的磁盘IO,即本次计算的结果要作为下一次迭代的输入,这个过程中只能把中间结果存储磁盘,然后在下一次计算的时候从新读取,这对于迭代频发的算法显然是致命的性能瓶颈。所以计算效率很低。现在Mahout已经停止更新MapReduce算法,向Spark迁移。另外,Mahout和Spark ML并不是竞争关系,Mahout是MLlib的补充。

MLlib是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。Spark的设计就是为了支持一些迭代的Job, 这正好符合很多机器学习算法的特点。在逻辑回归的运算场景下,Spark比Hadoop快了100倍以上。Spark MLlib立足于内存计算,适应于迭代式计算。而且Spark提供了一个基于海量数据的机器学习库,它提供了常用机器学习算法的分布式实现,工程师只需要有 Spark基础并且了解机器学习算法的原理,以及方法中相关参数的含义,就可以轻松的通过调用相应的 API 来实现基于海量数据的机器学习过程。

数据迁移能力的总体设计中要考虑Sqoop框架。Sqoop是一个目前Hadoop和关系型数据库中的数据相互转移的主流工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。作为ETL工具,使用元数据模型来判断数据类型,并在数据从数据源转移到Hadoop时确保类型安全的数据处理。Sqoop框架可以进行大数据批量传输设计,能够分割数据集并创建Hadoop任务来处理每个区块。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读