hive安装测试及Hive 元数据的三种存储方式

一 hive安装测试

1、下载解压

tar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz)
将解压后的hive-0.8.1文件放在系统的/home/hadooptest/中。
2、环境变量配置
在.bash_profile中添加:
export HIVE_HOME=/home/hadooptest/hive-0.8.1
export PATH= HIVEHOME/bin: H I V E H O M E / b i n : PATH
另外环境变量中需要有JAVA_HOME,HADOOP_HOME
3、配置文件拷贝
复制conf目录下的.template生成对应的.xml或.properties文件:
cp hive-default.xml.template hive-site.xml
cp hive-log4j.properties.template hive-log4j.properties
4、修改配置文件
将org.apache.hadoop.metrics.jvm.EventCounter改成:org.apache.hadoop.log.metrics.EventCounter , 这样将解决异常:

 WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated.  
 Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.

5、启动测试
<script type="math/tex" id="MathJax-Element-2"> </script>HIVE_HOME/bin/hive
hive> show tables;
OK
Time taken: 3.496 seconds
执行成功。

二、hive元数据的三种存储方式
Hive 将元数据存储在 RDBMS 中,有三种模式可以连接到数据库,其中1、2均属于本地存储,3属于远端存储,对于使用外部数据库存储元数据的情况,我们在此将会以mysql举例说明。
1、Single User Mode:
默认安装hive,hive是使用derby内存数据库保存hive的元数据,这样是不可以并发调用hive的,
这种模式时hive默认的存储模式,。
使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,配置文件中的“hive.metastore.warehouse.dir”指出了仓库的存储位置(注意对于hive来说,数据是存储在hdfs上的,元数据存储在数据库),默认属性值为/user/hive/warehouse,假如利用hive
CLI创建表records,则在hdfs上会看到如下目录:/user/hive/warehouse/records/ 此目录下存放数据。命令:load data local inpath ‘input/test.txt’ overwrite into table records; 这一命令会告诉hive把指定的本地文件放到它的仓库位置,此操作只是一个文件的移动操作,去掉local的load命令为把hdfs中的文件进行移动。

2、Multi
User Mode:
通过网络连接到一个数据库中,是最经常使用到的模式。假设使用本机mysql服务器存储元数据。这种存储方式需要在本地运行一个mysql服务器,并作如下配置(需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下)。

(1)mysql配置
这种情况需要在mysql中配置对应的hive用户,使用以下命令创建hadoop用户并授予权限
create user ‘hadoop’@’%’ identified by ‘hadoop’;
grant all privileges on . to ‘hadoop’@’%’ with grant option;
通过以下命令可以查看mysql的所有用户情况
SELECT DISTINCT CONCAT(‘User: ”’,user,”’@”’,host,”’;’) AS query FROM mysql.user;
(2)需要在hive_site.xml对应的配置进行修改,其中hive_remote是数据仓库名

hive.metastore.warehouse.dir

/user/hive_remote/warehouse

hive.metastore.local

true

javax.jdo.option.ConnectionURL

jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName

hadoop

javax.jdo.option.ConnectionPassword

hadoop

启动hive 在cli命令行下创建表student,在mysql中通过 use hive_remote(切换到hive_remote数据库),通过select * from TBLS 可以看到我们新创建的数据库,这表明独立mysql存储元数据搭建成功。

3、Remote Server Mode:
在服务器端启动一个 MetaStoreServer,客户端利用 Thrift 协议通过 MetaStoreServer 访问元数据库。

客户端重要配置是hive.metastore.urls,用于通过thrift连接metastore,默认 metastore端口是9083(hadoop指南说可以通过设置METASTORE_PORT环境变量来修改metastore默认端口,但是我没有连接成功)。

这种方式要单独启动metastore,命令为hive –service metastore

通过cli执行show tables,成功则表示remote server mode配置成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值