博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建Hive平台
阅读量:6341 次
发布时间:2019-06-22

本文共 2475 字,大约阅读时间需要 8 分钟。

 

Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。

本文讲解如何搭建一个Hive平台。假设我们有3台机器:hadoop1,hadoop2,hadoop3。并且都安装好了Hadoop-0.19.2(hive支持的Hadoop版本很多),hosts文件配置正确。Hive部署在hadoop1机器上。

最简单,最快速的部署方案

在Hadoop-0.19.2中自带了hive的文件。版本为0.3.0。

我们首先启动Hadoop:sh $HADOOP_HOME/bin/start-all.sh

然后启动hive即可:sh $HADOOP_HOME/contrib/hive/bin/hive

这个时候,我们的Hive的命令行接口就启动起来了,你可以直接输入命令来执行相应的hive应用了。

这种部署方式使用derby的嵌入式模式,虽然简单快速,但是无法提供多用户同时访问,所以只能用于简单的测试,无法实际应用于生产环境。所以,我们要修改hive的默认配置,提高可用性。

搭建多用户的,提供web界面的部署方案

目前只用比较多hive版本是hive-0.4.1。我们将使用这个版本来搭建hive平台。

首先,下载hive-0.4.1:svn co hive-0.4.1

然后,修改下载文件里面的编译选项文件shims/ivy.xml,将其修改为如下内容(对应的Hadoop版本为0.19.2)

<ivy-module version="2.0">

    <info organisation="org.apache.hadoop.hive" module="shims"/>
    <dependencies>
        <dependency org="hadoop" name="core" rev="0.19.2">
          <artifact name="hadoop" type="source" ext="tar.gz"/>
        </dependency>
        <conflict manager="all" />
    </dependencies>
</ivy-module>

接下来,我们使用ant去编译hive: ant package

编译成功后,我们会发现在build/dist目录中就是编译成功的文件。将这个目录设为$HIVE_HOME

修改conf/hive-default.xml文件,主要修改内容如下:

<property>

  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby://hadoop1:1527/metastore_db;create=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>org.apache.derby.jdbc.ClientDriver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>

在hadoop1机器上下载并安装apache derby数据库:wget

解压derby后,设置$DERBY_HOME

然后启动derby的network Server:sh $DERBY_HOME/bin/startNetworkServer -h 0.0.0.0

接下来,将$DERBY_HOME/lib目录下的derbyclient.jar与derbytools.jar文件copy到$HIVE_HOME/lib目录下。

启动Hadoop:sh $HADOOP_HOME/bin/start-all.sh

最后,启动hive的web界面:sh $HIVE_HOME/bin/hive --service hwi

这样,我们的hive就部署完成了。我们可以直接在浏览器中输入: 进行访问了(如果不行话,请将hadoop1替换为实际的ip地址,如:)。

这种部署方式使用derby的c/s模式,允许多用户同时访问,同时提供web界面,方便使用。推荐使用这种部署方案。

关注Hive的schema

我们上面谈到的2中部署方案都是使用derby数据库来保存hive中的schema信息。我们也可以使用其他的数据库来保存schema信息,如mysql。

可以参考这篇文章了解如果使用mysql来替换derby:

我们也可以使用HDFS来保存schema信息,具体的做法是修改conf/hive-default.xml,修改内容如下:

<property>

  <name>hive.metastore.rawstore.impl</name>
  <value>org.apache.hadoop.hive.metastore.FileStore</value>
  <description>Name of the class that implements org.apache.hadoop.hive.metastore.rawstore interface. This class is used to store and retrieval of raw metadata objects such as table, database</description>
</property>

 

转载于:https://www.cnblogs.com/licheng/archive/2011/11/09/2242330.html

你可能感兴趣的文章
Windows 10 设置登录时不用 Microsoft 账户
查看>>
Spring事务的传播行为
查看>>
打包rpm包
查看>>
一起读经典《C Primer Plus(第6版)中文版》
查看>>
ssm框架启动报错
查看>>
我的友情链接
查看>>
java流关闭改进
查看>>
suse 11 rpm 安装gcc
查看>>
moip-ruby
查看>>
try
查看>>
Ansible自动化运维之YAML、基础元素
查看>>
MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案
查看>>
前端开发--实战篇之测试框架
查看>>
eyoucm arclist 文档列表
查看>>
$(document).ready(function()
查看>>
Python学习之路——Linux基础之IP地址管理
查看>>
央行特急通知,这下马云、马化腾恐怕真得“亏的坐公交车了”
查看>>
如何恢复回收站被清空的文件?简单图文教程
查看>>
企业wifi安全管家,贴身又暖心的wifi管理系统
查看>>
3500 万美元:MySpace 终于被卖了
查看>>