MacOS 下 Hadoop 和 Hive 安装配置问题记录
MacOS catalina 由于系统版本较低已经无法编辑共享的 Numbers 表格,但是重装系统所有的开发环境又要重新弄一遍,一天时间都不一定搞得完。纠结了好几个月,前两天还是决定把系统升级到最新的 Monterey 了。
之前的 Hadoop 和 Hive 环境是在 Ubuntu 虚拟机中配置的,这次想着虚拟机也要吃配置,索性直接安装在本机了,途中遇到一些问题,卡了几个小时,记录一下。
问题一:hdfs 启动报错:Cannot set priority for process ….
在配置的日志目录下可以查看启动错误日志,我的日志目录为 $HADOOP_HOME/logs
每次启动报错会生成一个 .log 文件,输出错误日志后看到:cannot change file mode on .../datanode, operation not permitted
可以看到是文件权限的错误,之前配置都是新建一个 Hadoop 用户去配置,这次直接是用 root ,安装路径也是 root 目录下。将 $HADOOP_HOME/data 目录的属主改成当前用户就好了,虽然还是不太愿意这样做。。
$ sudo chown -R user:staff $HADOOP/data
问题二:Hive 启动报错:system:java.io.tmpdir
在 $HIVE_HOME 下新建 tmp 目录,然后编辑 $HIVE_HOME/conf/hive-site.xml 文件,添加以下配置:
<property>
<name>system:java.io.tmpdir</name>
<value>/opt/hive/hive-3.1.2/tmp</value>
</property>
<property>
<name>syetem:user.name</name>
<value>root</value>
</property>
问题三:Hive 启动报错:java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D
在该路径下使用了绝对URI,因为上面配置了 user.name,
编辑 $HIVE_HOME/conf/hive-site.xml
搜索用到 system:user.name 的地方,删掉system,改成 user.name
即:
<property>
<name>hive.exec.local.scratchdir</name>
<value>${system:java.io.tmpdir}/${user.name}</value>
<description>Local scratch space for Hive jobs</description>
</property>
参考: