《大数据技术分享2213700.pptx》由会员分享,可在线阅读,更多相关《大数据技术分享2213700.pptx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大数据技术分享0102数据存储/Hbase,MongoDB03数据分析/Hive,MR,R04实时计算/Storm,Spark05数据传输/Sqoop,Kafka演讲提纲06数据采集/Flume,KafkaDPI大数据架构NoSql数据库NoSql(Not Only Sql)hbaseMongoDBLucene/Solr等Hbase是什么HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作,如下
2、图所示:HRegionServer、HRegion、Hmemcache、Hlog、HStore之间的关系HBase表中的数据与HRegionServer的分布关系为什么采用HBase?HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方面读写大数据的数据。hbase是基于列存储,查询速度为秒级一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此用户可以给行定义各种不同的列什么是列存储?什么是列存储?列存储不同于传统的关系型数据库,其数据在表中是按行存储的,列方式所带来的重要好处之一就是
3、,由于查询中的选择规则是通过列来定义的,因 此整个数据库是自动索引化的。按列存储每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量,一个字段的数据聚集存储,那就 更容易为这种聚集存储设计更好的压缩/解压算法。这张图讲述了传统的行存储和列存储的区别:MySQL中现有的表结构迁移至HBase中的表结构原来系统中有2张表blogtable和comment表,采用HBase后只有一张blogtable表,如果按照传统的RDBMS的话,blogtable表中的列是固定的,比如schema 定义了Author,Title,URL,text等属性,上线后表字段是不能动态增加的。但
4、是如果采用列存储系统,比如Hbase,那么我们可以定义blogtable表,然后定义info 列族,User的数据可以分为:info:title,info:author,info:url 等,如果后来你又想增加另外的属性,这样很方便只需要 info:xxx 就可以了。对于Row key你可以理解row key为传统RDBMS中的某一个行的主键,Hbase是不支持条件查询以及Order by等查询,因此Row key的设计就要根据你系统的查询需求来设计了额。Hbase中的记录是按照rowkey来排序的,这样就使得查询变得非常快。hive简介Hive是基于hadoop构建的数据仓库基础架构,通过提
5、供一系列的工具,使得用户能够方便的做数据ETL,数据结构化,并针对存放在hadoop上的海量数据进行查询和分析hive的设计目标是:可伸缩、可扩展、容错及输入格式松耦合。数据单元按照数据的粒度大小,hive数据可以被组织成:1)databases:避免不同表产生命名冲突的一种命名空间2)tables:具有相同scema的同质数据的集合partitions:一个表可以有一个或多个决定数据如何存储的partition keybuckets(或clusters):在同一个partition中的数据可以根据某个列的hash值分为多个bucket。partition和bucket并非必要,但是它们能大大
6、加快数据的查询速度。数据类型(1)简单类型:TINYINT-1 byte integerSMALLINT-2 byte integerINT-4 byte integerBIGINT-8 byte BOOLEAN-TRUE/FALSEFLOAT-单精度DOUBLE-双精度STRING-字符串集合(2)复杂类型:Structs:structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCTa INT;b INT,我们可以通过c.a来访问域a。Maps(Key-Value对):访问指定域可以通过element name进行,例如,一个Map M包含了一个group-gid
7、的k-v对,gid的值可以通过Mgroup来获取。Arrays:array中的数据为相同类型,例如,假如array A中元素a,b,c,则A1的值为b。内建运算符和函数 包括关系运算符(A=B,A!=B,AB等等)算术运算符(A+B,A*B,A&B,A|B等等)逻辑运算符(A&B,A|B等等)复杂类型上的运算符(An,Mkey,S.x)各种内建函数。语言能力 hive查询语言提供基本的类sql操作,这些操作基于table和partition,包括:1.使用where语句过滤制定行2.使用select查找指定列 3.join两张table或多张表 4.group by 5.一个表的查询结果存入另一张表6.将一个表的内容存入本地目录7.将查询结果存储到hdfs上8.管理table和partition(creat、drop、alert)9.hive提供jdbc功能,方便从关系型数据库中读取数据Hive和普通数据库的区别由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。Spark是什么?参考spark学习.ppt由于Spark是由Scala语言编写的,学习Spark首先要有Scala基础Scala的学习可参考以下学习网站http:/zh.scala-
限制150内