新闻实时分析系统 SQL快速离线数据分析
1.Spark SQL概述
1)Spark SQL是Spark核心功能的一部分,是在2014年4月份Spark1.0版本时发布的。
2)Spark SQL可以直接运行SQL或者HiveQL语句
3)BI工具通过JDBC连接SparkSQL查询数据
4)Spark SQL支持Python、Scala、Java和R语言
5)Spark SQL不仅仅是SQL
6)Spark SQL远远比SQL要强大
7)Spark SQL处理数据架构
8)Spark SQL简介
Spark SQL is a Spark module for structured data processing
9)Spark SQL的愿景
a)Write less code
对不同的数据类型使用统一的接口来读写。
b)Read less data
提升大数据处理速度最有效的方法就是忽略无关的数据。
(1)使用列式存储(columnar formats),比如Parquet、ORC、RCFile
(2)使用分区裁剪(partitioningpruning),比如按天分区,按小时分区等
(3)利用数据文件中附带的统计信息进行剪枝:例如每段数据都带有最大值、最小值和NULL值等统计信息,当某一数据段肯定不包含查询条件的目标数据时,可以直接跳过这段数据。(例如字段age某段最大值为20,但查询条件是>50岁的人时,显然可以直接跳过这段)
(4)将查询源中的各种信息下推至数据源处,从而充分利用数据源自身的优化能力来完成剪枝、过滤条件下推等优化。
c)Let the optimizer do the hard work
Catalyst优化器对SQL语句进行优化,从而得到更有效的执行方案。即使我们在写SQL的时候没有考虑这些优化的细节,Catalyst也可以帮我们做到不错的优化结果。
2.Spark SQL服务架构
3.Spark SQL 与Hive集成(spark-shell)
1)需要配置的项目
a)将hive的配置文件hive-site.xml拷贝到spark conf目录,同时添加metastore的url配置。
vi hive-site.xml
<property>
<name>hive.metastore.uris</name>
<value>thrift://bigdata-pro01.kfk.com:9083</value>
</property>
b)拷贝hive中的mysql jar包到spark的jar目录下
cp hive-0.13.1-bin/lib/mysql-connector-java-5.1.27-bin.jar spark-2.2-bin/jars/
c)检查spark-env.sh 文件中的配置项
vi spark-env.sh
HADOOP_CONF_DIR=/opt/modules/hadoop-2.5.0/etc/hadoop
2)启动服务
a)检查mysql是否启动
#查看状态
service mysqld status
#启动
service mysqld start
b)启动hive metastore服务
bin/hive --service metastore
c)启动hive
bin/hive
show databases;
create database kfk;
create table if not exists test(userid string,username string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS textfile;
load data local inpath "/opt/datas/kfk.txt" into table test;
本地kfk.txt文件
more /opt/datas/kfk.txt
0001 spark
0002 hive
0003 hbase
0004 hadoop
d)启动spark-shell
bin/spark-shell
spark.sql("select * from kfk.test").show
0001 spark
0002 hive
0003 hbase
0004 hadoop
4.Spark SQL 与Hive集成(spark-sql)
启动spark-sql
bin/spark-sql
#查看数据库
show databases;
default
kfk
#使用数据库
use kfk
#查看表
show tables;
test
#查看表数据
select * from test;
5.Spark SQL之ThriftServer和beeline使用
1)启动ThriftServer
sbin/start-thriftserver.sh
2)启动beeline
bin/beeline
!connect jdbc:hive2://bigdata-pro02.kfk.com:10000
#查看数据库
show databases;
#查看表数据
select * from kfk.test;
6.Spark SQL与MySQL集成
启动spark-shell
sbin/spark-shell
:paste
val jdbcDF = spark
.read
.format("jdbc")
.option("url", "jdbc:mysql://bigdata-pro01.kfk.com:3306/test")
.option("dbtable", "spark1")
.option("user", "root")
.option("password", 123456)
.load()
ctr+d
#打印读取数据
jdbcDF.show
7.Spark SQL与HBase集成
Spark SQL与HBase集成,其核心就是Spark Sql通过hive外部表来获取HBase的表数据。
1)拷贝HBase的包和hive包到spark 的jars目录下
2)启动spark-shell
bin/spark-shell
val df =spark.sql("select count(1) from weblogs").show
新闻实时分析系统 SQL快速离线数据分析的更多相关文章
- 新闻网大数据实时分析可视化系统项目——18、Spark SQL快速离线数据分析
1.Spark SQL概述 1)Spark SQL是Spark核心功能的一部分,是在2014年4月份Spark1.0版本时发布的. 2)Spark SQL可以直接运行SQL或者HiveQL语句 3)B ...
- Spark SQL快速离线数据分析
拷贝hive-site.xml到spark的conf目录下面 打开spark的conf目录下的hive-site.xml文件 加上这段配置(我这里三个节点的spark都这样配置) 把hive中的mys ...
- 新闻实时分析系统 Spark Streaming实时数据分析
1.Spark Streaming功能介绍1)定义Spark Streaming is an extension of the core Spark API that enables scalable ...
- 新闻实时分析系统Hive与HBase集成进行数据分析 Cloudera HUE大数据可视化分析
1.Hue 概述及版本下载 1)概述 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python ...
- 新闻实时分析系统Hive与HBase集成进行数据分析
(一)Hive 概述 (二)Hive在Hadoop生态圈中的位置 (三)Hive 架构设计 (四)Hive 的优点及应用场景 (五)Hive 的下载和安装部署 1.Hive 下载 Apache版本的H ...
- 新闻实时分析系统 大数据Web可视化分析系统开发
1.基于业务需求的WEB系统设计 2.下载Tomcat并创建Web工程并配置相关服务 下载tomcat,解压并启动tomcat服务. 1)新建web app项目 创建好之后的效果 2)对tomcat进 ...
- 新闻实时分析系统 Spark2.X环境准备、编译部署及运行
1.Spark概述 Spark 是一个用来实现快速而通用的集群计算的平台. 在速度方面, Spark 扩展了广泛使用的 MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理 ...
- 新闻实时分析系统-Flume数据采集准备
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并 ...
- 新闻实时分析系统-Kafka分布式集群部署
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...
随机推荐
- angular 子路由跳转出现Navigation triggered outside Angular zone, did you forget to call ‘ngZone.run() 的问题修复
angular 路由功能非常强大,同时angular的路由也非常脆弱,非常容易出现错误. 那么在我们遇到异常时,首先要做的是什么? 第一步:检查代码,对比官方文档,发现代码中不一致的地方进行改正. 第 ...
- 用Python新建用户并产生随机密码
说明:本次代码是在Linux下执行的,windows也可以用,把添加用户密码的命令改成windows的就ok了 用Python新建用户并产生随机密码 import passwd_name as pn ...
- tp5底层源码分析之------tp5.1类的自动加载机制
tp框架作为国内主流框架,目前已经发布了6.0版本,相当于3.*版本是进行了重构,今天我们从源码的角度来研究下tp5.1自动加载的实现 作为单入口框架,从入口文件看起,入口文件在public/下,那么 ...
- Linux sh脚本用spool导出oracle数据库指定表表数据
脚本如下,已验证可用,可配合crontab使用. 1 #!/bin/bash cd /opt/oracle/datafor_kf #redirect environment variables sou ...
- Okhttp 请求流程梳理
最近在看 Okhttp 的源码.不得不说源码设计的很巧妙,从中能学到很多.其实网上关于 Okhttp 的文章已经很多了,自己也看了很多.但是俗话说得好,好记性不如烂笔头,当你动手的时候,你会发现你在看 ...
- WebApi -用户登录后SessionId未更新
描工具检测出.net的程序有会话标识未更新这个漏洞 用户尚未登录时就有session cookie产生.可以尝试在打开页面的时候,让这个cookie过期.等到用户再登陆的时候就会生成一个新的sessi ...
- Mysql用户管理及权限分配
早上到公司,在服务器上Mysql的数据库里新建了个database,然后本地的系统里用原来连接Mysql账号admin连这个数据库.结果报错了,大概是这样子的: Access denied for u ...
- [windows篇] 使用Hexo建立个人博客,自定义域名https加密,搜索引擎google,baidu,360收录
为了更好的阅读体验,欢迎阅读原文.原文链接在此. [windows篇] 使用Hexo建立个人博客,自定义域名https加密,搜索引擎google,baidu,360收录 Part 2: Using G ...
- m98 lsc rp-- 赛
lsc 这次又烧rp了! T1随机化艹spj 本机测试输出字符串长度没有低于1W的,考完发现凉凉 但是lemon又救了我的*命,垃圾lsc又烧rp了!
- C语言程序设计100例之(4):水仙花数
例4 水仙花数 题目描述 一个三位整数(100-999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数. 输入格式 没有输入 输出格式 若 ...