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. 查看当前目录,创建新目录HDFS基础编程(含java程序以及部署app)_第1张图片
  2. 删除新建的目录

在这里插入图片描述

文件操作

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

  2. 上传文件并检查内容
    将本地的myTest.txt上传到input中,再用-cat查看文本文件内的内容
    HDFS基础编程(含java程序以及部署app)_第2张图片

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

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

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

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

HDFS基础编程(含java程序以及部署app)_第3张图片
HDFS基础编程(含java程序以及部署app)_第4张图片
2. 新建工程 HDFS基础编程(含java程序以及部署app)_第5张图片
3.导入jar包
HDFS基础编程(含java程序以及部署app)_第6张图片

编程

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

HDFS基础编程(含java程序以及部署app)_第7张图片
HDFS基础编程(含java程序以及部署app)_第8张图片

  1. 确保启动hadoopHDFS基础编程(含java程序以及部署app)_第9张图片
  2. 编译运行
    右键代码空白部分,以app形式运行
    HDFS基础编程(含java程序以及部署app)_第10张图片文件大小为0,出错解决过程:(1) 第一次尝试,重新run一遍: 报一样的错误(2)第二次尝试,重启虚拟机:新的错误出现!
Name node is in safe mode

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

回到一开始的错误
(3)删除input、output
在这里插入图片描述
(4)重新上传文件HDFS基础编程(含java程序以及部署app)_第11张图片
console:在这里插入图片描述
ok了
(5)查看文件

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

HDFS基础编程(含java程序以及部署app)_第12张图片

应用部署

  1. 创建myapp目录在这里插入图片描述
  2. 导出文件HDFS基础编程(含java程序以及部署app)_第13张图片
    HDFS基础编程(含java程序以及部署app)_第14张图片
    输入地址和方式
    HDFS基础编程(含java程序以及部署app)_第15张图片
    打包完成
    在这里插入图片描述

试运行

  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基础编程(含java程序以及部署app)_第16张图片
HDFS基础编程(含java程序以及部署app)_第17张图片
微微有些瑕疵:输入的内容没有换行

总结

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

Name node is in safe mode

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

path is not a file

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

你可能感兴趣的:(bug挖掘机,hdfs,hadoop,大数据)