一、HDFS基本命令行操作:
1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元數據存儲位置 <property> <name>dfs.namenode.name.dir</name> <value>/root/hd/dfs/name</value> </property> //配置數據存儲位置 <property> <name>dfs.datanode.data.dir</name> <value>/root/hd/dfs/data</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hd09-2:50090</value> </property> </configuration> 注意上面的第三個<property>不是 <property> <name>dfs.namenode.secondary.https-address</name> <value>hd09-2:50090</value> </property> (2)分發hdfs-site.xml到其他服務器 cd /root/hd/hadoop-2.8.4/etc/hadoop scp hdfs-site.xml hd09-2:$PWD scp hdfs-site.xml hd09-3:$PWD (3)hdfs啟動命令 start-dfs.sh (4)hdfs停止命令 stop-dfs.sh 2.HDFS集群修改replication(副本數) 修改hdfs-site.xml 在<configuration>中加入 <property> <name>dfs.replication</name> <value>3</value> </property> 其中<value>中的值就是副本數 3.HDFS集群修改blocksize(塊大小) 修改hdfs-site.xml 在<configuration>中加入 <property> <name>dfs.blocksize</name> <value>134217728</value> </property> 其中<value>中的值就是塊大小,單位是字節(byte) 4.hdfs命令行 (1)查看幫助 hdfs dfs -help (2)查看當前目錄信息 hdfs dfs -ls / (3)上傳文件 hdfs dfs -put /本地路徑 /hdfs路徑 (4)剪切文件 hdfs dfs -moveFromLocal a.txt /aa.txt (5)下載文件到本地 hdfs dfs -get /hdfs路徑 /本地路徑 (6)合並下載 hdfs dfs -getmerge /hdfs路徑文件夾 /合並后的文件 (7)創建文件夾 hdfs dfs -mkdir /hello (8)創建多級文件夾 hdfs dfs -mkdir -p /hello/world (9)移動hdfs文件 hdfs dfs -mv /hdfs路徑 /hdfs路徑 (10)復制hdfs文件 hdfs dfs -cp /hdfs路徑 /hdfs路徑 (11)刪除hdfs文件 hdfs dfs -rm /aa.txt (12)刪除hdfs文件夾 hdfs dfs -rm -r /hello (13)查看hdfs中的文件 hdfs dfs -cat /文件 hdfs dfs -tail -f /文件 (14)查看文件夾中有多少個文件 hdfs dfs -count /文件夾 (15)查看hdfs的總空間 hdfs dfs -df / hdfs dfs -df -h / (16)修改副本數 hdfs dfs -setrep 1 /a.txt
二、上傳文件的簡單API:
package com.css.hdfs01; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HdfsClientDemo01 { public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException { //1.客戶端加載配置文件 Configuration conf = new Configuration(); //2.指定配置(設置成2個副本數) conf.set("dfs.replication", "2"); //3.指定塊大小 conf.set("dfs.blocksize", "64m"); //4.構造客戶端 FileSystem fs = FileSystem.get(new URI("hdfs://192.168.146.132:9000"), conf, "root"); //5.上傳文件 fs.copyFromLocalFile(new Path("c:/words.txt"), new Path("/words.txt")); //6.關閉資源 fs.close(); } }