您的位置:首页 > 运维架构

Hadoop学习--Hive安装与配置

2014-05-22 09:25 513 查看
最近在学习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 plaincopy





<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<!--
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!--<value>jdbc:mysql://localhost:3306/metastore_db</value> -->
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

</property>

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

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>

</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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: