hive-0.12安装详解

-----成王败寇(陈小春)
 

Hive安装部署

(安装会有版本问题 hadoop1.0版本以上的请安装hive-0.90测试

  hadoop2.0以上请安装hive-0.12.0或者最新版测试)

hive-0.9.0 下载地址:http://pan.baidu.com/s/1rj6f8

hive-0.12.0下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-0.12.0/

1.hive-0.12.0.tar.gz复制到/home/hadoop

2.解压hive-0. 12.0.tar.gz与重命名

#cd /usr/local

#tar -zxvf hive-0. 12.0.tar.gz

#mv hive-0. 12.0 hive

3.修改环境变量

修改/etc/profile文件。

#vi /etc/profile

增加

export HIVE_HOME=/hadoop/hadoop/hive

修改

exportPATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin

保存退出

#source /etc/profile

4.配置hive系统文件

4.1:修改conf目录下的模板文件

l  cd  $HIVE_HOME/conf

l  mv  hive-env.sh.template  hive-env.sh

 l  mv hive-default.xml.template  hive-site.xml
 
 

4.2.修改$HIVE_HOME/binhive-config.sh,增加以下三行

export JAVA_HOME=/usr/local/jdk

export HIVE_HOME=/home/hadoop/hive

export HADOOP_HOME=/home/hadoop/hadoop2

4.3.启动hive

启动hive时候,记得先启动hadoop(因为hive是操作hdfs中的数据)

jps命令查看当前启动的java程序

 

#hive

4.4.报错请修改hive-site.xml:vi编辑下: /auth

[FatalError] hive-site.xml:2002:16: The element type "value" must beterminated by the matching end-tag "</value>".

   2002  <value>auth</auth>

(在2002行第16字符那里: <value>auth</value>

 

hive>show tables;

此时还报错:

FAILED:Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.java.lang.RuntimeException: Unable to instantiateorg.apache.hadoop.hive.metastore.HiveMetaStoreClient

最后将hive-site.xml 里面hive.metastore.schema.verification 的值改为 false后,就没出现错误了。

hive>create table test(idint,name string);

hive>quit;

5.验证创建表是否成功

方法一:观察:#hadoop fs -ls /user/hive

参数:hive.metastore.warehouse.dir

方法二:

http://cloud4:50070    如果配置成功,查看/user/hive就存在

6.Hivemetastore

l  metastorehive元数据的集中存放地。metastore默认使用内嵌的derby数据库作为存储引擎

l  Derby引擎的缺点:一次只能打开一个会话

l  使用Mysql作为外置存储引擎,多用户同时访问

所以我们通常建议使用mysql,但是需要去配置

6.1.配置MySQLmetastore

6.1.1.上传mysql-connector-java-5.1.10.jar$HIVE_HOME/lib
6.1.2.登录MYSQL,创建数据库hive

l  #mysql -uroot -padmin

l  mysql>create database hive;

l  mysql>GRANT all ON hive.* TO root@'%' IDENTIFIED BY 'admin';

l  mysql>flush privileges;

l mysql>set global binlog_format='MIXED';   (如果报错就不要管)

6.1.3.mysql的数据库字符类型改为latin1alertdatabase

方法1:手动命令:(此处hive为数据库名)

alter database hive character set latin1 

6.1.4.修改$HIVE_HOME/conf/hive-site.xml

<property>

         <name>javax.jdo.option.ConnectionURL</name>

//hadoop0那么是hive所在的机子,要么是网关ip  cloud4:本机;192.168.56.1网关ip

如果用hive的机子,也就是本机,需要在linux上安装mysql,看下面补充msql安装流程

不过好像如果是cloud4show tables出错,改为localhost就好了!!!

         <value>jdbc:mysql://hadoop0:3306/hive?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>root</value>

</property>

<property>

         <name>javax.jdo.option.ConnectionPassword</name>

         <value>admin</value>

</property>

7.Hive的运行模式即任务的执行环境

1启动hive 命令行模式:

1:直接输入#/hive/bin/hive的执行程序,

2:或者输入 #hive --service cli

 

l  分为本地与集群两种

我们可以通过mapred.job.tracker 来指明

设置方式:

hive > SET mapred.job.tracker=local

 

2.hive验证启动的方法

l  1hive web界面的(端口号9999) 启动方式

#hive --service hwi &

用于通过浏览器来访问hive

http://hadoop0:9999/hwi/

l  2hive 远程服务(端口号10000) 启动方式

#hive --service hiveserver & 
 

8.Hive与传统数据库

hive-0.12安装详解_第1张图片

9.Hive的数据类型

l  基本数据类型

tinyint/smallint/int/bigint

float/double

boolean

string

       复杂数据类型

Array/Map/Struct

       没有date/datetime

10.Hive的数据存储:特色

l Hive的数据存储基于Hadoop HDFS

l  Hive没有专门的数据存储格式

l 存储结构主要包括:数据库、文件、表、视图

l  Hive默认可以直接加载文本文件(TextFile),还支持sequence file

l  创建表时,指定Hive数据的列分隔符与行分隔符,Hive即可解析数据

11.Hive的数据模型-数据库

l  类似传统数据库的DataBase

l  默认数据库"default"

使用#hive命令后,不使用hive>use <数据库名>,系统默认的数据库。

可以显式使用hive> use default;

创建一个新库

hive > create database test_dw;

11.1.修改仓库目录:/hive/conf/hive-site.xml

warehouse是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir}指定的数据仓库的目录

我们可以把value修改为:/hive

l  每一个 Table  Hive 中都有一个相应的目录存储数据。例如,一个表 test,它在HDFS 中的路径为:/ warehouse/test

l  所有的 Table 数据(不包括 ExternalTable)都保存在这个目录中。

l  删除表时,元数据与数据都会被删除

l 常用操作

l  创建数据文件t1.dat

l  创建表

l  hive>create table t1 (key string);

l  加载数据

l  hive>load data local inpath '/root/inner_table.dat' into table t1;

l  查看数据

l  select * from t1

l  select count(*) from t1

l  删除表 drop table t1


希望通过共享自己的笔记,来找到一群和我一样愿意分享笔记和心得的朋友,让大家一起进步

我的QQ:529815144,外号:小头


你可能感兴趣的:(hive-0.12安装详解)