jdbc调用sparksql on yarn
spark sql访问hive表
1.将hive-site.xml拷贝到spark目录下conf文件夹
2.(非必需)将mysql的jar包引入到spark的classpath,方式有如下两种:
方式1:需要在$SPARK_HOME/conf/spark-env.sh中的SPARK_CLASSPATH添加jdbc驱动的jar包
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar
方式2:在spark-sql命令中指定driver-class-path,如
local模式
spark-sql --driver-class-path /usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar
集群模式:
spark-sql --master yarn --driver-class-path /usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar
开启HiverServer2
默认模式为yarn-client,HiverServer作为一个yarn的应用运行,如图:

停止thriftserver
sbin/stop-thriftserver.sh
beeline客户端访问thrift server
通过-n指定sql以那个用户执行,下面两个ip是hadoop-master的内外网地址
beeline -u jdbc:hive2://10.9.2.100:10000 -n hive --hiveconf mapreduce.job.queuename=mxbs
beeline -u jdbc:hive2://122.23.368.32:10000 -n hive --hiveconf mapreduce.job.queuename=mxbs

java样例程序
import java.sql.*;
import java.util.HashSet;
import java.util.Set;
public class SimpleDemo1 {
private final static Set<String> HIVE_CONFIGS = initConfig();
/**
* hive conf设置
*
* @return
*/
private static Set<String> initConfig() {
Set<String> configs = new HashSet<String>();
configs.add("set mapreduce.job.queuename=queue1");
configs.add("set hive.cli.print.header=false");
return configs;
}
/**
* 临时去掉所有错误处理和资源关闭
* @param args
* @throws ClassNotFoundException
* @throws SQLException
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String jdbcdriver = "org.apache.hive.jdbc.HiveDriver";
String jdbcurl = "jdbc:hive2://127.0.0.1:10000";
String username = "user001";
String password = "";
Connection conn = null;
Statement statement = null;
Class.forName(jdbcdriver);
DriverManager.setLoginTimeout(20);
conn = DriverManager.getConnection(jdbcurl, username, password);
statement = conn.createStatement();
for (String config : HIVE_CONFIGS) {
statement.execute(config);
}
String sql = "select * from db1.test limit 10";
print(statement.executeQuery(sql));
}
}
maven引用:
<hadoop.version>2.6.0-cdh5.13.0</hadoop.version>
<hive-jdbc.version>1.1.0</hive-jdbc.version>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>${hive-jdbc.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
jdbc调用sparksql on yarn的更多相关文章
- jdbc调用sparksql
将hive-site.xml拷贝到spark目录下conf文件夹 local模式 spark-sql --driver-class-path /usr/local/hive-1.2.1/lib/mys ...
- Java数据库连接——JDBC调用存储过程,事务管理和高级应用
一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后 ...
- 使用 JDBC 调用函数 & 存储过程
/** * 如何使用 JDBC 调用存储在数据库中的函数或存储过程 */ @Test public void testCallableStatment() { Connection connectio ...
- shell脚本调用spark-sql
为了更方便的查询并产生报表, 需要使用shell脚本调用spark-sql spark/bin/spark-sql --master spark://host:7077 -f ${SQL_FILE} ...
- jdbc调用存储过程的方法
----------------------------jdbc调用存储过程的方法---------------------------------------------------private ...
- 使用JDBC调用数据库的存储过程
本篇讲述如何使用JDBC来调用MySQL数据库中的存储过程.建议在学习如何使用JDBC调用存储过程前,请先了解如何在数据库中使用存储过程. 存储过程是指在数据库系统中,一组为了完成特定功能的SQL语句 ...
- JDBC调用存储过程
一. JDBC调用存储过程 (1)使用存储过程SQL编写的程序代码,等一段语句和控制流语句.在创建时被编译成机器代码和存储在数据库中的client转让. 存储过程具有以下优势: 1.所生成的机器代码被 ...
- Java数据库连接--JDBC调用存储过程,事务管理和高级应用
相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...
- JDBC调用存储过程的例子
下面是我学到了Oracle存储过程,在这里跟大家简单的分享一下利用JDBC调用存储过程的例子: 废话就不啰嗦,现在就直接上机代码. 首先我利用的是Oracle中默认的 scott 数据库里的 emp员 ...
随机推荐
- New Concept English three (23)
31w 45 People become quite illogical when they try to decide what can be eaten and what cannot be ea ...
- H265 Profile & Level & Tier 介绍
H265/HEVC Profile Level Tier 档次.水平.等级 为了提供不同应用之间的兼容互通,HEVC/H265 定义了不同的编码 Profile 档次.Level 水平.Tier 等级 ...
- ffmpeg新老接口对比
http://blog.csdn.net/leixiaohua1020/article/details/41013567
- (转)JAVA正则表达式语法大全
[正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...
- (转)MapReduce Design Patterns(chapter 2 (part 3))(四)
Inverted Index Summarizations Pattern Description 反向索引模式在MapReduce分析中经常作为一个例子.我们将会讨论我们要创建的term跟标识符之间 ...
- IE只是开始!
Study is boring,but devotion make it is easy!
- 理解Scala中的Extractor
引言 最近抱着<Programming in Scala>(英文第二版)在死啃Scala.在阅读第26章Extractor时,偶然在Stack Overflow上搜到一个帖子<Sca ...
- 如何将局域网中的 windows 硬盘挂载到 linux 系统中
1.共享windows上的E盘 2.linux上执行 mount //192.168.3.181/e /tmp/test -o username=dell,,password=abcdef 3.保证两 ...
- 框架重构:测试中的DateTime.Now
存在的问题 DateTime.Now是C#语言中获取计算机的当前时间的代码: 但是,在对使用了DateTime.Now的方法进行测试时,由于计算机时间的实时性,期望值一直在变化.如:计算年龄. pub ...
- JSON简介[转]
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...