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. mysql命令行查看建表语句

    命令如下: SHOW CREATE TABLE tbl_name 例子: mysql> SHOW CREATE TABLE t\G . row ************************* ...

  2. python get请求

    #!/usr/bin/python #-*- coding:UTF-8 -*-#coding=utf-8 import requests import time import hashlib impo ...

  3. redis使用watch秒杀抢购思路

    1.使用watch,采用乐观锁 2.不使用悲观锁,因为等待时间非常长,响应慢 3.不使用队列,因为并发量会让队列内存瞬间升高 测试代码: import java.util.concurrent.Exe ...

  4. Emergency(山东省第一届ACM程序设计真题+Floyd算法变型)

    题目描述 Kudo’s real name is not Kudo. Her name is Kudryavka Anatolyevna Strugatskia, and Kudo is only h ...

  5. 从Spring-Session源码看Session机制的实现细节

    Re:从零开始的Spring Session(一) Re:从零开始的Spring Session(二) Re:从零开始的Spring Session(三) 去年我曾经写过几篇和 Spring Sess ...

  6. AngularJS学习笔记(三)数据双向绑定

    双向绑定 双向绑定是AngularJS最实用的功能,它节省了大量的代码,使我们专注于数据和视图,不用浪费大量的代码在Dom监听.数据同步上,关于双向更新,可看下图: 下面,我们通过代码来实现.先不要纠 ...

  7. 基于spring boot的定时器

    首先,搭建好一个springboot项目 方法一:通过springboot自带入口来开启定时器. 首先我们都知道,springboot有一个自己的入口,也就是@SpringBootApplicatio ...

  8. XJad反编译工具

    XJad反编译工具 我们写的java文件,编译后就会生成相应的字节码文件,也就是.java文件经过编译以后生成.class文件 现在,假设我们现在存在这样一个问题:就是我们想自己动手验证注释会不会被编 ...

  9. win7游戏窗口设置

    在开始搜索框输入regedit打开注册表,定位到HKEY_LOCAL_MACHINE------SYSTEM------ControlSet001-------Control-------Graphi ...

  10. python内置函数每日一学 -- any()

    any(iterable) 官方文档解释: Return True if any element of the iterable is true. If the iterable is empty, ...