Ubuntu 14.10 下Hive配置

1 系统环境

Ubuntu 14.10

JDK-7

Hadoop 2.6.0

2 安装步骤

2.1 下载Hive

我第一次安装的时候,下载的是Hive-1.2.1,配置好之后,总是报错

[ERROR] Terminal initialization failed; falling back to unsupported
java.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/share/hadoop/yarn/lib中的jline 替换成高版本的,如hive中的2.×

1.Delete jline from the Hadoop lib directory (it‘s only pulled in transitively from ZooKeeper).
2.export HADOOP_USER_CLASSPATH_FIRST=true

但是我替换之后,还是报错,后来换了一个低版本的HIve-1.0.1,就好了,所以如果出现如上错误,不一定非的是jar问题,也可能是版本问题。

下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-1.0.1/apache-hive-1.0.1-bin.tar.gz

2.2 配置hive

2.2.1 拷贝一份hive-env.sh,设置HADOOP_HOME

2.2.2 拷贝一份hive-site.xml

主要修改如下参数

<property>
   <name>javax.jdo.option.ConnectionURL </name>
   <value>jdbc:mysql://localhost:3306/hive </value>
</property> 

<property>
   <name>javax.jdo.option.ConnectionDriverName </name>
   <value>com.mysql.jdbc.Driver </value>
</property>

<property>
   <name>javax.jdo.option.ConnectionPassword </name>
   <value>hive </value>
</property> 

<property>
   <name>hive.hwi.listen.port </name>
   <value>9999 </value>
   <description>This is the port the Hive Web Interface will listen on </descript ion>
</property> 

<property>
   <name>datanucleus.autoCreateSchema </name>
   <value>true</value>
</property> 

<property>
   <name>datanucleus.fixedDatastore </name>
   <value>false</value>
</property>
</property> 

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>Username to use against metastore database</description>
  </property>

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

2.3 拷贝一份hive-log4j.properties

这里我只是设置了log文件的路径

2.4 建立相关文件夹,就是在2.2中设置的

2.5 在HDFS中建立相关文件夹

  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
  $ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
  $ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

2.3 安装MySQL

因为这里的关系型数据库是用的mysql,那么需要安装mysql,同时按照上面配置的新建hive用户,新建数据库。

安装mysql参考:http://www.cnblogs.com/liuchangchun/p/4099003.html

新建用户参考:http://www.cnblogs.com/liuchangchun/p/4431426.html

因为之前安装mysql后将编码设置成了utf8的,在启动hive的时候报了如下错:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

这个错误,需要修改hive数据库的编码:

alter database hive character set latin1;

2.4 拷贝mysql的驱动jar包到hive/lib下面

如果不拷贝,那么会报错:找不到jar包

Caused by: org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.
    at org.datanucleus.store.rdbms.connectionpool.AbstractConnectionPoolFactory.loadDriver(AbstractConnectionPoolFactory.java:58)
    at org.datanucleus.store.rdbms.connectionpool.BoneCPConnectionPoolFactory.createConnectionPool(BoneCPConnectionPoolFactory.java:54)
    at org.datanucleus.store.rdbms.ConnectionFactoryImpl.generateDataSources(ConnectionFactoryImpl.java:238)
    ... 67 more

2.5 启动hive

启动之前要确保hdfs已经起来。

在命令行执行:hive,即可进入hive命令行界面,如果没有错误,恭喜你,OK了。

如果HDFS没起来,那么可能报错.。。

参考:

https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallationandConfiguration

http://blog.csdn.net/an342647823/article/details/46048403

http://blog.csdn.net/keljony/article/details/43371995

http://sunjia-704471770-qq-com.iteye.com/blog/1631430

http://blog.csdn.net/jdplus/article/details/46493553

时间: 2024-08-07 08:40:09

Ubuntu 14.10 下Hive配置的相关文章

Ubuntu 14.10 下SSH配置

