将 Hive 配置为在本地模式下运行

Posted

技术标签:

【中文标题】将 Hive 配置为在本地模式下运行【英文标题】:Configuring Hive to run in Local Mode 【发布时间】:2015-10-23 15:53:41 【问题描述】:

您好,我正在尝试以本地模式运行 Hive,我已设置 HIVE_OPTS 环境变量

export HIVE_OPTS='-hiveconf 
mapred.job.tracker=local 
-hiveconf fs.default.name=file:////<myhomedir>/hivelocal/tmp 
-hiveconf hive.metastore.warehouse.dir=file:////<myhomedir>/hivelocal/warehouse
-hiveconf javax.jdo.option.ConnectionURL=jdbc:derby:;databaseName=/<myhomedir>/hivelocal/metastore_db;create=true'

并使用hive客户端连接到hive

当我创建表(名称demo)时,我仍然看到表是在HDFS 的default 数据库中创建的。我期望在本地文件系统(file:///)中创建表,因为我使用hive.metastore.warehouse.dir=file:////&lt;myhomedir&gt;/hivelocal/warehouse设置了仓库

我错过了什么吗?

PS : 我正在使用 Cloudera 发行版

【问题讨论】:

【参考方案1】:

我也面临同样的问题。以下是步骤(经过反复试验),我已按照以下步骤进行修复。

    转到 /etc/hive/conf 并重命名由 cloudera 生成的 hive-site.xml

    检查/tmp/hive的权限并给予适当的权限。暂时,只是为了测试,我已经给予:

    [cloudera@quickstart ~]$ sudo chmod 777 /tmp/hive/

    配置本地模式:

    [cloudera@quickstart ~]$ export HIVE_OPTS='-hiveconf mapred.job.tracker=local -hiveconf fs.default.name=file:///home/cloudera/hivelocal/tmp -hiveconf hive.metastore.warehouse.dir=file:///home/cloudera/hivelocal/warehouse –hiveconf javax.jdo.option.ConnectionURL=jdbc:derby:;databaseName=/home/cloudera/hivelocal/metastore_db;create=true'

    创建表:

    hive&gt; Create table doc_one(text string) row format delimited fields terminated by '\n' stored as textfile;

    表在/home/cloudera/hivelocal/

    中创建成功

【讨论】:

谢谢@Vinkal。但是,我无法重命名hive-site.xml,因为我在一个通用的开发箱中工作。

以上是关于将 Hive 配置为在本地模式下运行的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Azure Blob 存储容器挂载为在 Python 中以独立模式在本地运行的 Spark 作业的目录?

八hive3.1.2 安装及其配置(本地模式和远程模式)

Hive 2Hive 的安装配置(本地MySql模式)

Hive 3Hive 的安装配置(本地derby模式)

Hive 1.2.1 本地模式安装笔记

数据仓库hive本地模式安装