文章目录
spark sql与hive本地调试
将hive-site.xml文件拷贝到resource目录中
pom.xml
org.apache.sparkspark-hive_2.111.6.0
代码
import org.apache.spark.sql.hive.HiveContext import org.apache.spark.{SparkConf, SparkContext} object SparksqlTest { def main(args: Array[String]): Unit = { val sparkconf = new SparkConf().setAppName("Hivesql").setMaster("local[*]") val sc = new SparkContext(sparkconf); val hiveContext = new HiveContext(sc) hiveContext.sql("select * from person1").show() sc.stop() } }
new HiveContext空指针异常
报错 空指针异常,错误点在 new HiveContext()处
java.lang.NoClassDefFoundError - org/apache/spark/sql/hive/HiveContext
解决方法:将hadoop的源码包下载,解压到本地,在环境变量中配置HADOOP_HOME,
并将winutils.exe等一系列文件拷贝到源码中的bin目录中
权限: 异常
/tmp/hive on HDFS should be writable. Current permissions are: rwx–x--x
linux下笔者使用了hadoop命令
hadoop fs -chmod -R 777 /tmp
Windows下进入hadoop源码目录的bin目录下,搜索栏中敲cmd,然后执行
D:\software\hadoop-2.6.5\bin>winutils.exe chmod -R 777 D:/tmp
执行select查询的时候找不到host
java.net.UnknownHostException
将hdfs-site.xml文件拷贝进resource目录下,运行程序还是报错,笔者很生气,关闭idea,重启了下,好了