Hive安装部署

介绍

Hive是一个数据仓库,用于存储结构化数据,能让用户使用sql来进行数据管理。Hive构建在Hadoop系统之上,它的数据存储在HDFS中,Hive中sql会转化成MapReduce任务运行。

环境准备

1、Hadoop
2、Hive安装包apache-hive-1.2.2-bin.tar.gz
下载地址一
下载地址二

安装

本篇内容使用hive 1.2.2版本,其他版本配置可能不同

1、解压压缩包

tar -zxvf apache-hive-1.2.2-bin.tar.gz

2、修改配置文件hive-site.xml

此配置是HA高可用,如不需要移除zookeeper相关配置即可
主要修改warehouse存储位置,此为HDFS路径,存储真实数据
metastore远程仓库配置,hive元数据信息存储位置,以MySQL为例
hiveserver2配置,hive运行时提供的服务

<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hivepos/warehouse</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.223:3306/hivepos?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>root</value>
<description>username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root123</value>
<description>password to use against metastore database</description>
</property>

<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
<description></description>
</property>

<property>  
<name>datanucleus.autoCreateTables</name>  
<value>true</value>  
</property>

<property>  
<name>datanucleus.readOnlyDatastore</name>  
<value>false</value>  
</property>

<property>  
<name>datanucleus.autoCreateColumns</name>  
<value>true</value>
</property>

<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
<description></description>
</property>

<property>
<name>hive.support.concurrency</name>
<value>true</value>
<description>Whether hive supports concurrency or not. A zookeeper instance must be up and running for the default hive lock manager to support read-write locks</description>
</property>

<!-->hive HA高可用配置,hiveserver2和metastore均有高可用配置,依赖于zookeeper,jdbc访问url:jdbc:hive2://<zookeeper quorum>/<dbName>;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2<-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://172.18.13.128:9083,thrift://172.18.13.129:9083</value>
<description> A comma separated list of metastore uris on whichmetastore service is running </description>
</property>
<property>
   <name> hive.cluster.delegation.token.store.class</name>
   <value>org.apache.hadoop.hive.thrift.ZooKeeperTokenStore</value>
<description>Hive defaults to MemoryTokenStore, or ZooKeeperTokenStore</description>
</property>

<property>  
<name>hive.server2.support.dynamic.service.discovery</name>  
<value>true</value>  
</property>  
   
<property>  
<name>hive.server2.zookeeper.namespace</name>  
<value>hiveserver2</value>  
</property>  

<property>
<name>hive.zookeeper.quorum</name>
<value>172.18.13.128,172.18.13.129,172.18.13.130</value>
<description>The list of zookeeper servers to talk to. This is only needed for read/write locks.</description>
</property>

<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
<description>Port number of HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description>
</property>

<property>
<name>hive.server2.thrift.bind.host</name>
<value>172.18.13.128</value>
<description>Bind host on which to run the HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description>
</property>
	  
</configuration>

3、配置环境变量,修改/etc/profile

HA高可用启动各个节点服务即可。除了hiveserver2有高可用,metastore也有高可用

export HIVE_HOME=/home/hadmin/hive-1.2.2
export HCATALOG_HOME=/home/hadmin/hive-1.2.2/hcatalog
export PATH=$PATH:$HIVE_HOME/bin:$HCATALOG_HOME/bin

4、启动hiveserver2服务

nohup hive --service hiveserver2 &
或者
./hiveserver2

5、启动metastore服务

nohup hive --service metastore &

SQL使用

//进入客户端,运行命令
hive
//创建database
create database db;
//创建表
create table test(id int,name string);
//插入数据
insert into test(id,name) values(1,'tom');
//查询
select * from test;
//清空表
truncate table test;
//删除表
drop table test;
//退出客户端
quit;

注意事项

hive出现中文乱码或者是不能删除表等现象,原因是hive默认编码是latin1,与MySQL中编码不一致。

MySQL中存储hive元数据的DataBase设置成latin1编码
修改MySQL服务编码为utf-8

水平一般,能力有限,大数据小学生一枚。文章主要用于个人学习和总结,如果能给他人带来帮助,纯属意外。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值