Hive详细配置手册

HIVE详细配置手册
1)下载hive

HIVE只需在Master节点中安装和配置即可。 
所以版本是hive-0.7.1,已安装的hadoop版本为hadoop-0.20.204.0,解压到master节点上的/usr/local/hadoop/contrib目录

解压

 
 
[root@master:hadoop]$ tar zxvf hive-0.7.1.tar.gz [root@master:hadoop]$mv hive-0.7.1 contrib/hive

 

2)配置hive
1.修改bin/hive-config.sh,添加jdk支持
 

 
 
export JAVA_HOME=/usr/local/jdk export HIVE_HOME=/usr/local/hadoop/contrib/hive export HADOOP_HOME=/usr/local/hadoop

 

 2.在HDFS中创建目录,并且将其开放g+w模式

 
 
[root@master:hadoop]$bin/hadoop fs –mkdir /tmp [root@master:hadoop]$bin/hadoop fs –mkdir /user/hive/warehouse [root@master:hadoop]$bin/hadoop fs –chmod g+w /tmp [root@master:hadoop]$bin/hadoop fs –chmod g+w /user/hive/warehouse

 

 经过试验,以上创建目录的步骤是可以省略的,Hive会自动创建需要的目录 。

浏览器输入http://master:50070 进行查看,点击Browser the filesystem进入,点击user 会看到hive链接,点击进去就能看到数据表。

3. 修改conf/hive-default.xml,这个是hive的关键配置,所以一般不要直接修改,拷贝hive-default.xml为hive-site.xml文件,将修改的内容在这个里面配置。本人为mysql数据库存储hive 的元数据,所以做如下修改:

<property> 
    <name>javax.jdo.OPTION.ConnectionURL</name>  
    <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value> 
    <description>JDBC connect string FOR a JDBC metastore</description> 
</property> 
<property>  
    <name>javax.jdo.OPTION.ConnectionDriverName</name>  
    <value>com.mysql.jdbc.Driver</value> 
    <description>Driver class name FOR a JDBC metastore</description> </property>
<property>  
    <name>javax.jdo.OPTION.ConnectionUserName</name>  
    <value>hiveuser</value> 
    <description>username TOUSE against metastore database</description> 
</property> 
<property> 
    <name>javax.jdo.OPTION.ConnectionPassword</name>  
    <value>hiveuser</value> 
    <description>password TOUSE against metastore database</description> 
</property> 
 
 
 

 4.下载mysql连接驱动包,否则会报错:error creating transactional connection。本文下载的为mysql-connector-java-5.0.8-bin.jar文件,并放到$HIVE_HOME/lib目录下,这时HIVE已经全部配置完了。

3)运行hive

 

[root@master:hadoop]$bin/hive 

Hive history file=/tmp/root/hive_job_log_root_201202181057_361521373.txt hive>

  

 
  

 有时会报warning:please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.

 在Hive官方文档中重点提到了Hive的日志配置$HIVE_HOME/conf/hive-log4j.properties,虽然不是必要更改的配置文件,但合理的设置会对我们有一定的帮助,具体配置方法可见官方文档。

4)测试hive
1.创建数据表

hive> create table tb( id int, name string); 
OK Time taken: 5.112 seconds 
 
 
 

 默认是使用输入格式(input format)为text ,分割符号使用^A(ctrl-a).
2.创建分区的数据表

 
hive> CREATE table tb2 (foo int, bar string) partitioned by (ds string); 


OK Time taken: 31.243 seconds

 
 

 包含2列和一个分区列(ds)。分区列是一个虚拟列。它不是数据自身的一部分,但是由它得到分区,详细数据加载到里面.

3.显示数据表

显示所有的数据表

 
show tables;
 

  只显示以's'结尾的数据表

 
show tables '.*s';
 

 查询数据

 
select * from tb;
 

 4.从本地加载数据

 
hive> load data local inpath './files/tb.txt' overwrite into table tb;
 

 这个文件位于hive的安装目录下 files/tb.txt

5.从hdfs加载数据

 
 
load data inpath '/input/files/tb.txt' overwrite into table tb;

  

 

 去掉LOCAL ,就是从HDFS加载
关键字OVERWRITE意味着,数据表已经存在的数据将被删除。省略OVERWRITE,数据文件将会添加到原有数据列表里
删除数据表:drop table tb;

5)Heap size设置
Hive默认-Xmx4096m
修改hive/bin/ext/util/ execHiveCmd.sh
HADOOP_HEAPSIZE=256

6)启动Hive Thrift Server

 
hive --service hiveserver 
 

默认使用10000端口,也可以使用HIVE_PORT来指定端口

 
[mars@master hive]$ bin/hive --service hiveserver --help usage HIVE_PORT=xxxx ./hive --service hiveserver HIVE_PORT : Specify the server port
 

 7)启动hwi

 
bin/hive --service hwi 
 

 http://masterIp:9999/hwi即可访问网络接口

取消日志的方式:

 
nohup bin/hive --service hwi > /dev/null 2> /dev/null &
 

猜你喜欢

转载自mars914.iteye.com/blog/1410035