HDFS基础编程(含java程序以及部署app)

查看命令用法

cd /usr/local/hadoop
./sbin/start-dfs.sh

查看支持的命令

./bin/hdfs dfs

查看具体的命令用法

./bin/hdfs dfs help put

HDFS操作

目录操作

  1. 为Hadoop创建用户目录
 ./bin/hdfs dfs -mkdir -p /user/hadoop
  1. 查看当前目录,创建新目录在这里插入图片描述
  2. 删除新建的目录

在这里插入图片描述

文件操作

  1. 新建文件
    用vim编辑,最后以:wq命令结束
    在这里插入图片描述

  2. 上传文件并检查内容
    将本地的myTest.txt上传到input中,再用-cat查看文本文件内的内容
    在这里插入图片描述

  3. 下载到本地
    在这里插入图片描述

  4. 在HDFs中复制文件
    在这里插入图片描述

编写一个可以和HDFS相交互的Java应用程序

  1. 启动sclipse
cd /usr/local/eclipse
./eclipse 

在这里插入图片描述
在这里插入图片描述
2. 新建工程 在这里插入图片描述
3.导入jar包
在这里插入图片描述

编程

1.新建类,拷贝代码到文件中

在这里插入图片描述
在这里插入图片描述

  1. 确保启动hadoop在这里插入图片描述
  2. 编译运行
    右键代码空白部分,以app形式运行
    在这里插入图片描述文件大小为0,出错解决过程:(1) 第一次尝试,重新run一遍: 报一样的错误(2)第二次尝试,重启虚拟机:新的错误出现!
Name node is in safe mode

在Hadoop的目录下输入命令:
bin/hadoop dfsadmin -safemode leave
在这里插入图片描述

回到一开始的错误
(3)删除input、output
在这里插入图片描述
(4)重新上传文件在这里插入图片描述
console:在这里插入图片描述
ok了
(5)查看文件

cd /usr/local/hadoop
./bin/hdfs dfs -ls /user/hadoop
./bin/hdfs dfs -cat /user/hadoop/merge.txt

在这里插入图片描述

应用部署

  1. 创建myapp目录在这里插入图片描述
  2. 导出文件在这里插入图片描述
    在这里插入图片描述
    输入地址和方式
    在这里插入图片描述
    打包完成
    在这里插入图片描述

试运行

  1. 回到上一层目录
  2. 删除原来的merge文件(没有则不同)
  3. 运行jar
  4. 列出里面的文件
  5. 展示merge.txt
cd /usr/local/hadoop
./bin/hdfs dfs -rm /user/hadoop/merge.txt
./bin/hadoop jar ./myapp/HDFSExample.jar
./bin/hdfs dfs -ls /user/hadoop
./bin/hdfs dfs -cat /user/hadoop/merge.txt

运行结果
在这里插入图片描述
在这里插入图片描述
微微有些瑕疵:输入的内容没有换行

总结

通过本次实验,我熟悉了HDFS的基本shell命令、HDFS的web管理,掌握了HDFS编程实践。
这次实验的难点集中在运行Hadoop程序上,一个是jar包的导入,一个是运行程序跑出结果。
运行中一定要多看console里的返回的信息,尽量靠自己的英文水平读懂,找到报错的意思。比如:

Name node is in safe mode

namenode在安全模式中,那么相应的处理方式类似关闭防火墙

path is not a file

路径不应该是文件,那就把原来建的input和output删掉
当然整个实验,最方便的检查方式也是最关键的地方就是清楚每次生成的文件,创建的文件到底在本地还是在系统中。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值