这篇文章主要介绍了利用Java连接Hadoop进行编程,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下!
实验环境
- hadoop版本:3.3.2
- jdk版本:1.8
- hadoop安装系统:ubuntu18.04
- 编程环境:IDEA
- 编程主机:windows
实验内容
测试Java远程连接hadoop
创建maven工程,引入以下依赖:
虚拟机的/etc/hosts配置
hdfs-site.xml配置
core-site.xml配置
启动hadoop
sbin/start-dfs.sh
主机的hosts(C:\\Windows\\System32\\drivers\\etc)文件配置
尝试连接到虚拟机的hadoop并读取文件内容,这里我读取hdfs下的/root/iinput文件内容
Java代码:
运行结果:
编程实现一个类“MyFSDataInputStream”,该类继承“org.apache.hadoop.fs.FSDataInputStream\",要求如下: ①实现按行读取HDFS中指定文件的方法”readLine()“,如果读到文件末尾,则返回为空,否则返回文件一行的文本
思路:emmm我的思路比较简单,只适用于该要求,仅作参考。将所有的数据读取出来存储起来,然后根据换行符进行拆分,将拆分的字符串数组存储起来,用于readline返回
Java代码
测试类:
运行结果:
②实现缓存功能,即利用”MyFSDataInputStream“读取若干字节数据时,首先查找缓存,如果缓存中有所需要数据,则直接由缓存提供,否则从HDFS中读取数据