Hive安装,
具体参考Hive Getting Started
0 前置条件
Linux :CentOS/Ubuntu
JDK 已安装
Hadoop 已安装
1 安装tarball,配置环境变量
$ tar -xzvf hive-*-.tar.gz
$vim /etc/profile
后者 vim ~/.bashrc
添加
export HIVE_HOME=/your/path
export PATH=$HIVE_HOME/bin:$PATH
export HADOOP_HOME=/your/hadoop/home/path
2 HDFS上创建对应文件
/hive/warehouse 为存放table的目录
$HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir /hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /hive/warehouse
3 配置文件说明
hive需要存放两种数据,一是table表数据,二是关于table的metadata,元数据;
默认的配置文件<install-dir>/conf/hive-default.xml
默认情况下,metadata数据会报存在当前目录下,使用derby数据库,会在当前目录下建立一个metadata.db文件夹
更改配置文件 <install-dir>/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive/warehouse</value>
<description>Hive存储table的目录,取决于hadoop设置为local还是分布式,local则在磁盘上,分布式则在hdfs上</description>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
<description>默认为true,使用thrift metadata store时为false</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/opt/hive/metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!--
<!--如果使用mysql作为metadata数据库,配置如下,且将jdbc*.jar让入hive_home/lib/-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://db1.mydomain.pvt/hive_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>database_user</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>database_pass</value>
</property>
-->
</property>
note:
更改配置文件夹:HIVE_CONF_DIR
日志文件:log4j: <install-dir>/conf/hive-log4j.properties
* hive 会继承hadoop的配置
* 手动更改:
shell中更改环境变量,用set
启动时HIVE_OPT设置环境变量:hive –hiveconf x1=y1 –hiveconf x2=y2
4 hive shell 操作
键入hive进入shell
hive > show databases;
hive > show tables;
hive > create table x (a int);
hive > describe x;
hive > dfs -ls /hive/warehouse/;
hive > select * from x;
hive > drop table x;
hive > exit;
在 conf/hive-env.sh 中添加:
export HADOOP_USER_CLASSPATH_FIRST=true
hive-site.xml参考