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