实验内容:
在HDFS的shell客户端和Java API客户端操作HDFS的节点,对文件进行操作
实验数据记录:
在HDFS的shell端操作:
主要使用了 hadoop fs 的一些简单指令
在HDFS的Java API端操作:
打开安装好的IDEA,新建maven项目,点击右上角setting,配置maven:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.10.0</version>
</dependency>
问题:无法导入相关jar包,程序运行失败
解决办法:
点击右上角file,setting,设置maven的目录和setting文件位置为安装的maven路径
点击Maven project 左上角的Rimport,及右边的Downsources,重启IDEA,即可正常导入jar包:
检查代码,出现拼写及语法错误,改正如下:
其中特别注意导入的是java.net.URI而不是URL
总结:
3.1 文件系统:
文件系统是操作系统的重要组成部分,建立了硬盘等存储设备中存储内容的目录结构,可管理物理存储设备
3.2 HDFS分布式文件系统:
(1)设计目标:1.硬件故障容错 2.流式数据访问 3.面向大数据集 4.简化的一致性模型 5.移动计算程序比移动数据更经济 6.跨异构软硬件平台的可靠性
(2)HDFS的原理与结构:HDFS将大数据按照固定大小拆分成一个个数据块,然后将数据块发送到集群的不同节点进行存储,并采用主从架构设计,其所管理的集群有两类计算节点: namenode 和datanode节点。Namenode节点运行namenode进程,是HDFS的管理节点,负责维护整个文件系统的文件目录树、文件、目录的元信息等。Datanode节点运行datanode进程,是HDFS的数据存储节点,并且要负责用户的读取请求。大文件的一个数据块在datanode检点以一个独立的文件形式存放。当一个datanode启动时,首先将自身的信息发送给namenode,向namenode进行注册。HDFS在设计时提供了数据块的多副本存储策略,也就是HDFS为数据块在集群中提供多个备份。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。