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 表導出(待補充)
注意:
- hadoop fs 和hdfs dfs 作用一樣。都可以在本機上查看HDFS文件。
- 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
- 進入HADOOP_HOME目錄。
- 執行sh bin/hadoop jar /home/admin/hadoop/job.jar [jobMainClass] [jobArgs]
8. 殺死某個正在運行的JOB
假設Job_Id為:job_201005310937_0053
- 進入HADOOP_HOME目錄。
- 執行sh bin/hadoop job -kill job_201005310937_0053