分布式sparkSQL引擎应用:从远程通过thriftServer连接spark集群处理hive中的数据
来源:互联网 发布:淘宝华元宠物东西真吗 编辑:程序博客网 时间:2024/06/10 21:18
实现原理:
客户端(java程序)与thriftServer连接,thriftServer再代理客户端转换成spark的操作流程,再加载hive的数据到spark的worker节点,并运行Map-Reduce作业。这里只是个小案例,和大家一起来探讨一下原理。
步骤:
分发三个配置文件hdfs-site.xml、core-site.xml、hive-site.xml到所有worker节点 ==>在有关的库下创建hive的数据表 ==>
加载数据到hive表中 ==>
启动hdfs(如果有数据存放在hadoop集群的数据节点) ==>
启动spark集群(建议启动模式:完全分布式)==>
启动thriftserver服务器 ==>
运行java代码。
[centos@h201 sbin]$ netstat -nao | grep 1000
tcp6 0 0 :::10000 :::* LISTEN off (0.00/0/0)
【pom.xml加依赖包:hive-jdbc 2.1.0】
data.txt 内容:
1,tom,12
2,tomas,13
3,tomas Lee,14
4,tony kidkid,15
【/Users/tonykidkid/programjava/SparkDemo/SparkDemo1/src/main/scala_java/ThriftClient.java】示例源码如下——
import java.sql.*;
/**
* 通过此客户端程序访问sparkSQL分布式引擎
*/
public class ThriftClient {
public static void main(String[] args) {
try {
Class.forName( "org.apache.hive.jdbc.HiveDriver" );
Connection conn = DriverManager.getConnection( "jdbc:hive2://h201:10000" );
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery( "SELECT count(1) FROM mydb.tt WHERE age > 13" );
while(rs.next()){
int count = rs.getInt( 1 );
System.out.println( count );
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
【控制台输出结果如下】
2
到web页面查看:
http://172.16.112.201:8080 ==> Running Applications
查看到:
Application ID NameCoresMemory per NodeSubmitted TimeUserStateDuration
app-20170501050836-0000 (kill) Thrift JDBC/ODBC Server31024.0 MB2017/05/01 05:08:36centosRUNNING37 min
点击 ApplicationID ==> 点击 Application Detail UI ==>
从Completed Jobs表格看到Description内容就是java源码里面的SQL语句,
继续点击Description里的链接,进到Details for Job页面 ==>
点击DAG Visualization就能看到各个阶段的任务执行情况。
0 0
- 分布式sparkSQL引擎应用:从远程通过thriftServer连接spark集群处理hive中的数据
- java自定义hive sparksql thriftServer连接池
- SparkSQL读取Hive中的数据
- SparkSQL ThriftServer配置及连接测试
- spark:SparkSQL应用--46
- Spark 连接Hive分布式环境搭建
- 编译spark:[thriftServer.sh属于测试阶段 hive-0.13.1]
- SparkSQL操作Hive表数据
- 大数据:Spark Standalone 集群调度(一)从远程调试开始说application创建
- SparkSQL与Hive on Spark的比较
- SparkSQL与Hive on Spark的比较
- SparkSQL与Hive on Spark的比较
- SparkSQL与Hive on Spark的比较
- SparkSQL与Hive on Spark的比较
- spark从mongodb导入数据到hive
- Spark RDDs(弹性分布式数据集):为内存中的集群计算设计的容错抽象
- Spark RDDs(弹性分布式数据集):为内存中的集群计算设计的容错抽象
- Spark RDDs(弹性分布式数据集):为内存中的集群计算设计的容错抽象
- vs2015番茄小助手可用!
- Python日志输出——logging模块
- C++中ASCII、unicode与Utf8之间的相互转化
- linux下模拟实现sleep以及sleep会出现的问题解决方案
- Integer与int的比较
- 分布式sparkSQL引擎应用:从远程通过thriftServer连接spark集群处理hive中的数据
- Android 浸染式导航栏的实现
- 逻辑回归理论及实践
- 嵌入式平台QR Code二维码生成qrduino
- socket、tcp、udp、http 的认识及区别
- 自定义view之自定义圆环
- 关于HBulider连接svn资源库显示暂挂中或文件不存在等问题
- Zookeeper编程笔记
- javaWEB_Servlet