hive抛出:wstxparsingexception:非法字符实体:扩展字符(代码0x8)

dwthyt8l  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(404)

我按照本教程安装了hadoop和hive。教程已经过时了,所以我使用了当前的版本。启动hive时,出现以下错误:
配置单元slf4j:实际绑定的类型为[org.apache.logging.slf4j.log4jloggerfactory]线程“main”java.lang.runtimeexception:com.ctc.wstx.exc.wstxparsingexception:非法字符实体:扩展字符(代码0x8 at[row,col,system id]:[3210,96,"file:.../software/apache-hive-3.1.0-bin/conf/hive-site.xml“]位于org.apache.hadoop.conf.configuration.loadresource(配置。java:3003)在org.apache.hadoop.conf.configuration.loadresources(配置。java:2931)在org.apache.hadoop.conf.configuration.getprops(配置。java:2806)在org.apache.hadoop.conf.configuration.get(配置。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(本机方法)sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl。java:62)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:498)在org.apache.hadoop.util.runjar.run(runjar。java:318)在org.apache.hadoop.util.runjar.main(runjar。java:232)
我查看了指定的文件,发现以下条目:

<description>
  Ensures commands with OVERWRITE (such as INSERT OVERWRITE) acquire Exclusive locks for&#8;transactional tables.  This ensures that inserts (w/o overwrite) running concurrently
  are not hidden by the INSERT OVERWRITE.
</description>

我运行的是ubuntu16.04,hive3.1.0,derby10.8.1.2,hadoop3.1.1,java:openjdk版本“1.8.0\u181”。我在文件中添加了一些配置行,如教程中所述,尽管我根本没有触及这些行。我必须下载不同版本的hive吗?

ssm49v7z

ssm49v7z1#

取消3210,96行和列的特殊特许,只需重新运行配置单元[3210,96,“文件:/usr/local/hive/conf/hive site.xml”]

inkz8wg9

inkz8wg92#

你家里有这样的东西吗 hive-site.xml 确保带有overwrite(例如insert overwrite)的命令为事务表获取独占锁。这确保了并发运行的插入(不覆盖)不会被插入覆盖隐藏。
它抛出了这个错误,因为for和transactional两个词之间有一个特殊字符()。要么删除该字符,要么复制并粘贴(替换)介于两者之间的字符 <description> 以及 </description> .

<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>

相关问题