首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蜂窝仓库路径使用-默认路径,而不是我自己的hdfs路径

蜂窝仓库路径使用-默认路径,而不是我自己的hdfs路径
EN

Stack Overflow用户
提问于 2015-10-09 16:57:14
回答 2查看 3.7K关注 0票数 0

与ApacheHive1.1.0和.hiverc相关的问题

我已经安装了ApacheHive1.1.0。默认情况下,hdfs主//用户/单元/仓库,hdfs temp : /tmp

我在unix机器hdpadmin上有用户,现在我有了我的应用程序特定的HDFS路径。

Probelm:数据库是在默认的仓库目录中创建的,而不是应用程序特定的目录:/ app /myApp/HIVE/仓库

解决这个问题的办法是什么?

代码语言:javascript
复制
[root@cdh1 ~]# su - hiveuser
[hiveuser@cdh1 ~]$ vim .hiverc [created a hiverc file]
SET hive.metastore.warehouse.dir=/app/myApp/HIVE/WAREHOUSE;
SET hive.exec.scratchdir=/app/myApp/HIVE/TMP;
save and close
[hiveuser@cdh1 ~]$ hive

[hiveuser@cdh1 ~]$ hive

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.4.5-1.cdh5.4.5.p0.7/jars/hive-common-1.1.0-cdh5.4.5.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> set hive.metastore.warehouse.dir;
hive.metastore.warehouse.dir=/app/myApp/HIVE/WAREHOUSE
hive> set hive.exec.scratchdir;
hive.exec.scratchdir=/app/myApp/HIVE/TMP
hive> create database temp;
OK
Time taken: 0.561 seconds
hive> dfs -ls /app/myApp/HIVE/WAREHOUSE;  ['temp' database not shown]
hive> desc database temp; [probelm: Creating in the default warehouse path rather my path : /app/myApp/HIVE/WAREHOUSE] 
OK
temp hdfs://nameservice1/user/hive/warehouse/temp.db hiveuser   USER    
Time taken: 0.217 seconds, Fetched: 1 row(s)
hive>
EN

回答 2

Stack Overflow用户

发布于 2015-10-10 16:20:23

正如Apache Wiki页面中所解释的那样

hive.exec.scratchdir

为蜂巢的工作划出空间。Hive使用这个目录来存储查询的不同map/还原阶段的计划,以及存储这些阶段的中间输出。

hive.metastore.warehouse.dir

仓库的默认数据库的位置。

上述解释基本上意味着更改划痕目录位置无助于数据库位置,因为这只是Hive用来存储MapReduce作业进度/计划和任何其他中间数据的临时位置。

因此,您可以使用location参数或更改单元仓库目录,而不是更改划痕目录。在您的情况下,请使用:

代码语言:javascript
复制
CREATE DATABASE temp LOCATION '/app/myApp/HIVE/WAREHOUSE';

代码语言:javascript
复制
set hive.metastore.warehouse.dir='/app/myApp/HIVE/WAREHOUSE';
CREATE DATABASE temp;

当要创建的数据库有不同的位置时,可以使用前者,而当要创建的所有数据库都指向相同的位置时,则应该使用后者。

P.S.你也可以让你的划痕目录指向与你的数据库相同的位置;但是使用相同的位置进行划痕和数据库是没有意义的,除非你有一个特殊的用例需要这样做,因为Hive会根据执行查询的用户创建很多目录。

票数 0
EN

Stack Overflow用户

发布于 2020-01-16 08:40:51

在hive中,创建数据库时,它的信息以及默认位置存储在Hive (tbl:DBS和field:DB_LOCATION_URI)中。因此,在单元配置中更改Hive仓库路径属性不会产生任何影响。解决这个问题的两种方法(假设您已经更新了蜂巢配置并重新启动了亚稳态)-

  • 重新创建数据库或使用新数据库。
  • 更新上面提到的表格,以获取所需的单元数据库。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33043584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档