HadoopShell基本操作
实验⽬的
1.熟练掌握常⽤的hadoop shell命令
相关知识
调⽤⽂件系统(FS)Shell命令应使⽤ hadoop fs <args>的形式。所有的的FS shell命令使⽤URI路径作为参数。URI格式是
scheme://authority/path。对HDFS⽂件系统,scheme是hdfs,对本地⽂件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使⽤配置中指定的默认scheme。⼀个HDFS⽂件或⽬录⽐如/parent/child可以表⽰成
hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置⽂件中的默认值是namenode:namenodeport)。⼤多数FS Shell命令的⾏为和对应的Unix Shell命令类似,出错信息会输出到stderr,其他信息输出到stdout。
系统环境
Linux Ubuntu 16.04
hadoop-2.6.0-cdh5.4
任务内容
1.学习在开启、关闭Hadoop
2.学习在Hadoop中创建、修改、查看、删除⽂件夹及⽂件
3.学习改变⽂件的权限及⽂件的拥有者
4.学习使⽤shell命令提交job任务
5.Hadoop安全模式的进⼊与退出
任务步骤
1.打开终端模拟器,切换到/apps/hadoop/sbin⽬录下,启动Hadoop
1. cd /apps/hadoop/sbin
2. ./start-all.sh
除了直接执⾏start-all.sh外,还可以分步启动start-dfs.sh和start-yarn.sh。
2.执⾏jps,检查⼀下Hadoop相关进程是否启动
1. jps
3.在/⽬录下创建⼀个test1⽂件夹
1. hadoop fs -mkdir /test1
4.在Hadoop中的test1⽂件夹中创建⼀个⽂件
1. hadoop fs -touchz /
5.查看根⽬录下所有⽂件
1. hadoop fs -ls /
6.还可以使⽤ls -R的⽅式递归查看根下所有⽂件
1. hadoop fs -ls -R /
shell vim命令
7.将Hadoop根下test1⽬录中的⽂件,移动到根下并重命名为
1. hadoop fs -mv / /file
<
Hadoop中的mv⽤法同Linux中的⼀样,都可以起到移动⽂件和重命名的作⽤。
8.将Hadoop根下的⽂件复制到test1⽬录下
1. hadoop fs -cp /file
< /test1
9.在Linux本地/data⽬录下,创建⼀个⽂件,并向其中写⼊hello hadoop!
1. cd /data
2.
3. echo hello hadoop! >>
10.将Linux本地/data⽬录下的⽂件,上传到HDFS中的/test1⽬录下
1. hadoop fs -put / /test1
11.查看Hadoop中/test1⽬录下的⽂件
1. hadoop fs -cat /
12.除此之外还可以使⽤tail⽅法
1. hadoop fs -tail /
tail⽅法是将⽂件尾部1K字节的内容输出。⽀持-f选项,⾏为和Unix中⼀致。
13.查看Hadoop中/test1⽬录下的⽂件⼤⼩
1. hadoop fs -du -s /
-du 后⾯可以不加-s,直接写⽬录表⽰查看该⽬录下所有⽂件⼤⼩
<⽅法可以将源⽂件输出为⽂本格式。允许的格式是zip和TextRecordInputStream。
1. hadoop fs -text /
15.stat⽅法可以返回指定路径的统计信息,有多个参数可选,当使⽤-stat选项但不指定format时候,只打印⽂件创建⽇期,相当于%y
1. hadoop fs -stat /
下⾯列出了format的形式:
%b:打印⽂件⼤⼩(⽬录为0)
%n:打印⽂件名
%o:打印block size (我们要的值)
%r:打印备份数
%y:打印UTC⽇期 yyyy-MM-dd HH:mm:ss
%Y:打印⾃1970年1⽉1⽇以来的UTC微秒数
%F:⽬录打印directory, ⽂件打印regular file
16.将Hadoop中/test1⽬录下的⽂件,下载到Linux本地/apps⽬录中
1. hadoop fs -get / /apps
17.查看⼀下/apps⽬录下是否存在⽂件
1. ls /apps
18.使⽤chown⽅法,改变Hadoop中/test1⽬录中的⽂件拥有者为root,使⽤-R将使改变在⽬录结构下递归进⾏。
1. hadoop fs -chown root /
19.使⽤chmod⽅法,赋予Hadoop中/test1⽬录中的⽂件777权限
1. hadoop fs -chmod 777 /
20.删除Hadoop根下的⽂件
1. hadoop fs -rm /file
<
21.删除Hadoop根下的test1⽬录
1. hadoop fs -rm -r /test1
22.当在Hadoop中设置了回收站功能时,删除的⽂件会保留在回收站中,可以使⽤expunge⽅法清空回收站。
1. hadoop fs -expunge
在分布式⽂件系统启动的时候,开始的时候会有安全模式,当分布式⽂件系统处于安全模式的情况下,⽂件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运⾏期通过命令也可以进⼊安全模式。在实践过程中,系统启动的时候去修改和删除⽂件也会有安全模式不允许修改的出错提⽰,只需要等待⼀会⼉即可。
23.使⽤Shell命令执⾏Hadoop⾃带的WordCount
⾸先切换到/data⽬录下,使⽤vim编辑⼀个⽂件,内容为:hello world hello hadoop hello ipieuvre
1. cd /data
2.
在HDFS的根下创建in⽬录,并将/data下的⽂件上传到HDFS中的in⽬录
1. hadoop fs -put / /in
执⾏hadoop jar命令,在hadoop的/apps/hadoop/share/hadoop/mapreduce路径下存在hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar包,我们执⾏其中的worldcount类,数据来源为HDFS的/in⽬录,数据输出到HDFS的/out⽬录
1. hadoop jar /apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-
2.6.0-cdh5.4.5.jar wordcount /in /out
查看HDFS中的/out⽬录
1. hadoop fs -ls /out
2. hadoop fs -cat /out/*
24.进⼊Hadoop安全模式
1. hdfs dfsadmin -safemode enter
25.退出Hadoop安全模式
1. hdfs dfsadmin -safemode leave
26.切换到/apps/hadoop/sbin⽬录下,关闭Hadoop
1. cd /apps/hadoop/sbin
2. ./stop-all.sh

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。