前期条件:已经安装完hadoop、hbase和元数据配置库mysql。
1、下载hive: http://archive.apache.org/dist/hive/hive-0.9.0/hive-0.9.0.tar.gz
2、配置hive:
解压文件在hadoop上的一个节点:tar zxvf hive-0.9.0.tar.gz
进入conf目录:
cp -rp hive-default.xml.template hive-site.xml
1、下载hive: http://archive.apache.org/dist/hive/hive-0.9.0/hive-0.9.0.tar.gz
2、配置hive:
解压文件在hadoop上的一个节点:tar zxvf hive-0.9.0.tar.gz
进入conf目录:
cp -rp hive-default.xml.template hive-site.xml
修改hive-site.xml中的存在路径的配置,把路径配置成绝对路径
cp -rp hive-env.sh.template hive-env.sh
cp -rp hive-env.sh.template hive-env.sh
cp
hive-log4j.properties.template
hive-log4j.properties 修改log的路径和日志名称
3、下载mysql的jar包:wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.27.tar.gz
4、解压jar包,拷贝mysql-connector-java-5.1.27-bin.jar到hive的lib目录下
5、登陆mysql,创建用户和分配权限:
mysql -u root -p
mysql> create database hivedemo;
Query OK, 1 row affected (0.00 sec)
mysql>GRANT ALL PRIVILEGES ON hivedemo.* TO ‘hiveuser’@'%’ IDENTIFIED BY ‘hivepassword’;
mysql>Exit;
6、配置hive的hive-env.sh:
HADOOP_HOME=${HADOOP_HOME}
export HIVE_CONF_DIR=/home/hadoop/hive-0.9.0/conf
export HIVE_AUX_JARS_PATH=/home/hadoop/hive-0.9.0/lib
7、配置hive的hive-site.xml:
替换:
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
为:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedemo?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
替换:
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
为:
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
更改mysql用户名:
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveuser</value>
<description>username to use against metastore database</description>
</property>
更改mysql密码:
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivepassword</value>
<description>password to use against metastore database</description>
</property>
9、启动hive,验证是否正确安装部署:
cd /root/test_data/hive-0.9.0/bin
执行 sh hive
执行show databaes;
如果显示default,表示已经正确安装hive.
10、配置hive-site.xml 增加对hbase连接的jar包:
<property>
<name>hive.aux.jars.path</name>
<value>
file:///root/test_data/hive-0.9.0/lib/hive-hbase-handler-0.9.0.jar,
file:///home/hadoop/hbase-0.94.5/hbase-0.94.5.jar,
file:///zookeeper-3.4.5/zookeeper-3.4.5.jar
</value>
</property>
11、重新进入hive:
cd /root/test_data/hive-0.9.0/bin
sh hive -hiveconf hbase.zookeeper.quorum=mongo-01,mongo-02,mongo-03
其中mongo-01,mongo-02,mongo-03为zookeeper服务器的hostname
创建hive对应hbase的表:
CREATE EXTERNAL TABLE poi(key string, attributes string,histories string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,data:attributes,data:histories");
12、执行查询统计语句,检查结果:
select count(*) from poi;
3、下载mysql的jar包:wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.27.tar.gz
4、解压jar包,拷贝mysql-connector-java-5.1.27-bin.jar到hive的lib目录下
5、登陆mysql,创建用户和分配权限:
mysql -u root -p
mysql> create database hivedemo;
Query OK, 1 row affected (0.00 sec)
mysql>GRANT ALL PRIVILEGES ON hivedemo.* TO ‘hiveuser’@'%’ IDENTIFIED BY ‘hivepassword’;
mysql>Exit;
6、配置hive的hive-env.sh:
HADOOP_HOME=${HADOOP_HOME}
export HIVE_CONF_DIR=/home/hadoop/hive-0.9.0/conf
export HIVE_AUX_JARS_PATH=/home/hadoop/hive-0.9.0/lib
7、配置hive的hive-site.xml:
替换:
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
为:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedemo?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
替换:
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
为:
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
更改mysql用户名:
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveuser</value>
<description>username to use against metastore database</description>
</property>
更改mysql密码:
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivepassword</value>
<description>password to use against metastore database</description>
</property>
9、启动hive,验证是否正确安装部署:
cd /root/test_data/hive-0.9.0/bin
执行 sh hive
执行show databaes;
如果显示default,表示已经正确安装hive.
10、配置hive-site.xml 增加对hbase连接的jar包:
<property>
<name>hive.aux.jars.path</name>
<value>
file:///root/test_data/hive-0.9.0/lib/hive-hbase-handler-0.9.0.jar,
file:///home/hadoop/hbase-0.94.5/hbase-0.94.5.jar,
file:///zookeeper-3.4.5/zookeeper-3.4.5.jar
</value>
</property>
11、重新进入hive:
cd /root/test_data/hive-0.9.0/bin
sh hive -hiveconf hbase.zookeeper.quorum=mongo-01,mongo-02,mongo-03
其中mongo-01,mongo-02,mongo-03为zookeeper服务器的hostname
创建hive对应hbase的表:
CREATE EXTERNAL TABLE poi(key string, attributes string,histories string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,data:attributes,data:histories");
12、执行查询统计语句,检查结果:
select count(*) from poi;