HDFS分布式文件系统 , 将一个大的文件拆分成多个小文件存储在多台服务器中
文件系统: 目录结构(树状结构) "/" 树根, 目录结构在namenode中维护
目录
# hdfs dfs -ls /
Found 2 items
drwxr-xr-x - yunwei supergroup 0 2023-02-24 14:39 /hbase
drwxr-xr-x - yunwei supergroup 0 2023-02-24 14:55 /usr
hdfs dfs -mkdir /hadoop
hdfs dfs -mkdir -p /test/a
hdfs dfs -ls /test 查看文件,ls 。没有cd命令, 需要指绝对路径
# hdfs dfs -mkdir -p /test/a
# hdfs dfs -ls /
Found 2 items
drwxr-xr-x - yunwei supergroup 0 2023-02-24 14:39 /hbase
drwxr-xr-x - yunwei supergroup 0 2023-02-24 17:14 /test
# hdfs dfs -ls /test
Found 1 items
drwxr-xr-x - yunwei supergroup 0 2023-02-24 17:14 /test/a
就已经能看出来了
-copyFromLocal 将本地的文件复制到hdfs的分布式系统中
-put 将本地文件复制到hdfs系统中,可以给文件重命名,本地原文件还存在
-moveFromLocal 将文件复制到hdfs中,本地文件已不存在
# hdfs dfs -copyFromLocal hello-hadoop.txt /test/
# hdfs dfs -lsr /test
lsr: DEPRECATED: Please use 'ls -R' instead.
drwxr-xr-x - yunwei supergroup 0 2023-02-24 17:14 /test/a
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:21 /test/hello-hadoop.txt
# hdfs dfs -put hello-hadoop.txt /test/a.txt
# hdfs dfs -lsr /test
lsr: DEPRECATED: Please use 'ls -R' instead.
drwxr-xr-x - yunwei supergroup 0 2023-02-24 17:14 /test/a
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:23 /test/a.txt
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:21 /test/hello-hadoop.txt
# hdfs dfs -moveFromLocal hello-hadoop.txt /test/b.txt
# hdfs dfs -lsr /test
lsr: DEPRECATED: Please use 'ls -R' instead.
drwxr-xr-x - yunwei supergroup 0 2023-02-24 17:14 /test/a
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:23 /test/a.txt
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:25 /test/b.txt
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:21 /test/hello-hadoop.txt

