首页 > 代码库 > spark1.1的部署、sparksql CLI、sparksql-jdbc运用

spark1.1的部署、sparksql CLI、sparksql-jdbc运用

SparkSql实际运用:在spark0.9.x中不支持jdbc操作,spark1.1会加入jdbc支持


版本说明:spark-1.1.0+scala-2.10.4+hive-0.12.0

注意:版本不匹配可能出现各种不同的问题,可能出现不能配合工作,或者运算结果不对的情况!
spark1.1的发布正式版:2014/9/11

1、增加start-thriftserver.sh 服务启动,通过jdbc/odbc直接连接

bin/start-thriftserver.sh 

2、sparksl CLI命令终端

bin/spark-sql --master spark://hadoop0:7077 --executor-memory 1g

 spark.sql.shuffle.partitions default:200

 spark sql> SET spark.sql.shuffle.partitions=10;


部署:
a、spark-site.xml配置

       b、hive-sit.xml文件比较多,参考hive的安装
注意:需要在hive-site中配置zookeeper,让session保持数据同步,以及配置hiveserver2的一些选项!远程mysql作为数据仓库的配置更是毋庸置疑!


c、需要copy hive的hive-site.xml文件到spark的conf目录下),配置HIVE_CONF_DIR
不知道配置其中一个行不行,我嫌麻烦,就都配置上了,两外hive的lib目录下面需要有mysql的jdbc驱动jar包。

1、启动hive的metastore出错hive-0.12版本部署:

报错1:

hive-site.xml 中<value>auth</auth>需要修改为</value>

报错2:

 MetaException(message:Version information not found in metastore. )

 <property>

 <name>hive.metastore.schema.verification</name>

 <value>false</value>

 </property>

2、启动spark1.1集群
start-all.sh 

3、启动sparksql的CLI端
bin/spark-sql --master spark://hadoop0:7077 --executor-memory 1g 

4、start-thriftserver.sh 服务启动 

.使用jdbc远程客户端登陆查询数据:   

.远程成功之后,看启动start-thriftserver.sh 服务的主机发生的响应

.jdbc客户端查询数据

总结:
1、与使用shark时候区别不大,程序完全不用修改,就可以跑在sparksql上面,但是底层的解析变成了spark自己出的,Catalyst解释引擎(SQL)来做!在webui界面可以看 到很大的不同,执行语句! 

2、解析sql的时候感觉没有比HiveQL更快,和使用shark基于HiveQL的时候差别不大,可能是我电脑比较烂的原因,也许有更多好的性能优化方案!正在研究中。

3、写jdbc连接sparksql的程序参考:

https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients

spark1.1的部署、sparksql CLI、sparksql-jdbc运用