Hive报错
主要是因为粗心导致的
报错信息
Exception in thread “main” java.lang.RuntimeException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ‘l’ (code 108) in prolog; expected ‘<’
at [row,col,system-id]: [1,4,“file:/home/export/servers/apache-hive-3.1.2-bin/conf/hive-site.xml”]
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3092)
at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:3041)
at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2914)
at org.apache.hadoop.conf.Configuration.addResourceObject(Configuration.java:1034)
at org.apache.hadoop.conf.Configuration.addResource(Configuration.java:939)
at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5151)
at org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:5099)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:81)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:699)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
at 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)
at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ‘l’ (code 108) in prolog; expected ‘<’
at [row,col,system-id]: [1,4,“file:/home/export/servers/apache-hive-3.1.2-bin/conf/hive-site.xml”]
at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:666)
at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2130)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1179)
at org.apache.hadoop.conf.Configuration
P
a
r
s
e
r
.
p
a
r
s
e
N
e
x
t
(
C
o
n
f
i
g
u
r
a
t
i
o
n
.
j
a
v
a
:
3396
)
a
t
o
r
g
.
a
p
a
c
h
e
.
h
a
d
o
o
p
.
c
o
n
f
.
C
o
n
f
i
g
u
r
a
t
i
o
n
Parser.parseNext(Configuration.java:3396) at org.apache.hadoop.conf.Configuration
Parser.parseNext(Configuration.java:3396)atorg.apache.hadoop.conf.ConfigurationParser.parse(Configuration.java:3182)
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3075)
… 16 more
原因
生成hive-site.xml的过程中使用了hive-default.xml.template导致后续的很多默认设置有问题。
解决办法
直接删掉hive-site.xml,新建hive-site.xml并导如下设置:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>mysql用户名</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql密码</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
</configuration>
上面的代码小心复制,多个空格都不行~