一、实验目的。
熟练掌握常用的hadoop shell命令。
二、实验内容 。
。
1.学习打开和关闭Hadoop。
2.学习在Hadoop中创建、修改、查看和删除文件夹和文件。
3.学会改变文件的权限和所有者。
4.学会使用shell命令提交job任务。
5.进出Hadoop安全模式。
三、实验原理或流程。
调用文件系统(FS)使用Shell命令 hadoop fs 的形式。 所有FS Shell命令使用URI路径作为参数。URI格式为schemeee://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命令类似于#xff0c;错误信息输出到stder,将其他信息输出到stdout。
四、实验过程及源代码。
1.打开终端模拟器切换到/apps/hadoop/sbin目录,启动Hadoop。
。
。2.实施jps检查Hadoop相关流程是否启动。

3.在/目录下创建test1文件夹。
hadoop fs -mkdir /test1 。
- 在Hadoptest1文件夹中创建file.txt文件。
hadoop fs -touchz //////////////////////////file.txt 。 。
- 查看根目录下的所有文件。
hadoop fs -ls / 。

- 也可以使用ls -将R的方式递归查看根下所有文件。
hadoop fs -ls -R / 。

- 将Hadoop根据test1目录中的file.txt文件,移动到根部并重命名为file2.tx。t。
hadoop fs -mv //////////////////////////file.txt /file2.txt 。

Hadoop中的mv用法与Linux中的mv用法相同c;移动文件和重命名都可以发挥作用。
- Hadoop根下的file2.将txt文件复制到test1目录下。
hadoop fs -cp /file2.txt /test1 。

- #xff0在Linux本地/data目录中c;创建data.txt文件༌并将hellolo写入其中 hadoop。
cd /data 。
touch data.txt 。
echo hello hadoop! >> data.txt 。

- 将Linux本地/data目录下的data.txt文件,/test1目录下上传到HDFS。hadoop fs -put /data/data.txt /test1 。
- 查看Hadoop/test1目录下的data.txt文件。 。
hadoop fs -cat //////////////////////////data.txt 。

- 此外,tail方法也可以使用。
hadoop fs -tail //////////////////////////data.txt 。

tail方法是输出文件尾部1K字节的内容。支持-f选项行为与Unix一致。
- 查看Hadoop/test1目录下的data.txt文件大小。
hadoop fs -du -s //////////////////////////data.txt 。

-du 以后可以不加-s,直接写目录,查看目录下的所有文件大小。
- text方法可以将源文件输出到文本格式。允许的格式是zip和textrecordinputstream。
。hadoop fs -text //////////////////////////data.txt。

- stat方法可以返回指定路径的统计信息,多个参数可供选择,使用stat选项但不指定format时只打印文件创建日期,相当于%y。
hadoop fs -stat //////////////////////////data.txt。

以下是format形式:
%b:打印文件大小0)目录;
%n:打印文件名称。
%o:打印block size (我们想要的值)
%r:打印备份数。
%y:打印UTC日期 yyyy-MM-dd HH:mm:ss。
%Y:UTC微秒数自1970年1月1日起打印。
%F:directory打印在目录中, 打印regular file。
- datata在Hadoop/test1目录中.txt文件,下载到Linux本地/aps目录。hadoop fs -get //////////////////////////data.txt /apps 。
- 检查datata是否存在于/aps目录中.txt文件。
ls /apps 。

18.。使用chown方法,在Hadoop/test1目录中改变data.root,在目录结构下,使用-R将变更递归。 。
hadoop fs -chown root //////////////////////////data.txt 。

19.。使用chmod方法,在Hadoop/test1目录中赋予data.txt文件777权限。
hadoop fs -chmod 777 //////////////////////////data.txt。

- 删除Hadoop根下的file2.txt文件。
hadoop fs -rm /file2.txt 。

- 删除Hadoop根下的test1目录。
hadoop fs -rm -r /test1。

- 回收站功能在Hadoop中设置时,删除的文件将保留在回收站,expunge方法可用于清空回收站。
hadoop fs -expunge 。

当分布式文件系统启动时,一开始会有安全模式,当分布式文件系统处于安全模式时,不允许修改或删除文件系统中的内容,直到安全模式结束。安全模式主要是在系统启动时检查每个Datanode上数据块的有效性,同时,根据必要的策略复制或删除一些数据块。安全模式也可以通过命令进入运行期。在实践过程中,当系统启动时,修改和删除文件也会有不允许修改的安全模式错误提示,等一会儿就行了。
- 使用Shell命令执行Hadoop自带的WordCount。
首先切换到/data目录,使用vim编辑data.txt文件,内容为:hello world hello hadoop hello ipieuvre。
cd /data 。
vim data.txt 。
在HDFS的根下创建in目录,并将/data下的data.将txt文件上传到HDFS中的in目录。
hadoop fs -put /data/data.txt /。in。
执行hadop jar命令,hadoop/apps/hadoop/share/hadoophadopop在mapreduce路径下存在-mapreduce-examples-2.6.0-cdh5.4.5.jar包,我们执行worldcount类,HDFS/in目录的数据源c;将数据输出到HDFS/out目录。hadoop jar /apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar wordcount /。hadoop jar /apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar wordcount /。in。
/out 。
查看HDFS中的/out目录。
hadoop fs -ls /out 。 。
- hadoop fs -cat /out/* 。
进入Hadop安全模式。

- hdfs dfsadmin -safemode enter 。
退出Hadop安全模式。

- hdfs dfsadmin -safemode leave 。
切换到/apps/hadoop/sbin目录,关闭Hadoop。cd /apps/hadoop/sbin 。

./stop-all.sh。
五、实验结论及经验。
通过完成本实验我熟练掌握了常用的Hadoopp Shell命令,并对Hadop的基本操作有了更深入的了解。
在这个实验中,我学会了如何打开和关闭Hadoop集群。使用适当的命令,我可以启动和停止Hadoop服务,确保集群正常运行。
我还学会了如何在Hadoop中创建、修改、查看和删除文件夹和文件。使用命令界面,我可以轻松创建新的文件夹和文件,并对其进行必要的修改和删除。
另外,我知道如何改变文件的权限和所有者。使用适当的命令,我可以为文件设置不同的权限,控制文件的访问级别。我还学会了如何更改文件的所有者,确保适当的文件管理和访问控制。
在这个实验过程中,我还学会了如何使用Shell命令提交Hadoop作业任务。这样我就可以把作业提交给Hadoop集群,并跟踪操作的执行情况。通过这种方式,对我的工作进行有效的管理和监控。
最后,我了解了Hadoop的安全模式,并学会了如何进出安全模式。这对于确保集群的安全性和稳定性非常重要c;因为安全模式可以防止文件系统的意外修改。
总的来说,通过这个实验我不仅熟悉常用的Hadoopp Shell命令,还获得了Hadoop集群管理的实践经验。这将对我未来的工作和学习中的大数据处理任务非常有帮助。