hadoop的Hive操作hdfs文件第一天
hive的具体练习以下4个目标
1. 第一普通的hdfs文件能导入到hive中以供我们查询。
create table dept(deptID int,deptName string,address string);
load data local inpath '/home/dyq/Documents/dept' overwrite into table dept;
select * from dept;
hive> select * from dept;
OK
NULL NULL NULL
NULL NULL NULL
NULL NULL NULL
NULL NULL NULL
Time taken: 0.316 seconds, Fetched: 4 row(s)
从上面看导入成功但是查询的都是null那是因为没有加分隔.test表默认的有terminated by '\t'
lines terminated by '\n' 分隔符所以尽管有报错数据也是插入的。
正确的创建语法为
create table dept1(deptID int,deptName string,address string) row format delimited
fields terminated by ',' lines terminated by '\n' stored as textfile
导入数据的时候语句不变
load data local inpath '/home/dyq/Documents/dept' overwrite into table dept1;
hive> select * from dept1;
OK
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Time taken: 0.153 seconds, Fetched: 4 row(s)
看看成功了
二、查询结果导出来。
从hive中把表中的数据导出来保存成文本类型。
先检索索要的结果
’
hive> select deptID,deptName from dept1;
OK
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Time taken: 4.735 seconds, Fetched: 4 row(s)
将查询结果输出至本地目录
insert overwrite local directory '/home/dyq/Documents/outputdept' select a.deptID,a.deptName from dept1 a;
hive> insert overwrite local directory '/home/dyq/Documents/outputdept' select a.deptID,a.deptName from dept1 a;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.
Query ID = dyq_20160828100454_07848914-19c7-47a7-9dd6-7fe50a1f9a82
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1472347049416_0003, Tracking URL = http://ubuntu:8088/proxy/application_1472347049416_0003/
Kill Command = /opt/hadoop-2.6.2/bin/hadoop job -kill job_1472347049416_0003
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2016-08-28 10:05:14,004 Stage-1 map = 0%, reduce = 0%
2016-08-28 10:05:26,132 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 2.23 sec
MapReduce Total cumulative CPU time: 2 seconds 230 msec
Ended Job = job_1472347049416_0003
Moving data to local directory /home/dyq/Documents/outputdept
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Cumulative CPU: 2.23 sec HDFS Read: 3564 HDFS Write: 49 SUCCESS
Total MapReduce CPU Time Spent: 2 seconds 230 msec
OK
Time taken: 34.259 seconds
三、查看到处结果
在/home/dyq/Documents下出现了outdept目录里面有000000_0文件打开
10ACCOUNTING
20RESEARCH
30SALES
40OPERATIONS
呵呵成功了额