在使用hive shell之前我们需要先安装hive,并启动hdfs

请参考:https://www.cnblogs.com/lay2017/p/9973298.html

hive shell

我们先进入安装目录

cd /usr/local/hadoop/hive/apache-hive-1.2.-bin

使用Hive命令启动hive shell

hive

查看一下数据库,发现有一个默认的default

我们需要创建一个新的test数据库

再看一下数据库,test数据库已经创建完成了

我们切换到test数据库

创建一张t_user表,你会看到创建表的语句显得似乎很麻烦,这么长一句

CREATE TABLE users(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORED AS TEXTFILE;

我们分开来看,建表的简单语句,如

create t_user(id int, name String);

而每一列分隔符就是

ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '

每行的分隔符就是

LINES TERMINATED BY '\n'

最后存储的文件格式就是txt

STORED AS TEXTFILE;

为了更清楚建表语句为什么这么建,我们在/tmp目录下建立一个user.txt,内容如下(注意:每个单词之间是空格分隔,每行是\n分隔,这也是为什么我们在建立hive的表的时候需要配置它的格式,因为我们在读取txt数据的时候需要按照格式进行读取,否则你将查询到一堆的null)

1 lay
2 marry
3 gary

然后我们在hive shell中,把该txt数据给加载到hive中

load data local inpath '/tmp/user.txt' overwrite into table t_user; // 加载本地数据到t_user表中

然后我们查询一下t_user表中的数据,如下

数据就像关系型数据库一样展示,这就是hive的SQL简单查询功能

常用命令

create database test; // 创建数据库
drop database test; // 删除数据库
drop database test cascade; // 强制删除数据库
show databases; // 列出所有数据库
use test; // 使用数据库 create t_user(id int, name String); // 创建表
CREATE TABLE users(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORED AS TEXTFILE; // 按照格式创建表,否则load data无法正常读取数据
describe t_user; // 查询表结构
drop table t_user; // 删除表
alter table t_user add columns(age int); // 更改表,新增列
load data local inpath '/tmp/user.txt' overwrite into table t_user; // 加载本地数据到t_user表中
load data inpath '/tmp/user.txt' overwrite into table t_user; // 从hdfs加载数据到t_user表中

参考文档:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallationandConfiguration

二、hive shell常用命令的更多相关文章

  1. (转)Hbase shell 常用命令(1)

    Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...

  2. 教老婆学Linux运维(二)Linux常用命令指南【上】

    目录 教老婆学Linux(二)Linux常用命令指南[上] 一.概述 二.常用命令 教老婆学Linux(二)Linux常用命令指南[上] 作者:姚毛毛的博客 tips:文章太长,分两篇发出,本篇发前三 ...

  3. Shell 常用命令总结

      Shell常用命令总结 1  ls命令:列出文件 ls -la 列出当前目录下的所有文件和文件夹 ls a* 列出当前目录下所有以a字母开头的文件 ls -l *.txt 列出当前目录下所有后缀名 ...

  4. Dockerfile自动制作Docker镜像(二)—— 其它常用命令

    Dockerfile自动制作Docker镜像(二)-- 其它常用命令 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器 c. 上一篇:Dockerf ...

  5. shell常用命令归类整理

    shell 命令整理     bash shell 含有许多功能,因此有许多可用的命令:本文档仅罗列了一些常用命令及其使用频率较高的参数.#本文档仅罗列了一些常用命令及其使用频率较高的参数.#vers ...

  6. hbase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  7. 【转载】HBase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  8. Hive Shell常用操作

    1.Hive非交互模式常用命令: 1) hive -e:从命令行执行指定的HQL,不需要分号: % hive -e 'select * from dummy' > a.txt 2) hive – ...

  9. dirname和shell常用命令

    $ cd `dirname $0` 和PWD%}  显示当前目录名称${#var}             替换为变量字符个数特殊变量$ 当前SHELL的PID? 前一个命令的退出状态! 后台执行的上 ...

随机推荐

  1. Linux基础命令(一)

    Linux语法命令 [选项] 参数注意:[]内容是对命令的扩张1.命令中单词之间空格隔开2.单行命令最多256个字符3.大小写区分 clear 清屏pwd 查看当前目录cd 切换目录    .表示当前 ...

  2. 爬虫实战3:使用request,bs4爬动态加载图片

    参考网站:https://blog.csdn.net/Young_Child/article/details/78571422 在爬的过程中遇到的问题: 1.被ban:更改header的User-Ag ...

  3. vscode 本地调试nodejs

    1.首先通过node-inspect插件可以debug   nodejs ,先起nodejs服务,再启用node-inpector服务 安装调试器 npm install -g node-inspec ...

  4. string类型介绍

    一.前言 int,float,char,C++标准库提供的类型:string,vector. string:可变长字符串的处理:vector一种集合或者容器的概念. 二.string类型简介 C++标 ...

  5. css左右布局,左侧固定,右侧自适应

    实现布局的几种方法,见代码: <!DOCTYPE html> <html lang="cn"> <head> <meta charset= ...

  6. 【EF数据库链接报错】“The underlying provider failed on open”

    EF在操作数据库时要反复链接.断开数据库,如果连接字符串是windows 服务验证,而不是用的用户名和密码,那么尝试访问数据库的用户是NT AUTHORITY\NETWORK SERVICE.权限不够 ...

  7. Hexo博客系列(三)-将Hexo v3.x个人博客发布到GitLab Pages

    [原文链接]:https://www.tecchen.xyz/blog-hexo-env-03.html 我的个人博客:https://www.tecchen.xyz,博文同步发布到博客园. 由于精力 ...

  8. python实现数据库增删改查

    column_dic = {"id": 0, "name": 1, "age": 2, "phone": 3, &quo ...

  9. django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty

    https://www.e-learn.cn/content/wangluowenzhang/165461 问题: I created a new project in django and past ...

  10. net与树莓派的情缘(二)

    虽然我们可以很方便的通过ssh譬如putty或者vnc连接操控树莓派,但是毕竟树莓派资源没那么高,在上面编程,调试要吃力的多.所以还是想在pc上编程上传到树莓派或者最好,文件共享,可以直接读写共同的文 ...