spark jdbc分支源码下载地址
https://github.com/apache/spark/tree/branch-1.0-jdbc
编译spark jdbc
./make-distribution.sh --hadoop 2.3.0-cdh5.0.0 --with-yarn --with-hive --tgz
环境搭建
参照spark环境搭建;
在$SPARK_HOME/conf下添加hive-site.xml的配置文件(指定元数据存放的mysql信息);
拷贝mysql驱动包到$SPARK_HOME/lib下,并在spark-env.sh文件中指定mysql驱动包路径到SPARK_CLASSPATH中;
启动
启动thriftserver: $SPARK_HOME/sbin/start-thriftserver.sh &
启动beeline: $SPARK_HOME/bin/beeline -u jdbc:hive2://hadoop000:10000 -n spark -p hadoop
-n指定thriftserver的用户名,-p指定thriftserver的密码
测试
在benline启动的命令行中进行测试,测试语句如同hive或者shark
测试发现的问题
1、UDF暂时无法采用add jar的方式添加:add jar /home/spark/lib/hiveudf.jar 这种方式暂时spark jdbc并不支持;
解决办法:先将udf的jar包路径配置到SPARK_CLASSPATH下;
待beeline启动后通过create temporary function is_msisdn as 'com.aisainfo.ocdc.hive.udf.UDFIsMsisdn';创建udf函数并使用
2、加载HDFS数据到表中,暂时不支持overwrite;
3、不支持开窗函数;