大数据离线阶段02:Apache Hadoop

news2024/12/23 14:40:46

Hadoop介绍

Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。

狭义上说,Hadoop指Apache这款开源框架,它的核心组件有:

  • HDFS(分布式文件系统):解决海量数据存储
  • YARN(作业调度和集群资源管理的框架):解决资源任务调度
  • MAPREDUCE(分布式运算编程框架):解决海量数据计算

广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。

当下的Hadoop已经成长为一个庞大的体系,随着生态系统的成长,新出现的项目越来越多,其中不乏一些非Apache主管的项目,这些项目对HADOOP是很好的补充或者更高层的抽象。

Hadoop发展简史

Hadoop是Apache Lucene创始人 Doug Cutting 创建的。最早起源于Nutch,它是Lucene的子项目。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题:如何解决数十亿网页的存储和索引问题。

2003年Google发表了一篇论文为该问题提供了可行的解决方案。论文中描述的是谷歌的产品架构,该架构称为:谷歌分布式文件系统(GFS),可以解决他们在网页爬取和索引过程中产生的超大文件的存储需求。

2004年 Google发表论文向全世界介绍了谷歌版的MapReduce系统。

同时期,Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

2006年Google发表了论文是关于BigTable的,这促使了后来的Hbase的发展。

因此,Hadoop及其生态圈的发展离不开Google的贡献。

Hadoop集群搭建

发行版本

Hadoop发行版本分为开源社区版商业版

社区版是指由Apache软件基金会维护的版本,是官方维护的版本体系。

https://hadoop.apache.org/

商业版Hadoop是指由第三方商业公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试而发行的版本,比较著名的有cloudera的CDH、mapR、hortonWorks等。

https://www.cloudera.com/products/open-source/apache-hadoop/key-cdh-components.html

Hadoop的版本很特殊,是由多条分支并行的发展着。大的来看分为3个大的系列版本:1.x、2.x、3.x。

Hadoop1.0由一个分布式文件系统HDFS和一个离线计算框架MapReduce组成。架构落后,已经淘汰。

Hadoop 2.0则包含一个分布式文件系统HDFS,一个资源管理系统YARN和一个离线计算框架MapReduce。相比于Hadoop1.0,Hadoop 2.0功能更加强大,且具有更好的扩展性、性能,并支持多种计算框架。

Hadoop 3.0相比之前的Hadoop 2.0有一系列的功能增强。目前已经趋于稳定,可能生态圈的某些组件还没有升级、整合完善。

我们课程中使用的是:Apache Hadoop 3.3.0。

集群简介

HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。

HDFS集群负责海量数据的存储,集群中的角色主要有:

NameNode、DataNode、SecondaryNameNode

YARN集群负责海量数据运算时的资源调度,集群中的角色主要有:

ResourceManager、NodeManager

Hadoop部署方式分三种,Standalone mode(独立模式)、Pseudo-Distributed mode(伪分布式模式)、Cluster mode(群集模式),其中前两种都是在单机部署。

独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试。

伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但分别启动单独的java进程,主要用于调试。

集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。

我们以3节点为例进行搭建,角色分配如下:

node1 NameNode DataNode ResourceManager

node2 DataNode NodeManager SecondaryNameNode

node3 DataNode NodeManager


服务器基础环境准备

1.0 配置好各虚拟机的网络(采用NAT联网模式)
		
	1.1修改各个虚拟机主机名
		vi /etc/hostname
		
		node1.itcast.cn    
	
	1.2修改主机名和IP的映射关系
		vi /etc/hosts
			
		192.168.227.151	node1.itcast.cn node1
		192.168.227.152	node2.itcast.cn node2
		192.168.227.153	node3.itcast.cn node3
	
	1.3关闭防火墙
		#查看防火墙状态
		systemctl status firewalld.service
		#关闭防火墙
		systemctl stop firewalld.service
		#关闭防火墙开机启动
		systemctl disable firewalld.service

	1.4.配置ssh免登陆(配置node1-->node1,node2,node3)
	#node1生成ssh免登陆密钥

	ssh-keygen -t rsa (一直回车)
	执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
	将公钥拷贝到要免密登陆的目标机器上
	ssh-copy-id node1
	ssh-copy-id node2
	ssh-copy-id node3
	
	1.5 同步集群时间
		yum install ntpdate
		ntpdate cn.pool.ntp.org

