gpt4 book ai didi

apache-spark - root 临时目录 :/tmp/hive on HDFS should be writable. 当前权限为:rwx---------(在 Linux 上)

转载 作者:行者123 更新时间:2023-12-04 15:53:29 26 4
gpt4 key购买 nike

HDFS 上的 root 临时目录:/tmp/hive 应该是可写的。当前权限为:rwx--------

嗨,以下 Spark 代码我在 CDH 5.8 的 Eclipse 中执行并超过 RuntimeExeption

public static void main(String[] args) {
final SparkConf sparkConf = new SparkConf().setMaster("local").setAppName("HiveConnector");
final JavaSparkContext sparkContext = new JavaSparkContext(sparkConf);
SQLContext sqlContext = new HiveContext(sparkContext);

DataFrame df = sqlContext.sql("SELECT * FROM test_hive_table1");
//df.show();
df.count();
}

根据异常(exception) HDFS 上的/tmp/hive 应该是可写的,但是我们在本地模式下执行 spark 作业。这意味着目录 没有可写权限。/tmp/hive 在本地(linux)文件系统中,而不是 HDFS。

所以我执行了以下命令以授予许可。
$ sudo chmod -R 777 /tmp/hive

现在它对我有用。

如果您在集群模式下执行 spark 作业期间遇到同样的问题,您应该在 中配置以下属性hive-site.xml hive conf 文件夹的文件并重新启动配置单元服务器。
  <property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
<description>Scratch space for Hive jobs</description>
</property>
<property>
<name>hive.scratch.dir.permission</name>
<value>777</value>
<description>The permission for the user-specific scratch directories that get created in the root scratch directory </description>
</property>

最佳答案

使用正确的 64 位 winutils并设置权限

winutils.exe chmod -R 777\tmp\hive

 System.setProperty("hadoop.home.dir", "C:\\Users\\Hadoop_home")
lazy val spark: SparkSession = {
FileUtils.deleteDirectory(new File("c:\\tmp\\metastore_db"))
FileUtils.deleteDirectory(new File("c:\\tmp\\spark-warehouse"))
SparkSession.builder().config("spark.sql.warehouse.dir", "C:\\temp\\").master("local").appName("spark session for testing").enableHiveSupport().getOrCreate()
}

关于apache-spark - root 临时目录 :/tmp/hive on HDFS should be writable. 当前权限为:rwx---------(在 Linux 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com