![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据Hadoop快速入门
文章平均质量分 80
本课程是一个系列基础教程,目的是系统性的讲解大数据Hadoop技术的架构、原理,并辅助实战内容,助力开发者快速入门大数据Hadoop开发。教程主要技术路线以Hadoop为导向,分为4部分内容:大数据简介、HDFS、YARN、MapReduce。
桥路丶
这个作者很懒,什么都没留下…
展开
-
【开篇】课程介绍&学习指南
课程介绍&学习指南写在前面的话你好,我是李鹏程,高级数据工程师、大数据讲师。这次给大家带来的是《大数据Hadoop基础入门》课程。2013年被称为大数据元年,随着互联网的快速发展和信息爆炸式增长,带来了数据存储、运算方式的革命。一种全新的,完全依附于分布式架构的技术解决方案,被称为大数据。虽然在分布式架构下,数据存储的延迟会较高,数据处理时的调度耗时也较大;但它也带来了极强的扩展性,而且在海量数据规模下吞吐量极大,处理速度非常快(海量数据规模下,调度时间远远小于处理时间),解决了大数据规模下原创 2021-08-18 06:59:13 · 231 阅读 · 0 评论 -
【简介】大数据技术综述
大数据技术综述首先,在学习大数据之前,需要了解什么是大数据?它是如何诞生的?它有哪些应用场景?只有了解了这些,才能窥视大数据的技术全貌。一个技术的诞生,是顺应时代的,是用于解决某些问题的,它的发展也一定是有内在逻辑的。接下来,一起去看看。诞生背景传统数据处理架构在大数据诞生之前,对数据的处理技术就已经被很广泛的应用了。数据一般被分为结构化数据、半结构化数据、非结构化数据。对于结构化数据的处理,传统的数据处理方式是由数据库、数据仓库负责存储,使用SQL(结构化查询语言)进行处理。而非结构化、半结构原创 2021-08-18 06:59:51 · 916 阅读 · 0 评论 -
【简介】大数据技术体系
大数据技术体系这一节,来认识下大数据的技术框架有哪些,它们分别用于解决哪些问题?它们的内在逻辑和适用场景有哪些?OK,一起去探索下。生态架构首先,看一下大数据技术体系的整体架构图。根据数据流转的方向,从下而上进行介绍。在前面,我们了解到,大数据的数据存储是分布式的,而且能够接受任务调度,与传统的数据存储存在差异。所以离线方式处理的数据,需要通过ETL模块,导入到大数据的数据存储系统进行存储;其中Sqoop是常见的抽取结构化数据工具;而Flume和Logstach是用于抽取非结构化、半结构化数据工具原创 2021-08-18 07:00:16 · 290 阅读 · 0 评论 -
【HDFS】分布式文件系统HDFS
分布式文件系统HDFSHDFS简介什么是HDFS?HDFS全称Hadoop Distributed File System,Hadoop分布式文件系统。它是2003年10月Google发表的GFS(Google File System)论文的开源实现,之后成为Apache Hadoop的核心子项目,用于解决海量数据存储问题。它在开源大数据技术体系中,地位无可替代,到现在为止,依然是主流的大数据存储选型。设计目标HDFS的设计目标有:可以运行在大量廉价商用机器上;因此硬件错误是常态,所以HDF原创 2021-08-18 07:00:58 · 201 阅读 · 0 评论 -
【HDFS】系统架构与存储机制
系统架构与存储机制HDFS系统架构HDFS是主从架构(Master/Slave),当然这也是大数据产品最常见的架构。主节点为NameNode,从节点为DataNode。其中DataNode用于存储数据,存储的数据会被拆分成Block块(默认按照128M进行切分),然后均匀的存放到各个DataNode节点中,为了保证数据安全性,这些Block块会进行多副本的存储,备份到不同的节点。而NameNode则负责管理整个集群,并且存储数据的元数据信息(记录数据被拆分为哪几块,分别存储到了哪个DataNode中)原创 2021-08-18 07:03:49 · 199 阅读 · 0 评论 -
【HDFS】读写机制与安全模式
读写机制与安全模式读写机制写操作在向NameNode写文件时,首先由客户端向NameNode发起文件上传请求,NameNode检查文件要上传的目录,并鉴权。如果上传用户对此目录有权限,则允许客户端进行上传操作。客户端接收到允许指令后,将要上传的文件切分为Block,之后按照顺序依次上传block1、block2 … block N,这也是为什么说HDFS无法进行并发写的原因。首先上传block1,向NameNode发起请求,NameNode会按照block副本放置策略,为block1选择合适的D原创 2021-08-18 07:04:15 · 193 阅读 · 0 评论 -
【HDFS】集群高可用
集群高可用HDFS单节点架构存在的问题HDFS单点架构存在一些问题,首先是NameNode内存受限,因为数据的元数据信息全部保存在NameNode内存中。如果数据量足够庞大,可能会将NameNode内存占满,这种情况下会导致HDFS的扩展性上限。其次就是单点故障问题,主从架构的HDFS是依靠主节点NameNode来运转的,一旦主节点挂掉就会导致整个集群不可用。Federation(联邦)机制联邦机制是Hadoop 2.x中提出的解决NameNode内存瓶颈问题的水平横向扩展方案。它将多台Nam原创 2021-08-18 07:04:55 · 182 阅读 · 0 评论 -
【HDFS】环境搭建与基本配置
环境搭建&基本配置环境规划操作系统及组件版本各组件版本如下,学习环境尽量保持一致,避免版本不一致带来的操作问题。集群规划使用3台虚拟机来进行搭建集群,分别为Node01、Node02、Node03。集群的规划如下:其中Hadoop一共3个节点,主节点搭建在Node01上,从节点在Node01-Node03上分别有一个。虚拟机准备安装说明&文件下载下载并安装Virtual Box:https://www.virtualbox.org/wiki/Downloads准备并安原创 2021-08-18 07:16:17 · 299 阅读 · 0 评论 -
【HDFS】服务启动&Shell命令
服务启动&Shell命令服务启动安装好HDFS服务之后,可以使用以下命令启动HDFS集群。因为脚本执行过程中,已经自动将Hadoop环境变量和节点间SSH免密登录配置好了,所以直接执行start-dfs.sh便可以直接启动HDFS集群(同时会启动Yarn)。start-dfs.sh文件系统操作命令操作语法使用shell命令操作HDFS,命令格式为hadoop fs <args> 或者hdfs dfs <args> ,这两个命令现阶段使用基本没有差异,但留意的原创 2021-08-18 07:30:46 · 2371 阅读 · 0 评论 -
【HDFS】Java开发环境准备
Java开发环境准备为了之后HDFS Java API的学习,首先需要配置下Java环境,然后安装IDE工具。语言环境安装首先是Java语言环境的安装。安装流程Windows环境和Linux环境的安装步骤不同。对于Windows环境,步骤如下:1. JDK1.8下载安装2. 配置环境变量3. 验证是否安装成功但现在windows版的JDK安装好后,自动会配置环境变量,所以可以省略第2步。对于Linux环境,步骤如下:1. JDK1.8下载、解压2. 配置环境变量3. 验原创 2021-08-18 07:31:39 · 182 阅读 · 0 评论 -
【HDFS】Java_API使用
Java API使用环境初始化首先完成Java开发环境准备,创建工程并导入开发所需的Jar包。之后在准备好的工程中完成以下步骤。在IDE中新建一个类,类名为HDFSApp在类中添加成员变量保存公共信息import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.*;import org.apache.hadoop.fs.permission.FsPermission;import org.apache原创 2021-08-18 07:32:32 · 171 阅读 · 0 评论 -
【HDFS】管理与运维
管理与运维可视化界面通过50070端口,可以访问HDFS Web UI:http://activeNameNodeHost:50070,需将activeNameNodeHost自行替换为主节点IP,如http://192.168.31.41:50070其中Overview页面可以查看集群的基本运行情况。DataNode页面可以查看DataNode的使用和退役情况。Datanode Volume Failures页面可以查看DataNode卷损坏情况。Snapshot页面用于查看快照情原创 2021-08-18 07:33:20 · 243 阅读 · 0 评论 -
【Yarn】分布式资源管理框架Yarn
分布式资源管理框架Yarn诞生背景在Hadoop 1.x中,是没有Yarn这个分布式资源管理框架的,它在Hadoop 2.x中首次推出。它诞生的原因其实很简单,就是Hadoop 1.x中的架构存在一些问题。Hadoop 1.x中包括HDFS和MapReduce。其中MapReduce身兼两职,它既是计算框架,又是资源管理框架。它的架构是主从架构,其中Job Tracker为主节点,Task Tracker为从节点。但Job Tracker既做资源管理,又做任务调度,负载太大。Client(客户端原创 2021-08-18 07:33:44 · 303 阅读 · 0 评论 -
【Yarn】系统架构&高可用
系统架构&高可用系统架构Yarn在架构上是主从架构,其中Resource Manager是主节点,Node Manager是从节点。在架构部署上,Node Manager与HDFS的DataNode安装在同一节点,以便将计算任务移动到数据上。其中主节点Resource Manager可以有热备节点,以实现集群高可用。当前主节点为Active状态,热备节点为Standby状态。客户端Client向主节点(Resource Manager)提交作业后,Resource Manager会在Nod原创 2021-08-18 07:36:00 · 557 阅读 · 0 评论 -
【Yarn】资源调度策略
资源调度策略Yarn既然是一个分布式资源调度框架,管理着节点上的计算资源,那它分配这些资源的时候,便会存在调度策略。而Yarn的调度策略有三种:FIFO调度、容量调度、公平调度。接下来,会依次对这几种调度器进行讲解。FIFO调度器FIFO Scheduler(先进先出调度器),这种调度器其实已经耳熟能详了,它将所有任务放入一个队列,先进队列的先获得资源,排在后面的任务只有等待,总的原则就是先到先得。虽然这种调度策略,实现起来非常简单;但它因为只有单个队列,无法交叉运行任务、灵活性差,紧急任务无法原创 2021-08-18 07:36:33 · 694 阅读 · 0 评论 -
【Yarn】基本使用与监控
基本使用与监控基本使用Yarn是一个资源管理框架,所以它可以对提交到集群中的任务进行查看,并可以强制结束这些任务。它常用的Shell命令有:yarn application [command_options]一般使用流程,是先用list查看集群中未完成的所有任务以及它的ID,如果想查看任务详细信息则使用status,如果想强制终止任务则使用kill。# 查看Yarn中未完成的所有任务yarn application -list# 查看某个任务的运行状态yarn applicatio原创 2021-08-27 07:53:53 · 832 阅读 · 0 评论 -
【MapReduce】分布式计算框架MapReduce
分布式计算框架MapReduce什么是MapReduce?MapReduce起源是2004年10月Google发表了MapReduce论文,之后由Mike Cafarella在Nutch(爬虫项目)中实现了MapReduce的功能。它的设计初衷是解决搜索引擎中大规模网页数据的并行处理问题,之后成为Apache Hadoop的核心子项目。它是一个面向批处理的分布式计算框架;在分布式环境中,MapReduce程序被分为Map(映射)阶段和Reduce(化简)阶段。它的第一个核心思想,移动计算而非移动数据原创 2021-08-27 07:54:40 · 373 阅读 · 0 评论 -
【MapReduce】基本原理
MapReduce基本原理运算原理首先以词频统计的案例,来描述一下MapReduce的运算原理与一些基本的概念。这里输入的数据是一些英文的文章,它有很多行组成,而每一行又包含很多单词,每个单词之间由空格隔开;现在需要使用MapReduce来统计每个单词的出现次数。这里输入的案例数据比较少,只有三行,分别是 Deer Bear River 、 Car Car River 、 Deer Car Bear。当数据被上传到HDFS的时候,会被自动拆分(以128M为标准)为Block存储,MapReduce原创 2021-08-27 07:55:27 · 264 阅读 · 0 评论 -
【MapReduce】配置&作业管理
配置&作业管理基本配置mapreduce的配置文件为:mapred-site.xml。配置内容分为配置MapReduce运行程序、配置History-Server。配置MapReduce运行程序配置History-Server提交与管理MapReduce任务编写完成后,打包为Jar包形式,便可以使用客户端对任务进行提交。提交作业的基本命令为:# hadoop jar {jarFile} [mainClass] args -jarFIle: MapReduce运行程序原创 2021-08-27 07:56:02 · 460 阅读 · 0 评论 -
【MapReduce】基本使用
MapReduce基本使用基础知识MapReduce 框架只对 <key, value> 形式的键值对进行处理。MapReduce会将任务的输入当成一组 <key, value> 键值对,最后也会生成一组 <key, value> 键值对作为结果。常见的输入为文件,此时读取的行偏移量会作为Key,文件内容作为Value。key 和 value 的类必须由框架来完成序列化,所以需要实现其中的可写接口(Writable)。如果需要进行数据排序,还必须实现 Writabl原创 2021-08-27 07:56:31 · 271 阅读 · 0 评论 -
【MapReduce】IDE环境开发
IDE环境开发基于IDEA编写MapReduce在开发过程中,使用IDE集成环境进行代码开发和测试,是最为便捷的。接下来讲解下如何使用IDEA进行MapReduce代码的开发。首先在IDEA中创建Java项目。选择覆盖当前窗口,开发时尽量保证桌面整洁,用不到的项目窗口就尽量关掉。接下来配置下需要在hadoop安装目录中获取开发所需要的jar包,MapReduce开发需要common、yarn、mapreduce目录下的jar包。cd $HADOOP_HOME/share/hadoop原创 2021-08-27 07:57:52 · 182 阅读 · 0 评论 -
【MapReduce】案例学习
MapReduce案例学习基于日志的简单统计现有网站访问日志,日志的数据格式如下:93.180.71.3 - - [17/May/2015:08:05:32 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)"93.180.71.3 - - [17/May/2015:08:05:23 +0000] "GET /downloads/product_1 HT原创 2021-08-27 07:58:17 · 127 阅读 · 0 评论 -
【MapReduce】作业调试
作业调试History Server开启因为yarn集群重启之后,作业的历史运行日志和信息就被清理掉了,对于定位历史任务的错误信息很不友好,所以首先开启History Server用于保存所有作业的历史信息。首先编辑yarn-site.xml文件,开启yarn的日志聚合功能。cd $HADOOP_HOME/etc/hadoopvim yarn-site.xml添加的配置如下: <property> <name>yarn.log-aggregation-原创 2021-08-27 07:59:18 · 331 阅读 · 0 评论 -
【总结】结束语
结束语首先,恭喜大家已经阅读完整个专栏。一般而言,不管是书籍也好,视频课程也罢,能够完整跟下来的就已经很不容易了。多半原因要归功于这些材料的内容上,多采用堆砌的创作手法,大多时候需要读者对材料进行再次整合、加工、理解。虽然我尽量以通俗简单的形式,将内容体现出来,但水平毕竟有限,望大家海涵。其次,专栏内容定位为初级入门,尽量帮助大数据初学者减少初期的困难,环境搭建使用脚本完成,避免从入门到劝退的过程。内容上,尽量帮助大家理顺,很多知识看起来难,只是授课的人将它复杂化了,其实一旦掌握了本质之后,会发现它其实原创 2021-08-27 07:59:47 · 309 阅读 · 0 评论