我对Hive还比较陌生。我在一个流浪的vm上安装了hive2.3.2,但在运行hive时遇到了问题。
我安装如下:
wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/hive/hive-2.3.2/apache-hive-2.3.2-bin.tar.gz
tar -xzf apache-hive-2.3.2-bin.tar.gz
sudo mv apache-hive-2.3.2-bin /usr/local/hive
然后,我在bashrc中添加了以下内容:
export HIVE_HOME=/usr/local/hive
export HIVE_CONF_DIR=/usr/local/hive/conf
export PATH=$HIVE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:/usr/local/hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.
然后我在hive-config.sh中添加了以下内容
export HADOOP_HOME=/usr/local/hadoop
并运行以下命令:
sudo $HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp
sudo $HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
sudo $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
sudo $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
sudo $HIVE_HOME/bin/schematool -dbType derby -initSchema
之后,当我运行hive命令时,hive命令行会如预期的那样出现。但是,当我尝试任何命令显示为show tables时;我得到以下错误:
FAILED: SemanticException org.apache.hadoop.hive.qlmetadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
我几天前收到这个错误,并设法修复了它。但是昨天没有任何改变,一切都停止了。我最初通过执行以下操作来修复它:
首先我检查了conf文件夹,发现里面只有模板文件,所以我运行了以下命令:
sudo cp hive-default.xml.template hive-site.xml
sudo cp hive-env.sh.template hive-env.sh
我编辑了hive-env.sh文件以包含以下内容:
export HADOOP_HEAPSIZE=1024
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/usr/local/hadoop
# hive
export HIVE_HOME=/usr/local/hive
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=$HIVE_HOME/conf
然后通过运行以下命令确保我可以访问:
sudo chmod a+rwx--递归的
最初,当我输入show tables时,它就起作用了;它跑了。但是昨天它停止了工作,配置单元命令行将不再出现。我得到以下错误信息:
Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-2.3.2.jar!/hive-log4j2.properties Async: true
Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
at org.apache.hadoop.fs.Path.initialize(Path.java:254)
at org.apache.hadoop.fs.Path.<init>(Path.java:212)
at org.apache.hadoop.fs.Path.ql.session.SessionState.createSessionDirs(SessionState.java:659)
at org.apache.hadoop.fs.Path.ql.session.SessionState.start(SessionState.java:582)
at org.apache.hadoop.fs.Path.ql.session.SessionState.beginStart(SessionState.java:549)
at org.apache.hadoop.fs.Path.cli.CliDriver.run(CliDriver.java.750)
at org.apache.hadoop.fs.Path.cli.CliDriver.main(CliDriver:java.686)
at sun.reflect.NativeMethodAccessorImpl.invoked(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoked(NativeMethodAccessorimpl.java:62)
at sun.reflect.DelegatingMethodAcessorImpl.invoke(DelegatingMethodAccessorimpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.Runjar.run(Runjar.java:239)
at org.apache.hadoop.util.Runjar.main(Runjar.java:153)
Caused by: java.netURISyntaxException: Relative path in absolute URI: $(system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
at java.net.URI.checkPath(URI.java:1823)
at java.net.URI.<init>(URI.java:745)
at org.apache.hadoop.fs.Path.initialize(Path.java:251)
... 12 more
我一直在网上寻找,可以;找不到任何能解决上述问题的方法。配置单元命令行甚至不再出现,出现上述错误。
在此方面的任何帮助都将不胜感激。提前谢谢。
1条答案
按热度按时间euoag5mw1#
检查下面的配置,我希望,它将工作。
(1) .bashrc文件
(2) Hive环境.sh
export HADOOP_HOME=/usr/local/hadoop export HADOOP_HEAPSIZE=512 export HIVE_CONF_DIR=/usr/local/hive/conf
(3) 配置单元站点.xml(4) 将数据库连接器jar文件复制到
/usr/local/hive/lib
文件夹,即如果您使用的是mysql,则将mysql-connector.jar文件复制到lib文件夹中