Hive throws:WstxParsingException:非法字符实体:扩展字符(代码0x8)

Sör*_*ren 5 hadoop hive

我按照教程安装了hadoop和hive .该教程已过时,因此我使用了当前版本.当我启动配置单元时,我收到以下错误:

hive SLF4J:实际绑定的类型为[org.apache.logging.slf4j.Log4jLoggerFactory]线程"main"中的异常java.lang.RuntimeException:com.ctc.wstx.exc.WstxParsingException:非法字符实体:扩展字符(代码0x8)在[row,col,system-id]:org.apache.hadoop的[3210,96,"file:.../software/apache-hive-3.1.0-bin/conf/hive-site.xml"]位于org.apache.hadoop.conf.confo.conf.:::::: org.apache.hadoop.conf.Configuration.getProps上的org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2931)中的.conf.Configuration.loadResource(Configuration.java:3003),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的org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5150).(HiveConf.java) :5093)在org.apache.hadoop.hive上的org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97).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(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at 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)

我看了一下指定的文件,发现了这个条目:

<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>
Run Code Online (Sandbox Code Playgroud)

我正在运行Ubuntu 16.04,hive 3.1.0,derby 10.8.1.2,hadoop 3.1.1,Java:openjdk version"1.8.0_181".我在教程中添加了一些行文件以进行配置,但我根本没有触及这一行.我是否必须下载不同版本的配置单元?

kar*_*917 12

你有类似的东西 hive-site.xml

确保使用OVERWRITE(例如INSERT OVERWRITE)的命令获取?事务表的Exclusive锁.这可确保INSERT OVERWRITE不会隐藏并发运行的插入(无覆盖).

它抛出了这个错误,因为在fortransactional之间有一个特殊的字符().要么删除字符或复制和粘贴(替换),这是在两者之间<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>
Run Code Online (Sandbox Code Playgroud)

  • 使用 Sublime 文本编辑器查看时,该字符应如下所示:`fortransactional`。确保将其更改为`for transactional`。 (2认同)