这是我参与更文挑战的第15天,活动详情查看:更文挑战
上一篇:Hadoop框架之HDFS概述,主要讲解的是常见的Shell操作命令。今天小编要讲解的内容是HDFS客户端操作(开发重点),主要内容为:(1)HDFS客户端环境准备;(2)HDFS的API操作;(3)HDFS的I/O流操作。
根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:D:\software\hadoop-2.7.2),如图下图所示。
2.配置HADOOP_HOME环境变量,如图所示。
3. 配置Path环境变量,如图所示。
1~3 所用的参考资料汇总如下:
===================
参考1:使用IntelliJ IDEA 配置JDK:
参考2:Maven环境配置及IntelliJ IDEA中的Maven部署
4. 创建一个Maven工程HdfsClientDemo
参考1:创建一个Maven工程HdfsClientDemo
注意:如果Eclipse/Idea打印不出日志,在控制台上只显示
需要在项目的src/main/resources目录下新建文件,命名为“log4j.properties”,在文件中填入如下内容:
运行时需要配置用户名称。客户端去操作HDFS时,是有一个用户身份的。默认情况下,HDFS客户端API会从JVM中获取一个参数来作为自己的用户身份:-DHADOOP_USER_NAME=xuefa,xuefa为用户名称。
http://192.168.220.132:50070/explorer.html#/
2. 将hdfs-site.xml拷贝到项目的根目录下(resource)
参数优先级排序:(1)客户端代码中设置的值 >(2)ClassPath下的用户自定义配置文件 >(3)然后是服务器的默认配置
1. idea查看源码没有注释的问题,参考以下文章设置:
www.cnblogs.com/tdyang/p/11…
2. Intellij idea 报错:Error : java 不支持发行版本5,解决方法如下:
3. Maven的settings.xml配置详解,参考链接如下:
No.3 HDFS的I/O流操作
上面我们学的API操作HDFS系统都是框架封装好的。那么如果我们想自己实现上述API的操作该怎么实现呢?
3.1 HDFS文件上传
1.需求:把本地e盘上的banhua.txt文件上传到HDFS根目录
3.2 HDFS文件下载
1.需求:从HDFS上下载banhua.txt文件到本地e盘上
3.3 定位文件读取
1. 需求:分块读取HDFS上的大文件,比如根目录下的/hadoop-2.7.2.tar.gz
在Window命令窗口中进入到目录E:\,然后执行如下命令,对数据进行合并
type hadoop-2.7.2.tar.gz.part2 >>hadoop-2.7.2.tar.gz.part1
合并完成后,将hadoop-2.7.2.tar.gz.part1重新命名为hadoop-2.7.2.tar.gz。解压发现该tar包非常完整。
今天学习内容到此结束,后续继续学习,请保持关注!更多精彩内容,请关注公众号:小韩学长带你学