当知道文件内容小的时候,可以用-cat,
文件内容很大时,可以用-tail -f,文件就会一直在文件末尾,有信息时,随时展示
# hdfs dfs -cat /test/a.txt
name:china
local:beijing
time:now
say:hello hadoop
#
# hdfs dfs -tail -f /test/a.txt
name:china
local:beijing
time:now
say:hello hadoop
# hdfs dfs -mv /test/a.txt /test/aa.txt
# hdfs dfs -lsr /test
lsr: DEPRECATED: Please use 'ls -R' instead.
drwxr-xr-x - yunwei supergroup 0 2023-02-24 17:14 /test/a
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:23 /test/aa.txt
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:25 /test/b.txt
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:21 /test/hello-hadoop.txt
5.下载文件# hdfs dfs -get /test/b.txt
# ll
total 4
-rw-r--r-- 1 yunwei yunwei 51 Feb 24 17:34 b.txt
# hdfs dfs -rm r /test/aa.txt
rm: `r': No such file or directory
23/02/24 17:41:19 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /test/aa.txt
#
# hdfs dfs -lsr /test
lsr: DEPRECATED: Please use 'ls -R' instead.
drwxr-xr-x - yunwei supergroup 0 2023-02-24 17:14 /test/a
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:25 /test/b.txt
-rw-r--r-- 2 yunwei supergroup 51 2023-02-24 17:21 /test/hello-hadoop.txt
# hdfs dfs -du -h /test
0 /test/a
51 /test/b.txt
51 /test/hello-hadoop.txt
# hdfs dfs -rmr /usr
rmr: DEPRECATED: Please use 'rm -r' instead.
23/02/24 16:39:51 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /usr
# hdfs dfs -ls /
Found 1 items
drwxr-xr-x - yunwei supergroup 0 2023-02-24 14:39 /hbase
hdfs dfs -mkdir dir 创建文件夹
hdfs dfs -rmr dir 删除文件夹dir
hdfs dfs -ls 查看目录文件信息
hdfs dfs -lsr 递归查看文件目录信息
hdfs dfs -stat path 返回指定路径的信息
9.1.2 空间大小查看系列命令:
hdfs dfs -du -h dir 按照适合阅读的形式人性化显示文件大小
hdfs dfs -dus uri 递归显示目标文件的大小
hdfs dfs -du path/file显示目标文件file的大小
9.1.3 权限管理类:
hdfs dfs -chgrp group path 改变文件所属组
hdfs dfs -chgrp -R /dir 递归更改dir目录的所属组
hdfs dfs -chmod [-R] 权限 -path 改变文件的权限
hdfs dfs -chown owner[-group] /dir 改变文件的所有者
hdfs dfs -chown -R owner[-group] /dir 递归更改dir目录的所属用户
9.1.4 文件操作(上传下载复制)系列:
hdfs dfs -touchz a.txt 创建长度为0的空文件a.txt
hdfs dfs -rm file 删除文件file
hdfs dfs -put file dir 向dir文件上传file文件
hdfs dfs -put filea dir/fileb 向dir上传文件filea并且把filea改名为fileb
hdfs dfs -get file dir 下载file到本地文件夹
hdfs dfs -getmerge hdfs://Master:9000/data/SogouResult.txt CombinedResult 把hdfs里面的多个文件合并成一个文件,合并后文件位于本地系统
hdfs dfs -cat file 查看文件file
hdfs fs -text /dir/a.txt 如果文件是文本格式,相当于cat,如果文件是压缩格式,则会先解压,再查看
hdfs fs -tail /dir/a.txt查看dir目录下面a.txt文件的最后1000字节
hdfs dfs -copyFromLocal localsrc path 从本地复制文件
hdfs dfs -copyToLocal /hdfs/a.txt /local/a.txt 从hdfs拷贝到本地
hdfs dfs -copyFromLocal /dir/source /dir/target 把文件从原路径拷贝到目标路径
hdfs dfs -mv /path/a.txt /path/b.txt 把文件从a目录移动到b目录,可用于回收站恢复文件
9.1.5 判断系列:
hdfs fs -test -e /dir/a.txt 判断文件是否存在,正0负1
hdfs fs -test -d /dir 判断dir是否为目录,正0负1
hdfs fs -test -z /dir/a.txt 判断文件是否为空,正0负1
9.1.6 系统功能管理类:
hdfs dfs -expunge 清空回收站
hdfs dfsadmin -safemode enter 进入安全模式
hdfs dfsadmin -sfaemode leave 离开安全模式
hdfs dfsadmin -decommission datanodename 关闭某个datanode节点
hdfs dfsadmin -finalizeUpgrade 终结升级操作
hdfs dfsadmin -upgradeProcess status 查看升级操作状态
hdfs version 查看hdfs版本
hdfs daemonlog -getlevel host:port 打印运行在host:port的守护进程的日志级别
hdfs daemonlog -setlevel host:port 设置运行在host:port的守护进程的日志级别
hdfs dfs -setrep -w 副本数 -R path 设置文件的副本数
start-dfs.sh 启动namenode,datanode,启动文件系统
stop-dfs.sh 关闭文件系统
start-yarn.sh 启动resourcemanager,nodemanager
stop-yarn.sh 关闭resourcemanager,nodemanager
start-all.sh 启动hdfs,yarn
stop-all.sh 关闭hdfs,yarn
hdfs-daemon.sh start datanode 单独启动datanode
start-balancer.sh -t 10% 启动负载均衡,尽量不要在namenode节点使用
hdfs namenode -format 格式化文件系统
hdfs namenode -upgrade 分发新的hdfs版本之后,namenode应以upgrade选项启动
hdfs namenode -rollback 将namenode回滚到前一版本,这个选项要在停止集群,分发老的hdfs版本之后执行
hdfs namenode -finalize finalize会删除文件系统的前一状态。最近的升级会被持久化,rollback选项将再不可用,升级终结操作之后,它会停掉namenode,分发老的hdfs版本后使用
hdfs namenode importCheckpoint 从检查点目录装载镜像并保存到当前检查点目录,检查点目录由fs.checkpoint.dir指定
hdfs jar file.jar 执行jar包程序
hdfs job -kill job_201005310937_0053 杀死正在执行的jar包程序
hdfs job -submit 提交作业
hdfs job -status 打印map和reduce完成百分比和所有计数器。
hdfs job -counter 打印计数器的值。
hdfs job -kill 杀死指定作业。
hdfs job -events <from-event-#> <#-of-events> 打印给定范围内jobtracker接收到的事件细节。
hdfs job -history [all]
hdfs job -history 打印作业的细节、失败及被杀死原因的细节。更多的关于一个作业的细节比如成功的任务,做过的任务尝试等信息可以通过指定[all]选项查看。
hdfs job -list [all] 显示所有作业。-list只显示将要完成的作业。
hdfs job -kill -task 杀死任务。被杀死的任务不会不利于失败尝试。
hdfs job -fail -task 使任务失败。被失败的任务会对失败尝试不利。
hdfs fsck -move 移动受损文件到/lost+found
hdfs fsck -delete 删除受损文件。
hdfs fsck -openforwrite 打印出写打开的文件。
hdfs fsck -files 打印出正被检查的文件。
hdfs fsck -blocks 打印出块信息报告。
hdfs fsck -locations 打印出每个块的位置信息。
hdfs fsck -racks 打印出data-node的网络拓扑结构。
hdfs pipes -conf 作业的配置
hdfs pipes -jobconf <key=value>, <key=value>, … 增加/覆盖作业的配置项
hdfs pipes -input 输入目录
hdfs pipes -output 输出目录
hdfs pipes -jar Jar文件名
hdfs pipes -inputformat InputFormat类
hdfs pipes -map Java Map类
hdfs pipes -partitioner Java Partitioner
hdfs pipes -reduce Java Reduce类
hdfs pipes -writer Java RecordWriter
hdfs pipes -program 可执行程序的URI
hdfs pipes -reduces reduce个数
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa
关于SSHkit-Github它说:Allbackendssupporttheexecute(*args),test(*args)&capture(*args)来自SSHkit-Rubydoc,我明白execute实际上是test的别名?test之间有什么区别?,execute,capture在Capistrano/SSHKit中我应该什么时候使用? 最佳答案 执行只是执行命令。使用非0退出引发错误。测试方法的行为与execute完全相同,但是它返回bool值(true如果命令以0退出,而false否则)。它通常用于控制任务中的流程
我在目录“C:\DocumentsandSettings\test.exe”中有一个文件,但是当我用单引号编写命令时`C:\DocumentsandSettings\test.exe(我无法在此框中显示),用于在Ruby中执行命令,我无法这样做,我收到的错误是找不到文件或目录。我尝试用“//”和“\”替换“\”,但似乎没有任何效果。我也使用过系统、IO.popen和exec命令,但所有的努力都是徒劳的。exec命令还使程序退出,这是我不想发生的。提前致谢。 最佳答案 反引号环境就像双引号,所以反斜杠用于转义。此外,Ruby会将空格解