使用的ubuntu版本:12.04
使用的hive版本:0.8.1
使用都mysql版本:5.5.47
使用都mysql-connector-java版本:5.0.8
(一)安装mysql
参考文章:http://www.linuxidc.com/Linux/2013-01/78716.htm
1 在浏览器中输入http://www.mysql.com/downloads/,进入mysql的下载中心,选择MySQL Community Server链接,选择32位的,下载后得到文件mysql-5.5.47-linux2.6-i686.tar.gz,然后将其解压,并重命名为mysql,使用mv命令将其移到/usr/local目录下:
sudo mv ~/下载/mysql /usr/local/
2 先要创建的一个名为mysql的用户组和用户,来承载mysql数据库的运行,使用如下命令:
创建用户组:
sudo groupadd mysql
在创建的用户组中创建一个用户:
sudo useradd -r -g mysql mysql
3 接着进入mysql目录,修改mysql目录的拥有者,为mysql用户:
进入目录:
cd /usr/local/mysql
修改目录的拥有者:
sudo chown -R mysql .
sudo chgrp -R mysql .
这里的点“.”代表的就是当前目录,选项-R表示递归当前目录及其子目录。
4 安装mysql,执行命令:
sudo scripts/mysql_install_db --user=mysql
在Ubuntu 12.04下安装mysql 5.5.28版本执行此命令时,会提示如下错误的信息:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
这说明还要安装一个libaio的依赖库,执行如下命令:
sudo apt-get install libaio-dev
手动安装参考:http://blog.163.com/yumin_wang@126/blog/static/3629355020113995036302/
5 安装好mysql后,就可以试着启动它,使用如下命令:
sudo ./support-files/mysql.server start
同样重启和停止,只需要将上面命令的start改为restart或stop。
6 启动完mysql后,我们接着可以测试一下,使用“./bin/mysql”命令来进入mysql数据库的控制台,执行SQL命令。
7 使用“./bin/mysql”命令来进入mysql数据库的控制台后,输入:
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' IDENTIFIED BY 'hive' WITH GRANT OPTION;
FLUSH PRIVILEGES;
这是当hive访问mysql时,允许用户hive从ip为localhost的主机连接到mysql服务器,并使用hive作为密码(用户名和密码自己根据情况设置)
否则hive执行show tables时会报错误:
FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Access denied for user 'hive'@'localhost' (using password: YES)
NestedThrowables:
java.sql.SQLException: Access denied for user 'hive'@'localhost' (using password: YES)
(二)安装hive
参考文章:
http://blog.csdn.net/yfkiss/article/details/7721329
http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942402.html
http://www.cnblogs.com/viviman/archive/2013/01/14/2860201.html
1 启动hadoop,在hdfs上建目录:
$ hadoop fs -mkdir /tmp
$ hadoop fs -mkdir /user/hive/warehouse
并添加权限:
$ hadoop fs -chmod g+w /tmp
$ hadoop fs -chmod g+w /user/hive/warehouse
2 解压hive:
$ tar -zxvf hive-0.8.1.tar.gz
3 将hive文件夹复制到相应目录(比如/usr/local/hive),并进入hive文件夹都上一级目录,给hive授权:
sudo chown -R hadoop:hadoop hive
4 添加hive环境变量
/etc/profile
/home/hadoop/.bashrc
/usr/local/hive/conf/hive-env.sh
/usr/local/hive/bin/hive-conf.sh
在以上4个文件中添加如下内容:
JAVA_HOME=/usr/java/jdk1.6.0_11
HADOOP_INSTALL=/usr/local/hadoop
HIVE_HOME=/usr/local/hive
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_INSTALL/bin:$HIVE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HIVE_HOME/lib
export JAVA_HOME
export HADOOP_INSTALL
export HIVE_HOME
export PATH
export CLASSPATH
5 配置 hive-default.xml
在“/usr/local/hive/conf”目录下只有一个“hive-default.xml.template”,所以我们要复制“hive-default.xml.template”,并命名为“hive-default.xml”,同时还要把文件的授权给 hadoop 用户。
cp hive-default.xml.template hive-default.xml
chown -R hadoop:hadoop hive-default.xml
6 生成并配置hive-site.xml
sudo vi hive-site.xml
输入:
<?xml version="2.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
</configuration>
最后chown -R hadoop:hadoop hive-site.xml
7 将usr/local/hive/conf目录下的其他template文件复制为去掉后缀的文件,并把文件的授权给 hadoop 用户。
8 解压mysql jdbc包:
tar -zxvf mysql-connector-java-5.0.8.tar.gz
将mysql-connector-java-5.0.8-bin.jar拷贝到hive lib目录下:
cp mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar ./lib
9 启动hive
进入hive目录,输入 ./bin/hive,其他操作如show tables;退出输入exit;