JDK环境安装

2.1上传jdk
	jdk-8u65-linux-x64.tar.gz
	
2.2解压jdk
	tar -zxvf jdk-8u65-linux-x64.tar.gz -C /export/server
	
2.3将java添加到环境变量中
	vim /etc/profile
	#在文件最后添加
	export JAVA_HOME=/export/server/jdk1.8.0_65
	export PATH=$PATH:$JAVA_HOME/bin
	export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

	#刷新配置
	source /etc/profile

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/857599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一款用于监控电路监控数字系统中的电源 电压监控器 CAT809STBI-GT3

什么是电压监控器? 电压监控器是一种用于监测电力系统中电压水平的设备。它通常用于检测电压的变化、波动或异常情况,以确保电力系统的稳定运行。电压监控器可以监测不同电压水平,例如交流电系统中的电压、直流电系统中的电压等并将其显示在…

【中危】 Apache Traffic Server Range 标头验证不当

漏洞描述 Apache Traffic Server(ATS)是一个开源的反向代理和缓存服务器。 受影响版本中,由于 HttpTransact 类未对无效 Range 标头进行过滤,并且 URL 类未对传入 URL 参数的重复斜杠进行过滤,攻击者可利用此漏洞对 …

docker-compose部署milvus

部署milvus 上一篇介绍了使用kubernetes来部署milvus,这篇介绍下使用docker-compose来部署milvus。 下载docker-compose docker-compose的Github地址https://github.com/docker/compose/releases下载最新版的 docker-compose-linux-x86_64 在服务器上使用 wget …

问道管理:燃气板块拉升走高,胜通能源涨停,欧洲天然气价飙升

燃气板块10日盘中发力走高,到发稿,美能动力、胜通动力、水发燃气涨停,首华燃气涨约8%,山东墨龙、贵州燃气涨逾7%,贝肯动力涨逾5%。 消息面上,因液化天然气供给危险添加,美国天然气期货日内大涨7…

【数据结构OJ题】合并两个有序数组

原题链接:https://leetcode.cn/problems/merge-sorted-array/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 看到这道题,我们注意到nums1[ ]和nums2[ ]两个数组都是非递减的。所以我们很容易想到额外开一个数组tmp[ ]&#x…

大运空瓶行动,绘就生态文明画卷

随着成都第31届世界大学生夏季运动会赛事的成功举办,为了倡导节约水资源、绿色大运,在此之前成都电视2台《城视民生》栏目面向全市发起“大运空瓶行动”的倡议,呼吁市民杜绝水资源浪费,喝完瓶中水,并鼓励市民积极参与到…

vscode-启动cljs

打开vscode ,打开cljs项目文件 先npm installvscode安装插件Calva: Clojure & ClojureScript启动REPL 选择Start yout project with a REPL and connect(a.k.a. jack) 后选择shadow-cljs,然后选择shadow,如果需要选择build的话&#xf…

【香瓜说职场】漫长的瓶颈期(2019.03.29)

自从17年4月份开始辞职创业,已经2年了。聊聊近况。 一、公司现状 1、关于淘宝店 淘宝店上架了些开发板相关的衍生产品,单品销量很低,但通过种类来获取销售额。尽管如此,依然不足以支付我和客服两人的工资费用。每月亏损几千。 2、…

【插入排序】直接插入排序 与 希尔排序

目录 1. 排序的概念: 2.插入排序基本思想 3.直接插入排序 4.希尔排序 1. 排序的概念: 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性&#xf…

