HDFS基本使用实践
Posted 大白猿学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS基本使用实践相关的知识,希望对你有一定的参考价值。
一. 启动HDFS
$ cd /usr/local/hadoop
$ ./sbin/start-dfs.sh
如果已经把/usr/local/hadoop/sbin加入PATH环境变量了,就可以在任意目录下直接输入start-dfs.sh启动HDFS
添加目录至PATH环境变量的方法:
在shell中输入 vim ~/.bashrc 进入vim编辑器
按a或i进入编辑模式
在文件最前面加入如下内容(Ctrl+Shift+v粘贴)
export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin然后按Esc键退出插入模式
输入“:wq”并回车,即保存并退出vim(如果改错了输入“:e!”可放弃修改;不保存退出则输入“:q”)
回到shell后,输入source ~/.bashrc 使设置生效
设置好以后,就可以在任意目录下使用Hadoop的命令了
启动完成后,可输入命令jps,如果成功启动,应该可以看到 “NameNode”、”DataNode” 和 “SecondaryNameNode”进程
$ jps
6416 DataNode
6196 NameNode
7116 Jps
6685 SecondaryNameNode
二、与HDFS交互的Shell命令
1. 三种使用HDFS的命令:
(1) hadoop fs:适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
(2) hadoop dfs:只能适用于HDFS文件系统
(3) hdfs dfs:跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统
输入如下命令可以查看fs支持哪些命令(在/usr/local/hadoop文件夹下):
$ ./bin/hadoop fs
也可添加-help进一步查看某命令的作用,如查看put命令用法
$ ./bin/hadoop fs -help put
输出
-put [-f] [-p] [-l] [-d] <localsrc> ... <dst> :
Copy files from the local file system into fs. Copying fails if the file already
exists, unless the -f flag is given.
Flags:
-p Preserves access and modification times, ownership and the mode.
-f Overwrites the destination if it already exists.
-l Allow DataNode to lazily persist the file to disk. Forces
replication factor of 1. This flag will result in reduced
durability. Use with care.
-d Skip creation of temporary file(<dst>._COPYING_).
2. 目录操作
在HDFS为hadoop用户(Linux当前登录的账户)创建一个用户目录
$ .bin/hdfs dfs -mkdir -p /user/hadoop
此命令表示在HDFS中创建“/user/hadoop”的目录,“-mkdir”是创建目录的操作,“-p”表示如果是多级目录(“/user/hadoop”就是)则父目录和子目录一起创建(否则出错)。
用“-ls”命令列出文件夾下的內容
$ ./bin/hdfs dfs –ls
要列出指定路徑下的的內容,如/user/hadoop下的
$ ./bin/hdfs dfs –ls /user/hadoop
注意当前文件夹就是/user/hadoop,路径以“/”开头就是绝对路径,没有“/”就是相对路径。
在当前路径下创建名为input的文件夹
$ ./bin/hdfs dfs –mkdir input
删除文件或文件夹用-rm
$ ./bin/hdfs dfs -rm -r input
这条命令中“-r”表示删除目录及其子目录下所有内容(r=recursive)。包含子目录的文件夹必须加“-r”,否则失败。
可以发现,dfs的目录操作命令和Linux的是一致的,不过加了“-”
3. 文件操作
本地文件和HDFS中的文件互传在实际应用中经常发生
(1) 在本地创建文件
在本地新建一个文件。用vim编辑器在“/home/hadoop”目录(绝对路径)下创建一个文件myFile.txt
$ vim /home/hadoop/myFile.txt
按a进入编辑模式,在里面随便输入些内容:
Hello
Old iron
Double click 666
Ese退出编辑模式然后“:wq”保存退出
(2) 将本地文件上传到HDFS
可以用-put命令把刚才的txt文件上传到刚才我们在HDFS中创建的input文件夹中
$ ./bin/hdfs dfs -put /home/hadoop/myFile.txt input
可以用-ls命令查看一下input文件夹
$ ./bin/hdfs dfs -ls input
输出
Found 1 items
-rw-r--r-- 1 hadoop supergroup 32 2020-03-22 21:13 input/myFile.txt
说明上传成功,可以用-cat命令查看其内容
$ ./bin/hdfs dfs -cat input/myFile.txt
输出
Hello
Old iron
Double click 666
(3) 将HDFS的文件下载到本地
用-get命令把刚才上传到HDFS的文件下载到本地的/home/hadoop/Downloads文件夹中
$ ./bin/hdfs dfs -get input/myFile.txt /home/hadoop/Downloads
用ls命令可查看本地目录的文件
$ ls /home/hadoop/Downloads
有myFile.txt说明下载成功
用cat命令查看本地文件内容
$ cat /home/hadoop/Downloads/myFile.txt
输出
Hello
Old iron
Double click 666
(4) HDFS内不同目录间拷贝
在HDFS内新建一个output目录
$ ./bin/hdfs dfs -mkdir output
用-cp命令将myFile从input文件夹拷贝到output文件夹
$ ./bin/hdfs dfs -cp input/myFile.txt output
三、用web界面管理HDFS
http://localhost:50070/
即可进入HDFS的web管理界面
其他常用端口:
HDFS页面:50070
YARN的管理界面:8088
HistoryServer的管理界面:19888
Zookeeper的服务端口号:2181
mysql的服务端口号:3306
Hive.server1=10000
Kafka的服务端口号:9092
azkaban界面:8443
Hbase界面:16010,60010
Spark的界面:8080
Spark的URL:7077
参考:大数据技术原理与应用-厦门大学林子雨
http://dblab.xmu.edu.cn/blog/290-2/
以上是关于HDFS基本使用实践的主要内容,如果未能解决你的问题,请参考以下文章
HDFS问题集,使用命令报错:com.google.protobuf.ServiceException:java.lang.OutOfMemoryError:java heap space(示例(代码