一、HDFS的常用命令

  1、查看根目录下的信息:./hadoop dfs -ls

  2、查看根目录下的in目录中的内容:./hadoop dfs -ls in或者./hadoop dfs -ls ./in

  3、删除文件:./hadoop dfs -rmr 文件名

  4、上传文件到HDFS:./hadoop dfs -put 系统目录下的文件 hadoop目录

  5、将HDFS的文件复制到本地:./hadoop dfs -get haddo目录 本地目录

  6、查看HDFS下某个文件的内容:./hadoop dfs -cat 文件名

  7、查看HDFS基本统计信息:./hadoop dfsadmin -report

  8、进入安全模式:./hadoop dfsadmin -safemode enter

  9、退出安全模式:./hadoop dfsadmin -safemode leave

  10、用hdfs(管理员)用户创建目录:sudo -u hdfs hadoop fs -mkdir /user/neu

  11、用hdfs(管理员)用户给目录分配权限:sudo -u hdfs hadoop fs -chown neu /user/neu

  注意:用./hadoop dfs -ls命令的时候,有时候会出现一个“ls:Cannot access  .: No such file or directory.”的错误,讲命令改为 ./hadoop dfs -ls /   即可解决。

二、java操作HDFS文件系统

  java操作HDFS文件系统,有两种方式,一种是直接在Linux上装eclipse,装插件,配置好环境,直接执行;另外一种是将java类打成jar包,添加到HDFS系统中去执行。此处要说的是第二种方式,使用的hadoop版本是0.20.2,执行的操作是添加文件和查看文件最后修改时间,具体步骤如下:

  1、创建一个java工程,将hadoop-0.20.2目录下的hadoop-0.20.2-core.jar和hadoop-0.20.2/lib/目录下commons-logging-1.0.4.jar添加java工程中。

  2、创建两个java类,分别如下:

 1 package com.gao.example;
2
3 import java.io.IOException;
4
5 import org.apache.hadoop.conf.Configuration;
6 import org.apache.hadoop.fs.FileStatus;
7 import org.apache.hadoop.fs.FileSystem;
8 import org.apache.hadoop.fs.Path;
9
10 /**
11 * @author gaojiang
12 *
13 */
14 public class FileTime {
15
16 /**
17 * @param args
18 * @throws IOException
19 */
20 public static void main(String[] args) throws IOException {
21 // TODO Auto-generated method stub
22 Configuration conf = new Configuration();
23 FileSystem hdfs = FileSystem.get(conf);
24 Path path = new Path("./in/test1.txt");
25 FileStatus filestatus = hdfs.getFileStatus(path);
26 long time = filestatus.getModificationTime();
27 System.out.println("time1 is "+time);
28
29 Path path2 = new Path("./mkdir.jar");
30 FileStatus filestatus2 = hdfs.getFileStatus(path2);
31 long time2 = filestatus2.getModificationTime();
32 System.out.println("time2 is "+time2);
33 }
34
35 }
 1 /**
2 *
3 */
4 package com.gao.example;
5
6 import java.io.IOException;
7
8 import org.apache.hadoop.conf.Configuration;
9 import org.apache.hadoop.fs.FSDataOutputStream;
10 import org.apache.hadoop.fs.FileSystem;
11 import org.apache.hadoop.fs.Path;
12
13 /**
14 * @author gaojiang
15 *
16 */
17 public class Mkdir {
18
19 /**
20 * @param args
21 * @throws IOException
22 */
23 public static void main(String[] args) throws IOException {
24 // TODO Auto-generated method stub
25 Configuration conf = new Configuration();
26 byte [] buff="hello word!".getBytes();
27 FileSystem hdfs =FileSystem.get(conf);
28 Path dfs = new Path("./test");
29 FSDataOutputStream out = hdfs.create(dfs);
30 out.write(buff,0,buff.length);
31 System.out.println("创建完毕");
32 }
33
34 }

  3、将工程打包,这里可以打成Runnable Jar file或者JAR file,打成Runnable的,只能以一个类作为入口类,打成JAR file,可以指定要执行的类名。

  4、使用bin/hadoop dfs -put命令将打好的JAR包添加到HDFS系统中,使用bin/hadooop jar 包名 命令即可运行Runnable Jar,如果是打的JAR file,还需要在包名后面明确指出类名的完整路径。

  5、需要注意的是,在java代码中创建Hadoop文件系统下的文件时,需要指出./test,而炼数成金视频中讲的只是/test,安装这样的操作去做,坑死我了。。。

最新文章

  1. xml 基础学习备忘
  2. Git 使用命令
  3. POST中文乱码解决方案
  4. jmeter 构建一个LDAP测试计划
  5. HTML5入门十---Canvas画布实现画图(一)
  6. GUI (图形界面)知识点
  7. 第三十讲:Android之Animation(五)
  8. 团队作业4——第一次项目冲刺(Alpha版本)3rd day
  9. jQuery Mobile 所有data-*选项,开发全解+完美注释
  10. Linux系统安装-MacBook网卡驱动问题解决
  11. jQuery的$.ajax方法响应数据类型有哪几种?本质上原生ajax响应数据格式有哪几种,分别对应哪个属性?
  12. 全面理解Java内存模型(JMM)
  13. python之路-python字符编码
  14. CSS 浮动和清除
  15. 在ssh中利用Solr服务建立的界面化站内搜索
  16. ios开发之--textview意见反馈页面(占位label,字数统计,提交按钮的交互设置)
  17. VS Code 基本介绍 和 快捷键
  18. Android File Hierarchy : System Structure Architecture Layout
  19. JS作用域和ASP(vbs)作用域比较
  20. redhat 6.8 配置yum源

热门文章

  1. 014.Python函数
  2. SPI总线 通俗易懂讲解——(转载)
  3. C/C++ 复习
  4. 6.3-4 zip、unzip
  5. 如何实现一个简易版的 Spring - 如何实现 AOP(中)
  6. 查询rman备份信息常用指令
  7. Paddle Inference原生推理库
  8. TensorFlow神经网络集成方案
  9. 【译】.NET 5 中的诊断改进
  10. [NOIP1998 提高组] 拼数