hadoop学习笔记--11.hive DDL操作

一、hive的数据类型


1.基本类型
  整数类型:TINYINT,SMALLINT,INT,BIGINT,以上类型分别对应java中的byte,short,int,long。
  小数类型:FLOAT,DOUBLE
  布尔类型:BOOLEAN
  字符串类型:STRING,VARCHAR,CHAR
2.复杂类型 
 ARRAY,MAP,STRUCT,TIMESTAMP(DATE)
 常用的就是int ,string,float。
 

二、数据库的DDL操作


建议直接参考官方文档:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

1.创建数据库

USE database_name;
三、数据表的DDL操作


1.创建数据表

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)
  [(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
  [COMMENT table_comment]
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [SKEWED BY (col_name, col_name, ...)                  -- (Note: Available in Hive 0.10.0 and later)]
     ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
     [STORED AS DIRECTORIES]
  [
   [ROW FORMAT row_format] 
   [STORED AS file_format]
     | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  -- (Note: Available in Hive 0.6.0 and later)
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]   -- (Note: Available in Hive 0.6.0 and later)
  [AS select_statement];   -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)


  这是官方文档给出的创建数据表的格式。不多做解释
解释一下几个关键词:

创建内部表: hive会把数据文件移动到它管理的数据仓库目录下
创建外部表: 需要添加EXTERNAL关键词。不会移动文件,与内部数据表主要区别体现在加载数据和删除数据表上。
创建分区: 需要添加PARTITIONED BY(关键词)
创建桶: 需要添加CLUSTERED BY(关键词)
指定列的分割格式: ROW FORMAT DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]]
指定行的分割格式: COLLECTION ITEMS TERMINATED BY ‘\n’
指定存储的文件格式: STORED AS file_format
指定表格存放的位置: LOCATION hdfs_path


创建表的三种方式:

1.正常新建一张表。
2.创建一张表的子表(AS)

选择其中的几张作为新表的结构
create table IF NOT EXISTS default.bf_log_20170727_sa AS select ip,user from default.bf_log_20170727;

3.复制一张表的格式,不含表的数据(like)

create table IF NOT EXISTS default.bf_log_20170728 like  default.bf_log_20170727;


内部表与外部表的区别:
  ①内部表 的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被移动到数据仓库目录中;之后对数据对访问将会直接在数据仓库目录中完成。删除表时,表中的数据和元数据将会被同时删除;
  ②外部表 只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个 外部表 时,仅删除该链接;

2.删除数据表

DROP TABLE [IF EXISTS] table_name;


3.清空数据表
  不删除表的结构,只清空表的数据

TRUNCATE TABLE table_name [PARTITION partition_spec];

partition_spec:
  : (partition_column = partition_col_value, partition_column = partition_col_value, ...)


4.修改数据表
  (1). 数据表重命名(rename to)

ALTER TABLE table_name RENAME TO new_table_name;


 (2). 修改列名(change )
 

ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type
  [COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];


  (3). 增加或删除列(add/replace)

ALTER TABLE table_name 
  [PARTITION partition_spec]                 -- (Note: Hive 0.14.0 and later)
  ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
  [CASCADE|RESTRICT]                         -- (Note: Hive 1.1.0 and later)


  (4). 分区操作

再次推荐官方文档,详细还有例子!!!!
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL  

<think>好的,我现在需要回答用户关于如何通过ps命令查看HiveServer2的运行状态以及相关Java参数配置的问题。首先,我得回顾用户提供的引用内容,看看有没有相关的信息。 根据引用[2],HiveServer2是基于Thrift RPC实现的,允许远程客户端执行SQL请求。而用户的问题是关于检查其进程状态和Java参数,所以可能需要查看运行中的HiveServer2进程。此外,引用[4]提到了使用beeline连接HiveServer2的示例,其中涉及主机和端口配置,这可能进程参数有关。 接下来,我需要考虑在Linux系统中如何使用ps命令来查找Java进程。通常,HiveServer2作为一个Java应用程序运行,因此可以通过ps命令结合grep来筛选相关的Java进程。用户可能希望看到进程的PID(进程ID)、启动参数等信息。 首先,用户需要确定HiveServer2的进程是否正在运行。常用的命令是ps -ef | grep HiveServer2,但更准确的做法是查找包含特定主类(如org.apache.hive.service.server.HiveServer2)的Java进程。因此,命令应该是ps -ef | grep HiveServer2,或者更精确地使用ps aux | grep 'HiveServer2'。 然后,关于Java参数的配置,HiveServer2的启动参数可能包括内存设置、日志路径等。这些参数通常在启动脚本中配置,比如hive-config.sh或者通过环境变量。用户可以通过ps命令查看到的命令行参数,例如-Xmx(最大堆内存)、-Xms(初始堆内存)等。 另外,引用[1]中提到了HiveServer2的配置,如绑定主机和端口,但这些是在hive-site.xml中设置的,可能不会直接体现在ps的输出中。不过,其他Java系统属性(如-D参数)可能会在进程参数中显示,比如Derby连接配置或其他Hive相关属性。 可能还需要考虑权限问题,用户是否有权限查看其他用户的进程。此外,如果HiveServer2是通过服务管理工具(如systemd)启动的,可能需要检查服务状态,但用户明确要求使用ps命令。 总结步骤: 1. 使用ps和grep命令查找包含HiveServer2主类的进程。 2. 分析输出结果中的PID、用户、内存参数和其他Java配置。 3. 解释各参数的含义,如内存设置、GC配置等。 需要确保命令的正确性,例如使用正确的grep过滤词,避免遗漏或误判。此外,可能需要提醒用户如果有多个实例运行的情况,需要根据具体情况调整命令。</think>要检查HiveServer2的运行状态及Java参数配置,可通过以下步骤实现: --- ### **1. 查看HiveServer2进程状态** 执行命令过滤包含`HiveServer2`主类的Java进程: ```bash ps aux | grep 'HiveServer2' ``` **输出示例**: ``` hadoop 12345 2.5 8.3 1234567 89012 ? Sl Mar01 10:23 /usr/java/jdk1.8.0_301/bin/java -Xmx2048m -Dlog4j.configurationFile=/opt/hive/conf/log4j2.properties ... org.apache
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值