安装Hadoop时候需要设置SSH ,故将此过程记录下来   推荐安装 OpenSSH , Hadoop 需要通过 SSH 来启动 Slave 列表中各台主机的守护进程,因此 SSH 是必需安装的.虽然我们现在搭建的是一个伪分布式的平台,但是 Hadoop 没有区分开集群式和伪分布式,对于伪分布式, Hadoop 会采用与集群相同的处理方式,即按次序启动文件 conf/slaves 中记载的主机进程,只不过在伪分布式中 Salve 为 localhost 而已,所以对于伪分布式, SSH 是必须

Ubuntu 14.10 下ZooKeeper+Hadoop2.6.0+HBase1.0.0 的HA机群高可用配置

1 硬件环境 Ubuntu 14.10 64位 2 软件环境 openjdk-7-jdk hadoop 2.6.0 zookeeper-3.4.6 hbase-1.0.0 3 机群规划 3.1 zookeeper配置-机器结点 192.168.1.100 1421-0000192.168.1.106 1421-0003192.168.1.107 1421-0004192.168.1.108 1421-0005192.168.1.109 1421-0006 3.2 hadoop配置-机器结点 19

Ubuntu 14.10 下DokuWiki安装

环境说明: Ubuntu 14.10 64位 1 下载DokuWiki:http://download.dokuwiki.org/ 2 解压到 /var/www/html下面 3 如果没有安装Apace和PHP,那么需要安装 sudo apt-get install apache2 php5 4 解压完dokuwiki之后,还需要设置它的权限,增加写的权限,要不然instal的时候会报错 5 启动apace,浏览器打开localhost/dokuwiki,会跳转到安装界面,输入一些信息之后,就可

Ubuntu 14.10下mysql 编译安装

1. 安装环境:Ubuntu server 14.10Mysql-5.6.23.tar.gz 2. 安装必备的工具sudo apt-get install make bison g++ build-essential libncurses5-dev cmake 3. 添加组合用户 设置安装目录权限sudo groupadd mysqlsudo useradd –g mysql mysql –s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统sud

Ubuntu 14.10 下Server版本中文乱码问题

在安装Ubuntu server 14.10 时候选择了中文版,但是装好系统发现,里面的中文有乱码,解决办法 打开 /etc/default/locale sudo nano /etc/default/locale 原来是中文编码,修改成英文的 #LANG="zh_CN.UTF-8" #LANGUAGE="zh_CN:zh" LANG="en_US.UTF-8" LANGUAGE="en_US:en" 注销系统,重登就行了 参

Ubuntu 14.10 下awk命令详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

Ubuntu 14.10 下Hadoop HttpFS 配置

因为hadoop集群中需要配置一个图形化管理数据的截面,后来找到HUE,那么在配置HUE的过程中,发现需要配置httpfs,因为配置了httpfs,hue才能去操作hdfs中的数据. HttpFs能干啥呢,它可以使你能在浏览器中管理HDFS上的文件,例如在HUE中:它还提供了一套REST风格的API用来管理HDFS 1 集群环境 Ubuntu-14.10 openjdk-7 hadoop-2.6.0 HA(双NN) hue-3.8.1(development) 2 安装 因为hadoop中自带了

ubuntu 14.0 下github 配置

一:创建Repositories 1:首先在github下创建一个帐号.这个不用多说,然后创建一个Repositories. 2:然后在ubuntu下安装git相关的东东: 1 sudo apt-get install git-core git-gui git-doc -y 3:在ubuntu本地创建一个ssh密匙: 1 ssh-keygen -t rsa -C "[email protected]" 会提示在用户home目录下.ssh子文件夹中生成一个密匙,然后要求输也密码等等,最后

Ubuntu 14.10 下安装伪分布式hive-0.14.0

本地独立模式,MySQL作为元数据库 1 安装环境准备 1.1 安装JDK,在安装hadoop时候已经安装了,参考http://www.cnblogs.com/liuchangchun/p/4097286.html 1.2 安装hadoop,参考http://www.cnblogs.com/liuchangchun/p/4097286.html 1.3 安装MySQL数据库,参考http://www.cnblogs.com/liuchangchun/p/4099003.html 1.4 新建hi