Hadoop常用命令

  • Hadoop常用命令-格式
  • Hadoop常用命令—查看版本
  • hadoop常用命令—目录操作
  • 使用Shell命令执行Hadoop自带的WordCount
  • 总结


1、打开终端模拟器

、Hadoop常用命令-格式

、Hadoop常用命令-查看版本

、Hadoop常用命令-目录操作

、hadoop常用命令-文件操作

jps命令在hadoop中做了什么 hadoop jps命令_hadoop


打开终端模拟器,切换到/apps/hadoop/sbin目录下,启动Hadoop

cd /apps/hadoop/sbin
ls
./start-all.sh

执行jps,检查一下Hadoop相关进程是否启动

jps

[root@bogon ceshi]# jps
71776 DataNode
84946 NodeManager
110389 Jps
82571 NameNode
71930 SecondaryNameNode
84285 ResourceManager

Hadoop常用命令-格式

HDFS提供了Shell的操作接口

操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。
shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。
shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。
本质上,shell script是命令行命令简单的组合到一个文件里面。
Shell基本上是一个命令解释器,类似于DOS下的command.com

文件操作命令与Linux相似

使用前先启动Hadoop配置环境和jp查看是否打开。

格式为:hadoop fs -<命令> <目标>

hadoop fs -ls /user

Hadoop常用命令—查看版本

1、查看hdfs系统版本

hdfs version

2、查看hdrs系统状态

hdfs dfsadmin -report

hadoop常用命令—目录操作

1、查看目录及文件

hadoop fs -ls /     #查看根目录
hadoop fs -ls /joel #查看根目录里面的Joel目录
hadoop fs -ls -R /  #hadoop fs -ls -R /

2、创建及删除目录

hadoop fs -mkdir /joel #创建
hadoop fs -mkdir -p /joel/tmp/apps #创建所有父子目录
hadoop fs -touchz /joel/file.txt
hadoop fs -rm -r /joel #删除

## hadoop常用命令-文件操作 在Hadoop中的joel文件夹中创建一个text.txt文件

hadoop fs -touchz /joel/test.txt

将Hadoop根下joel目录中的text.txt文件,移动到根下并重命名为text2.txt

hadoop fs -mv /joel/text.txt /text2.txt 
Hadoop中的mv用法同Linux中的一样,都可以起到移动文件和重命名的作用。

将Hadoop根下的text2.txt文件复制到joel目录下

hadoop fs -cp /text2.txt /joel

.在Linux本地/ceshi目录下,创建一个data.txt文件,并向其中写入hello hadoop!

cd /ceshi  
touch data.txt  
echo hello hadoop! >> data.txt

将Linux本地/jeol目录下的data.txt文件,上传到HDFS中的/test1目录下

hadoop fs -put /ceshi/data.txt /test1

hadoop fs -put /ceshi/wenben/test1.txt /joel #从根目录找到指定文件上传到 Hadoop/joel 文件目录夹中 

```..
.
查看Hadoop中/joel目录下的data.txt文件

```powershell
hadoop fs -cat /joel/data.txt

除此之外还可以使用tail方法

hadoop fs -tail /test1/data.txt
tail方法是将文件尾部1K字节的内容输出。支持-f选项,行为和Unix中一致。

查看Hadoop中/test1目录下的data.txt文件大小

hadoop fs -du -s /jeol/data.txt


-du 后面可以不加-s,直接写目录表示查看该目录下所有文件大小

text方法可以将源文件输出为文本格式。允许的格式是zip和TextRecordInputStream。

hadoop fs -text /test1/data.txt

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

hadoop fs -stat /joel/data.txt
 
下面列出了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

将Hadoop中/joel目录下的data.txt文件,下载到Linux本地/apps目录中

hadoop fs -get /joel /data.txt /apps
  
hadoop fs -get /joel/test.txt #下载文件
hadoop fs -get /joel/test.txt /ceshi/wenben #从hadoop/joel文件目录夹中下载到指定的/ceshi/wenben目录中

查看一下/apps目录下是否存在data.txt文件

ls /apps

使用chown方法,改变Hadoop中/joel目录中的data.txt文件拥有者为root,使用-R将使改变在目录结构下递归进行。

hadoop fs -chown root /joel/data.txt

使用chmod方法,赋予Hadoop中/joel目录中的data.txt文件777权限

读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1。所以,上面的例子中的rw-r–r--用数字表示成644。反过来说777就是rwx rwx rwx,意思是该登录用户(可以用命令id查看)、所在的组和其他人都有最高权限。

hadoop fs -chmod 777 /test1/data.txt

删除Hadoop根下的text.txt文件

hadoop fs -rm /text.txt

删除Hadoop根下joel目录里的text.txt

hadoop fs -rm /joel/text.txt

当在Hadoop中设置了回收站功能时,删除的文件会保留在回收站中,可以使用expunge方法清空回收站。

hadoop fs -expunge

注意事项
1、在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个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  
将/data/data.txt  里的内容上传到根目录  并将data.txt 名字更改为in

执行hadoop jar命令,在hadoop的/apps/hadoop/share/hadoop/mapreduce路径下存在hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar包,我们执行其中的worldcount类,数据来源为HDFS的/in目录,数据输出到HDFS的/out目录
使用前切换到 /apps/hadoop/share/hadoop/mapreduce/目录下查看hadoop-mapreduce-examples-版本.jar包。

cd /apps/hadoop/share/hadoop/mapreduce
ls
[joel@localhost mapreduce]$ ls
hadoop-mapreduce-client-app-2.7.2.jar
hadoop-mapreduce-client-common-2.7.2.jar
hadoop-mapreduce-client-core-2.7.2.jar
hadoop-mapreduce-client-hs-2.7.2.jar
hadoop-mapreduce-client-hs-plugins-2.7.2.jar
hadoop-mapreduce-client-jobclient-2.7.2.jar
hadoop-mapreduce-client-jobclient-2.7.2-tests.jar
hadoop-mapreduce-client-shuffle-2.7.2.jar
hadoop-mapreduce-examples-2.7.2.jar

hadoop jar /apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /in /out

查看HDFS中的/out目录

hadoop fs -ls /out  
hadoop fs -cat /out/*

进入Hadoop安全模式

hdfs dfsadmin -safemode enter

退出Hadoop安全模式

hdfs dfsadmin -safemode leave

切换到/apps/hadoop/sbin目录下,关闭Hadoop

cd /apps/hadoop/sbin  
./stop-all.sh

总结


掌握hadoop常用命令 语法格式:hadoop fs -<命令> <目标> 查看版本前要先打开Hadoop集群,检查是否打开输入jps命令查看开启状态不论在那个位置输入都会出现响应。 hdfs version 查看Hadoop版本信息 hdfs dfsadmin -report 查看系统状态 目录操作 hadoop fs -ls <目标> 掌握CentOS基本命令即可掌握 Hadoop命令使用有所不同就是在前添加了hadoop fs Hadoop fs -cat <目标>查看文件命令 liux 只有一个 cat <目标>