hive的三种部署方式

2017-04-20 16:56

1.hive介绍

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是

学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

数据仓库

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分

析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制,简而言之,数据仓库是用来做查询分析的数据库,基本不用

来做插入,修改,删除

2.第一种部署方式,使用derby数据库,derby是hive内置的数据库,采用java编写

(1)上传解压apache-hive-1.2.1-bin.tar.gz

(2)修改配置文件

scp /usr/apache-hive-1.2.1-bin/conf/hive-default.xml.template hive-site.xml 

(3)修改hive-site.xml 的配置文件vi  hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>

(4)配置环境,启动程序

vi /etc/profile添加如下

export HIVE_HOME=/usr/apache-hive-1.2.1-bin
export PATH=$HIVE_HOME/bin:$PATH

加载生效source  /etc/profile

(5)启动程序

hive

3.第二种部署方式,本地模式链接mysql

(1)下载mysql-connector-java-5.1.32.tar.gz,解压将其中的mysql驱动jar包放入hive目录的lib中

(2)修改配置文件vi  hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>  
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive_remote/warehouse</value>  
</property>  
   <!--是否本地模式>
<property>  
  <name>hive.metastore.local</name>  
  <value>true</value>  
</property>  
     <!-mysql链接地址-> 
<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://localhost:3306/hive_remote?createDatabaseIfNotExist=true</value>  
</property>  
   <!-mysql的驱动-> 
<property>  
  <name>javax.jdo.option.ConnectionDriverName</name>  
  <value>com.mysql.jdbc.Driver</value>  
</property>  
    <!-mysql的账号密码->
<property>  
  <name>javax.jdo.option.ConnectionUserName</name>  
  <value>root</value>  
</property>  
 
<property>  
  <name>javax.jdo.option.ConnectionPassword</name>  
  <value>password</value>  

</property>  
</configuration>

(3)启动hive

4.第三种部署方式,远端服务的模式

(1)修改配置文件vi hive-site.xml

<configuration>  
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive/warehouse</value>  
</property>   
<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://192.168.108.11: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>password</value>  
</property>  
</configuration>  

(2)启动metastore服务

hive --service metastore

Starting Hive Metastore Server

(3)配置客户端

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>  
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive/warehouse</value>  
</property>    
<property>  
  <name>hive.metastore.local</name>  
  <value>false</value>  
</property>  
<property>  
  <name>hive.metastore.uris</name>  
  <value>thrift://192.168.108.11:9083</value>  
</property>  
</configuration>

(4)启动客户端

没有配置系统变量到hive的bin目录下执行./hive

Logging initialized using configuration in jar:file:/usr/apache-hive-1.2.1-bin/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive> 

登陆成功