0. 说明

  Spark SQL 的配置基于 Spark 集群搭建  && Hive 的安装&配置


1. 简介

  Spark SQL 是构建在 Spark Core 模块之上的四大模块之一,提供 DataFrame 等丰富 API,可以采用传统的 SQL 语句进行数学计算。运行期间,会通过 Spark 查询优化器翻译产物理执行计划,并行计算后输出结果。底层计算原理仍然采用 RDD 计算实现。


2. Spark 与 Hive 集成

  2.1 在 Spark 配置目录下创建指向 [hive-site.xml ] 文件的同名符号链接

cd /soft/spark/conf
ln -s /soft/hive/conf/hive-site.xml hive-site.xml

  2.2 复制 Hive 元数据库使用的驱动程序到 Spark 的 jars 目录下,比如 MySQL

cd /soft/hive/lib/
cp mysql-connector-java-5.1..jar /soft/spark/jars

  2.3 关闭 Hive 配置文件 [hive-site.xml] 文件中版本检查,否则会报版本不一致异常

[centos@s101 ~]$ cd /soft/hive/conf/
[centos@s101 /soft/hive/conf]$ sudo vi hive-site.xml
  <property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>

3. 在 Spark shell 中访问 Hive

  3.0 开启 ZooKeeper & HDFS & Spark 集群

  略

  3.1 启动 spark-shell,观察输出内容,打印 Hive 配置信息

spark-shell --master spark://s101:7077

  

  若成功则如下图所示

  

  3.2 在 Scala 命令行执行如下命令

# 显示所有数据库
spark.sql("show databases").show() # 使用指定数据库
spark.sql("use mydb").show() # 显示当前数据库中的数据表
spark.sql("show tables").show() # 查询 customers 表数据
spark.sql("select * from customers").show(1000,false) # 构造 RDD
val rdd1= sc.parallelize(Array((1,"tom1",12) ,(2,"tom2",13) ,(2,"tom3",14) )) # 转换 RDD 成DataFrame
val df = rdd1.toDF("id" , "name" , "age") # 通过 DataFrame select API 实现 SQL 中的 select 语句
df.select("id").show() # 注册临时表
df.registerTempTable("_cust") # 通过临时表进行数据操纵
spark.sql("select * from _cust").show(1000 ,false) ;

[Spark SQL_1] Spark SQL 配置的更多相关文章

  1. 大数据技术之_27_电商平台数据分析项目_02_预备知识 + Scala + Spark Core + Spark SQL + Spark Streaming + Java 对象池

    第0章 预备知识0.1 Scala0.1.1 Scala 操作符0.1.2 拉链操作0.2 Spark Core0.2.1 Spark RDD 持久化0.2.2 Spark 共享变量0.3 Spark ...

  2. Hive on Spark和Spark sql on Hive,你能分的清楚么

    摘要:结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序. 本文分享自华为云社区<Hive on Spark和Spark sql o ...

  3. spark集群安装配置

    spark集群安装配置 一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoo ...

  4. Spark学习笔记2(spark所需环境配置

    Spark学习笔记2 配置spark所需环境 1.首先先把本地的maven的压缩包解压到本地文件夹中,安装好本地的maven客户端程序,版本没有什么要求 不需要最新版的maven客户端. 解压完成之后 ...

  5. [Spark][Python][DataFrame][SQL]Spark对DataFrame直接执行SQL处理的例子

    [Spark][Python][DataFrame][SQL]Spark对DataFrame直接执行SQL处理的例子 $cat people.json {"name":" ...

  6. [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子

    [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子$ cat customers.txt 1 Ali us 2 Bsb ca 3 Carls mx $ hive h ...

  7. Spark记录-spark-env.sh配置

    环境变量 含义 SPARK_MASTER_IP master实例绑定的IP地址,例如,绑定到一个公网IP SPARK_MASTER_PORT mater实例绑定的端口(默认7077) SPARK_MA ...

  8. Spark记录-Spark on mesos配置

    1.安装mesos #用centos6的源yum安装 # rpm -Uvh http://repos.mesosphere.io/el/6/noarch/RPMS/mesosphere-el-repo ...

  9. Spark 性能相关参数配置详解-任务调度篇

    随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...

随机推荐

  1. Linux cp 强制覆盖

     Linux下默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供两种Linux下cp 覆盖方法. 1) 取消cp的alias,这 ...

  2. es6学习笔记8--Map数据结构

    Map Map结构的目的和基本用法 JavaScript的对象(Object),本质上是键值对的集合(Hash结构),但是只能用字符串当作键.这给它的使用带来了很大的限制. var data = {} ...

  3. UVa 442 Matrix Chain Multiplication(栈的应用)

    题目链接: https://cn.vjudge.net/problem/UVA-442 /* 问题 输入有括号表示优先级的矩阵链乘式子,计算该式进行的乘法次数之和 解题思路 栈的应用,直接忽视左括号, ...

  4. 并发编程之 Java 三把锁

    前言 今天我们继续学习并发.在之前我们学习了 JMM 的知识,知道了在并发编程中,为了保证线程的安全性,需要保证线程的原子性,可见性,有序性.其中,synchronized 高频出现,因为他既保证了原 ...

  5. CPU简单科普

    CPU简单科普 本文仅限于对小白科普. 误解一:CPU使用率和硬盘使用率一样. 误解二:一台电脑只有一个CPU. 误解三:CPU的核数,就是CPU的数量. 误解三:CPU主频越高越厉害:CPU核数越多 ...

  6. Jquey节点操作

    创建添加节点: 创建jquery对象:$("<a href="http://baidu.com" target="_blank">百度请点 ...

  7. 4.socket(-)之控制台

    一Socket介绍: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API) ...

  8. Another kind of Fibonacci(矩阵)

    Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  9. 解决hash冲突之分离链接法

    解决hash冲突之分离链接法 分离链接法:其做法就是将散列到同一个值的所有元素保存到一个表中. 这样讲可能比较抽象,下面看一个图就会很清楚,图如下 相应的实现可以用分离链接散列表来实现(其实就是一个l ...

  10. 面向对象设计模式_享元模式(Flyweight Pattern)解读

    场景:程序需要不断创建大量相似的细粒度对象,会造成严重的内存负载.我们可以选择享元模式解决该问题. 享元抽象:Flyweight 描述享元的抽象结构.它包含内蕴和外蕴部分(别被术语迷惑,这是一种比较深 ...