首先,把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. k好数(动态规划)

    问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22 ...

  2. Leetcode之深度优先搜索(DFS)专题-690. 员工的重要性(Employee Importance)

    Leetcode之深度优先搜索(DFS)专题-690. 员工的重要性(Employee Importance) 深度优先搜索的解题详细介绍,点击 给定一个保存员工信息的数据结构,它包含了员工唯一的id ...

  3. 2. Sentinel源码分析—Sentinel是如何进行流量统计的?

    这一篇我还是继续上一篇没有讲完的内容,先上一个例子: private static final int threadCount = 100; public static void main(Strin ...

  4. 给手机端页面留一个调试后门吧(vue)

    当我们在浏览器开发vue页面时,由于浏览器对于调试有天然的支持,我们开发起来很方便.但是现在已经进入了移动端时代,移动端页面的需求越来越大. 在开发移动端页面的时候我们通常是在浏览器完成开发完成,之后 ...

  5. SPOJ - GSS1-Can you answer these queries I 线段树维护区间连续和最大值

    SPOJ - GSS1:https://vjudge.net/problem/SPOJ-GSS1 参考:http://www.cnblogs.com/shanyr/p/5710152.html?utm ...

  6. Codeforces Round #379 (Div. 2) E. Anton and Tree 缩点 树的直径

    传送门 题意: 这道题说的是在一颗有两种颜色的树上,每操作一个节点,可以改变这个节点颜色和相邻同色节点的颜色.问最少操作次数,使得树上颜色相同. 思路: 先缩点,把相同的颜色的相邻节点缩在一起.再求出 ...

  7. bzoj 1051 [HAOI2006]受欢迎的牛(tarjan缩点)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1051 题解:缩点之后判断出度为0的有几个,只有一个那么输出那个强连通块的点数,否者 ...

  8. Linux服务器部署JavaWeb项目完整教程

    本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum ...

  9. JUC(1)

    cmd目录切换 D:\>cd /d D:\Program Files\Java\jdk1.8.0_201\bin 1. JUC 简介 在 Java 5.0 提供了 java.util.concu ...

  10. Go 语言基础——变量常量的定义

    go语言不支持隐式类型转换,别名和原有类型也不能进行隐式类型转换 go语言不支持隐式转换 变量 变量声明 var v1 int var v2 string var v3 [10]int // 数组 v ...