摘要:
自定义Inputformat类 mapreduce框架当中已经给我们提供了很多的文件输入类,用于处理文件数据的输入,如果以上提供的文件数据类还不够用的话,我们也可以通过自定义InputFormat来实现文件数据的输入 案例需求 现在有大量的小文件,我们通过自定义InputFormat实现将小文件的内 阅读全文
摘要:
Inputformat类 InputFormat是mapreduce当中用于处理数据输入的一个组件,是最顶级的一个抽象父类,主要用于解决各个地方的数据源的数据输入问题。其中InputFormat的UML类图可以通过idea进行查看(只有商业版本才有这个功能),如下图。 查看类图的方式:进行要查看的类 阅读全文
摘要:
Mapreduce编程实现案例2(上下行) Writable是Hadoop的序列化格式,hadoop定义了这样一个Writable接口。 一个类要支持可序列化只需实现这个接口即可。 另外Writable有一个子接口是WritableComparable,writableComparable是既可实现 阅读全文
摘要:
Mapreduce的运行模式 本地模式 我们的上面的案例1的运行模式就是本地模式,mapreduce程序是被提交给LocalJobRunner在本地以单进程的形式运行,输入和输出路径既可以在本地文件系统,也可以在hdfs上。 本地模式非常便于进行业务逻辑的debug,只要在eclipse或IDEA中 阅读全文
摘要:
Mapreduce编程实现案例 (wordcount) 案例需求 现有数据格式如下,每一行数据之间都是使用逗号进行分割,求取每个单词出现的次数 hello,hello world,world hadoop,hadoop hello,world hello,flume hadoop,hive hive 阅读全文
摘要:
mapreduce核心思想 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 MapReduce的核心思想是 阅读全文
摘要:
Hadoop常用可序列化类型 hadoop没有沿用java当中基本的数据类型,而是自己进行封装了一套数据类型,其自己封装的类型与java的类型对应如下 表4-1 常用的数据类型对应的Hadoop数据序列化类型 Java类型 Hadoop Writable类型 Boolean BooleanWrita 阅读全文
摘要:
多个集群之间的数据拷贝 在我们实际工作当中,极有可能会遇到将测试集群的数据拷贝到生产环境集群,或者将生产环境集群的数据拷贝到测试集群,那么就需要我们在多个集群之间进行数据的远程拷贝,hadoop自带也有命令可以帮我们实现这个功能 1、本地文件拷贝scp cd /kkb/soft scp -r jdk 阅读全文
摘要:
小文件治理 思考一个问题:无论存储大文件还是小文件,都会产生元数据,如果有很多小文件,是否划算? 不划算,每个文件、目录、块都大概有150字节的元数据,文件数量的限制也由namenode内存大小决定,如果小文件过多则会造成namenode的压力过大,且HDFS能存储的数据总量也会变小。 小文件治理的 阅读全文
摘要:
datanode详解 datanode工作机制 1)一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据。元数据包括数据块的长度,块数据的校验和,以及时间戳。 2)DataNode启动后向namenode注册,通过后,周期性(1小时)的向namenode上 阅读全文
摘要:
🌈NameNode和SecondaryNameNode的工作机制 如何快速检索元数据? NameNode主要负责集群当中的元数据信息管理,而且元数据信息需要经常随机访问,因为元数据信息必须高效的检索,那么如何保证namenode快速检索呢??元数据信息保存在哪里能够快速检索呢??如何保证元数据的持 阅读全文
摘要:
🌈hdfs写入流程(面试重点) 一个文件上传到hdfs文件系统的简略过程 1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 2)NameNode返回是否可以上传。 3)客户端请求第一个 Block 阅读全文
摘要:
hdfs的JavaAPI开发 windows安装hadoop 解压CDH版本的在windows系统上运行的Hadoop安装包,解压路径不能有中文或者空格 在windows当中配置hadoop环境变量 将hadoop.dll文件拷贝到C:\Windows\System32 创建Maven工程并导入ja 阅读全文
摘要:
hdfs的shell命令操作 hdfs的shell命令操作的主要类型: 1、对hdfs的操作命令 2、获得一些配置相关的命令 3、管理员相关的命令 4、文件系统检查相关的命令 hdfs命令(对hdfs的基础操作) HDFS命令有两种风格,hadoop fs开头的和hdfs dfs开头的,两种命令均可 阅读全文
摘要:
hdfs功能详解 `HDFS(hadoop distributed filesystem)由四部分组成,HDFS Client、NameNode、DataNode和Secondary NameNode。HDFS是一个主/从(Mater/Slave)体系结构,HDFS集群拥有一个NameNode和一些 阅读全文
摘要:
Hadoop发展起源 Hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。 2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。 阅读全文
摘要:
hadoop环境搭建 安装虚拟机 下载镜像文件 下载centOS7镜像文件 新建文件夹 新建用于放置虚拟机上不同系统的文件,方便管理。 新建node01节点 在windows某个盘上创建一个文件夹,用于放置node01节点虚拟机文件。命名可以为:大数据开发环境 开启node01节点 分区选择自动分区 阅读全文
摘要:
Tomcat基础 这里的Tomcat基础来自另一个教程:https://www.bilibili.com/video/BV1Y7411K7zz?p=103 JavaWeb概念 a)什么是 JavaWeb JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaW 阅读全文
摘要:
Git Git介绍 Git是一个开源的分布式版本控制系统,分布式相比集中式的最大区别是Git没有“中央服务器”,每位开发者都可以通过克隆远程库,在本地机器上存储一个完整的Git仓库,还可以把代码的修改提交到本地库 目的:借助github托管项目代码。 基本概念: 仓库(repository):仓库用 阅读全文
摘要:
SVN SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 特点:一个服务器,多个客户端的集群式管理方法 SVN服务器端安装 yum install subversion 阅读全文