引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭…
文章目录 大数据概论 一.大数据概念 二.大数据的特点 三.大数据能干啥? 四.大数据发展前景 五.企业数据部的业务流程分析 六.企业数据部的一般组织结构 Hadoop(入门) 一 从Hadoop框架讨论大数据生态 1.1 Hadoop是什么 1.2 Hadoop发展历史 1.3 Hadoop三大发行版本 1.4 Hadoop的优势 1.5 Hadoop组成 1.5.1 HDFS架构概述 1.5.2 YARN架构概述 1.5.3 MapReduce架构概述 1.6 大数据技术生态体系 1.7 推…
Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3. 存放进数组的必须是相同类型的数据 VS 集合类: 1. 长度是可变的 2. 只能存放对象的引用 3. 存放进集合的可以是不同的数据类型 3. 集合类常用API源码分析 在之后的大数据学习中,灵活运用各种各样的数据结构可以说是一项基本技能了,因此,了解各种数据结构的底层源码将有助于用户更好地使用各…
HDFS基本API的应用(包含IDEA的基本设置) 在上一篇博客中,本人详细地整理了如何从0搭建一个HA模式下的分布式Hadoop平台,那么,在上一篇的基础上,我们终于可以进行编程实操了,同样,在编程前需要做一些准备工作,好了,那我们就开始吧! 1. 编程准备 在后续的学习中,我们基本都是在用IntelliJ IDEA这款集成开发环境,所以在Windows端,我们首先需要准备以下这三款软件: 1)IntelliJ IDEA软件下载并安装,盗版即可,激活码自己上百度搜,本人使用的版本是Intell…
Linux环境搭建完整操作流程(包含mysql的安装步骤) 从现在开始,就正式进入到大数据学习的前置工作了,即Linux的学习以及安装,作为运行大数据框架的基础环境,Linux操作系统的重要性自然不言而喻,我将分成两个部分来做梳理,第一部分是实操部分,即整个从0搭建Linux的完整操作流程,第二部分是理论部分,将会梳理Linux操作系统的各种指令以及基本知识,好了,那么我们开始吧! 1. 安装准备 安装Linux虚拟机之前我们首先要准备两个东西:VMware以及Centos的镜像文件 安装VMw…
文章目录 4.1 分布式安装部署 4.2 客户端命令行操作 4.3 API应用 4.3.1 eclipse环境搭建 4.3.2 创建ZooKeeper客户端: 4.3.3 创建子节点 4.3.4 获取子节点 4.3.5 判断znode是否存在 4.3.6 监听服务器节点动态上下线案例 4.1 分布式安装部署 0)集群规划 在hadoop2.hadoop3和hadoop4三个节点上部署Zookeeper. 1)解压安装 (1)解压zookeeper安装包到/opt/module/目录下 [atgu…
文章目录 一 MapReduce概念 1.1 为什么要MapReduce 1.2 MapReduce核心思想 1.3 MapReduce进程 1.4 MapReduce编程规范(八股文) 1.5 MapReduce程序运行流程分析 二 MapReduce理论篇 2.1 Writable序列化 2.1.1 常用数据序列化类型 2.1.2 自定义bean对象实现序列化接口 2.2 InputFormat数据切片机制 2.2.1 FileInputFormat切片机制 2.2.2 CombineTex…
文章目录 一 HDFS概念 1.1 概念 1.2 组成 1.3 HDFS 文件块大小 二 HFDS命令行操作 三 HDFS客户端操作 3.1 eclipse环境准备 3.1.1 jar包准备 3.2 通过API操作HDFS 3.2.1 HDFS获取文件系统 3.2.2 HDFS文件上传 3.2.3 HDFS文件下载 3.2.4 HDFS目录创建 3.2.5 HDFS文件夹删除 3.2.6 HDFS文件名更改 3.2.7 HDFS文件详情查看 3.2.8 HDFS文件夹查看 3.3 通过IO流操作…
Linux学习笔记整理 上一篇博客中,我们详细地整理了如何从0部署一套Linux操作系统,那么这一篇就承接上篇文章,我们仔细地把Linux的一些基础知识以及常用指令(包括一小部分高级命令)做一个梳理,好了,现在开始吧! 1. Linux介绍 在介绍Linux之前,先要介绍一下Unix操作系统,说到两者之间的关系,"Unix是Linux的父亲"这个说法更为恰当,Unix是作为一款商业软件而存在的,主要运行在大型服务器和小型机上,不开源,不免费,大多与硬件配套,也就是说,大多数 UNIX…
IO学习笔记整理 1. File类 1.1 File对象的三种创建方式: File对象是一个抽象的概念,只有被创建出来之后,文件或文件夹才会真正存在 注意:File对象想要创建成功,它的目录必须存在! import java.io.File; /* 演示三种创建File对象的方式 */ public class FileDemo { public static void main(String[] args) throws Exception { //指定完整路径名的字符串 File f1 =…
1.Hadoop概述 1.1 Hadoop名字的由来 Hadoop项目作者的孩子给一个棕黄色的大象样子的填充玩具的命名 Hadoop的官网:http://hadoop.apache.org . 1.2 Hadoop介绍 Hadoop是Apache的一个顶级项目.是开源的.分布式存储+分布式计算平台:它由以下几个模块构成: Hadoop Common: 这是支持hadoop其他模块的通用工具模块 Hadoop Distributed File System(HDFS):分布式文件系统 Hadoop…
Hadoop:一个开源的.可运行于大规模集群上的分布式计算平台.实现了MapReduce计算模型和分布式文件系统HDFS等功能,方便用户轻松编写分布式并行程序. Hadoop生态系统: HDFS:Hadoop 分布式文件系统,是Hadoop项目的两大核心之一. HBase:提供高可靠性.高性能.可伸缩.实时读写.分布式的列数据库,一般采用HDFS作为其底层数据存储,用于存储非结构化数据. MapReduce:一种并行编程模型,将复杂的.运行于大规模集群上的并行计算过程高度抽象到Map和Reduc…
Java网络编程学习笔记 1. 网络编程基础知识 1.1 网络分层图 网络分层分为两种模型:OSI模型以及TCP/IP网络模型,前者模型分为7层,是一个理论的,参考的模型:后者为实际应用的模型,具体对应关系见下图: 1.2 网络编程三要素之IP地址 目前的版本是ipv4,采用的是点分十进制的表示方式(dotted-decimal notation),一共4位,每一位表示一个字节,因为IP地址是没有负数的,因此表数范围是0-255,子网掩码的存在使得一个IP地址被区分为了两个部分,网络地址以及主机…
Java / 计算机基础知识整理 在进行知识梳理同时也是个人的第一篇技术博客之前,首先祝贺一下,经历了一年左右的学习,从完完全全的计算机小白,现在终于可以做一些产出了!可以说也是颇为感慨,个人认为,学习本身就应该是有方法论的,前人总结了不少比较好的学习方法(比如说费曼学习法,金字塔原理),我们在进行好方法借鉴的同时,也不要忘了让整个学习过程形成一个闭环,我认为,向他人教学,或是定期将已有的知识进行一些梳理,总结,就是闭环的一种,这种方式在向他人传授知识的同时,更是对自己已有知识体系的一次查漏补缺…
Spark是一个基于内存计算的大数据并行计算框架.所以,Spark并不能完全替代Hadoop,主要用于替代Hadoop中的MapReduce计算模型. 在实际应用中,大数据处理无非是以下几个类型: 复杂的批量数据处理,这种类型的处理时间跨度通常在数十分钟到数小时之间,处理这种数据的工具有Hadoop MapReduce: 基于历史数据的交互式查询,时间跨度一般在数十秒到数分钟之间,处理工具如Impala.Hive: 基于实时数据流的数据处理,这样的时间跨度一般在数百毫秒到数秒之间,处理工具如St…
Hadoop编程实战——Mapreduce基本功能实现 此篇博客承接上一篇总结的HDFS编程实战,将会详细地对mapreduce的各种数据分析功能进行一个整理,由于实际工作中并不会过多地涉及原理,因此,掌握好mapreduce框架将会有助于了解sql语句在大数据场景下的底层实现原理,从而能够帮助开发人员优化sql语句,提高查询速度,废话不多说,现在正式开始吧! 1. Mapreduce入门——word count实现 一个基本的mapreduce程序一般要写三个类,Mapper类,Reducer…
Sqoop详细部署教程 Sqoop是一个将hadoop与关系型数据库之间进行数据传输,批量数据导入导出的工具,注意,导入是指将数据从RDBMS导入到hadoop而导出则是指将数据从hadoop导出到RDBMS,本篇博客承接上篇Hive的部署教程,废话不多说,直接开始流程 1. 安装准备 准备好以下安装包,使用的版本为1.4.7 2. 正式安装 1. 使用Xftp将tar.gz文件放到/home/centos/downloads目录下 2. 解压缩 cd /home/centos/download…
HBase使用bulkload批量导入数据 HBase可使用put命令向一张已经建好了的表中插入数据,然而,当遇到数据量非常大的情况,一条一条的进行插入效率将会大大降低,因此本篇博客将会整理提高批量导入的效率的一种可行方案,那就是使用Mapper类先进行数据清洗,再在APP中批量导入,废话不多说,我们直接开始吧! 1. 准备工作 首先我们准备好一份csv文件学生表,其中包含的是学生信息,具体信息如下: 对于此文件来说,每一行有四个字段,第一个代表rowkey,第二个代表name,第三个代表cou…
文章目录 3.1 数据结构 3.2 节点类型 3.3 特点 3.4 选举机制 3.5 stat结构体 3.6 监听器原理 3.1 数据结构 ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode. 很显然zookeeper集群自身维护了一套数据结构.这个存储结构是一个树形结构,其上的每一个节点,我们称之为"znode",每一个znode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识 3.2 节点类型 1)Znode…
高可用模式下的Hadoop集群搭建 本篇博客将会在之前写过的Linux的完整部署的基础上进行,暂时不会涉及到伪分布式或者完全分布式模式搭建,由于HA模式涉及到的配置文件较多,维护起来也较为复杂,相信学会部署高可用模式了,其他模式的搭建也会比较驾轻就熟,关于各种配置文件的讲解,如果有时间会在后期另开一篇博客进行详细的解读,现在正式开始部署流程! 1. 安装准备 基本思路讲解:在做正式安装之前,首先需要整理有哪些软件包是一定需要安装的,尽量先在一台机器上(一般我们称这台机器为“母机”)把所有需要的软…
文章目录 2.1 本地模式安装部署 2.2 配置参数解读 2.1 本地模式安装部署 1)安装前准备: (1)安装jdk (2)通过filezilla工具拷贝zookeeper到到linux系统下 (3)修改tar包权限 chmod u+x zookeeper-3.4.10.tar.gz (4)解压到指定目录 [atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/ 2)配置修改 将/opt/mo…
文章目录 1.1 概述 1.2 应用场景 1.3 下载地址 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式 Zookeeper=文件系统+…
下载 wget http://mirrors.shuosc.org/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz tar -zxvf zookeeper-3.3.6.tar.gz mv zookeeper-3.3.6 zookeeper 修改环境变量,每个节点服务器都需要修改 vim /etc/profile export ZOOKEEPER_HOME=/home/hadoop/zookeeper export PATH=$PAT…
前面介绍了Hadoop核心组件HDFS和MapReduce,Hadoop发展之初在架构设计和应用性能方面仍然存在不足,Hadoop的优化与发展一方面体现在两个核心组件的架构设计改进,一方面体现在Hadoop生态系统其他组件的不断丰富.此文介绍Hadoop2.0中添加的新特性. 一.HDFS 2.0新特性 这对HDFS的改进,HDFS 2.0主要增加了HDFS HA 以及HDFS联邦等新特性. (一)HDFS HA HA即High Availability,用于解决HDFS 1.0中的单点故障问题…
HDFS文件系统——编辑日志和镜像文件详细介绍 我们知道,启动Hadoop之后,在主节点下会产生Namenode,即名称节点进程,该节点的目录下会保存一份元数据,用来记录文件的索引,而在从节点上即Datanode则会保留真实的数据,对于Namenode来说,最重要的两个文件就是Fsimage和Edits了,它们记录了用户的一系列在文件系统中的操作并保存了文件索引 1. 初始化文件系统基本步骤 为了演示这两个文件的详细介绍,我们首先需要格式化文件系统,由于之前搭建了高可用,因此必须严格按照顺序执行…
文章目录 一.Linux入门概述 1.1 概述 1.2 下载地址 1.3 Linux特点 1.4 Linux和Windows区别 二.VM安装相关 2.1 安装VMWare虚拟机 2.2 安装CentOS 2.3 安装VMTools工具 2.4 虚拟机屏幕保护设置 2.5 IVT虚拟化支持 三.Linux目录结构 3.1 概览 3.2 树状目录结构 四.VI/VIM编辑器 4.1 概述 4.2 测试数据准备 4.3 一般模式 4.4 编辑模式 4.5 指令模式 五.系统管理操作 5.1 查看网络…
分布式文件系统结构 分布式文件系统是一种通过网络实现文件在多台主机上进行分布式存储的文件系统,采用C/S模式实现文件系统数据访问,目前广泛应用的分布式文件系统主要包括GFS和HDFS,后者是前者的开源实现. 分布式文件系统在物理结构上由计算机集群中的多个节点构成,这些节点分为两类:主节点(亦称“名称节点”) . 从节点(亦称“数据节点”) 名称节点,负责文件和目录的创建.删除和重命名等,同时管理着数据节点和文件块的映射关系,客户端通过访问名称节点找到请求文件的存储位置,进而到相应位置读取所需文件…
Spark工作机制以及API详解 本篇文章将会承接上篇关于如何部署Spark分布式集群的博客,会先对RDD编程中常见的API进行一个整理,接着再结合源代码以及注释详细地解读spark的作业提交流程,调度机制以及shuffle的过程,废话不多说,我们直接开始吧! 1. Spark基本API解读 首先我们写一段简单的进行单词统计的代码,考察其中出现的API,然后做出整理: import org.apache.spark.SparkConf; import org.apache.spark.api.j…
HDFS写入过程注释解读 & 源码分析 此篇博客承接上一篇未讲完的内容,将会着重分析一下在Namenode获取到元数据后,具体是如何向datanode节点写入真实的数据的 1. 框架图展示 在开始前,还是老规矩,先上图 本篇内容将会重点介绍HDFS写入流程七大步骤中的4,5步骤,即数据包写入和数据包确认(write packet & ack packet) 2. 源码分析 2.1 文档注释翻译 在讲解这部分内容时会涉及到的类是DFSPacket DFSPacket类 DFSPacket i…
SequenceFile(Hadoop序列文件)基础知识与应用 上篇编程实战系列中本人介绍了基本的使用HDFS进行文件读写的方法,这一篇将承接上篇重点整理一下SequenceFile的相关知识及应用 1. SequenceFile简介 SequenceFile是Hadoop自带的一种键值对文件格式,它具有以下几个特点: 1. 由于该文件类型是Hadoop自带的,因此对Hadoop环境具有最强的兼容性 2. 由于Hadoop不适合存储大量小文件,SequenceFile作为容器文件,能够封装大量的…