简体   繁体   中英

Missing Hive Execution Jar: /usr/local/hadoop/hive/lib/hive-exec-*.jar

I have Hadoop 1.0.4 running on a single node cluster set up on my Ubuntu machine.

I did the following steps to download and install the hive release

> svn co http://svn.apache.org/repos/asf/hive/trunk hive    
> cd hive

My hadoop install folder is $HADOOP_HOME/hive and $HADOOP_HOME=/usr/local/hadoop. I set both the environment variables in .bashrc under /home/hduser which is my Hadoop user and the $JAVA_HOME as well.

export HADOOP_HOME=/usr/local/hadoop

export HIVE_HOME=$HADOOP_HOME/hive

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk

I have also added the bin folder of both hadoop and hive in my $PATH variable as follows

export PATH=$PATH:$HADOOP_HOME/bin    
export PATH=$HIVE_HOME/bin:$PATH

But while running hive from CLI, I am getting the below error.

hduser@somnath-laptop:/usr/local/hadoop/hive$ bin/hive    
Missing Hive Execution Jar: /usr/local/hadoop/hive/lib/hive-exec-*.jar

Should I download this jar and add it to the /lib/ or is there some hive-specific environment variables that I need to configure. Any suggestion would be very helpful.

I resolved the problem myself but not sure what exactly happened.

By following the process I mentioned in my original question, I created the $HADOOP_HOME/hive but it was giving me a missing jar error.

So, what I did was: I downloaded hive-0.10.0.tar.gz and extracted it under $HADOOP_HOME. So the newly created folder was $HADOOP_HOME/hive-0.10.0.

I copied the entire lot of jars under $HADOOP_HOME/hive-0.10.0/lib to $HADOOP_HOME/hive/lib and when I executed next,

$HADOOP_HOME/hive> bin/hive

It worked! Please note my $HIVE_HOME=$HADOOP_HOME/hive and $HIVE_HOME/bin is added to path. Hope this helps somebody facing similar problem.

以我为例,在设置PATH变量后,进行一次简单的重新引导很有帮助。

i have the same issue,and i use the command "source ~/.bashrc"

problem resolved!

Try this :

export HIVE_HOME=$HADOOP_HOME/hive/build/dist
export PATH=$HIVE_HOME/bin:$PATH

The tar file apache-hive-0.13.1-src.tar.gz has a missing lib folder You can download hive-0.12.0.tar.gz and move the lib folder to apache-hive-0.13.1-src folder. Now hive should be working.

Just find your hive-exec-*.jar folder and create a symbolic link to it.

in my case, first i go to hive folder using "cd /usr/local/Cellar/hive/1.2.1"

and then run command "ln -s libexec/lib/ lib"

Just want to post what worked for me (in 2017).

Using Spark 2.0.2, I had to change my $HIVE_HOME variable (which in my case, constituted me just removing the variable from my .bash_profile .

Hope this helps someone else.

Here is another post for what worked for me in 2017.

This issue happened to me because of the way I (a beginner) extracted the Hive tar file. I downloaded "hive-2.3.0" from us.apache.org and extracted the file to /usr/local/hive. The jar was expected to be in /usr/local/hive/lib but for some reasons it was in /usr/local/hive**/bin/**lib. In other words, there was an extra "/bin" directory under /hive which contained all of the files that should have been directly under /hive. I fixed this problem by renaming the extra /bin directory to "/bin2," moving all the files from within /bin2 to the main /hive directory, and removing the unnecessary and now empty /bin2 directory. Once the .jar file was in the correct directory, there were no problems running Hive! Here are the commands I used:

    cd /usr/local
    mv hive/bin hive/bin2
    mv hive/bin2/* hive
    rm -r hive/bin2

I did below in Dec 2017 and it worked.

  1. Copied hive in to hadoop_home directory
  2. Did below in cygwin:

     export HIVE_HOME=$HADOOP_HOME/hive export PATH=$HIVE_HOME/bin:$PATH 

The question is about that the hive path, So you can check up all configuration file involving the hive path. Remember that you must confirm that the hadoop had been installed.

1, the environment parameter(/etc/profile or ~/.profile)

export HIVE_HOME=/usr/app/apache-hive-2.3.0-bin
export PATH=$HIVE_HOME/bin:$PATH

2, $HIVE_HOME/conf/hive-env.sh

export JAVA_HOME= ${Your_JAVA_HOME_directory}
export HADOOP_HOME= ${Your_HADOOP_HOME_directory}
export HIVE_HOME= ${Your_HIVE_HOME_directory}
export HIVE_CONF_DIR= ${Your_HIVE_HOME_directory}/conf

Hive is based on Hadoop, so you must configure the hadoop's path on the hive-env.sh.

  1. Try cross checking your environment variable path, in case you typed it wrong.

  2. Try Reloading .bashrc by typing following command

    source ~/.bashrc

  3. Try rebooting your machine

2021 - Had a similar issue because of misconfigured $HIVE_HOME env variable

Specifically I had:

$HIVE_HOME="/usr/local/hadoop/hive/ bin "

So hive was looking for lib/hive-exec- .jar in $HIVE_HOME/lib/hive-exec- .jar which is wrong


Working configuration is therefore:

$HIVE_HOME="/usr/local/hadoop/hive"  # Or wherever you hive is installed
export PATH=${HIVE_HOME}/bin:${PATH}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM