标签:聚类 for distinct sele line soc hql 开发接口 毕业
rdd.take(100).foreach(println)
spark SQL
Spark Streaming优劣
优势:
1、统一的开发接口
2、吞吐和容错
3、多种开发范式混用,Streaming + SQL, Streaming +MLlib
4、利用Spark内存pipeline计算
劣势:
微批处理模式,准实时
Storm结构:
DStream
1.将流式计算分解成一系列确定并且较小的批处理作业
2.将失败或者执行较慢的任务在其它节点上并行执行,执行的最小单元为RDD的partition
3.较强的容错能力
spark stream example code
四. 日志系统
1.Flume
Flume是一个分布式的日志收集系统,具有高可靠、高可用、事务管理、失败重启等功能。数据处理速度快,完全可以用于生产环境。
Flume的核心是agent。
Agent是一个java进程,运行在日志收集端,通过agent接收日志,然后暂存起来,再发送到目的地。
Agent里面包含3个核心组件:source、channel、sink。
Source组件是专用于收集日志的,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec、jms、spoolingdirectory、netcat、sequencegenerator、syslog、http、legacy、自定义。source组件把数据收集来以后,临时存放在channel中。
Channel组件是在agent中专用于临时存储数据的,可以存放在memory、jdbc、file、自定义。channel中的数据只有在sink发送成功之后才会被删除。
Sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定义。
Apache Kafka是分布式发布-订阅消息系统。
它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。
Apache Kafka与传统消息系统相比,有以下不同:
1、它被设计为一个分布式系统,易于向外扩展;
2、它同时为发布和订阅提供高吞吐量;
3、它支持多订阅者,当失败时能自动平衡消费者;
4、它将消息持久化到磁盘,因此可用于批量消费
五. 分布式搜索
搜索引擎是什么?
搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。
Lucene是什么?
Lucene一个高性能、可伸缩的信息搜索库,即它不是一个完整的全文检索引擎,而是一个全检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。
Elasticsearch是什么?
Elasticsearch一个高可扩展的开源的全文本搜索和分析工具。
它允许你以近实时的方式快速存储、搜索、分析大容量的数据。Elasticsearch是一个基于ApacheLucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
ElasticSearch 有4中方式来构建数据库
最简单的方法是使用indexAPI,将一个Document发送到特定的index,一般通过curltools实现。
第二第三种方法是通过bulkAPI和UDPbulkAPI。两者的区别仅在于连接方式。
第四种方式是通过一个插件-river。river运行在ElasticSearch上,并且可以从外部数据库导入数据到ES中。需要注意的是,数据构建仅在分片上进行,而不能在副本上进行。
ELK是一套常用的开源日志监控和分析系统
包括一个分布式索引与搜索服务Elasticsearch,一个管理日志和事件的工具logstash,和一个数据可视化服务Kibana,logstash 负责日志的收集,处理和储存,elasticsearch 负责日志检索和分析,Kibana 负责日志的可视化。
六. 分布式数据库
1.Hive是什么?
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质是将HQL转换为MapReduce程序
2.Hive的设计目标?
1、Hive的设计目标是使Hadoop上的数据操作与传统SQL相结合,让熟悉SQL编程开发人员能够轻松向Hadoop平台迁移
2、Hive提供类似SQL的查询语言HQL,HQL在底层被转换为相应的MapReduce操作
3、Hive在HDFS上构建数据仓库来存储结构化的数据,这些数据一般来源与HDFS上的原始数据,使用Hive可以对这些数据执行查询、分析等操作。
3.Hive的数据模型
Hive数据库
内部表
外部表
分区
桶
Hive的视图
Hive在创建内部表时,会将数据移动到数据仓库指向的路径,若创建外部表,仅记录数据所在的路径,不对数据位置做任何改变,在删除表的时候,内部表的元数据和数据会被一起删除,外部表只会删除元数据,不删除数据。这样来说,外部表要比内部表安全,数据组织液更加灵活,方便共享源数据。
4.Hive的调用方式
1、Hive Shell
2、Thrift
3、JDBC
4、ODBC
5.Hive的运行机制
1、将sql转换成抽象语法树
2、将抽象语法树转化成查询块
3、将查询块转换成逻辑查询计划(操作符树)
4、将逻辑计划转换成物理计划(M\Rjobs)
6.Hive的优势
1、并行计算
2、充分利用集群的CPU计算资源、存储资源
3、处理大规模数据集
4、使用SQL,学习成本低
7.Hive应用场景
1、海量数据处理
2、数据挖掘
3、数据分析
4、SQL是商务智能工具的通用语言,Hive有条件和这些BI产品进行集成
8.Hive不适用场景
1、复杂的科学计算
2、不能做到交互式的实时查询
9.Hive和数据库(RDBMS)的区别
1、数据存储位置。Hive是建立在Hadoop之上的,所有的Hive的数据都是存储在HDFS中的。而数据库则可以将数据保存在块设备或本地文件系统中。
2、数据格式。Hive中没有定义专门的数据格式,由用户指定,需要指定三个属性:列分隔符,行分隔符,以及读取文件数据的方法。数据库中,存储引擎定义了自己的数据格式。所有数据都会按照一定的组织存储。
3、数据更新。Hive的内容是读多写少的,因此,不支持对数据的改写和删除,数据都在加载的时候中确定好的。数据库中的数据通常是需要经常进行修改。
4、执行延迟。Hive在查询数据的时候,需要扫描整个表(或分区),因此延迟较高,只有在处理大数据是才有优势。数据库在处理小数据是执行延迟较低。
5、索引。Hive没有,数据库有
6、执行。Hive是MapReduce,数据库是Executor
7、可扩展性。Hive高,数据库低
8、数据规模。Hive大,数据库小
hive代码简单例子:
创建一个名为”test“的table
create table students (name string,age int,city string,class string) row format delimited fields terminated by ‘,‘;
load data local inpath "/opt/students.txt" into table students;
create EXTERNAL table IF NOT EXISTS studentX (name string,age int,city string,class string) partitioned by (grade string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘;
alter table studentX add partition (grade=‘excellent‘) location ‘/testM/excellent/‘;
alter table studentX add partition (grade=‘good‘) location ‘/testM/good/‘;
alter table studentX add partition (grade=‘moderate‘) location ‘/testM/moderate/‘;
#加载数据
load data inpath "/testtry/studentsm.txt" into table studentX partition (grade=‘excellent‘);
load data inpath "/testtry/students.txt" into table studentX partition (grade=‘good‘);
show partitions studentX;
select * from studentX where grade=‘excellent‘;
表删除操作:drop table students;
创建一个名为”test“的table
create table students (name string,age int,city string,class string) row format delimited fields terminated by ‘,‘;
load data local inpath "/bin/students.txt" into table students;
###
练习:创建外部表,指定数据存放位置
create EXTERNAL table IF NOT EXISTS studentX (name string,age int,city string,class string) partitioned by (class string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘;
alter table test add partition (class=‘one‘) location ‘/testmore/one‘;
对表进行查询
Select * from students;
分区表操作
hive>create table students (name string,age int,city string,class string) partitioned by (class string) row format delimited fields terminated by ‘,‘;
hive>load data local inpath "students.txt" into table students partition (class=‘one‘);
hive>show partitions students;
hive>select * from students where grade=‘two‘;
查询操作
group by、 order by、 join 、 distribute by、 sort by、 clusrer by、 union all
hive常见操作
Hbase 的模块:
原子性(是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何contextswitch(切换到领一个线程)),一致性,隔离性,持久性
Region- Region用于存放表中的行数据
Region Server
Master
Zookeeper
HDFS
列式存储格式 Parquet
Parquet 是面向分析型业务的列式存储格式,由 Twitter 和 Cloudera 合作开发, 2015 年 5 月从 Apache 的孵化器里毕业成为 Apache 顶级项目,最新的版本是 1.8.0 。
列式存储和行式存储相比的优势 :
可以跳过不符合条件的数据,只读取需要的数据,降低 IO 数据量。
压缩编码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(例如 Run Length Encoding 和 DeltaEncoding )进一步节约存储空间。
只读取需要的列,支持向量运算,能够获取更好的扫描性能。
Hive操作
Hive
其他知识点
MLlib是spark的可以扩展的机器学习库,由以下部分组成:通用的学习算法和工具类,包括分类,回归,聚类,协同过滤,降维。
数据分析常见模式:
1、Iterative Algorithms,
2、Relational Queries,
3、MapReduce,
4、Stream Processing
Scala的好处:
1、面向对象和函数式编程理念加入到静态类型语言中的混合体
2、Scala的兼容性—-能够与Java库无缝的交互
3、Scala的简洁性—-高效,更不容易犯错
4、Scala的高级抽象
5、Scala是静态类型—-类型推断
6、Scala是可扩展的语言
ElasticSearch 基础代码:
基础问答题
Q:你理解的Hive和传统数据库有什么不同?各有什么试用场景。
A:1、数据存储位置。Hive是建立在Hadoop之上的,所有的Hive的数据都是存储在HDFS中的。而数据库则可以将数据保存在块设备或本地文件系统中。
2、数据格式。Hive中没有定义专门的数据格式,由用户指定,需要指定三个属性:列分隔符,行分隔符,以及读取文件数据的方法。数据库中,存储引擎定义了自己的数据格式。所有数据都会按照一定的组织存储。
3、数据更新。Hive的内容是读多写少的,因此,不支持对数据的改写和删除,数据都在加载的时候中确定好的。数据库中的数据通常是需要经常进行修改。
4、执行延迟。Hive在查询数据的时候,需要扫描整个表(或分区),因此延迟较高,只有在处理大数据是才有优势。数据库在处理小数据是执行延迟较低。
5、索引。Hive没有,数据库有
6、执行。Hive是MapReduce,数据库是Executor
7、可扩展性。Hive高,数据库低
8、数据规模。Hive大,数据库小
Q:Hive的实用场景
A:1、Data Ingestion (数据摄取)
2、Data Discovery(数据发现)
3、Data analytics(数据分析)
4、Data Visualization & Collaboration(数据可视化和协同开发)
Q:大数据分析与挖掘方法论被称为CRISP-DM方法是以数据为中心迭代循环进行的六步活动
A:它们分别是:商业理解、数据理解、数据准备、建立模型_、模型评估、结果部署_。
Q:数据分析挖掘方法大致包含 ( ):
A:1.分类 Classification
2.估计Estimation
3.预测Prediction
4. 关联规则Association Rules
5. 聚类Cluster
6. 描述与可视化Description and Visualization
Q:在数据分析与挖掘中对数据的访问性要求包括
交互性访问、批处理访问_、迭代计算、数据查询,HADOOP仅仅支持了其中批处理访问,而Spark则支持所有4种方式。
Q:Spark作为计算框架的优势是什么?
A:1、Spark的中间数据放到内存中,对于迭代运算效率更高
2、Spark比Hadoop更通用
3、Spark提供了统一的编程接口
4、容错性– 在分布式数据集计算时通过checkpoint来实现容错
5、可用性– Spark通过提供丰富的Scala, Java,Python API及交互式Shell来提高可用性
标签:聚类 for distinct sele line soc hql 开发接口 毕业
原文地址:https://www.cnblogs.com/1880su/p/10838502.html