将 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:////<myhomedir>/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> Create table doc_one(text string) row format delimited fields terminated by '\n' stored as textfile;
表在/home/cloudera/hivelocal/
【讨论】:
谢谢@Vinkal。但是,我无法重命名hive-site.xml
,因为我在一个通用的开发箱中工作。以上是关于将 Hive 配置为在本地模式下运行的主要内容,如果未能解决你的问题,请参考以下文章