首页 > 代码库 > 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运用