嵌入式 ThriftServer in Spark

我们知道在Spark中可以通过start-thriftServer.sh 来启动ThriftServer,之后并可以通过beeline或者JDBC来连接并执行Spark SQL。在一般的Spark应用中,通常并不希望另外起一个服务进程,自然就要问:可以在Spark dirver program里启一个嵌入式的ThriftServer吗?

答案是Yes。要启动ThriftServer,首先需要HiveContext,并且需要在Spark中已经configure好了Hive。通过启动HiveContext,可以利用 DataFrame 的saveAsTable方法将dataframe save 成 Hive table,达到持久化效果。下面是代码示例:

import org.apache.spark.sql.hive.HiveContext
import  org.apache.spark.sql.hive.thriftserver._

// start the Thrift Server with existing sqlContext casting to HiveContext
HiveThriftServer2.startWithContext(sqlContext.asInstanceOf[HiveContext])

// wisdom_lu_country has two columns: id and desc
case class lu_country(id:Short,desc:String)

// load the file as RDD, split each line to id and desc, and convert it to DataFrame
val countryDF = sc.textFile("/FB_100/wisdom_lu_country.csv").map(_.split(‘^‘)).map(p=>lu_country(p(0).toShort,p(1))).toDF()

// save as Hive table
countryDF.write.saveAsTable("wisdom_lu_country")

上述代码在spark-shell中执行成功。

时间: 2024-10-12 12:10:16

嵌入式 ThriftServer in Spark的相关文章

系统学习spark计划_spark老汤

老汤spark由浅入深深到底系列课程计划简介如下: spark 2.x 由浅入深深到底一_正确理解spark(课程已经发布) 本课程不会有太多的技术细节,主要是一些分布式存储和计算的基本理念和思想 目标: 1: 彻底弄懂什么是RDD及其特点 2: 彻底弄懂什么是spark的分布式内存计算,进而理解spark真正解决的问题 3: 彻底弄懂spark是怎样解决各个领域问题,以及在解决各个领域问题的时候的特点 见:http://edu.51cto.com/course/10932.html spark

spark的累加器-SQL-Streaming

RDD持久化 --------------- memory disk off-heap serial replication Memory_ONLY(true , false ,false , true ,1) 广播变量 --------------- driver端切成小块,存放到blockmanager,executor广播变量 的小块,首先从自己的blockmgr中提取,如果提取不到,在从其他 节点(driver + executor)提取,一旦提取到存放在自己的blockmgr. RDD

Spark SQL 报错总结

报错一: 启动spark-shell后查询hive中的表信息,报错 $SPARK_HOME/bin/spark-shell spark.sql("select * from student.student ").show() Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.ap

spark动态资源(executor)分配

spark动态资源调整其实也就是说的executor数目支持动态增减,动态增减是根据spark应用的实际负载情况来决定. 开启动态资源调整需要(on yarn情况下) 1.将spark.dynamicAllocation.enabled设置为true.意思就是启动动态资源功能 2.将spark.shuffle.service.enabled设置为true. 在每个nodeManager上设置外部shuffle服务 2.1 将spark-<version>-yarn-shuffle.jar拷贝到

spark thriftserver运维

spark thriftserver运维: 在root@spark_master_machine机器上 启动 thriftserver======================================================================================================================================================================== /root/cdh/spar

配置并启动spark的thriftserver网关

1.保证spark-sql已经使用mysql作为metadata存储介质 2.启动thrift网关 $SPARK_HOME/sbin/start-thriftserver.sh --driver-class-path /usr/local/spark/spark-1.3.0-bin-hadoop2.3/lib/mysql-connector-java-5.1.6-bin.jar --master spark://hd1:7077 --executor-memory 2g --total-exec

Spark ThriftServer使用的大坑

当用beeline连接default后,通过use xxx切换到其他数据库,再退出, 再次使用beeline -u jdbc:hive2://hadoop000:10000/default -n spark连接到default,此时后台连接的其实还是xxx 测试步骤: 1.beeline -u jdbc:hive2://hadoop000:10000/default -n spark 2.create database demo; 3.use demo; 4.退出beeline 5.beelin

Spark从入门到上手实战

Spark从入门到上手实战 课程学习地址:http://www.xuetuwuyou.com/course/186 课程出自学途无忧网:http://www.xuetuwuyou.com 讲师:轩宇老师 课程简介: Spark属于新起的基于内存处理海量数据的框架,由于其快速被众公司所青睐.Spark 生态栈框架,非常的强大,可以对数据进行批处理.流式处理.SQL 交互式处理及机器学习和Graphx 图像计算.目前绝大数公司都使用,主要在于 Spark SQL 结构化数据的处理,非常的快速,高性能

spark sql 优化心得

本篇文章主要记录最近在使用spark sql 时遇到的问题已经使用心得. 1 spark 2.0.1 中,启动thriftserver 或者是spark-sql时,如果希望spark-sql run on hdfs,那样需要增加参数 "--conf spark.sql.warehouse.dir=hdfs://HOSTNAME:9000/user/hive/warehouse" 例如启动thriftserver: bin/start-thriftserver.sh --master s