天天看点

基于Hadoop的数据仓库Hive的基本应用(一)||两种数据导入方法在昨天的基础上,做的Hive的应用方法

在昨天的基础上,做的Hive的应用方法

接着已经搭建配置好后,直接在根目录下进行hive(按课件说明,也要先进行启动HDFS和YARN)

创建create//删除drop//查看show//使用use——数据库、表

导入文件/数据:

①把本地的.txt文件里的数据放到hive后:

或先传到本地,再传到HDFS上(可以在第二个上上传到hadoop)

hadoop命令

[[email protected] ~]$ hadoop fs -put 519.txt  /user/hive/warehouse/xp.db/xpp

519.txt是在本地的文件   后面是xp数据库下的xpp的表下

②用load的命令:(没太大区别)

load

先在active创建表——在standby里rz文件/数据--在pwd查找路径——

load data local inpath ‘路径/文件名.txt’

into table 表名;

不加local就是HDFS了;

可以反复的插入数据;

overwrite 覆盖(同名的文件)

直接into :是追加

当然,再次之前,要先在active上把表建好,这里最好不要用简单的创建表的语句,根据不同的条件和需求,一次性完成:

语法  (下拉看说明
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name 
   [(col_name data_type , …  …)]  
   [PARTITIONED BY (col_name data_type  ...)] 
   [SORTED BY (col_name [ASC|DESC], ...)] 
   [ROW FORMAT row_format] 
   [STORED AS file_format] 
   [LOCATION hdfs_path]
说明
external可以让用户创建一个外部表,在建表的同时指定一个指向HDFS上的实际数据的路径LOCATION,而不加EXTERNAL关键字是创建内部表,会将数据移动到数据仓库指向HDFS默认路径/user/hive/warehouse/;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和真实数据(表内容)会被一起删除,而外部表只删除元数据,不删除真实数据(表内容);if not exists如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXISTS 选项来忽略这个异常;
sorted by按字段排序(asc,desc);
stored as存储文件类型如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCE;
row format 指定数据切分格式, DELIMITED [FIELDS TERMINATED BY char] [COLLECTION(集合类型--Map或者数组之类的结构,例如这么存储,1,地址信息:中央大街) ITEMS TERMINATED BY char] [MAP KEYS TERMINATED BY char] [LINES(行 默认按照回车符) TERMINATED BY char]
partitioned by创建表时指定的partition的分区空间
           

内部表:存放在指定/默认的路径下

外部表:放在指定的路径下

基本的情况就是:

hive> create table if not exists xpp(id int,name string)

> row format delimited fields terminated by ',';  以,为分割

顺序:建数据库——建表(完整的)——把本地文件传到表里——查询表

hive> select * from xpp;

以及一些基本的条件查询(where)等;

值得注意的是:

在select  count(*) from xpp;

这样就开始了进行MapReduce(查询)的进程:

·和一般的情况来说,会很慢,更合适用于大数据集的离线计算

有差错的话,就可能之前的错误操作乱了,重新进hive,重新进一遍你自己的数据库和你自己的表,再进行后面操作。

 分区:

创建表的时候,第二行:partitioned by (新的一列名 类型)

基于Hadoop的数据仓库Hive的基本应用(一)||两种数据导入方法在昨天的基础上,做的Hive的应用方法

插入数据的时候,分区直接在括号里写上:

基于Hadoop的数据仓库Hive的基本应用(一)||两种数据导入方法在昨天的基础上,做的Hive的应用方法

创建分区的那一行要在row分割那一行的上面

创建的数据库、表、表信息等等可以在:

1.web端看

基于Hadoop的数据仓库Hive的基本应用(一)||两种数据导入方法在昨天的基础上,做的Hive的应用方法

2.在mysql客户端看

基于Hadoop的数据仓库Hive的基本应用(一)||两种数据导入方法在昨天的基础上,做的Hive的应用方法