一、首先区别三个命令:hadoop fs、hadoop dfs、hdfs dfs
hadoop fs:该命令可以用于其他文件系统,不止是hdfs文件系统内,也就是说该命令的使用范围更广
hadoop dfs
专门针对hdfs分布式文件系统
hdfs dfs
和上面的命令作用相同,相比于上面的命令更为推荐,当使用hadoop dfs时内部会被转为hdfs dfs命令。通常用 bin/hdfs dfs -XXX
二、HDFS编程实践
HDFS命令
//启动HDFS
sonny@IdeaPad-S210:/usr/local/hadoop$ ./sbin/start-dfs.sh
//查看启动是否成功,成功则显示DataNode NameNode SecondaryNameNode Jps
jps
//显示HDFS文件根目录
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -ls /
//显示HDFS指定文件目录
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -ls /user/hadoop/input
//显示HDFS家目录,等价于 -ls
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -ls .
//HDFS创建文件夹
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -mkdir /user
//HDFS创建多级目录
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -mkdir -p /user/hadoop/input
//删除HDFS中目录
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -rmdir test
//上传本地文件到HDFS
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -put ./etc/hadoop/*.xml /user/hadoop/input
//上传桌面文件到HDFS
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -put ~/Project/Source/myLocalFile.txt /user/hadoop/input
//查看远程HDFS中文件内容
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -cat /user/hadoop/input/myLocalFile.txt
//查看文件或目录的大小
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -du /newDir
//下载远程HDFS中文件到本地
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -get /user/hadoop/input/myLocalFile.txt ~/下载/practice.txt
//将HDFS中一个目录下文件拷贝到HDFS中另一个目录
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hdfs dfs -cp /user/hadoop/input/myLocalFile.txt /user/hadoop/output/myLocalFile.txt
三、HDFS WEB管理界面 http://localhost:9870/
四、Eclipse Linux版安装
//下载Eclipse安装包
sonny@IdeaPad-S210:/usr/local$ sudo tar -zxvf eclipse-java-2020-09-R-linux-gtk-x86_64.tar.gz -C /usr/local
//进入到解压目录下
sonny@IdeaPad-S210:/usr/local$ ./eclipse
五、Jar文件打包运行
新建一个终端,切换到jar包所在的目录,然后将导出的jar包传到master节点上。
cd ~/course/hadoop/hdfs_pro
cp CreateDir.jar /cgsrc
进入master节点,查看hdfs文件系统上当前目录下的内容,使用jar命令操作
hadoop jar /cgsrc/CreateDir.jar newdir
六、Eclipse打包项目工程为jar文件,存储在hadoop下myapp目录中HDFSExample.jar
编译运行jar文件
sonny@IdeaPad-S210:/usr/local/hadoop$ ./bin/hadoop jar ./myapp/HDFSExample.jar