欢迎投稿

今日深度:

hive+mysql安装,hivemysql

hive+mysql安装,hivemysql


hive安装

刚刚安装好hadoop迫不及待要玩下hive,所以自己找了些资料,安装了下hive,这里记录详细的安装过程和碰到的问题:

1.在安装hadoop之前首先确定hadoop已经安装成功,具体安装方法请参考hadoop安装。

2.下载hive版本 我下载的是  

下载地址为http://hive.apache.org/releases.htm

解压文件:

[plain] view plaincopyprint? [plain] view plaincopyprint?

3.配置环境变量:

[plain] view plaincopyprint? [plain] view plaincopyprint? [plain] view plaincopyprint? [plain] view plaincopyprint?


4.我存储元数据是采用第三方的mysql数据库,这种情况下需要下载一个数据包mysql-connector-java-5.1.18-bin.jar,放到hive的lib目录下;

 

为Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:

hadoop@ubuntu:~$ mysql -u root -pmysql
mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> flush privileges;

5,0.8.1的hive版本忽略hive-default.xml,因此需要将hive/conf下的hive-default.xml.template复制并改名为hive-site.xml。并将hive-site.xml复制到hadoop/conf下

修改hive-site.xml中的如下几项:

<configuration>  
<property>  
<name>hive.metastore.local</name>  
  <value>true</value>  
</property>  
  
<property>  
<name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://localhost:3306/metastore_db?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>hive</value>   
</property>   
    
<property>   
  <name>javax.jdo.option.ConnectionPassword</name>   
  <value>123456</value>   
</property>   

 

5.运行hive

[plain] view plaincopyprint? [plain] view plaincopyprint?

6.这里遇到点问题:刚开始执行hive时,执行show tables;报如下错误:

[plain] view plaincopyprint? [plain] view plaincopyprint?

后来询问了google,得到如下解决办法:

原有的hadoop配置文件core-site.xml信息如下:

[plain] view plaincopyprint? [plain] view plaincopyprint?

 

改成:

[plain] view plaincopyprint? [plain] view plaincopyprint?

重启hadoop,运行hive,问题解决。

之后创建表一直很顺利,但是到查询表例如我执行:select size from log limit 10;时,又报错如下:

[plain] view plaincopyprint? [plain] view plaincopyprint?

后来问了下百度和google都没有结果,自己觉得是缺少了类文件,我便把hive/lib下所有的hive-*文件拷贝到hadoop的lib下

重启hadoop,问题解决。但是归根结底我觉得是$HADOOP_CLASSPATH变量没有配置清楚,这个之后再解决这里做个标记。

执行select 后运行正常:

[plain] view plaincopyprint? [plain] view plaincopyprint?

现在又找到的心得问题:在执行删除表操作时,出现如下错误:

[plain] view plaincopyprint? [plain] view plaincopyprint?

这个问题还没有解决:期待牛人解决

 另外两点需要注意:

hive是做为客户端被安装的,调用了hadoop的脚本,有两点需要注意:

(1)问题1:

View Code
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf   
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)

解决方法:在hadoop-env.sh中增加以下脚本

#import hive jar
for LIB in `ls -1 $HIVE_HOME/lib/*.jar ./lib/*.zip 2>/dev/null`
do
HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$LIB
done

 

加载所有hive/lib下的jar包

(2)问题:所有配置都设置好了,Hive就是无法连接到mysql:郁闷的不得了:

解决方法如下:

将hive-site.xml、hive-env.sh.template、hive-exec-log4j.properties、hive-log4j.properties配置文件

拷贝到{Hadoop_Home}/conf下

 

 

 

 

 

www.htsjk.Com true http://www.htsjk.com/hive/10750.html NewsArticle hive+mysql安装,hivemysql hive安装 刚刚安装好hadoop迫不及待要玩下hive,所以自己找了些资料,安装了下hive,这里记录详细的安装过程和碰到的问题: 1.在安装hadoop之前首先确定hadoop已经安...
相关文章
    暂无相关文章
评论暂时关闭