大数据笔记(四)——操作HDFS
一.Web Console:端口50070
二.HDFS的命令行操作
(一)普通操作命令
HDFS 操作命令帮助信息: hdfs dfs + Enter键
常见命令
1. -mkdir
- 在HDFS上创建目录:hdfs dfs -mkdir /aaa
- 如果父目录不存在,使用 -p 命令先创建父目录:
2. -ls /
查看hdfs文件系统根目录下的目录和文件:
3.-ls -R /
查看所有目录和文件:
4.-put
上传数据:将本地Linux文件data.txt上传到HDFS的aaa目录下
-copyFromLocal 上传数据,类似-put
-moveFromLocal 上传数据,类似-put,相当于ctrl+x
5.-get 下载数据(刚才上传数据时已经有data.txt,所以要把Linux目录下的data.txt先删除)
6.-rm: 删除目录
-rmr: 删除目录,包括子目录
hdfs dfs -rmr /bbb
7. -getmerge:把某个目录下的文件,合并后再下载
8.-cp:拷贝 hdfs dfs -cp /input/data.txt /input/data2.txt
9.-mv:移动 hdfs dfs -cp /input/data.txt /aaa/a.txt
10.-count 统计hdfs对应路径下的目录个数,文件个数,文件总计大小:hdfs dfs -count /students
11.-du 显示hdfs对应路径下每个文件夹和目录的大小 hdfs dfs -du /students
12.-cat 查看文本的内容 hdfs dfs -cat /input/data.txt
13.balancer:平衡操作 如果管理员发现某些DataNode上保存数据过多,某些过少,就可以采取此操作
(二)管理命令:hdfs dfsadmin
举例:
1.-report 打印hdfs的报告 hdfs dfsadmin -report
2.-safemode:安全模式(安全模式下对hdfs只能进行只读操作)
三.JavaAPI
通过HDFS提供的JavaAPI,我们可以完成以下的功能:
(一)在HDFS上创建目录
(二)写入数据(上传文件)
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test; import com.jcraft.jsch.Buffer; public class TestUpload { @Test
public void testUpload() throws IOException{
System.setProperty("HADOOP_USER_NAME", "root");
//NameNode core.site.xml
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.153.11:9000"); //构造一个输入流 <---HDFS
FileSystem fs = FileSystem.get(conf); InputStream in = new FileInputStream("D:\\temp\\hadoop-2.7.3.tar.gz"); //构造一个输出流------> HDFS
OutputStream out = fs.create(new Path("/tools/hadoop-2.7.3.tar.gz")); byte[] buffer = new byte[1024];
int len = 0; while ((len=in.read(buffer)) > 0) {
out.write(buffer, 0, len);
} out.flush(); in.close();
out.close(); }
}
(三)通过 FileSystem API 读取数据(下载文件)
(四)查看目录及文件信息
(五)查找某个文件在HDFS集群的位置
(六)删除数据
(七)获取HDFS集群上所有数据节点信息
大数据笔记(四)——操作HDFS的更多相关文章
- 大数据学习——java操作hdfs环境搭建以及环境测试
1 新建一个maven项目 打印根目录下的文件的名字 添加pom依赖 pom.xml <?xml version="1.0" encoding="UTF-8&quo ...
- 大数据系列2:Hdfs的读写操作
在前文大数据系列1:一文初识Hdfs中,我们对Hdfs有了简单的认识. 在本文中,我们将会简单的介绍一下Hdfs文件的读写流程,为后续追踪读写流程的源码做准备. Hdfs 架构 首先来个Hdfs的架构 ...
- Dapper学习(四)之Dapper Plus的大数据量的操作
这篇文章主要讲 Dapper Plus,它使用用来操作大数量的一些操作的.比如插入1000条,或者10000条的数据时,再使用Dapper的Execute方法,就会比较慢了.这时候,可以使用Dappe ...
- 大数据笔记04:大数据之Hadoop的HDFS(基本概念)
1.HDFS是什么? Hadoop分布式文件系统(HDFS),被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点. 2.HDFS ...
- 大数据笔记09:大数据之Hadoop的HDFS使用
1. HDFS使用: HDFS内部中提供了Shell接口,所以我们可以以命令行的形式操作HDFS
- 大数据-hadoop生态之-HDFS
一.HDFS初识 hdfs的概念: HDFS,它是一个文件系统,用于存储文件,通过目录树定位文件,其次,他是分布式的,由很多服务器联合起来 实现功能,集群中的服务器各有各自的角色 HDFS设计适合一次 ...
- 大数据 - hadoop基础概念 - HDFS
Hadoop之HDFS的概念及用法 1.概念介绍 Hadoop是Apache旗下的一个项目.他由HDFS.MapReduce.Hive.HBase和ZooKeeper等成员组成. HDFS是一个高度容 ...
- 大数据【二】HDFS部署及文件读写(包含eclipse hadoop配置)
一 原理阐述 1' DFS 分布式文件系统(即DFS,Distributed File System),指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.该系统架构 ...
- 大数据【四】MapReduce(单词计数;二次排序;计数器;join;分布式缓存)
前言: 根据前面的几篇博客学习,现在可以进行MapReduce学习了.本篇博客首先阐述了MapReduce的概念及使用原理,其次直接从五个实验中实践学习(单词计数,二次排序,计数器,join,分 ...
- 大数据:Hadoop(HDFS 的设计思路、设计目标、架构、副本机制、副本存放策略)
一.HDFS 的设计思路 1)思路 切分数据,并进行多副本存储: 2)如果文件只以多副本进行存储,而不进行切分,会有什么问题 缺点 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处 ...
随机推荐
- [DS+Algo] 005 三种简单排序及其代码实现
目录 1. 冒泡排序 BubbleSort 1.1 算法描述 1.2 性能分析 1.3 Python 代码实现 2. 选择排序 SelectionSort 2.1 算法描述 2.2 选择排序的主要优点 ...
- [Web 前端] 028 jQuery 事件
目录 jQuery 的事件 1. 事件绑定 1.1 事件的获取 1.2 基本绑定 1.3 动态绑定 2. 事件触发 2.1 触发的写法 2.2 常用的鼠标事件 3. 事件冒泡和默认行为 3.1 事件冒 ...
- pistat 查看进程状态
该pidstat命令用于监视当前正在由Linux内核管理的各个任务.对于使用选项-p选择的每个任务,或者如果使用了选项-p ALL,则它将写入Linux内核管理的 每个任务的标准输出活动.不选择任何任 ...
- 异步IO\数据库\队列\缓存\RabbitMQ队列
本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SS ...
- [LOJ 6253] Yazid 的新生舞会
link $solution:$ 不知道为什么别人的代码能写的非常短,难道就是写差分的好处? 这种题肯定是算每个众数的贡献,考虑通过暴力众数求出个数. 现在考虑众数 $x$ ,则在序列 $a$ 中将等 ...
- MySQL索引原则和慢查询优化步骤
建索引的几大原则 1.最左前缀匹配原则,mysql会一直向右匹配直到遇到范围查询(>.<.between.like)就停止匹配. 2.=和in可以乱序,比如a = 1 and b = 2 ...
- 05-Django-session-admin
# session- 为了应对HTTP协议的无状态性- 用来保存用户比较敏感的信息- 属于request的一个属性- 常用操作: - request.session.get(key, defaultV ...
- 使用axios发送ajax请求
1.安装 npm install axios 2.在Home.vue中引入 import axios from 'axios' export default { name: 'Home', c ...
- MySQL存储过程、触发器、自定义函数、事务
1.存储过程 MySQL中存储过程的参数中有IN.OUT.INOUT类型,但是函数的参数只能是IN类型的. “in” 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过程内部可能会修改此参 ...
- losetup - 设 定 与 控 制 环回设备
总览 SYNOPSIS losetup [ -e encryption ] [ -o offset ] loop_device file losetup [ -d ] loop_device 描述 l ...