复习关于Hadoop的操作语句以及重点
Shell版
- 跳转目录到Hadoop:
cd /usr/local/hadoop
-
启动Hadoop:
./sbin/start-dfs.sh
-
注意:Hadoop实际上有三种shell命令方式:hadoop fs/hadoop dfs/hdfs dfs,hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统,hadoop dfs只能适用于HDFS文件系统,hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统(使用命令前需要先启动Hadoop)
- 在HDFS上创建/user/hadoop目录:
./bin/hdfs dfs –mkdir –p /user/hadoop
- 删除input目录:
./bin/hdfs dfs –rm –r /input
- 上传本地文件(/usr/local/hadoop/test.txt)到HDFS的input目录:
./bin/hdfs dfs -put /usr/local/hadoop/test.txt input
注意:图片中显示-ls:Unknown command是由于在从电脑复制命令到虚拟机时产生编码错误,在第二个命令时没有出现这个问题,所以在复制的时候注意编码问题。
- 查看HDFS中的test.TXT文件:
./bin/hdfs dfs –cat input/text.txt
- 将文件下载到本地usr/local/hadoop目录下:
./bin/hdfs dfs -get input/test.txt /usr/local/hadoop
- 将HDFS上的test.txt文件复制到HDFS上另一个位于根目录的input目录:
./bin/hdfs dfs -cp input/test.txt /input
- 上传到HDFS的文件以覆盖的形式上传:
./bin/hadoop fs -copyFromLocal -f /home/hadoop/input/test.txt /input/test.txt
- 显示 HDFS 中指定的文件的读写权限、大小、创建时间、路径等信息
./bin/hadoop fs -ls /input
- 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息
./bin/hadoop fs -ls -R -h /user
- 删除HDFS中指定的文件
./bin/hadoop fs -rm /user/hadoop/input/log.txt
- 向 HDFS 中指定的文件追加内容,由用户指定内容追加到原有文件的结尾
./bin/hadoop fs -appendToFile /home/hadoop/input/testadd.txt /input/test.txt
向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头(采用的方法是先将HDFS中的文件下载到本地,然后使用cat添加到开头,然后将文件上传)
hadoop fs -get /input/test.txt /home/hadoop/input cat /home/hadoop/input/test.txt >> /home/hadoop/input/testadd.txt mv /home/hadoop/input/testadd.txt /home/hadoop/input/test.txt hadoop fs -put -f /home/hadoop/input/test.txt /input
-
从HDFS中下载指定文件,如果本地文件中药下载的文件名称相同,则自动对下载的文件重命名
if $(hadoop fs -test -e /home/hadoop/input/test.txt);
then $(hadoop fs -copyToLocal /input/test.txt /home/hadoop/input/test.txt);
else $(hadoop fs -copyToLocal /input/test.txt /home/hadoop/input/test1.txt);
fi