hadoop及hive常用命令查询

hadoop操作命令

基本命令格式:

hadoop fs -cmd < args >

  • 创建目录
hadoop fs -mkdir -p < hdfs path>

  • 删除文件
hadoop fs -rm < hdfs file >
  • 删除目录
hadoop fs -rm -r < hdfs dir>	#删除目录
hadoop fs -rm -r < hdfs dir>/* #删除目录中的内容

  • 修改路径
hadoop fs -mv < hdfs file or dir >... < hdfs dir >
hadoop fs -cp < hdfs file > < hdfs file >

  • 查看目录文件
hadoop fs -ls -R /
  • 查询文件数目
hadoop fs -count < hdfs path >
  • 查询文件大小

hadoop fs -du - h < hdsf path>
  • 路径的状态信息
hdoop fs -stat [format] < hdfs path > [format]可选参数有:%b(文件大小),%o(Block大小),%n(文件名),%r(副本个数),%y(最后一次修改日期和时间)

其他

  • 上传本地文件至hdfs中
hadoop fs -put < local file or dir >...< hdfs dir >	hdfs dir 一定要存在,否则命令不会执行
  • 下载hdfs文件至本地
hadoop fs -get < hdfs file > < local file or dir> local file不能和 hdfs file名字不能相同,否则会提示文件已存在

hive操作命令

执行环境

hive环境中所有命令续以分号“;”结尾。

hive	终端输入该命令即可进入hive环境
hive>quit;	退出hive环境

输出字段设置

set hive.cli.print.header=true;

  • 创建表

CREATE EXTERNAL TABLE ${table_name}	#创建一个指定名字的表。若该表存在,则抛出异常;EXTERNAL,外部表,须指定LOCATION
(
cookie string comment '用户COOKIE',	#字段信息:key, key类型, 注释
price int comment '用户对应车型价格',
source int comment '来源'
)
PARTITIONED BY(dt STRING, type STRING)	#两个分区,每一个分区单独存在一个目录下
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'	#'\t'为分割符,'\n'为换行符
STORED AS TEXTFILE	#存储格式:TEXTFILE(默认), RCFILE(行列存储),INPUTFORMAT(自定义)
LOCATION '${HDFS_DIR}/${hive_db}/${table_level}/${table_name}';	#指定位置
ALTER TABLE ${table_name} SET SERDEPROPERTIES('serialization.null.format'='');	#修改表中默认的NULL为''

CREATE TABLE IF NOT EXISTS `jiaodiantu`( 
  `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY comment '主键id', 
  `caller` INT UNSIGNED comment '调用方id', 
   `device` INT UNSIGNED comment '设备id',
   `dst_img` VARCHAR(100) NOT NULL comment '焦点图url',
   `txt_img` VARCHAR(100) NULL comment '文字图url',
   `status` BOOLEAN comment 'dst_img删除状态',
    `Created_STime` DATETIME NOT NULL default CURRENT_TIMESTAMP comment '创建时间',
    `Modified_STime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '修改时间'
   )ENGINE=InnoDB DEFAULT CHARSET=utf8 comment '焦点图';
  • 复制表,不复制数据

CREATE TABLE ${new_table_name} LIKE ${old_table_name};
  • 增加分区
alter table ${table_name} add partition(dt='2017-11-01') location '${HDFS_DIR}/${hive_db}/${table_level}/${table_name}/part20171101';

  • 删除表

drop table if exists ${table_name};
  • 删除分区
alter table ${table_name} drop partition(dt ='2017-11-01', type='test');

  • 更改分区表的位置

  • 修改表的名字
alter table ${old_name} rename to ${new_name};

  • 查询hive库
show databases;	查看所有hive库列表
desc database ${db_name};	查看hive库信息
  • 查询表字段
show tables;	查看表列表
desc ${table_name};	查看某表信息
  • 查看表的分区

show partitions ${table_name};	#

其他

  • 上传本地文件至hive表

load data local inpath '/data/home/hzhj/car_list.txt' overwrite into table car_list partition(dt='2017-11-01',type='train');	#overwrite:重写,会覆盖之前所有数据

参考文献:

  1. https://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
  2. https://cloud.tencent.com/document/product/589/12317
  3. http://www.runoob.com/wp-content/uploads/2016/07/png-Hadoop-by-StuQ.png
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值