1.HDFS权限
HDFS的文件系统权限与Linux的完全相同
修改权限 #hadoop fs chmod
修改归属 #hadoop fs chown
2.常用操作
2.1 命令篇
2.1 文件操作
列出目录下的文件(直接跟目标路径,HDFS中没有cd的概念) #hadoop fs -ls /
创建文件夹 #hadoop fs -mkdir /test
本地文件上传到HDFS #hadoop fs -put 本地目标文件(包括路径) 放入HDFS文件(包括路径)
上传到HDFS(同Put指令) #hadoop fs -copyFromLocal < local src > ... < hdfs dst >
上传到HDFS(移动后本地文件将删除) #hadoop fs -moveFromLocal < local src > ... < hdfs dst >
HDFS文件下载到本地 #hadoop fs -get 放入HDFS文件(包括路径) 本地目标文件(包括路径)
HDFS文件删除 # hadoop fs -rm -f 目标文件
-skipTrash 是否跳过删除文件暂存器(如果开启)
-f 当文件不存在时忽略警告
-[rR] 删除包括子文件
HDFS文件查看 # hadoop fs -cat 目标文件
2.2 系统操作
报告HDFS系统基本情况 # hadoop dfsadmin -report
退出安全模式 # hadoop dfsadmin -safemode leave
进入安全模式 # hadoop dfsadmin -safemode enter
重新平衡DataNode数据块分布 ,Hadoop/bin下 start-balancer.sh
2.3 扩展节点
首先应该准备准备好一台已经安装好与NameNode相同Hadoop版本得到待新增服务器
然后在NameNode机器到新节点的SSH免密登录
最后在NameNode上配置slaves文件,将新节点加入,重启
2.2 程序篇
2.2.1 框架包导入
libraryDependencies += "org.apache.hadoop" % "hadoop-common" % "2.6.0" % "provided"
libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "2.6.0"
libraryDependencies += "org.apache.hadoop" % "hadoop-hdfs" % "2.6.0"
2.2.2 基本操作
object HDFSApp { case class HDFS(val url: String, val user: String) { val conf = new Configuration(); /** * 是否使用DN的HostName连接.默认使用false,使用IP * 云服务器务必要开启HostName请求,虚拟机不用开启(客户端不可能知道hadoop000在哪儿) */ //conf.set("dfs.client.use.datanode.hostname", "true"); val fs = FileSystem.get(new URI(url), conf, user); } def main(args: Array[String]) { val fs = HDFS("hdfs://192.168.18.151:9000/", "hadoop").fs; //文件上传 fs.copyFromLocalFile(new Path("E:\order.txt"), new Path("/test/testorder1.txt")) //文件下载 fs.copyToLocalFile(new Path("/test/testorder1.txt"), new Path("E:\order2.txt")) println("end"); } }