一、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,安装这样的操作去做,坑死我了。。。

hadoop学习(三)HDFS常用命令以及java操作HDFS的更多相关文章

  1. [转]hadoop hdfs常用命令

    FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令   hadoop常用命令:  hadoop fs  查看H ...

  2. hadoop学习笔记(五):java api 操作hdfs

    HDFS的Java访问接口 1)org.apache.hadoop.fs.FileSystem 是一个通用的文件系统API,提供了不同文件系统的统一访问方式. 2)org.apache.hadoop. ...

  3. hadoop集群配置和在windows系统上运用java操作hdfs

    安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit. ...

  4. 大数据学习笔记03-HDFS-HDFS组件介绍及Java访问HDFS集群

    HDFS组件概述 NameNode 存储数据节点信息及元文件,即:分成了多少数据块,每一个数据块存储在哪一个DataNode中,每一个数据块备份到哪些DataNode中 这个集群有哪些DataNode ...

  5. hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作

    附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSy ...

  6. Redis的常用命令与Java整合及高级应用篇

    一,redis是什么? ​ 首先数据库分为关系型数据库和非关系型数据库,关系型数据库是采用关系模型来组织数据的数据库,简单来说就是二维表格模型,同时保证事务的一致性. ​ 相反非关系型数据库采用key ...

  7. redis学习-集合set常用命令

    redis学习-集合set常用命令   1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...

  8. redis学习-散列表常用命令(hash)

    redis学习-散列表常用命令(hash)   hset,hmset:给指定散列表插入一个或者多个键值对 hget,hmget:获取指定散列表一个或者多个键值对的值 hgetall:获取所欲哦键值以及 ...

  9. go的三个常用命令go run go build go install

    go的三个常用命令 go run go build go install 命令源码文件:含有 main函数 的文件 库源码文件:不包含 main函数 的文件, 主要用于编译成静态文件.a供其他包调用 ...

随机推荐

  1. Python判断身份证是否合法

    利用正则表达式实现对身份证合法程度的判断 1 # !usr/bin/env python3 2 # coding:utf-8 3 """ 4 @ Copyright (c ...

  2. 趣谈网络协议-第3讲 | ifconfig:最熟悉又陌生的命令行

    如何查看IP地址呢? windows  查看IP地址命令  IPCONFIG LINUX    查看IP 命令   IFCONFIG   IP ADDR ifconfig 和ADDR的区别  这是一个 ...

  3. 【odoo】【知识点】视图的继承逻辑

    背景:同一个模块,两组开发人员对同一个模型的form视图进行了二开.在没有指定外部ID的情况下,odoo是如何选择展示展示哪个视图呢? 上干货 odoo在加载视图的时候,首先调用的models.py中 ...

  4. 入坑java工程师那些事

    最近在知乎上看到好多关于转行做java的朋友,有的在担心学历,有的在想着如何学习java,有的在纠结如何面试.作为一个工作了近10年的java程序员来聊聊我的一些想法,主要从学历.个人能力.工作环境等 ...

  5. Selenium3自动化测试【18】XPath定位元素(2)

    层级与属性结合定位 如果被定为的元素,无法通过自身属性来唯一标识自己,此时可以考虑借助上级元素来定位自己.举生活中的例子,一个婴儿刚出生,还没有姓名与身份证号,此时给婴儿进行检查时往往会标注为&quo ...

  6. Spring中的注解@

    @ResponseBody作用:@ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如 ...

  7. xtrabackup(innobackupex)使用详解

    innobackupex实际上是percona-xtrabackup的perl整合脚本,功能当然更强大一些. xtrabackup备份实际上是在线的物理热备,为什么和么说呢,因为实际上他是以拷贝mys ...

  8. 常用深度学习框——Caffe/ TensorFlow / Keras/ PyTorch/MXNet

    常用深度学习框--Caffe/ TensorFlow / Keras/ PyTorch/MXNet 一.概述 近几年来,深度学习的研究和应用的热潮持续高涨,各种开源深度学习框架层出不穷,包括Tenso ...

  9. 聊一聊.NET Core结合Nacos实现配置加解密

    背景 当我们把应用的配置都放到配置中心后,很多人会想到这样一个问题,配置里面有敏感的信息要怎么处理呢? 信息既然敏感的话,那么加个密就好了嘛,相信大部分人的第一感觉都是这个,确实这个是最简单也是最合适 ...

  10. 四、配置及使用Zabbix监控系统

    要求: 沿用练习- - -,使用Zabbix监控平台监控Linux服务器,实现以下目标:1.监控CPU2.监控内存3.监控进程4.监控网络流量5.监控硬盘 方案:通过Zabbix监控平台,添加被监控z ...