HDFS入门(1)
2015.07.12笔记
1.HDFS
Distributed File System(操作系统实现人机交互,最重要的功能是文件管理,使用文件管理系统,windows、Linux文件管理系统有共性:用户可创建文件/夹,删除,修改权限,修改源数据信息(创建、修改、访问时间等)。在操作系统中的文件或者数据的管理是通过文件系统实现的,文件系统是操作系统实现文件管理的一个重要的组成部分,操作系统将文件放置到硬件(硬盘,服务器能有一万多兆)当中进行管理。在服务器中,数据的储存管理是通过我们写的程序进行管理,当数据量多时,可在硬盘插槽增加硬盘(6个插槽),可分散到多个系统上,用户不需知道文件存储在哪个IP上(如www.Baidu.com域名对应到多台服务器)DFS分布式文件系统是数据分布在很多个文件系统,而DFS对应的是一个操作系统()数据量多,用户操作不方便,DFS分布式文件系统凌驾在操作系统所辖的文件管理系统中)
数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。
是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。
通透性。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。
容错。即使系统中有某些节点脱机,整体来说系统仍然可以持续运作而不会有数据损失。
分布式文件管理系统很多,hdfs只是其中一种,不合适小文件(通过一定的策略将小文件变成大文件)。实现文件管理
HDFS的Shell(hdfs存储的都是大数据,shell是Linux操作系统的组成部分,hdfs属于hadoop软件的组成部分,在shell中使用特定命令调用hdfs接口中的命令)(ls蓝色字体是文件夹,绿色是文件)
调用文件系统(FS)Shell命令应使用 bin/hdfs dfs xxx 的形式。
所有的FS shell命令使用URI路径作为参数。
URI格式是scheme://authority/path。HDFS的scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。
例如:/parent/child可以表示成hdfs://namenode:namenodePort/parent/child,或者更简单的/parent/child(假设配置文件是namenode:namenodePort)
大多数FS Shell命令的行为和对应的Unix Shell命令类似。
安装好(绿色文件是用于批量启动hadoop写的文件(照着写))
2.apache hadoop目录结构
(查看的脚本文件)(在java线程概念里面的方法set daemon给它传个true就可以让其变成精灵进程,精灵进程不停跑
查看进程
bin sbin 很重要(bin,系统操作命令,存放的都是命令脚本有两类.cmd是在windows下面的命令;sbin系统维护运营)
share(通过路径加载jar包)
logs 文件(学会看日志,分析日志,log历史日志,out是当前日志)
通过hdfs操作
hdfs 用法(中括号表示可选,安装hadoop改的配置文件可单独放到单独的文件夹中--config confir适用于很多变化的环境,工作环境使用的是默认目录下的配置文件)空格加command
dfs是在被支持的文件系统支持下运行一个文件系统的命令,可参考Linux命令
3.HDFS dfs命令
可见文档
注意点:启动进程的用户是super user,可以做任何事情
在版本2中(脚本没改才提示),不用关心
Hadoop1下使用的是hadoop,(hadoop2版本)dfs,执行结果一样
查看目录结构
bin/hdfs dfs -ls hdfs://192.168.80.100:9000/
-ls 后面跟的是hdfs访问路径(在配置文件中设置过,可跟主机名(执行hostname查看,端口9000是之前etc/Hadoop/core-site.xml文件配置的)或IP,9000后面的斜杠表示hdfs的根目录)(访问互联网必须通过通过协议http https ftp )
ls命令来自于
在配置etc/Hadoop/core-site.xml文件中设置过hdfs的访问路径
文件系统需组织结构,Linux是树状结构,hdfs的根目录(跟Linux不一样)
64位机装32位hadoop会出现警告信息(学习没影响,企业使用64位,32位的对内存大小有限制,软件最好通过源码编译成64位)可以通过源码编译hadoop
操作系统64位,hadoop是32位会提示错误
非常像Linux文件结构
4.常见HDFS命令
-表示没有副本数,最后一次访问时间
大小单位是字节(目录本身而言不含有数据,所以大小为0),后面是绝对路径(如何知道这些信息)
指的是文件夹
一级一级查看麻烦
注意是—R(Recursively递归使用大写)
-d(普通格式输出)
-h(默认是字节,加上后根据大小显示单位k,M)
简写,去掉hdfs://192.168.80.100:9000(运行时被运行环境补充上了,它是要找本地中是否有hdfs的配置文件,如果有就将里面特定的值给补充上fs.defaultFS)
通过执行命令区分
误以为是Linux(缺少目的地文件)
-cat
文件系统就是原封不动存取数据,mysql是文件管理系统,
-put
-cp(从hdfs到hdfs)
-copyToFile)(hdfs拷贝到Linux)
-chmod
chmod 777
用户/所在者,所在组,其他人(常用的权限是文件夹755,默认创建文件644)
ls什么都不跟默认/user/root
在hdfs下没有目录
currentUser的目录