Hive 中数据仓库默认位置配置及库表关系

news/2024/5/20 5:09:29 标签: hdfs, hive, spark

1、原始位置的默认配置

hive中的Default(默认)数据仓库的最原始位置是在hdfs上的 /user/hive/warehouse(以下默认Hive的HDFS根目录为/user/hive)路径下,这个原始位置是本地的/usr/local/hive/conf/hive-default.xml.template文件默认配置的,

2、库表关系

1)默认情况下:

hdfs目录下,没有对默认的数据库default创建文件夹。如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹。

下图中abc,bonus,department,dept,emp为缺省库default下的几张表,目录名与表名一致。

2)指定库情况下

  如果创建了数据库,并指定表为该库下的表,Hive会在/user/hive/warehouse/下创建一个以库名命名的目录(如上图的a.db,b.db分别代表数据库a,b),该库的表目录在库目录下。

3)制定分区的情况下:

 如果为表设定了分区,则会在表目录下增加分区目录,目录名以“分区键名=分区值”的形式命名。如下图,表dept1中,设置了v1和v2两个名为a的分区。

3、修改数据仓库的原始位置只需在hive-site.xml自定义配置文件中设置如下信息即可:

<property>
<name>hive.metastore.warehouse.dir</name>
<value>目录</value>
<description>location of default database for the warehouse</description>
</property>
需要为该目录配置同组可写:

hdfs dfs -chmod g+w 目录
,另外也可以顺便在这个自定义配置文件中设置如下参数

 <property>
   <name>hive.cli.print.header</name>
   <value>true</value>
 </property> 
 <property>
   <name>hive.cli.print.current.db</name>
   <value>true</value>
 </property>
这样每次select返回结果信息就会显示有表头字段名了。


http://www.niftyadmin.cn/n/1264805.html

相关文章

Leecode 90. 子集 II DFS/位运算

原题链接&#xff1a;Leecode 90. 子集 II DFS class Solution { public:vector<vector<int>> res;void dfs(vector<int>& nums,vector<int> v,int n){res.push_back(v);for(int in;i<nums.size();i){if(i>n && nums[i-1]nums[i]…

hive中的group by分组查询注意和其他其他传统关系数据库sql的区别

顾名思义就是按照指定的一个或者多个字段就行分组查询&#xff0c;返回每个组的相关值&#xff0c;group by时常与聚合函数结合使用&#xff0c; 这里需要注意的是&#xff0c; 1、在hive中&#xff0c; 一旦有group by子句&#xff0c;那么&#xff0c;在select子句中只能有…

hive查询语句中的常见错误

1、case when --else end 语句中忘记写end&#xff0c;或者忘记把整个字句用as起别名&#xff0c;因为一个字段如果用case when条件语句计算后就是已经生成新的字段了&#xff0c;不能再用以前的字段名称。例如&#xff1a; 原来的字段是age&#xff0c;他的值是连续的int&…

Leecode 剑指 Offer 38. 字符串的排列 DFS

原题链接&#xff1a;Leecode 剑指 Offer 38. 字符串的排列 DFS class Solution { public:vector<string> res;vector<bool> v;void dfs(const string& s,int n,int l,string& t){if(ln){res.push_back(t);return ;}for(int i0;i<n;i){if(v[i] || (i…

hiveq sql语句的三种执行方式

hive脚本的三种执行方式 1. hive控制台交互式执行&#xff1b;2. hive -e "SQL"执行&#xff1b;或者 hive -S -e " sql" ,加了-S表示静音模式&#xff0c;即不会显示mapreduce的操作过程。 这种方式直接在bash shell终端里边输入 hive -e "SQL&q…

Leecode 567. 字符串的排列

原题链接&#xff1a;Leecode 567. 字符串的排列 class Solution { public:bool checkInclusion(string s1, string s2) {int n1s1.size();int n2s2.size();if(n1>n2) return false;vector<int> v1(26);vector<int> v2(26);for(int i0;i<n1;i){v1[s1[i]-a]…

学习人工智能

研一入学快一个月了&#xff0c;对于机器学习方面的学习没有方向感&#xff0c;一时不知道下一步该如何继续下去。 今天是2021年11月1日&#xff0c;实验室学习的第一个晚上&#xff0c;今晚收获不是很大&#xff0c;今天暂停了之前吴恩达的机器学习视频&#xff0c;开始了项目…

hive中的order by ,sort by ,distribute by,cluster by的用法与区别

一、order by order by后面不跟limit的话&#xff0c;order by会强制将reduce number设置成1&#xff0c;不加limit,会将所有数据sink到reduce端来做全局排序。多个reducer无法保证全局有序&#xff0c;但是因为只有一个reducer&#xff0c;就导致当输入数据规模较大时&#…