#yyds干货盘点#大数据基础HDFS练习

从来好事天生俭,自古瓜儿苦后甜。这篇文章主要讲述#yyds干货盘点#大数据基础HDFS练习相关的知识,希望能为你提供帮助。
目的

  1. 理解HDFS在Hadoop体系结构中的角色;
  2. 熟练使用HDFS操作常用的Shell命令;
  3. 熟悉HDFS操作常用的java API。
平台操作系统:Linux
Hadoop版本:2.6.0或以上版本
JDK版本:1.6或以上版本
Java IDE:Eclipse
内容和要求HDFS理解
含义:
HDFS是hadoop项目的核心子项目,是分布式计算中数据存储管理的基础。是基于流数据模式访问和处理超大文件的需求而开发的, 可以运行于廉价的商用服务器上。
它所具有的高容错、 高可靠性、 高可扩展性、 高获得性、 高吞吐率等特征为海量数据提供了不怕故障的存储, 为超大数据集的应用处理带来了很多便利。
HDFS是开源的,存储着Hadoop应用将要处理的数据,类似于普通的Unix和linux文件系统,不同的是它是实现了google的GFS文件系统的思想,是适用于大规模分布式数据处理相关应用的、可扩展的分布式文件系统。
HDFS的关键元素:
Block:将一个文件进行分块,通常是64M,可配置。若文件大小不到64MB ,则单独存成一个block。Block大小和副本数通过Client端上传文件时设置,文件上传成功后副本数可以变更,Block Size不可变更。
NameNode:保存整个文件系统的目录信息、文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode就失效了。在Hadoop2.*开始支持activity-standy模式----如果主NameNode失效,启动备用主机运行NameNode。
DataNode:分布在廉价的计算机上,用于存储Block块文件。
HDFS编程练习
【#yyds干货盘点#大数据基础HDFS练习】1. 利用 Hadoop 提供的 Shell 命令完成
向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;
#yyds干货盘点#大数据基础HDFS练习

文章图片

#yyds干货盘点#大数据基础HDFS练习

文章图片

#yyds干货盘点#大数据基础HDFS练习

文章图片

#yyds干货盘点#大数据基础HDFS练习

文章图片


从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;
#yyds干货盘点#大数据基础HDFS练习

文章图片

将HDFS中指定文件的内容输出到终端中;
#yyds干货盘点#大数据基础HDFS练习

文章图片

显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;
#yyds干货盘点#大数据基础HDFS练习

文章图片

给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;
#yyds干货盘点#大数据基础HDFS练习

文章图片

利用JAVA API 编程实现
编写一个Java程序,判断HDFS上是否存在某个文件?
代码如下:
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class a1public static void main(String[] args)tryString fileName = "/user/hadoop/123.txt"; Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://localhost:9000"); conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); FileSystem fs = FileSystem.get(conf); if(fs.exists(new Path(fileName)))System.out.println(fileName + " 文件存在"); elseSystem.out.println(fileName + " 文件不存在"); catch (Exception e)e.printStackTrace();

结果如下:
#yyds干货盘点#大数据基础HDFS练习

文章图片

在其中我遇到了以下错误:
Hadoop启动HDFS进程的时候报错,提示权限不够
错误:
#yyds干货盘点#大数据基础HDFS练习

文章图片

错误原因:
因为切换了用户无法正常使用
解决办法:
复制导入公钥就可以了,SSH链接需要使用公钥认证:
切换到ssh目录:cd ~/.ssh/
#yyds干货盘点#大数据基础HDFS练习

文章图片

再次启动HDFS就可以了。

    推荐阅读