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

新闻网大数据实时分析可视化系统项目——18、Spark SQL快速离线数据分析的更多相关文章

  1. 新闻网大数据实时分析可视化系统项目——2、linux环境准备与设置

    1.Linux系统常规设置 1)设置ip地址 使用界面修改ip比较方便,如果Linux没有安装操作界面,需要使用命令:vi /etc/sysconfig/network-scripts/ifcfg-e ...

  2. 新闻网大数据实时分析可视化系统项目——19、Spark Streaming实时数据分析

    1.Spark Streaming功能介绍 1)定义 Spark Streaming is an extension of the core Spark API that enables scalab ...

  3. 新闻网大数据实时分析可视化系统项目——14、Spark2.X环境准备、编译部署及运行

    1.Spark概述 Spark 是一个用来实现快速而通用的集群计算的平台. 在速度方面, Spark 扩展了广泛使用的 MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理 ...

  4. 新闻网大数据实时分析可视化系统项目——21、大数据Web可视化分析系统开发

    1.基于业务需求的WEB系统设计 2.下载Tomcat并创建Web工程并配置相关服务 下载tomcat,解压并启动tomcat服务. 1)新建web app项目 创建好之后的效果 2)对tomcat进 ...

  5. 新闻网大数据实时分析可视化系统项目——15、基于IDEA环境下的Spark2.X程序开发

    1.Windows开发环境配置与安装 下载IDEA并安装,可以百度一下免费文档. 2.IDEA Maven工程创建与配置 1)配置maven 2)新建Project项目 3)选择maven骨架 4)创 ...

  6. 新闻网大数据实时分析可视化系统项目——13、Cloudera HUE大数据可视化分析

    1.Hue 概述及版本下载 1)概述 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python ...

  7. 新闻网大数据实时分析可视化系统项目——8、Flume数据采集准备

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并 ...

  8. 新闻网大数据实时分析可视化系统项目——7、Kafka分布式集群部署

    Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...

  9. 新闻网大数据实时分析可视化系统项目——4、Zookeeper分布式集群部署

    ZooKeeper 是一个针对大型分布式系统的可靠协调系统:它提供的功能包括:配置维护.名字服务.分布式同步.组服务等: 它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效.功能稳定的 ...

随机推荐

  1. 安装oracle11g时出现:在注册表中没有找到指定的主目录名

    我碰到这个问题,不过我没去管它.直接安装了,后来数据库实例,什么的都能安装,目前没有发现什么问题. 造成这个的原因:是卸载oracle时注册表没有彻底删除! 如果后面出现问题,再记录.

  2. 读书笔记 - The Hitchhiker's Guide to Python

    网址 http://docs.python-guide.org/en/latest/ Reuqests库的作者写的经验 1. 项目需要一个好的结构 https://www.kennethreitz.o ...

  3. 五 Action访问方法,method配置,通配符(常用),动态

    1 通过method配置(有点low) 建立前端JSP:demo4.jsp <%@ page language="java" contentType="text/h ...

  4. C语言程序编译

    原来GCC的含义是GNU C Compiler,当初知识编译C语言,而现在GCC不知编译C语言,除此之外它还支持编译Ada.C++.Java.Object C.Pascal.COBOL.等等许多语言, ...

  5. python中sys和os的区别

    <os和sys的官方解释> ➤os os: This module provides a portable way of using operating system dependent ...

  6. Pyhton语言的优缺点

    python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路. 龟叔给Python的定位是“优雅”.“明确”.“简单”,所以Python程序看上去总是简单易懂,初学者学Py ...

  7. 「CH6901」骑士放置

    「CH6901」骑士放置 传送门 将棋盘黑白染色,发现"日"字的两个顶点刚好一黑一白,构成一张二分图. 那么我们将黑点向源点连边,白点向汇点连边,不能同时选的一对黑.白点连边. 当 ...

  8. Centos7 更新配置为阿里源步骤

    一.yum更换配置源过程 1.备份原有的.repo源文件 首先需要将之前的源进行备份(一般重要的配置文件都需要有备份的意识) # 进入源配置目录 cd /etc/yum.repos.d # 创建备份文 ...

  9. Python 基础之面向对象初识与类的封装

    一.面向对象类的初识 1.类的定义 #三种方式:#1.class MyClass:    pass #2.推荐class MyClass():    pass #3.class MyClass(obj ...

  10. kubernetes 使用flannel网络模式 错误分析

    今天按照网上和书上的要求,将目前的kubernetes网络换成flannel.其实配置起来还是很简单的,但是一旦出现了问题,将很难解决. 配置方法我这边不给出了.因为网上这样的教程一大把,在说下去也无 ...