【发布时间】:2016-03-03 16:27:22
【问题描述】:
我正在接受mooc。
它告诉我们使用以下命令将一些文件从我们的 PC 上传到 hdfs
azure storage blob upload local_path container data/logs/2008-01.txt.gz
我也是这样做的。 后来当我在 PUTTY 安全外壳中输入以下命令时,我能够看到该文件
hdfs dfs -ls /data/logs
Found 6 items
-rwxrwxrwx 1 331941 2016-03-03 15:56 /data/logs/2008-01.txt.gz
-rwxrwxrwx 1 331941 2016-03-03 15:58 /data/logs/2008-02.txt.gz
-rwxrwxrwx 1 331941 2016-03-03 15:58 /data/logs/2008-03.txt.gz
-rwxrwxrwx 1 331941 2016-03-03 15:58 /data/logs/2008-04.txt.gz
-rwxrwxrwx 1 331941 2016-03-03 15:58 /data/logs/2008-05.txt.gz
-rwxrwxrwx 1 331941 2016-03-03 15:58 /data/logs/2008-06.txt.gz
然后我们启动了一个hive 终端并首先创建了一个表,然后使用
load data inpath '/data/logs' into TABLE rawlog;
然后我们使用下面的命令创建了一个外部表
CREATE EXTERNAL TABLE cleanlog
(log_date DATE,
log_time STRING,
c_ip STRING,
cs_username STRING,
s_ip STRING,
s_port STRING,
cs_method STRING,
cs_uri_stem STRING,
cs_uri_query STRING,
sc_status STRING,
sc_bytes INT,
cs_bytes INT,
time_taken INT,
cs_user_agent STRING,
cs_referrer STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE LOCATION '/data/cleanlog';
我们使用
将数据插入到表中INSERT INTO TABLE cleanlog
SELECT *
FROM rawlog
WHERE SUBSTR(log_date, 1, 1) <> '#';
我退出蜂巢并输入以下命令
hdfs dfs -ls /data/logs
- 我在该文件夹中看不到任何内容,为什么?上传的日志在哪里 文件去哪儿了?
- rawlog 表在哪里?它是否存在于同一个文件夹中?为什么我看不到?
-
为什么我在我的 cleanlog 文件夹中看到文件 00000_0?是新的吗 桌子?如果我输入命令
hdfs dfs -ls /data/cleanlog
我得到的输出是
Found 1 items
-rwxr-xr-x 1 sshuser supergroup 71323206 2016-03-03 16:11 /data/cleanlog/000000_0
################----------------------------------更新 1
- 如果在
/data/logs/再加载一个数据文件会发生什么情况 然后运行select * from rawlog?它会自动提取数据吗 来自新文件?
【问题讨论】: