hadoop2.6环境下安装Hive

来源:互联网 发布:mac os qq截图 编辑:程序博客网 时间:2024/04/27 14:56

准备事项:

安装Java1.7,以及hadoop2.6。

1.在http://hive.apache.org/下载最新版本的Hive.

2.将下载的apache-hive-1.1.0-bin.tar.gz解压在/usr/local/hadoop/目录下

基本命令:

cd /usr/local/hadoop/

sudo tar -zxvf apache-hive-1.1.0-bin.tar.gz ./

3.设置环境变量

vi ~/.bashrc

添加

export HIVE_HOME=/usr/local/hadoop/apache-hive-1.1.0-bin

export PATH=$HIVE_HOME/bin:$PATH

保存退出

终端输入 source ~/.bashrc 回车

即让添加的配置的环境变量及时生效

4.配置文件

将$HIVE_HOME/conf下的模板配置文件重命名,即将.template后缀去掉即可

配置hive-site.xml文件

添加如下:

<property>    <name>hive.querylog.location</name>    <value>/tmp/hive</value>    <description>Location of Hive run time structured log file</description>  </property>  <property>    <name>hive.exec.local.scratchdir</name>    <value>/tmp/hive</value>    <description>Local scratch space for Hive jobs</description>  </property>  <property>    <name>hive.downloaded.resources.dir</name>    <value>/tmp/hive</value>    <description>Temporary local directory for added resources in the remote file system.</description>  </property>

5启动hive,即终端输入hive然后回车

注意:启动hive之前须先正常启动hadoop,因为hive依赖hadoop。

6.启动遇到的问题:

hadoop@master:/usr/local/hadoop/hadoop-2.6.0/sbin$ hiveLogging initialized using configuration in file:/usr/local/hadoop/apache-hive-1.1.0/conf/hive-log4j.propertiesSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/usr/local/hadoop/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/usr/local/hadoop/apache-hive-1.1.0/lib/hive-jdbc-1.1.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory][ERROR] Terminal initialization failed; falling back to unsupportedjava.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected        at jline.TerminalFactory.create(TerminalFactory.java:101)        at jline.TerminalFactory.get(TerminalFactory.java:158)        at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:606)        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected        at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:606)        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

解决办法:

备份并且移除 $HADOOP_HOME/share/hadoop/yarn/lib/ 下的jline-0.9.94.jar文件,它与beeline的依赖产生冲突。

终端输入

cd $HADOOP_HOME/share/hadoop/yarn/lib/ 

mv jline-0.9.94.jar jline-0.9.94.jar.bak

再次启动输入hive回车

启动成功!




0 0
原创粉丝点击