首先,把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. Docker安装Skywalking APM分布式追踪系统

    环境介绍 本文使用虚拟机unbutu18+docker.本unbutu18系统IP地址为:192.168.150.134 大家在使用时记得将此地址换成自己的实际地址. docker的安装可参考:htt ...

  2. unity之加载场景

    游戏中的Loading分为:静态Loading和动态Loading. 简单形象的做个比喻: 静态Loading可能就是一张背景图.而动态的Loading就是在读取的同时有一个东西在“转圈”. 1.静态 ...

  3. python request接口测试笔记(1)

    python request接口测试笔记(1) 涉及到的功能说明: 需要登录拿到token,才能进行下一个接口的请求 读取csv文件中的信息,作为接口的参数 将接口响应结果,写入csv文件,以便分析统 ...

  4. Leetcode之广度优先搜索(BFS)专题-详解429. N叉树的层序遍历(N-ary Tree Level Order Traversal)

    Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tree Level Order Traversal) 给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右 ...

  5. (数据科学学习手札67)使用Git管理Github仓库

    一.简介 Git是目前使用最广泛的分布式版本控制系统,通过Git可以方便高效地管理掌握工作过程中项目内容文件的更新变化情况,通过Git我们可以以命令行的形式完成对Github上开源仓库的clone,以 ...

  6. CF 13E Holes

    Holes 题意:现在有一排洞,每个洞有一个弹力,能弹到ai之后的洞,球会弹到这个排的外面,现在有2个操作,0 a b 将第a个洞的弹力设为b, 1 a 将球放入第a个洞,求输出进洞的次数 和 弹出这 ...

  7. lightoj 1283 - Shelving Books(记忆化搜索+区间dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1283 题解:这题很显然一看就像是区间dp,但是单纯的区间dp好像解决不了问题可 ...

  8. CF1007B Pave the Parallelepiped 容斥原理

    Pave the Parallelepiped time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  9. CF982C Cut 'em all! DFS 树 * 二十一

     Cut 'em all! time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  10. 逆向破解之160个CrackMe —— 030

    CrackMe —— 030 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...