sparkSQL使用
来源:互联网 发布:成都网络推广 编辑:程序博客网 时间:2024/06/06 14:03
今天直接了解它的使用:
SparkSQL CLI
CLI(Command-Line Interface,命令行界面)是指可在用户提示符下键入可执行指令的界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后予以执行。Spark CLI指的是使用命令界面直接输入SQL命令,然后发送到Spark集群进行执行,在界面中显示运行过程和最终的结果。
Spark1.1相较于Spark1.0最大的差别就在于Spark1.1增加了Spark SQL CLI和ThriftServer,使得Hive用户还有用惯了命令行的RDBMS数据库管理员较容易地上手,真正意义上进入了SQL时代。
在运行Spark SQL CLI中需要使用到Hive Metastore,故需要在Spark中添加其uris。具体方法是在SPARK_HOME/conf目录下创建hive-site.xml文件,然后在该配置文件中,添加hive.metastore.uris属性
首先在$SPARK_HOME/conf中创建一个hive-site.xml文件
<configuration> <property> <name>hive.metastore.uris</name> <value>thrift://hadoop1:9083</value> <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property></configuration>
启动hive的metastore
hive –service metastore &
启动SparkSQL CLI
我们默认hadoop,yarn,spark集群都是启动的
spark-sql –master spark://spark02:7077 –executor-memory 1g
这时就可以使用HQL语句对Hive数据进行查询,另外可以使用COMMAND,如使用set进行设置参数:默认情况下,SparkSQL Shuffle的时候是200个partition,可以使用如下命令修改该参数:
SET spark.sql.shuffle.partitions=20;
就可以像使用hive cli命令行使用sparkSQL:
如:show databases;show tables;user databaseName等等
Spark Thrift Server
hriftServer是一个JDBC/ODBC接口,用户可以通过JDBC/ODBC连接ThriftServer来访问SparkSQL的数据。ThriftServer在启动的时候,会启动了一个SparkSQL的应用程序,而通过JDBC/ODBC连接进来的客户端共同分享这个SparkSQL应用程序的资源,也就是说不同的用户之间可以共享数据;ThriftServer启动时还开启一个侦听器,等待JDBC客户端的连接和提交查询。所以,在配置ThriftServer的时候,至少要配置ThriftServer的主机名和端口,如果要使用Hive数据的话,还要提供Hive Metastore的uris
首相在我们刚刚新建的hive-site.xml中添加:
<property> <name>hive.server2.thrift.min.worker.threads</name> <value>5</value> <description>Minimum number of Thrift worker threads</description> </property> <property> <name>hive.server2.thrift.max.worker.threads</name> <value>500</value> <description>Maximum number of Thrift worker threads</description> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> <description>Port number of HiveServer2 Thrift interface. Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>spark02</value> <description>Bind host on which to run the HiveServer2 Thrift interface.Can be overridden by setting$HIVE_SERVER2_THRIFT_BIND_HOST</description> </property>
重新启动master和hive 的metastore
hive –service metastore &
启动ThriftServer
start-thriftserver.sh –master spark://spark02:7077 –executor-memory 1g
使用客户端连接:
$SPARK_HOME/bin/beeline 回车
输入
!connect jdbc:hive2://spark02:10000 (连接ThriftServer) 回车
因为我的用户名为spark,我就输入spark,没有密码
就可以像使用hive cli命令行使用sparkSQL:
创建一张表:
create table testThrift (name String,age int);
insert into testThrift values(“tom”,20);
insert into testThrift values(“Jim”,30);
如:show databases;show tables;user databaseName等等
在IDEA中JDBC访问
import java.sql.DriverManagerobject SparkSQL_Thrift_test { def main(args:Array[String]): Unit ={ Class.forName("org.apache.hive.jdbc.HiveDriver") val url = "jdbc:hive2://spark02:10000/defalut" val conn = DriverManager.getConnection(url,"spark","") try{ val statement = conn.createStatement() val rs = statement.executeQuery("select name,age from testthrift") println(rs) while(rs.next()){// println("table_name=%s".format(rs.getString(1)))// println("111111)") println("rowid:=%s,year=%s".format(rs.getString("name"),rs.getInt("age"))) } }catch{ case e:Exception => e.printStackTrace() }
- SparkSql 使用
- sparkSQL使用
- SparkSql 函数的使用
- sparksql的基本使用
- sparksql 简单使用
- sparkSQL
- SparkSQL
- SparkSQL
- SparkSQL
- spark1.1.0下使用SparkSQL
- SparkSQL配置和使用初探
- SparkSQL 使用jdbcRDD访问数据库
- sparkSQL中UDF的使用
- DataFrame和SparkSql使用区别
- sparkSQL中UDF的使用
- sparkSQL中udf的使用
- SparkSQL使用的简单例子
- SparkSQL下UDF的使用
- websocket和socket的区别
- 此号不用了
- debug
- properties文件转xml
- 随笔
- sparkSQL使用
- AngularJS的表单的处理
- Oracle用sys_Guid()创建为视图ID,.net跨库保存的值却为system_Byte[]问题解决--将sys_Guid()转换为string
- 归一化
- FPGA电路逻辑的原理图方式设计与验证
- html之闭包函数应用
- LVS+keepalived+nginx反向代理
- hdu2717 Catch That Cow
- ViewPager+Fragment滑动