Hadoop学习--Hive安装与配置

最近在学习Hive的安装与使用,第一次使用还是遇到了很多问题。下面介绍下具体的过程。

开发环境:

ubuntu10.04 

jdk:1.7.0_40

Hadoop:1.2.1

1、下载安装包

首先从http://hive.apache.org/downloads.html下载并解压到一个目录下,笔者是/root/hive。

Hiva需要Hadoop已经启动并运行,所以先得运行hadoop。然后在HDFS中配置几个目录备用

2、配置HDFS中的目录

bin/hadoop fs -mkdir /tmp

bin/hadoop fs -mkdir /user/hive/warehouse

bin/hadoop fs -chmod g+w /tmp

bin/hadoop fs -chmod g+w /user/hive/warehouse


3、配置共享SQL数据库

Hive部署在多用户环境中,就需要有一个集中的地方存储数据。通常会使用一个共享的SQL数据库,如mysql,但任何符合JDBC的数据库都是可以的,这里以mysql为例。

安装mysql ,执行如下命令:

sudo apt-get install mysql-server mysql-client

安装完成之后可以可以验证下是否成功。

执行命令:

netstat -tap|grep mysql

如图所示:


安装好mysql 还需要jdbc驱动的支持,可以到http://dev.mysql.com/downloads/connector/j/ 下载驱动,并解压出来。

在解压出来的目录里找到mysql-connector-java-5.1.10.jar(版本不同,名字略有差别)并拷贝到 $JAVA_HOME/jre/lib/ext下。这个目录是之前安装了jdk的目录。

此时还需要创建一个数据库作为Hive的metastore。这个数据库通常命名为metastore_db。

mysql> CREATE DATABASEmetastore_db;

最后还要添加mysql用户访问权限:

在mysql中输入如下指令

mysql> grant all on *.* to root@"%" identified by '123456';

这里的 root 账号名和 密码 要和下文保持一致!!!

4、修改Hive的配置文件

在$HIVE_HOME/conf目录下,原始的安装中没有hive-site.xml文件,因此需要手动创建。hive-site.xml代码如下所示:

[html] view plain copy
  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3.   
  4. <configuration>  
  5. <!--  
  6. <property>  
  7.   <name>hive.metastore.local</name>  
  8.   <value>false</value>  
  9. </property>  
  10. -->  
  11. <property>  
  12.   <name>javax.jdo.option.ConnectionURL</name>  
  13.   <!--<value>jdbc:mysql://localhost:3306/metastore_db</value> -->  
  14.   <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>  
  15.     
  16. </property>  
  17.   
  18. <property>  
  19.   <name>javax.jdo.option.ConnectionDriverName</name>  
  20.   <value>com.mysql.jdbc.Driver</value>  
  21. </property>  
  22.   
  23. <property>  
  24. <name>javax.jdo.option.ConnectionUserName</name>  
  25. <value>root</value>  
  26. </property>  
  27. <property>  
  28. <name>javax.jdo.option.ConnectionPassword</name>  
  29. <value>123456</value>  
  30. </property>  
  31.   
  32. </configuration>  

然后在$HIVA_HOME目录输入bin/hive,运行hive,输入show databases;,显示结果如下:

即表示配置成功。

补充:

后来安装了HBase之后,发现再次开启Hive就报错了:

<span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">root@ubuntu:~/hive/hive-0.12.0# bin/hive</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/thrift/TException</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.lang.Class.forName0(Native Method)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.lang.Class.forName(Class.java:270)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at org.apache.hadoop.util.RunJar.main(RunJar.java:153)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">Caused by: java.lang.ClassNotFoundException: org.apache.thrift.TException</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.net.URLClassLoader$1.run(URLClassLoader.java:366)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.net.URLClassLoader$1.run(URLClassLoader.java:355)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.security.AccessController.doPrivileged(Native Method)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.net.URLClassLoader.findClass(URLClassLoader.java:354)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.lang.ClassLoader.loadClass(ClassLoader.java:424)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">at java.lang.ClassLoader.loadClass(ClassLoader.java:357)</span><br style="font-family: 'Microsoft YaHei'; font-size: 14.44444465637207px;" /><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px; white-space: pre;">	</span><span style="font-family:'Microsoft YaHei';font-size: 14.44444465637207px;">... 3 more</span>
后来查找发现,是因为Hadoop的配置文件hadoop-env.h被改动了;

<span style="font-family:'Microsoft YaHei';">export HADOOP_CLASSPATH=$HBASE_HOME/hbase-0.94.18.jar:$ZOOKEEPER_HOME/zookeeper-3.4.6.jar:$HBASE_HOME/conf</span>
改成如下所示即可:

<span style="font-family:'Microsoft YaHei';">export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/hbase-0.94.18.jar:$ZOOKEEPER_HOME/zookeeper-3.4.6.jar:$HBASE_HOME/conf</span>
参考资料:
http://blog.chinaunix.net/uid-451-id-3143781.html
http://blog.csdn.net/joomlaer/article/details/8960512
http://hi.baidu.com/i_benniao/item/9695dca76c8aeb17a8cfb78e

你可能感兴趣的:(Hadoop学习--Hive安装与配置)