首先下载安装mysql,一条命令完成:
sudo apt-get install mysql-server
我的是ubuntu系统,所以用以上命令。这里要说明的是,想离线安装mysql的同学,近期由于我天朝上国封掉了google,故而其提供的api也不能使用。直接导致mysql官网的那个"select platforms:"的下拉框无法使用。所以不能在官网下载linux版本的mysql了。
安装过程需要输入用户名密码。
下面下载安装hive,这里我使用wget选择的是0.12版本:
wget http://mirrors.hust.edu.cn/apache/hive/hive-0.12.0/hive-0.12.0-bin.tar.gz
完成后,解压到想要安装的目录。然后cd到解压的conf目录下,与hadoop的配置相同,需要将两个template文件复制一份,变成配置文件:
$cp hive-env.sh.template hive-env.sh
$cp hive-default.xml.template hive-site.xml
编辑配置文件:
1 hive-env.sh:
在第48行,配置HADOOP_HOME:
HADOOP_HOME=/opt/hadoop
第51行,导出HIVE_CONF_DIR:
HIVE_CONF_DIR=/opt/hive-0.12.0/conf
XXX改成根据实际情况来配置。
2 hive-site.xml:
<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>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
</property>
上面部分有一些需要改动,比如mysql端口3306,如果你修改了,那么就要改动。再如用户名root和密码123,根据实际情况来填写。当然你可以新建用户而不用root用户。另外,确认localhost在你的hosts文件中已映射为127.0.0.1.否则在hive连接mysql时,会出现异常。
另外,网上有老的博客说需要配置hive.metastore.local,它的含义为元数据采用本地模式或远程模式(即你的mysql服务器是在本机还是远程机器上),但是这个属性在hive-0.10.0后就被删除了,新的版本用hive.metastore.uris来代替,机制为:如果hive.metastore.uris属性为空,则默认为本地模式,否则为远程模式。
现在hive和mysql都弄好了,当然,需要驱动才能让hive链接到mysql.
官网的地址由于封锁google问题,依旧不能下载。这里介绍个下载地址: 点击打开链接
下载好后,直接cp到hive主目录下的lib下即可,无需重命名,直接使用。
仿佛一切都完成了?NO,还有两件事需要在mysql中去做:
1 建立一个数据库(hiveDB)供hive使用:
create database hiveDB
2 给hive的用户(此处我使用root)授权:
GRANT ALL ON hiveDB.* TO ‘root’@’localhost’ IDENTIFIED BY "123";
如你所见,root表示用户名,localhost表示主机,123是密码。
下面开始测试:
OK表示命令已识别并完成,Time taken表示完成此命令共花费的时间。
show tables; --显示所有的表。
create table XXX (YYY) --创建表。
drop table XXX --删除表。