Hadoop 配置单元抛出:WstxParsingException:非法字符实体:扩展字符(代码0x8)
我按照教程安装了hadoop和hive。教程已经过时了,所以我使用了当前版本。当我启动hive时,出现以下错误: 蜂巢 SLF4J:实际绑定的类型为 [org.apache.logging.slf4j.Log4jLoggerFactory]线程中出现异常 “main”java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException:非法字符实体: 扩展字符(代码0x8位于[行、列、系统id]: [3210,96,“文件:…/software/apache-hive-3.1.0-bin/conf/hive-site.xml”] 在 org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3003) 在 org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2931) 在 org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2806) 位于org.apache.hadoop.conf.Configuration.get(Configuration.java:1460) 位于org.apache.hadoop.hive.conf.HiveConf.getVar(HiveConf.java:4990) 位于org.apache.hadoop.hive.conf.HiveConf.getVar(HiveConf.java:5063) 在 org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5150) 位于org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:5093) 在 org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97) 在 org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:81) 位于org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:699) org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:498) org.apache.hadoop.util.RunJar.run(RunJar.java:318)位于 org.apache.hadoop.util.RunJar.main(RunJar.java:232) 我查看了指定的文件,发现以下条目:Hadoop 配置单元抛出:WstxParsingException:非法字符实体:扩展字符(代码0x8),hadoop,hive,Hadoop,Hive,我按照教程安装了hadoop和hive。教程已经过时了,所以我使用了当前版本。当我启动hive时,出现以下错误: 蜂巢 SLF4J:实际绑定的类型为 [org.apache.logging.slf4j.Log4jLoggerFactory]线程中出现异常 “main”java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException:非法字符实体: 扩展字符(代码0x8位于[行、列、系统id]: [3210,96,“文件:…/sof
<description>
Ensures commands with OVERWRITE (such as INSERT OVERWRITE) acquire Exclusive locks fortransactional tables. This ensures that inserts (w/o overwrite) running concurrently
are not hidden by the INSERT OVERWRITE.
</description>
确保带有覆盖(如INSERT OVERRIDE)的命令为;事务表获取排他锁。这确保INSERT(w/o OVERRIDE)同时运行
不会被“插入覆盖”隐藏。
我运行的是Ubuntu 16.04、hive 3.1.0、derby 10.8.1.2、hadoop 3.1.1、Java:openjdk版本“1.8.0µ”
。我在文件中添加了一些行,以便按照教程中的说明进行配置,但我根本没有接触这些行。我必须下载其他版本的hive吗?您在
hive site.xml中有类似的内容
确保带有覆盖(如INSERT OVERRIDE)的命令为;事务表获取排他锁。这确保INSERT(w/o OVERRIDE)同时运行
不会被“插入覆盖”隐藏。
它抛出了该错误,因为在和事务性的单词之间有一个特殊字符()。请删除该字符或复制并粘贴(替换)介于
和
之间的字符
确保具有覆盖(例如插入覆盖)功能的命令为
事务表。这确保插入(不覆盖)同时运行
不会被“插入覆盖”隐藏。
删除3210,96行和列的特殊特许,然后重新运行配置单元。
[3210,96,“file:/usr/local/hive/conf/hive site.xml”]您在~/.bashrc中有JAVA_HOME吗?另外,您可以尝试从当前目录(SPARK_HOME)中删除文件metastore_db/dbex.lck吗?是的,配置了JAVA_HOME。我的当前目录中没有metastore_db目录。SPARK_HOME?您使用的JAVA版本是什么?openjdk版本“1.8.0_181”您是否可以使用JAVA而不是开放JDK,问题在于这一行使用Sublime文本编辑器查看时,该字符应如下所示:;事务性
。请确保将其更改为事务性。
<description>
Ensures commands with OVERWRITE (such as INSERT OVERWRITE) acquire Exclusive locks for
transactional tables. This ensures that inserts (w/o overwrite) running concurrently
are not hidden by the INSERT OVERWRITE.
</description>