大数据知识图谱笔记

大数据组件繁多,五花八门,这里花了几天时间针对以前笔记的Hadoop、Spark 两大生态圈的相关组件进行了分类整理,用简短的几句话对相关特性进行了总结描述,强化记忆,供学习、选型、面试。详细组件功能介绍请参考其它博文。

没有什么是一张图解决不了的,如果有就再画一张

目录

1 集成平台

2 分布式文件系统

3 Hadoop 生态圈

4 Spark 生态圈

5 数据存储访问

6 实时流处理

7 搜索引擎(Lucence)

8 文件格式

9 压缩编码方式

10 数据导入

11 消息队列

12 日志收集

13 数据分析

14 数据可视化

15 调度框架


1 集成平台

 

1.1 HDP
    公司:hortonworks,apach社区
    管理页面:Ambari
    主要特点:
        稳定性:较差,打开页面慢
        二次开发:支持,且支持邮件报警
        安装:简单,RPM包,支持滚动重启(hdfs需要设计成ha才能滚动重启)
        集成性:版本较新,ambari较强,支持es,redis,presto,kylin
1.2 CDH
    公司:cloudera
    管理页面:cloudera manager
    主要特点:
        稳定性:较好
        二次开发:不支持
        安装:复杂,parcel包,支持滚动重启
        集成性:较弱,版本较老
1.3 华为FusionInsight HD
    管理页面:Manager
    操作页面:Hue
    主要特点:
        SmallFS 小文件处理
        Oozie 任务编排
        


2 分布式文件系统


2.1 HDFS
    扩展性:只能横向扩展
    高持久性:S3比HDFS更耐用
    保留:当停止EC2和EMR实例时数据不会保留
2.2 S3 
    扩展性:能根据存储自动扩展
    高持久性:11个9
    保留:数据始终存在
    


3 Hadoop 生态圈


    计算引擎:
        map/reduce
            JobTracker分配任务
            TaskTracker监控任务
        hdfs 
            NameNode
            SecondaryNameNode
            DateNode
    特点:等待上一环节全部处理完才向下
    流计算:storm
    机器学习:Mahout
    


4 Spark 生态圈


    计算引擎:
        Spark
        Application->Driver->Work node->Executor->Task
        多个Task组成一个Stage,每个Job会被拆分成多组Task称为Stage
        DAGScheduler:根据job构建基于Stage的DAG,并提交Stage给TaskScheduler(根据RDD分配)
        TaskScheduler:将TaskSet提交给Work,Executor任务来源于此
    特点:向前拉取数据、有向无环,基于内存比Hadoop快100倍
    流计算:Spark Streaming
    机器学习:Spark Mlib
    


5 数据存储访问


5.1 HBase
    特点:
        主要适用于海量明细数据随机实时查询,如日志明细、交易清单、轨迹行为等
        定位:列式存储数据库,适用于稀疏性数据,非结构化数据存储
        支持二级索引
        类似Bigtable
    主键设计策略避免热点:
        加盐-随机数
        哈希
        反转
        加时间戳
    结构:
        HMaster
        HRegionServer
            HRegion 按RowKey划分
                Store 对应列簇
                    MemStore
                    StoreFile
                        HFile
        HLog
5.2 Phoneix
    特点:
        phoenix查询引擎会将SQL查询转换为一个或多个HBASE scan
        开源的sql on hbase,它就是为Hbase而生,支持事务,高并发、低延时、简单查询、方便的二级索引,支持JDBC等优点
5.3 Kudu
    特点: 
        定位:与HBASE类似的列式存储分布式数据库,是一个既支持随机读写、又支持OLAP分析的大数据存储引擎
        master主要负责管理元数据信息,tserver主要负责table的存储与数据的增删改查
5.4 CarbonData
    特点:
        场景:希望一份存储同时满足快速扫描,多维分析,明细数据查询的场景
        是一种新型的Apache Hadoop本地文件格式,使用先进的列式存储、索引、压缩和编码技术以提高计算效率
        支持一张表内混合格式:CSV,TXT,JSON,Parquet,ORC,CarbonFile,DB实时数据同步,Flink流入库,支持Spark Extenoin,
        支持非结构化数据,对接TensorFlow,Pytorch深度神经网络模型训练
    结构:
        carbonData file->blocket->Data Chunks
5.5 Hive
    引擎:
        map reduce
        Tez
    特点:
        适用于离线的批量数据计算,通过元数据来描述HDFS上的结构化文本数据,支持HSQL、UDF
        定位:数据仓库,有元数据,分内外表
        适用查询分析、清洗、处理,不支持索引、修改数据
        支持文本、RCFile、Hbase、ORC等多种文件格式或存储类型
    表结构:
        分区:指定列列值相同的分到一个区,缩小数据查询范围,提高查询速度和性能
        分桶:列值取哈希将不同的数据放到不同的文件中
5.6 Impala
    引擎:
        查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或HBASE中用select、join和统计函数查询数据
    特点:
        定位:一种新型的MPP查询引擎,加快数据访问,数据存储在HDFS、HBASE或者Kudu
        类似分布式数据库Greenplum,分解查询,暴力scan,由Impalad、State Store和CLI组成
        支持Parquet、Avro、Text、RCFile、SequenceFile等多种格式,支持存储在HDFS、HBASE、Amazon S3的数据操作
        资源不能通过Yarn统一资源管理调度,所以Hadoop集群无法实现Imapla\Spark\Hive等组件动态资源共享
5.7 presto
    特点:
        presto是一个分布式查询引擎,完全基于内存并行计算,类impala,使用Catalog\Schema和Table这3层结构管理数据
        presto可以通过Connector接入多种数据源,灵活性高,包括Hive、RDBMS(Mysql\Oracle\Tidb等)、Kafka、MongoDB、Redis等
5.8 Spark SQL
    引擎:有向无环图,以Schema RDD为核心
    特点:
        满足低并发、高延迟、复杂计算场景,支持流、OLAP、离线分析、数据清洗、支持多源(Hbase\MongoDB\Redis\OSS等)
        支持parquet/Avro/Text/JSON/ORC等多种文件格式,支持存储在HDFS、HBASE、Amazon S3上的数据操作。
5.9 Waterdrop 
    特点:
        是一个非常易用、高性能、支持实时流式和离线批处理的海量数据处理产品,架构于Apache spark和Apache flink之上
        支持海量数据ETL、聚合、多源数据处理,灵活配置,无需开发,支持从TiDB、Kafka、HDFS、Kudu中读取数据进行各种各样的数据处理
        并将结果从TiDB、Clickhouse、Elasticsearch、Kafka
5.10 mongDB
    特点:
        是一个面向文档存储的数据库,旨在为web应用提供可扩展的高性能数据存储解决方案,利用内存计算的优势
        NOSQL 最终一致性而非ACID属性,满足CAP定理,BASE,支持丰富的查询表达式、索引,热点数据放入内存,其它数据存在磁盘
5.11 汇总
    整体性能:
        CarbonData>Impala>spark SQL>presto>hive(Tez)
        物理内存够用时:redis>mongDB>mysql
    行式存储VS列式存储:
        行式:
            优:数据被保存在一起,insert和update容易
            缺:几列查询时所有数据也都被读取,效率低
        列式:
            优:查询时只有被涉及到的才会被读取,查询速度快,适合高并发场景
            缺:数据需重新组装,不适合表关联
            


6 实时流处理


6.1 Storm Hadoop生态圈
    storm的容错机制需要对每条data进行ack,因此容错开销对throughputs影响巨大
    几十ms级latency,容错性差
6.2 Spark Streaming
    spark是micro-batch级别的计算,各种优化做的很好,它的throughputs是最大的
    延时latency是秒级,容错性好
6.3 Flink
    容错机制较为轻量,对throughputs影响较小
    百ms级latency
    一个面向流处理框架,基于事件,输入在flink中是无界的
6.4 Kafka
    作为消息队列,在企业中主要用于存储数据,配合流计算
    


7 搜索引擎(Lucence)


7.1 Elasticsearch
    仅支持json文件格式,适合处理分析查询,监控和指标
    适用于新兴实时搜索应用
    自身带有分布式协调管理功能Xen
7.2 Solr Cloud
    solr 支持更多格式数据,提供分布式搜索和索引复制
    单纯的对已有的数据进行搜索时,solr更快,不适用实时,数据量越大越慢
    利用Zookeeper进行分布式管理
    


8 文件格式


8.1 textfile snappy
8.2 orcfile
    先按行水平分割,再按列垂直分割,针对不同的列采用特定的编码格式
    适合Hive-on-Tez
8.3 parquet
    数据打平和重建算法,实现按列存储(列组)
    适合Impala和Spark SQL
8.4 RCFile 
    先水平切Row,再垂直切Column
    适合presto
8.5 Avro 
    基于行,主要目标是为了满足schema evolution
8.6 汇总压缩性能对比
    orcfile>parquet>RCFile>text>Avro
    


9 压缩编码方式


9.1 snappy 有效平衡压缩率和解压缩速度
9.2 Gzip 最高压缩率的归档数据压缩
9.3 Deflate 不支持文本文件
9.4 Bzip LZO 只支持文本文件

 

10 数据导入


10.1 sqoop 支持批量从结构化数据存储导入数据到HDFS

 

11 消息队列


11.1 ActiveMQ 吞吐量:万级,时效:ms,架构:主从,适合小公司
11.2 RabbitMQ 吞吐量:万级,时效:us,架构:主从,小公司优先
11.2 RocketMQ 吞吐量:十万级,时效:ms,架构:分布式,适合大公司
11.2 kafka 吞吐量:十万级,时效:ms,架构:分布式,适合大公司

 

12 日志收集


12.1 Flume
    适用于移动大规模流数据到HDFS
    可靠性、扩展性最佳
