【若泽大数据实战第十七天】Hive - DDL + DML Hive日志路径修改

本文介绍了如何在Hive中进行DDL和DML操作,包括创建、删除数据库与表,以及内部表和外部表的管理。特别讨论了如何修改Hive日志路径,防止日志被自动清理,并强调了在生产环境中使用外部表的重要性。此外,文章还涉及了数据类型的选取和分隔符的使用。
摘要由CSDN通过智能技术生成

前言:

上一个章节,若泽给我们讲的第一堂课Hive,详细的总结了,有关Hive的各种信息,本次课程讲讲Hive的 DDL

修改Hive日志路径

【若泽大数据实战】

在Hive中,默认的日志路径是在/tmp底下,一般Linux或者CentOS系统会一个月自动清理一次tmp底下的东西,所以要将日志进行更换位置。

首先需要cp一份hive-log4j.properties文件,在默认安装好Hive后是没有的。

编辑修改路径


查看日志可以发现Hive的默认底层是MapReduce


hive的环境下,输入代码后发现输入有错误时,想用Backspace删除错误命令时,键盘无反应,操作很简单:

无法删除


会话选项内把终端这里改为Linux就可以了


【若泽大数据面试题】

Hive的信息存放在哪里?

1、Hive的数据存放在HDFS之上(真实数据)

2、Hive的元数据可以存放在RDBMS之上(元数据)


Database

Hive中包含了多个数据库,默认的数据库为default,无论你是否创建数据库,默认都会存在,对应于HDFS目录是/user/hive/warehouse,可以通过hive.metastore.warehouse.dir参数进行配置(hive-site.xml中配置)

创建一个Hive数据库,查看存储在hdfs的什么路径上



配置完hadoop启动的时候出现如下警告信息:


如果是64位直接在log4j日志中去除告警信息。在/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop/log4j.properties文件中添加

  1. log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR  

现在显示正常,刚刚创建的Hive数据库也存在

DDL(Data Definition Language)

描述Hive表数据的结构:

打开Hive官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL


Create Database
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
  [COMMENT database_comment]
  [LOCATION hdfs_path] 
  [WITH DBPROPERTIES (property_name=property_value, ...)];

IF NOT EXISTS:加上这句话代表判断数据库是否存在,不存在就会创建,存在就不会创建(生产中一定要添加IF NOT EXISTS)。 如:create database if not exists dbname;
COMMENT:数据库的描述
LOCATION:创建数据库的地址,不加默认在/user/hive/warehouse/路径下

WITH DBPROPERTIES:数据库的属性

【若泽大数据实战】

【重点】每当我们使用一个Hive中的SQL时,一定要知道这条语句对应的元数据信息是怎么存储的,

创建一张表。一个数据库,注释信息再哪里 DB的存放在哪里,一下我做了详细实验

创建一个数据库指定路径,往库中插入一张表:

hive> create database hive2 LOCATION '/ruozedata_03';


[hadoop@hadoop000 ~]$ hadoop fs -ls /


hive> use hive2;    hive> create table b(id int);

查看相关创建后的信息,发现有b表,然后看文件的属性,最前面是一个d,ruozedata_03数据库就是一个文件夹


测试创建一个数据库并给数据库添加加一个备注,增加一些描述的信息,信息是key value

create database hive2_ruozedata comment 'this is ruozedata 03 test database ' with dbproperties('create'='ruoze','date'='2018-08-08');

查看刚刚每个创建的数据库的信息

hive> show databases;



hive> desc database hive;
hive            hdfs://hadoop000:9000/user/hive/warehouse/hive.db(路径)       hadoop  USER
Time taken: 0.028 seconds, Fetched: 1 row(s)

hive> desc database hive2;

hive2           hdfs://hadoop000:9000/ruozedata_03 (路径)       hadoop  USER
Time taken: 0.09 seconds, Fetched: 1 row(s)

hive> desc database hive2_ruozedata;

hive2_ruozedata this is ruozedata 03 test database(描述信息)                                                                   hdfs://hadoop000:9000/user/hive/warehouse/hive2_ruozedata.db        hadoop  USER

hive> desc database default;(默认数据库)
default Default Hive database  
hdfs://hadoop000:9000/user/hive/warehouse(指定路径并没有文件)       public  ROLE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值