spark sql访问hive 和 mysql(不断更新)
一,准备工作:
1,添加mysql的驱动jar包。
将mysql-connector-java-5.0.6-bin.jar 添加到 SPARK_HOME/lib/目录下.
将$HIVE_HOME/lib下的mysql-connector-java-5.1.27.jar复制到~/software文件夹下 (这一步是为了spark-shell可以使用)
2, 增加SPARK_HOME/conf目录下的文件:
hive的hive-site.xml, hadoop的core-site.xml(为安全起见),hdfs-site.xml(为HDFS配置)。
修改hive-site.xml
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://localhost:9083</value>
</property>
</configuration>
若报错此文件先注释
二,启动hadoop
三,启动spark
./spark-shell --master local[2] --jars /opt/software/mysql-connector-java-5.1.38.jar
四,启动hive
发现错误 FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
-
解决:在hive/conf/hive-site.xml 添加配置
datanucleus.schema.autoCreateAll true删除mysql中的元数据表
再次创建元数据表 注:名字一样保证配置文件不需要修改
初始化元数据 /soft/hive/conf]$ schematool -dbType mysql -initSchema