12.2 Scribe
    结构:Scribe agent,Scribe和存储系统
    容错负载均衡稍弱
12.3 Chukwa
    结构:adaptor,agent,collector
    hadoop集群日志分析

 

13 数据分析


13.1 SAS 把数据存储、管理、分析和展现有机融为一体
13.2 SPSS 数据定量分析工具,简单
13.3 Kylin 为超大规模数据集提供亚秒级标准SQL查询
13.4 Pig 常用于检索和分析数据量较大的数据集,适合实时

 

14 数据可视化


14.1 EChart
    主要采用canvas画图
    Canvas通过JavaScript来绘制2D图形
    依赖分辨率,不支持事件处理器,能够以jpg,png格式保存结果图像
14.2 D3.js
    主要采用svg画图
    可自由创建图表,比较底层
14.3 Highchart
    主要采用canvas画图,svg是一种使用XML描述2D图形语言
    不依赖分辨率,支持事件处理器

 

​​​​​​​15 调度框架


15.1 Yarn
    主要为Hadoop jobs管理资源
    通过进程隔离,失败任务重新获取资源
15.2 Mesos
    为各个框架(hadoop,spark,web services)提供dynamical partitioning
    采用Linux Container容器对多计算框架共享资源进行隔离
    slave失败任务转移,个框架自身容错
    
    
        
        码字不易,转载请说明~~
    
        
    
    
    

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 时空大数据是指具有时间和地理空间信息的大数据。它可以用来分析和模拟人类活动和事件的时空分布情况,如交通流量、疾病传播、自然灾害等。 知识图谱是一种用来表示知识的工具,它通常由许多实体(entity)和实体之间的关系(relation)组成。知识图谱可以用来建立和维护一个结构化的、可视化的知识库,帮助人们更好地理解和认识世界。 知识图谱嵌入是指将知识图谱中的实体和关系转化为数值表示,使得它们能够被计算机程序理解和使用。这样就可以将知识图谱的信息用于自然语言处理、推荐系统等应用中。 ### 回答2: 时空大数据知识图谱嵌入都属于人工智能领域中重要的技术和方法。 时空大数据是指通过对时间和地理位置信息的采集、管理和分析,从大数据集合中获取有关时间和地理位置的信息。它可以帮助我们理解和预测基于时间和地理位置的现象和趋势,如人口迁移、交通流动等。时空大数据可以通过高精度的传感器、移动设备和其他数据源获取大量的时空数据,然后通过数据挖掘和机器学习的技术进行分析和应用,帮助我们更好地了解和管理复杂的时空关系。 知识图谱嵌入是指将知识图谱中的实体和关系转化为向量表示的过程。知识图谱是一种结构化的知识表示方法,它使用实体和关系作为节点和边来组织和表示知识。通过将知识图谱转化为向量表示,我们可以用机器学习的方法对知识图谱中的实体进行分类、推荐和匹配等任务。知识图谱嵌入可以帮助我们建立更好的知识表示和关联模型,提高机器对知识的理解和处理能力。 时空大数据知识图谱嵌入可以结合使用,从而应用于更广泛的领域。例如,可以将时空大数据中的时间和地理位置信息与知识图谱中的实体和关系进行关联和分析,从而揭示时间和地理位置与知识之间的联系和规律。这种结合可以应用于城市规划、交通管理、环境监测等领域,帮助我们更好地理解和解决相关问题,并支持智慧城市和可持续发展的目标。同时,时空大数据知识图谱嵌入也可以应用于其他领域,如医疗健康、金融、农业等,帮助我们发现和应用隐藏在大数据中的有价值的知识。 ### 回答3: 时空大数据是指利用各种现代技术手段获取的大量关于时间和空间的信息。它不仅包括了传统的时空数据,例如地理位置、时间点,还可以包括更复杂的时空事件、时空关系等。时空大数据在各个领域都有广泛的应用,例如城市规划、交通管理、环境保护等。 知识图谱嵌入是指将知识图谱中的实体和关系映射到低维度的向量空间中,以方便计算机对知识图谱进行处理和分析。知识图谱是一种将真实世界的知识结构化为图的方式,其中实体表示为节点,关系表示为边。通过对知识图谱嵌入的操作,可以实现对知识的高效存储和检索,以及知识之间的关联分析。 时空大数据知识图谱嵌入在一些领域的应用中具有重要意义。例如,在交通管理领域,可以利用时空大数据分析车辆流动的规律,并将分析结果嵌入到知识图谱中,从而实现对交通状况的实时监测和优化控制。在城市规划方面,可以利用时空大数据分析城市的发展趋势,将分析结果嵌入到知识图谱中,从而为城市规划提供决策支持。此外,时空大数据知识图谱嵌入还可以应用于气候变化分析、疾病传播模型构建等领域,为科学研究和决策制定提供支持。总之,时空大数据知识图谱嵌入的结合将会在各个领域带来更加精确和智能的分析和决策能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值