本文记录在Hadoop集群环境下安装Hive。
环境:OS:Centos 6.5 x64 & Soft:Hadoop 1.2.1 & Hive 0.11
1、简介
2、安装三种模式:
内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接
本地独立模式:在本地安装Mysql,把元数据放到Mysql内
远程模式:元数据放置在远程的Mysql数据库
本文选择本地独立模式安装。
3、安装mysql
详细安装参考:http://www.cnblogs.com/guarder/p/3707895.html
4、安装hive
下载二进制安装包hive-0.11.0.tar.gz,解压。
[huser@master hadoop]$ tar -xvf hive-0.11.0.tar.gz
5、配置hive
修改/etc/profile,添加配置
export JAVA_HOME=/usr/java/jdk1.7.0_51 export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar export JRE_HOME=$JAVA_HOME/jre export HADOOP_HOME=/home/huser/hadoop/hadoop-1.2.1 export HADOOP_CONF_DIR=/home/huser/hadoop/hadoop-1.2.1/conf export HADOOP_CLASSPATH=/home/huser/hadoop/hadoop-1.2.1/bin export MAHOUT_HOME=/home/huser/hadoop/mahout-distribution-0.9 export MAHOUT_HOME_DIR=/home/huser/hadoop/mahout-distribution-0.9/conf export PIG_HOME=/home/huser/hadoop/pig-0.12.0 export PIG_CLASSPATH=/home/huser/hadoop/pig-0.12.0/conf export HIVE_HOME=/home/huser/hadoop/hive-0.11.0 export PATH=$PATH:$JAVA_HOME/bin:$HIVE_HOME/bin:$PIG_HOME/bin:$PIG_HOME/conf:$MAHOUT_HOME/bin:$MAHOUT_HOME/conf
生效环境变量。
创建hive-site.xml
[huser@master hadoop]$ cp hive-0.11.0/conf/hive-default.xml.template hive-0.11.0/conf/hive-site.xml
配置hive-site.xml
hive.metastore.warehouse.dir:(HDFS上的)数据目录
hive.exec.scratchdir:(HDFS上的)临时文件目录
hive.metastore.warehouse.dir默认值是/user/hive/warehouse
hive.exec.scratchdir默认值是/tmp/hive-${user.name}
以上是默认值,暂时不改,在HDFS新建相应文件并授权。
[huser@master hadoop-1.2.1]$ bin/hadoop fs -mkdir /tmp [huser@master hadoop-1.2.1]$ bin/hadoop fs -mkdir /usr/hive/warehouse [huser@master hadoop-1.2.1]$ bin/hadoop fs -chmod g+w /tmp [huser@master hadoop-1.2.1]$ bin/hadoop fs -chmod g+w /usr/hive/warehouse
指出使用本地Mysql数据库,已经连接协议,账号、口令等。
<property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hivedb?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>
配置hive的log4j
[huser@master hadoop]$ cp hive-0.11.0/conf/hive-log4j.properties.template hive-0.11.0/conf/hive-log4j.properties
驱动包mysql-connector-java-3.1.14-bin.jar复制到hive的lib目录下
6、启动hive
[huser@master ~]$ hive
7、测试
hive> show databases; OK default Time taken: 9.233 seconds, Fetched: 1 row(s)
hive> CREATE TABLE LOC ( > CDRID STRING, > IMSI STRING, > CGI STRING, > STARTTIME STRING, > IMEI STRING, > UPDATETYPE STRING, > RELEASETIME STRING, > OLDLAC STRING, > LCTUPDATEREJCAUSE STRING, > INSTIME STRING) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY '|' > STORED AS TEXTFILE; OK Time taken: 3.071 seconds hive> SELECT * FROM LOC; OK Time taken: 0.454 seconds hive> show tables; OK loc Time taken: 0.209 seconds, Fetched: 1 row(s)