hadoop学习(三)HDFS常用命令以及java操作HDFS
一、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的更多相关文章
- [转]hadoop hdfs常用命令
FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令 hadoop常用命令: hadoop fs 查看H ...
- hadoop学习笔记(五):java api 操作hdfs
HDFS的Java访问接口 1)org.apache.hadoop.fs.FileSystem 是一个通用的文件系统API,提供了不同文件系统的统一访问方式. 2)org.apache.hadoop. ...
- hadoop集群配置和在windows系统上运用java操作hdfs
安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit. ...
- 大数据学习笔记03-HDFS-HDFS组件介绍及Java访问HDFS集群
HDFS组件概述 NameNode 存储数据节点信息及元文件,即:分成了多少数据块,每一个数据块存储在哪一个DataNode中,每一个数据块备份到哪些DataNode中 这个集群有哪些DataNode ...
- hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作
附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSy ...
- Redis的常用命令与Java整合及高级应用篇
一,redis是什么? 首先数据库分为关系型数据库和非关系型数据库,关系型数据库是采用关系模型来组织数据的数据库,简单来说就是二维表格模型,同时保证事务的一致性. 相反非关系型数据库采用key ...
- redis学习-集合set常用命令
redis学习-集合set常用命令 1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...
- redis学习-散列表常用命令(hash)
redis学习-散列表常用命令(hash) hset,hmset:给指定散列表插入一个或者多个键值对 hget,hmget:获取指定散列表一个或者多个键值对的值 hgetall:获取所欲哦键值以及 ...
- go的三个常用命令go run go build go install
go的三个常用命令 go run go build go install 命令源码文件:含有 main函数 的文件 库源码文件:不包含 main函数 的文件, 主要用于编译成静态文件.a供其他包调用 ...
随机推荐
- Linux useradd 命令介绍
Linux useradd 命令介绍 作者: Alan Formy-duval 译者: LCTT Brooke Lau | 2020-01-06 22:58 使用 useradd 命令来添加用户(并且 ...
- 【Java】Jackson解析xml的坑
为了获取xml数据,在spring mvc中针对 @ResponseBody配置了jackson. 刚用的时候内心是狂喜的,终于不用自己解析了---- but----------还是有坑的-- 坑一 ...
- MyBatis 各种参数传递方式
MyBatis参数传递方式 情况一:Mapper映射器接口方法参数只有一个且为基本类型 接口方法: public List<UserEntity> selectUserByAge(int ...
- 使用Typora编写Markdown你真的会了吗
目录 Typora 介绍 使用 常用快捷键 概述 标题 一级标题 二级标题 方式(推荐) 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 段落 粗体斜体删除线 下划线 注释 分割线 脚注 ...
- Navigation DialogFragment展示dialog
如果按照一般fragment的写法: 在nav_config中 <fragment android:id="@+id/fragment_crime_detail" andro ...
- GO语言异常处理02---返回错误
package main import ( "errors" "fmt" "math" ) /*计算圆面积,同时返回[结果-错误对]*/ f ...
- Linux基础服务——Bind DNS服务 Part2
Linux基础服务--Bind DNS服务 Part2 DNS反向解析与区域传送 实验环境延续Part1的实验环境. 反向区域配置 正向解析是域名到IP地址的映射,反向解析则是IP地址到域名的解析,在 ...
- ARM-CPU卷积网络的自动调谐
ARM-CPU卷积网络的自动调谐 为特定的ARM设备自动调谐对于获得最佳性能至关重要.这是一个关于如何调整整个卷积网络的资料. 以模板的形式编写了TVM中ARM CPU的操作实现.模板有许多可调旋钮( ...
- 【转】【NX二次开发】UFUN进度中断,单击停止可中断此操作
队长的博客: https://www.cnblogs.com/nxopen2018/p/13174207.html 显示此对话框,点击可中断操作: 用到的ufun函数: UF_ABORT_ask_fl ...
- Mysql_SQLyog 数据库的创建
1.创建数据库 CREATE DATABASE [IF NOT EXISTS] westos; 2.删除数据库 DROP DATABASE [IF EXISTS] westos; 3.使用数据库 -- ...