HIVE配置手册

       hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

1)下载hive
地址:http://hive.apache.org/downloads.html
解压到每台服务器的/data/soft

Java代码  收藏代码
  1. root@master:/data/soft# tar zxvf hive-0.6.0.tar.gz  


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

Java代码  收藏代码
  1. export JAVA_HOME=/usr/local/jdk  

  2. export HIVE_HOME=/data/soft/hive  

  3. export HADOOP_HOME=/data/soft/hadoop  


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

Java代码  收藏代码
  1. root@master:/data/soft#hadoop fs –mkdir /tmp  

  2. root@master:/data/soft#hadoop fs –mkdir /user/hive/warehouse  

  3. root@master:/data/soft#hadoop fs –chmod g+w /tmp  

  4. root@master:/data/soft#hadoop fs –chmod g+w /user/hive/warehouse  


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

3. 修改conf/hive-default.xml,这个是hive的关键配置,所以一般不要直接修改,新建hive-site.xml文件,将修改的内容在这个里面配置。

Xml代码  收藏代码
  1. <property>  

  2.  <name>hive.exec.scratchdir</name>  

  3.  <value>/data/work/hive/tmp</value>  

  4.  <description>Scratch space for Hive jobs</description>  

  5. </property>  

  6. <property>  

  7.  <name>hive.querylog.location</name>  

  8.  <value>/data/work/hive/querylog</value>  

  9. </property>  

  10. <property>  

  11.  <name>hive.hwi.listen.host</name>  

  12.  <value>0.0.0.0</value>  

  13.  <description>This is the host address the Hive Web Interface will listen on</description>  

  14. </property>  

  15. <property>  

  16.  <name>hive.hwi.listen.port</name>  

  17.  <value>9999</value>  

  18.  <description>This is the port the Hive Web Interface will listen on</description>  

  19. </property>  




3)运行hive

Java代码  收藏代码
  1. root@master:/data/soft/hive/bin# ./hive  

  2. Hive history file=/tmp/root/hive_job_log_root_201101241057_361521373.txt  

  3. hive>  



4)测试hive

1.创建数据表

Java代码  收藏代码
  1. hive> create TABLE pokes( id INT, name string);  

  2. OK  

  3. Time taken: 8.192 seconds  


默认是使用输入格式(input format)为text ,分割符号使用^A(ctrl-a).

2.创建分区的数据表

Java代码  收藏代码
  1. hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);  

  2. OK  

  3. Time taken: 36.562 seconds  


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

3.显示数据表

Java代码  收藏代码
  1. hive> SHOW TABLES;  


显示所有的数据表

Java代码  收藏代码
  1. hive> SHOW TABLES '.*s';  


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

4.查询

Java代码  收藏代码
  1. hive> select * from pokes;  

  2. OK  

  3. Time taken: 0.505 seconds  



5.从本地加载数据

Java代码  收藏代码
  1. hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;  

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

6.从hdfs加载数据

Java代码  收藏代码
  1. LOAD DATA INPATH '/jd/files/kv1.txt' OVERWRITE INTO TABLE pokes;  


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

7. 删除数据表

Java代码  收藏代码
  1. hive> drop table pokes;  

  2. OK  

  3. Time taken: 0.726 seconds  



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

6)启动Hive Thrift Server

Java代码  收藏代码
  1. hive --service hiveserver  


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

Java代码  收藏代码
  1. root@master:/data/soft/hive/bin# ./hive --service hiveserver --help  

  2. usage HIVE_PORT=xxxx ./hive --service hiveserver  

  3.  HIVE_PORT : Specify the server port  


7)启动hwi

Java代码  收藏代码
  1. bin/hive --service hwi  


取消日志的方式

Java代码  收藏代码
  1. nohup bin/hive --service hwi > /dev/null 2> /dev/null &  


8)hiveserver三种启动方式

http://www.xuejiehome.com/blread-1931.html

by 雪洁 2015-06-16 06:23:31 1533 views
我来说几句

相关文章