Hive的安装配置:
没有集群,但是如果想要远程模式的话就要多装一台
准备阶段:
Hadoop2.6.5和MySQL安装完毕。我们要安装的是1.2.1版本的hive
上传安装包
解压
tar -zxvf apache-hive-1.2.1-bin.tar.gz
替换和添加相关jar包
修改HADOOP_HOME/share/hadoop/yarn/lib目录下的jline-*.jar 将其替换成HIVE_HOME/lib下的jline-2.12.jar。
移动到对应目录下找到jline-*.jar
cd /home/hadoop-2.6.5/share/hadoop/yarn/lib
删除掉
rm -rf ./jline-0.9.94.jar
赋值apache-hive-1.2.1-bin/lib目录下的jline-2.12.jar到hadoop-2.6.5/share/hadoop/yarn/lib目录下
cp /home/apache-hive-1.2.1-bin/lib/jline-2.12.jar /home/hadoop-2.6.5/share/hadoop/yarn/lib/
将hive连接mysql的jar包
1)移动到hive的lib目录下
cd /home/apache-hive-1.2.1-bin/lib
2)上传mysql的jar包:
mysql-connector-java-5.1.32-bin.jar
配置环境变量
vim ~/.bash_profile
export HIVE_HOME=/home/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bash_profile
修改配置文件(选择3种模式里哪一种)见三种安装模式
A、内嵌模式(元数据保存在内嵌的derby中,允许一个会话链接,尝试多个会话链接时会报错)【了解】不做了
B、本地模式(本地安装mysql 替代derby存储元数据)【重要】
C、远程模式(远程安装mysql 替代derby存储元数据)【重要】
本地模式配置
这种安装方式和嵌入式的区别在于,不再使用内嵌的Derby作为元数据的存储介质,而是使用其他数据库比如MySQL来存储元数据且是一个多用户的模式,运行多个用户client连接到一个数据库中。这种方式一般作为公司内部同时使用Hive。这里有一个前提,每一个用户必须要有对MySQL的访问权利,即每一个客户端使用者需要知道MySQL的用户名和密码才行。
这种存储方式需要在本地运行一个 mysql 服务器,并作如下配置(下面两种使用 mysql 的方式,需要将 mysql 的 jar 包拷贝到$HIVE_HOME/lib 目录下)。
修改配置文件的时候注意应该改的地方改一下
cd /home/apache-hive-1.2.1-bin/config
vim hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_rlocal/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03/hive_remote?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>
远程模式(重要)--.remote 一体
这种存储方式需要在远端服务器运行一个 mysql 服务器,并且需要在 Hive 服务器启动 meta服务。
cd /home/apache-hive-1.2.1-bin/config
vim hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse2</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03: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>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
</configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://node01:9083</value>
</property>
注:这里把 hive 的服务端和客户端都放在同一台服务器上了。服务端和客户端可以拆开,
Remote 分开(公司企业经常用)
将 hive-site.xml 配置文件拆为如下两部分
服务端配置文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03: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>
客户端配置文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://node01:9083</value>
</property>
</configuration>
服务端启动 hive 程序
hive --service metastore
客户端直接使用
hive
Hive常见问题总汇:http://blog.csdn.net/freedomboy319/article/details/44828337