Spark-sql结合hive使用详情

1、在服务器(虚拟机)spark-shell连接hive

1.1 将hive-site.xml拷贝到spark/conf里

1
cp /opt/apache-hive-2.3.2-bin/conf/hive-site.xml /opt/spark-2.2.1-bin-hadoop2.7/conf/

1.2 将mysql驱动拷贝到spark/jar里

1
cp /opt/apache-hive-2.3.2-bin/bin/mysql-connector-java-5.1.46-bin.jar /opt/spark-2.2.1-bin-hadoop2.7/jars/

1.3 启动spark-shell,输入代码测试

1
2
3
4
spark-shell
import org.apache.spark.sql.hive.HiveContext
val hiveContext = new HiveContext(sc)
hiveContext.sql("select * from test").show()

1.4 异常及解决

在执行hiveContext.sql(“select * from test”).show() 报了一个异常:

1
The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxr-xr-x;

解决办法:

1.4.1 更改HDFS目录/TMP/HIVE的权限:

1
hadoop fs -chmod 777 /tmp/hive

1.4.2 同时删HDFS与本地的目录/TMP/HIVE:

1
2
hadoop fs -rm -r /tmp/hive 
rm -rf /tmp/hive

这次错误采用的是第二种解决办法,有的情况下用第一种方法,比如一次在启动hive时候报这种错误~。
错误截图:

参考:http://www.cnblogs.com/czm1032851561/p/5751722.html

猜你喜欢

转载自blog.csdn.net/shujuelin/article/details/84560889