hadoop上传文件功能实例代码 hadoop上传文件功能实例代码主要介绍了hadoop上传文件功能实例代码,需要的朋友可以参考下。hdfs上的文件是手动执行命令从本地Linux上传至hdfs的。在真实的运行环境中,我们不可能每次手动执行命令上传的,这样太过繁琐。那么,我们可以使用hdfs提供的Java API实现文件上传至hdfs,或者直接从ftp上传至hdfs。 hdfs是以流式数据访问模式来存储超大文件,hdfs的构建思路是一次写入,多次读取,这样才是最高效的访问模式。hdfs是为高数据吞吐量应用优化的,所以会以提高时间延迟为代价。对于低延时的访问需求,我们可以使用hbase。 hdfs中块(block)的概念,默认为64MB。块是hdfs的数据读写的最小单位,通常每个map任务一次只处理一个block,像我们对集群性能评估就会使用到这个概念,比如目前有多少节点,每个节点的磁盘空间、cpu以及所要处理的数据量、网络带宽,通过这些信息来进行性能评估。 namenode和datanode是hdfs的核心组件,namenode是hdfs的管理者,datanode是hdfs的工作者。在yarn环境中是可以有多个namenode的。此环境中没有SecondaryNameNode,当然也可以有。 java实现上传本地文件至hdfs可以直接使用hdfs提供的java api即可实现,代码如下: ```java public class UploadLocalFileToHdfs { public static void main(String[] args) { Configuration conf = new Configuration(); String localDir = "/home/qiyongkang"; String hdfsDir = "/qiyongkang"; try{ Path localPath = new Path(localDir); Path hdfsPath = new Path(hdfsDir); FileSystem hdfs = FileSystem.get(conf); hdfs.copyFromLocalFile(localPath, hdfsPath); }catch(Exception e){ e.printStackTrace(); } } } ``` java实现上传ftp上的文件至hdfs我们得准备一个ftp服务器,关于ftp服务器的搭建,大家可以查阅资料,笔者就不赘述了。 其实,从ftp上拉取文件上传到hdfs上,这个过程大家不要想复杂了,我们讲本地文件上传到hdfs,其实就是采用流的方式。因此,我们可以直接读取ftp上的文件流,然后以流的方式写入到hdfs。 下面,直接贴出代码: ```java public class UploadFtpFileToHdfs { public static void main(String[] args) { // ftp连接信息 String ftpUrl = "ftp://username:password@ftp.example.com"; String localDir = "/home/qiyongkang"; String hdfsDir = "/qiyongkang"; // ftp连接 FTPClient ftp = new FTPClient(); ftp.connect(ftpUrl); // 读取ftp上的文件流 FileInputStream fis = ftp.retrieveFileStream("example.txt"); // 写入hdfs Configuration conf = new Configuration(); FileSystem hdfs = FileSystem.get(conf); Path hdfsPath = new Path(hdfsDir); hdfs.copyFromLocalFile(new Path(localDir), hdfsPath); } } ``` hadoop上传文件功能实例代码主要介绍了hadoop上传文件功能实例代码,需要的朋友可以参考下。hdfs提供的java api可以实现文件上传至hdfs,或者直接从ftp上传至hdfs。
- 粉丝: 7
- 资源: 983
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助