问题描述:
创建表时,没有问题。简单插入数据出现这个报错。
hive报错FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException:
Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create Spark client for Spark session fd011781-71c3-4506-a6f4-3421b03e5b1b)'
FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session fd011781-71c3-4506-a6f4-3421b03e5b1b
解决方案1:
在使用hive开始前,如果mysql是部署在远端且 hive.metastore.local=false
则需要启动hive的metadata服务
我们需要退出Hive,在系统里面启动metadata服务
- hive --service metastore &
- 然后Ctrl+C
- 再hive,进去
注意&号为后台启动,不加就只能挂前台了
这个是其中一个方法。我就是这样解决的。
解决方法2:
spark的/opt/module/spark/conf该目录中有个spark-env.sh.template
文件然后修改文件名为spark-env.sh
在该文件中添加:
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
解决该问题(大概率能解决)。
注意:
这个本来是小问题,不想提,但是还是有些人犯这种简单错误。看看你们配置文件spark或者hive的namenode端口号是不是配置错误。打开web界面看一下你自己的端口号,别填错了。