1、编程时无法加载hive包,需要在编译好的spark(用spark-shell启动,用spark-sql能够直接访问hive表)的lib目录下,考出assembly包,为其创建一个maven的repository,然后添加到dependency里面。最笨的创建repository的办法就是直接创建相应路径,然后把spark-core里面的.pom修改一下target里面的名称,直接copy。
2、用yarn-cluster提交时,遇到:spark sql java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive这样的问题,这是程序没有将$SPARK_HOME/lib里面的datanucleus包导入,在--jars里面加入即可:$(echo $SPARK_HOME/lib/*.jar| tr ' ' '\n' | grep datanucleus | tr '\n' ',')
3、载入jar包后,发现遇到: spark metastore.RetryingHMSHandler: NoSuchObjectException错误,这是spark没有找到hive-site.xml文件,在--files里面加入即可。