HDFS文件和HIVE表的一些操作


1. hadoop fs -ls  可以查看HDFS文件

后面不加目錄參數的話,默認當前用戶的目錄。/user/當前用戶

$ hadoop fs -ls
16/05/19 10:40:10 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x   - yy yy          0 2016-04-24 08:00 .Trash
drwx------    - yy yy          0 2016-05-06 06:00 .staging
drwxr-xr-x   - yy yy          0 2016-05-06 06:00 oozie-oozi

也可以加目錄,顯示指定目錄的HDFS文件。

$ hadoop fs -ls /user/yy
16/05/19 10:44:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x   - yy yy          0 2016-04-24 08:00 /user/yy/.Trash
drwx------    - yy yy          0 2016-05-06 06:00 /user/yy/.staging
drwxr-xr-x   - yy yy          0 2016-05-06 06:00 /user/yy/oozie-oozi

2. hadoop fs -mkdir 可以創建文件夾

$ hadoop fs -mkdir upload 

hadoop fs –rmr  可以刪除文件夾/文件

3. hadoop fs -put 可以上傳本機的HDFS文件

hadoop fs -put  pc/*  upload

hadoop fs -get 可以把HDFS的文件下載到本機

hadoop fs -put   upload/collect_20160518.txt   /home/yy

4. hadoop fs -cat 可以讀取HDFS文件

$ hadoop fs  -cat  upload/collect_20160515.txt|head -10

5. HDFS 和hive表

external 外部分區表:

1)HDFS文件,要按分區存儲,比如下面,分區為dt,對應的是2016-05-19下面的文件。

/user/yy/upload/wireless/2016-05-19

2)創建external表指向該存儲(分區的上一層)

drop table if exists external_weblog_wireless;
create external table external_weblog_wireless 
(
thedate string,
time_stamp string,
url_title string
)
partitioned by (dt string)  
row format delimited fields terminated by ',' 
stored as textfile location '/user/yy/upload/wireless/';

3)添加新分區,指向分區目錄

alter table external_weblog_wireless add partition (dt='2016-05-19') location '/user/yy/upload/wireless/2016-05-19';

4) 這種外部表分區存儲,很適合增量數據。

external外部非分區表:

直接指向存儲的最終location,建表即生成了數據表。

drop table if exists external_weblog_wireless;
create external table external_weblog_wireless 
(
thedate string,
time_stamp string,
url_title string
)
partitioned by (dt string)  
row format delimited fields terminated by ',' 
stored as textfile location '/user/yy/upload/wireless/2016-05-19';

6. hive 表導出(待補充)

 

注意:

  1. hadoop fs 和hdfs dfs 作用一樣。都可以在本機上查看HDFS文件。
  2. HDFS下的文件可以壓縮存儲,這樣能夠減少表查詢時對Hadoop集群的IO。

          壓縮可以按正常的linux壓縮,比如 tar -zvcf,.tar.gz

          也可以按hadoop的格式壓縮。

          壓縮后,跟普通文件一樣上傳即可。

     3. 常用的幾個查詢tips

     查看分區: show partitions 表名;

     查看創表語句:show create table 表名;

 

7. 提交MAPREDUCE JOB

原則上說,Hadoop所有的MapReduce Job都是一個jar包。

運行一個/home/admin/hadoop/job.jar的MapReduce Job

  1. 進入HADOOP_HOME目錄。
  2. 執行sh bin/hadoop jar /home/admin/hadoop/job.jar [jobMainClass] [jobArgs]

8. 殺死某個正在運行的JOB

假設Job_Id為:job_201005310937_0053

  1. 進入HADOOP_HOME目錄。
  2. 執行sh bin/hadoop job -kill job_201005310937_0053


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM