搭建Hive平台

本文详细介绍了如何在三台机器上部署Hive平台,并提供了从单用户到多用户模式的升级方法,包括使用derby数据库的c/s模式,以及如何配置Hive与Apache Derby数据库的连接,实现多用户同时访问并提供Web界面。

搭建Hive平台 - 逖靖寒 - 博客园

搭建Hive平台

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 http://svn.apache.org/repos/asf/hadoop/hive/tags/release-0.4.1/ 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 http://labs.renren.com/apache-mirror/db/derby/db-derby-10.5.3.0/db-derby-10.5.3.0-bin.zip

解压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就部署完成了。我们可以直接在浏览器中输入: http://hadoop1:9999/hwi/ 进行访问了(如果不行话,请将hadoop1替换为实际的ip地址,如:http://10.210.152.17:9999/hwi/)。

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

关注Hive的schema

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

可以参考这篇文章了解如果使用mysql来替换derby:http://www.mazsoft.com/blog/post/2010/02/01/Setting-up-HadoopHive-to-use-MySQL-as-metastore.aspx

我们也可以使用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>

### 如何在线搭建 Hive 平台 搭建 Hive 平台通常涉及多个步骤,包括 Hadoop 和 MySQL 的配置以及 Hive 自身的安装与设置。以下是详细的说明: #### 1. 安装 Hadoop Hive 是构建在 Hadoop 上的数据仓库工具,因此需要首先安装 Hadoop 环境。推荐使用稳定版本的 Hadoop(如 Hadoop 3.x),并确保其正常运行。 - 下载 Hadoop 安装包,并按照官方文档完成安装和配置[^3]。 - 测试 Hadoop 是否成功启动,可以通过执行 `hdfs dfs -ls /` 命令验证集群状态。 #### 2. 配置 MySQL 数据库 为了存储 Hive 的元数据,建议使用外部数据库(如 MySQL)。这一步骤对于生产环境尤为重要。 - 安装 MySQL 数据库服务,并创建用于存储 Hive数据的专用数据库和用户账户[^2]。 - 使用 SQL 脚本初始化数据库结构,例如: ```sql CREATE DATABASE hive_db; USE hive_db; CREATE USER 'hive_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON hive_db.* TO 'hive_user'@'localhost'; FLUSH PRIVILEGES; ``` #### 3. 下载并解压 Hive 从 Apache 官方网站获取最新版 Hive 安装包(如 Hive 3.1.2),并将其部署至目标服务器。 - 执行以下命令下载、解压并移动文件夹位置: ```bash wget https://archive.apache.org/dist/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/ mv /usr/local/apache-hive-3.1.2-bin /usr/local/hive chown -R hadoop:hadoop /usr/local/hive ``` 此过程会将 Hive 文件放置于 `/usr/local/hive` 目录下。 #### 4. 配置 Hive 参数 编辑 Hive 的核心配置文件 `hive-site.xml` 来指定连接 MySQL 的方式以及其他必要的选项。 - 创建或修改 `hive-site.xml` 文件内容如下所示: ```xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive_db?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive_user</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> </configuration> ``` 注意替换其中的用户名、密码和其他敏感信息以匹配您的实际情况[^2]。 #### 5. 初始化 Hive 表结构 首次启动前需初始化表结构以便后续操作顺利进行。 - 运行 schema 工具脚本来建立所需的内部表格定义: ```bash schematool -dbType mysql -initSchema ``` #### 6. 启动 Hive CLI 或 Beeline 最后可以尝试通过命令行界面访问新搭建好的 Hive 实例。 - 如果一切无误,则可以直接输入以下指令进入交互模式: ```bash beeline -u jdbc:hive2://localhost:10000 ``` 至此已完成整个流程介绍,更多高级功能可根据需求进一步探索学习[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值