⑴ 如何使用Spark sql 的JDBC server
首先确保SQLSERVER服务正在运行,并可以允许远程访问连接
然后按如下步骤进行连接
1.安装JDBC驱动
1)下载JDBC驱动
2)执行sqljdbc_4.0.2206.100_chs.exe解压驱动文件
3)拷贝以下目录中的sqljdbc_auth.dll到Windows的System32目录。对x64的机子,x64的dll拷到C:\Windows\System32,x86的dll拷到C:\Windows\SysWOW64目录。
Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\auth\
2.在Java程序中连接SQL Server
classpath中加上安装好的SQL Server jdbc jar包
Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\sqljdbc4.jar
连接SQL Server的JDBC代码
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:54364;databaseName=master;IntegratedSecurity=True";
Connection con = DriverManager.getConnection(url);
在SQL Server Browser服务开启的情况下也可以通过服务名连接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=master;IntegratedSecurity=True";
Connection con = DriverManager.getConnection(url);
3.身份验证模式
SQL Server默认使用Windows身份验证模式,这也是官方推荐的模式,安全性更高。上面的连接例子就是采用的Windows认证。如果要使用混合认证模式,需要下载SQL Server Management Studio,并通过SQL Server Management Studio修改认证模式为混合认证模式。
⑵ hue怎么直接操作spark sql
可以用notebook,需要安装一个livy server作为spark sql server,在notebook上支持hive,spark,R等
在这上面使用spark的话,跟后台通过spark调命令行差不多
可以去其官网看一下例子。
⑶ AWS Glue中使用Spark SQL
AWS Glue 是一项完全托管的提取、转换和加载 (ETL) 服务,让客户能够轻松准备和加载数据进行分析。您只需在 AWS 管理控制台中单击几次,即可创建并运行 ETL 作业。您只需将 AWS Glue 指向存储在 AWS 上的数据,AWS Glue 便会发现您的数据,并将关联的元数据(例如表定义和架构)存储到 AWS Glue 数据目录中。存入目录后,您的数据可立即供 ETL 搜索、查询和使用。
Glue提供了DynamicFrame来操作数据,但如果用户习惯用Spark SQL来做ETL,那是否可行呢? 本文就做了一个尝试:
首先我们创建一个基本的Glue Job,选择Spark,这里要注意在Job parameters里面加上
--enable-glue-datacatalog = true
这是为了在Spark SQL中使用Glue的元数据。
之后其他步骤都随意选择,进入脚本编辑环境,将脚本替换成如下:
这里做了一个简单的insert overwrite操作,从表testdata1中选择数据到表table_6。
尝试运行Job,等待7-8分钟后就可以看到任务完成了。此时去检查table_6的数据,已经有了。
⑷ sparksql的程序入口是什么
SparkSession。SparkSQL介绍说明,sparksql的程序入口是SparkSession。SparkSQL作为ApacheSpark中的一个模块,将关系处理与SparkAPI集成在一起。它是专为涉及大规模数据集的只读联机分析处理(OLAP)而设计的。
⑸ Spark SQL 到底怎么搭建起来
Spark on yarn已搭建好,开始使用SparkSql,做如下工作
1、将Hive-site.xml 至$SPARK_HOME/conf目录,注意配置hive.metastore.uris、hive.metastore.client.socket.timeout
2、复制MySQL-connector-Java.jar 到$SPARK_HOME/lib目录
3、配置spark-env.sh
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/lib/spark/lib/mysql-connector-java.jar:/usr/lib/hive/lib/*
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/lib/spark/lib/mysql-connector-java.jar:/usr/lib/hive/lib/*
4、开始使用
./bin/spark-sql --master yarn --num-executors 30 --executor-cores 4 --executor-memory 8g
⑹ 如何使用Spark SQL 的JDBC server
Spark SQL主要的推动者是Databricks。提到Spark SQL不得不提的就是Shark。Shark可以理解为Spark社区这边搞的一个”Hive on Spark”,把Hive的物理执行计划使用Spark计算引擎去执行。这里面会有一些问题,Hive社区那边没有把物理执行计划到执行引擎这个步骤抽象出公共API,所以Spark社区这边要自己维护一个Hive的分支,而且Hive的设计和发展不太会考虑到如何优化Spark的Job。但是前面提到的Hive on Spark却是和Hive一起发布的,是由Hive社区控制的。所以后来Spark社区就停止了Shark的开发转向Spark SQL(“坑了”一部分当时信任Shark的人)。Spark SQL是把SQL解析成RDD的transformation和action,而且通过catalyst可以自由、灵活的选择最优执行方案。对数据库有深入研究的人就会知道,SQL执行计划的优化是一个非常重要的环节,Spark SQL在这方面的优势非常明显,提供了一个非常灵活、可扩展的架构。但是Spark SQL是基于内存的,元数据放在内存里面,不适合作为数据仓库的一部分来使用。所以有了Spark SQL的HiveContext,就是兼容Hive的Spark SQL。它支持HiveQL, Hive Metastore, Hive SerDes and Hive UDFs以及JDBC driver。这样看起来很完美,但是实际上也有一些缺点:Spark SQL依赖于Hive的一个snapshot,所以它总是比Hive的发布晚一个版本,很多Hive新的feature和bug fix它就无法包括。而且目前看Spark社区在Spark的thriftserver方面的投入不是很大,所以感觉它不是特别想朝着这个方向发展。还有一个重要的缺点就是Spark SQL目前还不能通过分析SQL来预测这个查询需要多少资源从而申请对应的资源,所以在共享集群上无法高效地分配资源和调度任务。