首先,把Hadoop命令加入到PATH环境变量中,直接通过start-dfs.sh开启Hadoop,也可以直接通过hdfs命令访问HDFS中的内容,方便平时的操作。

配置PATH环境变量

  vim  ~/.bashrc,进入编辑,在最前面加入如下单独一行

  export  PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

  source  ~/.bashrc 使设置生效,现在可以在任意目录中直接使用 hdfs 等命令了

启动Hadoop:start-dfs.sh

  Hadoop系统安装好以后,第一次使用HDFS时,需要首先在HDFS中创建用户目录 :

  hdfs  dfs  -mkdir  -p  /user/hadoop,由于采用的是hadoop用户登录,所以在HDFS中创建一个“/user/hadoop”用户目录,本地上传的文件都会被保存在/user/hadoop下。

上传文件: -put 

  本地 /home/Hadoop/temp 文件目录下的file上传到HDFS中的/user/hadoop目录下

    hdfs  dfs  -put  /home/Hadoop/temp/file  ./(“./”表示当前目录,即/user/hadoop目录)

  -appendToFile:若文件存在,则追加到file文件末尾

    hdfs  dfs  -appendToFile  /Home/hadoop/temp/file  ./

  -copyFromLocal:若HDFS中文件已存在,则覆盖file原有文件

    hdfs  dfs  -copyFromLocal  -f  /home/Hadoop/temp/file  ./

下载文件 -get

  HDFS中的file文件下载到本地的temp目录下

    hdfs  dfs  -get  ./file  /home/Hadoop/temp

  -copyToLocal:若本地存在该文件,对文件重命名

    hdfs  dfs  -copyToLocal  ./file  /home/Hadoop/temp/file1

显示文件相关信息:-ls

  显示HDFS中指定的文件的读写权限、大小、创建时间等信息

    hdfs  dfs  -ls  ./file

  输出test目录下所有文件相关信息

    hdfs  dfs  -ls  -R  ./test

显示文件内容:-cat

  hdfs  dfs  -cat  ./file

在HDFS中移动文件:-mv

  hdfs  dfs  -mv  ./file  ./test :将file移动到test文件夹下

删除HDFS中的指定文件:-rm

  hdfs  dfs  -rm  ./file:删除指定文件

  hdfs  dfs  -rm  -r  ./test:删除test目录

关闭Hadoop:stop-dfs.sh

通过Java API操作HDFS(要先启动Hadoop)

写入到HDFS(会自动在HDFS中创建一个文件)

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; public class Write
{
public static void main(String[] args)
{
Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000");
conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
String filename="test";//要写入的文件名
byte[] buff="hello World!hh\n".getBytes();//要写入的内容
try
{
FileSystem fs=FileSystem.get(conf);
FSDataOutputStream os=fs.create(new Path(filename));
os.write(buff, 0, buff.length);
System.out.println("内容成功写入到"+filename);
os.close();
fs.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

Write

读取HDFS中的文件内容

import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path; public class Read
{
public static void main(String[] args)
{
Configuration conf =new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000");
conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
Path filename=new Path("test");//要读取的文件名
try
{
FileSystem fs=FileSystem.get(conf);
FSDataInputStream getIt=fs.open(filename);
BufferedReader r=new BufferedReader(new InputStreamReader(getIt));
String content=null;
while((content=r.readLine())!=null)//一行一行的读,直到为空
{
System.out.println(content);
}
r.close();//关闭文件
fs.close();//关闭HDFS
}catch(Exception e)
{
e.printStackTrace();
System.out.println(filename+"文件不存在");
}
}
}

Read

常用的HDFS操作的更多相关文章

  1. Tutorial 02_熟悉常用的HDFS操作

    Shell命令实现: (1)向HDFS 中上传任意文本文件,如果指定的文件在HDFS 中已经存在,则由用户来指定是追加到原有文件末尾还是覆盖原有的文件: (2) 从HDFS 中下载指定文件,如果本地文 ...

  2. 熟悉常用的HDFS操作

    编程实现以下指定功能,并利用Hadoop提供的Shell命令完成相同任务: 在本地Linux文件系统的“/home/hadoop/”目录下创建一个文件txt,里面可以随意输入一些单词. 在本地查看文件 ...

  3. 第三章 熟悉常用的HDFS操作

    一.Hadoop提供的Shell命令完成相同任务: 1.在本地Linux文件系统的“/home/hadoop/”目录下创建一个文件txt,里面可以随意输入一些单词. mkdir hadoop 在本地查 ...

  4. python基础操作以及hdfs操作

    目录 前言 基础操作 hdfs操作 总结 一.前言        作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...

  5. 大数据(4) - HDFS常用的shell操作

    注意:这次使用的是第二部分安装的集群,不是高可用集群 为了方便,开发,必须写集群脚本,试想集群的机器是100台以上,而不是3台的情况.... 集群启动脚本 vim /home/admin/tools/ ...

  6. Tutorial 01_熟悉常用的Linux操作和Hadoop操作

    (一)熟悉常用的Linux 操作cd 命令:切换目录 (1) 切换到目录“/usr/local” (2) 切换到当前目录的上一级目录 (3) 切换到当前登录Linux 系统的用户的自己的主文件夹  ...

  7. 假期学习【三】HDFS操作及spark的安装/使用

    1.安装 Hadoop 和 Spark 进入 Linux 系统,参照本教程官网“实验指南”栏目的“Hadoop 的安装和使用”,完 成 Hadoop 伪分布式模式的安装.完成 Hadoop 的安装以后 ...

  8. sparkRDD:第3节 RDD常用的算子操作

    4.      RDD编程API 4.1 RDD的算子分类 Transformation(转换):根据数据集创建一个新的数据集,计算后返回一个新RDD:例如:一个rdd进行map操作后生了一个新的rd ...

  9. 实验3- 熟悉常用的 HBase 操作

        石家庄铁道大学信息科学与技术学院               实验报告 2018年----2019年  第一学期                       题目:  熟悉常用的 HBase ...

随机推荐

  1. 从一道没人能答对的面试题聊聊Java的值传递

    这是一道我们公司的面试题,从招第二个Java以来就一直存在了.但是面试了这么长的时间还没有一个人可以全部答对,让我们一度以为是这题出的不对.首先请看面试题. 以下运算的输出分别是多少: ```java ...

  2. Spring学习之旅(十四)--缓存

    数据库的读写并发一直都是应用性能的瓶颈所在之一,针对改动频率很小的数据我们应该将他存放到缓存中,减少与数据库的交互. 启用对缓存的支持 Spring 对缓存的支持有两种方式: 注解驱动的缓存 XML ...

  3. C/C++ 修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析

    修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析 介绍 最近修复项目问题时,发现当系统时间往前修改后,会导致sem_timedwait函数一直阻塞.通过搜索了发现int sem_ ...

  4. 王某人从0开始学习lorawan的笔记_0

    最近老板想做lorawan的项目,交给我了,我也应承下来了,但是!!!我TM连lorawan是啥子我都不知道啊啊啊啊啊! 真希望我女朋友可以看穿我的倔强,给我1千万,让我专心当舔狗,等等,我的女朋友? ...

  5. HTML连载34-背景关联和缩写以及插图图片和背景图片的区别

    一.背景属性缩写的格式 1.backgound:背景颜色  背景图片  平铺方式  关联方式  定位方式 2.注意点: 这里的所有值都可以省略,但是至少需要一个 3.什么是背景关联方式 默认情况下,背 ...

  6. 学会spss就能找到数据分析工作吗

     大学课堂上学习了spss,老师也讲了很多知识,但是现在准备毕业了,我做的实习工作就是用业内的数据进行最新的行业研究.现在真正需要用到spss进行分析了,我却看不懂老板给的数据和分析要求,难道这就是理 ...

  7. netcore 中的动态代理与RPC实现(微服务专题)

    一.关于RPC的调用 1. 调用者(客户端Client)以本地调用的方式发起调用: 2. Client stub(客户端存根)收到调用后,负责将被调用的方法名.参数等打包编码成特定格式的能进行网络传输 ...

  8. CodeForces 875 D High Cry

    High Cry 题解: 把思路转换成总-非法方案数. 对于第i个点来说 找到L[i], R[i] 然后 对于所有的在[ L[i], R[i] ]  的值都 < a[i], 然后对于第i个点来说 ...

  9. codeforces 284 E. Coin Troubles(背包+思维)

    题目链接:http://codeforces.com/contest/284/problem/E 题意:n种类型的硬币,硬币的面值可能相同,现在要在满足一些限制条件下求出,用这些硬币构成t面值的方案数 ...

  10. java中存储机制堆栈。

    一.java的六种存储地址及解释 1) 寄存器(register):这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配.你不 ...