一、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(); } }