儿童滑梯CE认证标准EN71测试标准

我国是玩具出口大国,目前的主要出口目标市场是欧洲市场,其中出口欧洲市场的玩具平均约占据我国玩具年出口额的40%左右。 EN 71是欧盟国家强制执行的标准,针对为14岁以下的儿童设计的玩具。其意义是通过EN71标准对进入欧洲市场的玩具产品进行…

flowable-ui部署(6.80)

前置条件:Apache Tomcat/9.0.78版本及以下 https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.78/bin/apache-tomcat-9.0.78-windows-x64.zip 一、下载资源 https://github.com/flowable/flowable-engine/releases/download/flowable-6.8.0/flowable-6.8.0.zip 二…

如何用瀑布图分析公司年报

原创: MicroStrategy微策略中国 , Jiping Sun 微策略企业级数据分析与移动应用9月21日2018年 摘要:利用达析报告开箱即用的瀑布图来展示各个度量值如何增加或减少。下载MicroStrategy Desktop 10.11以上版本,自己动手创建瀑布图。 瀑布图是由…

日常开发中Git命令指北

Git基本操作 创建化仓库 mkdir 目录 cd 目录 git init配置本地仓库 # 配置用户名,邮箱 git config user.name "cxf" git config user.email "1969612859qq.com" # 查看本地配置(小写的 L) git config -l # 重置配置&a…

C语言函数详解(1)

目录 函数是什么 C语言中函数的分类 库函数 自定义函数 函数的参数 实际参数(实参) 形式参数(形参) 函数的调用 传值调用 传址调用 练习 函数的嵌套调用和链式访问 嵌套调用 链式访问 函数是什么 数学中我们常见到函…

【链表OJ 2】反转链表

前言: 🎈欢迎大家来到Dream_Chaser~的博客🎈 🚩本文收录于 C--数据结构刷题的专栏中 -->http://t.csdn.cn/n6UEP 首先欢迎大家的来访,其次如有错误,非常欢迎大家的指正,互相学习进步。 一.反转链表 来…

【高危】 Microsoft Exchange Server 远程代码执行漏洞

漏洞描述 Microsoft Exchange Server 是微软公司开发的一款邮件服务器。 Microsoft Exchange Server 受影响版本中,具有普通用户权限(Exchange 用户凭据)的攻击者可能在同一内网环境中攻击Exchange服务,远程执行任意代码。 由于…

【学习】若依源码(前后端分离版)之 “ 上传图片功能实现”

大型纪录片:学习若依源码(前后端分离版)之 “ 上传图片功能实现” 前言前端部分后端部分结语 前言 图片上传也基本是一个项目的必备功能了,所以今天和大家分享一下我最近在使用若依前后端分离版本时,如何实现图片上传…

Oracle到DM实时数据同步实施方案

目录 1 项目概述 2 需求分析 3 实施操作 3.1 历史数据全量同步 3.2 增量数据实时同步 4 问题总结 4.1 字符型非空约束 4.2 字符型唯一索引尾部空格 1 项目概述 将Oracle 11g RAC生产环境数据同步到DM8分析环境,Oracle数据库大小1.5T,日增归档10…

Windows和Linux系统上的矢量运算:指令级并行计算SIMD(SSE/AVX)应用细节以及相关跨平台的源码解释

注:本文的SIMD,指的是CPU(base intel x86 architecture)指令架构中的相关概念。不涉及GPU端的算力机制。下面的代码在Win10和Linux上均可用。 基本概念 SSE: Streaming SIMD Extensions, x86 architecture AVX: Advanced Vector Extensions SIMD&#…

vue项目中Uncaught runtime errors:怎样关闭

原文链接: yvue项目中Uncaught runtime errors:怎样关闭_笑毅的博客-CSDN博客https://blog.csdn.net/qq_36877078/article/details/131175355是webpack-dev-server弄出来的 解决办法 在vue.config.js中添加如下配置 module.exports defineConfig({...devServer:…