Hadoop概览以及编译hadoop说明

一、Hadoop概述

        Hadoop 是一个用于跨计算机集群存储和处理大型数据集的软件框架。它旨在处理大数据,即传统数据库无法有效管理的极其庞大和复杂的数据集。Hadoop不是传统意义上的数据仓库,因为它们的用途不同,架构也不同。Hadoop 是一个跨分布式计算机集群存储和处理大量非结构化和半结构化数据的框架。它专为处理大数据而设计,并支持使用 HDFS 和 MapReduce 等技术对大型数据集进行批处理。

        而数据仓库是针对查询和分析进行了优化的结构化数据集中存储库。它通常用于存储来自各种来源的结构化数据,将其组织成模式,并提供快速访问以用于报告和分析目的。

1、四大组件

        Hadoop 分布式文件系统 (HDFS):这是一个存储系统,它将大文件分解成小块并将它们分布在集群中的多台计算机上。它确保数据可靠性并支持跨集群并行处理数据。

        MapReduce:这是一种编程模型,用于在集群中并行处理和分析大型数据集。它由两个主要任务组成:Map,处理并将输入数据转换为中间键值对;Reduce,聚合和汇总中间数据以生成最终输出。

        YARN(资源协商器):YARN 是 Hadoop 的资源管理和作业调度组件。它将资源(CPU、内存)分配给集群上运行的各种应用程序并有效地管理它们的执行。

        Hadoop Common:包括其他 Hadoop 组件使用的库和实用程序。它为整个 Hadoop 生态系统提供工具和基础设施,例如身份验证、配置和日志记录。

2、特点

        Hadoop 的最大优势在于它能够高效处理大量数据。Hadoop 旨在将数据和处理任务分布到集群中的多台计算机,使其能够轻松扩展以处理传统数据库或处理系统难以管理的海量数据集。让用户能够存储、处理和分析大量数据。

3、架构

        Hadoop 是一个用 Java 编写的 Apache 开源框架,它允许使用简单的编程模型在计算机集群之间分布式处理大型数据集。Hadoop 框架应用程序在提供跨计算机集群的分布式存储和计算的环境中工作。

        Hadoop 的核心有两个主要层,即处理/计算层(MapReduce),以及存储层(Hadoop分布式文件系统)。

        Hadoop 分布式文件系统 (HDFS) 基于 Google 文件系统 (GFS),提供旨在在商用硬件上运行的分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是,它与其他分布式文件系统的区别也很大。它具有高度的容错能力,旨在部署在低成本硬件上。它提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。

        Hadoop 受 GNU/Linux 平台及其变体的支持。虽然 Hadoop 的核心组件是用 Java 编写的,理论上可以运行在任何支持 Java 的平台上,包括 Windows,但 Hadoop 官方并不推荐在 Windows 上运行。

二、大数据

        传统方法是企业将拥有一台计算机来存储和处理大数据。为了存储,程序员将借助他们选择的数据库供应商,例如 Oracle、IBM 等。在这种方法中,用户与应用程序交互,应用程序则负责处理数据存储和分析部分。

        这种方法对于那些处理数据量较少(标准数据库服务器可以容纳,或者处理数据的处理器可以承受)的应用程序来说效果很好。但是,当涉及到处理大量可扩展数据时,单一数据库的瓶颈立刻就显现出来了。

        Google 使用一种名为 MapReduce 的算法解决了这个问题。该算法将任务分成小部分并分配给多台计算机,然后从这些计算机中收集结果,将结果整合在一起,形成结果数据集。利用Google提供的解决方案,Doug Cutting和他的团队开发了一个名为HADOOP的开源项目。

        Hadoop 使用 MapReduce 算法运行应用程序,其中数据与其他数据并行处理。简而言之,Hadoop 用于开发能够对大量数据进行完整统计分析的应用程序。

三、手动编译

        在源码的BUILDING.txt文件里面,明确说明了需要的相关软件版本。

1、创建了一个ubuntu虚拟机

2、安装ssh、git

3、配置git

4、下载源码

git clone git@github.com:apache/hadoop.git

        git下载慢,还是选择手动下载

        从官网下载,用迅雷拽下来,然后上传到虚拟机

Apache Download MirrorsHome page of The Apache Software Foundationicon-default.png?t=N7T8https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.4.0/hadoop-3.4.0-src.tar.gz5、安装jdk

  $ sudo apt-get update$ sudo apt-get -y install openjdk-8-jdk

6、安装maven

$ sudo apt-get -y install maven

7、安装Native libraries

$ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev libsasl2-dev

8、安装GCC

        这一步,ubuntu自带了,如果是没有带的需要自己安装。有版本要求,

9、安装cmake

        同上

10、安装Protocol

$ curl -L https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.21.12.tar.gz > protobuf-3.21.12.tar.gz$ tar -zxvf protobuf-3.21.12.tar.gz && cd protobuf-3.21.12
$ ./autogen.sh
$ ./configure
$ make -j$(nproc)
$ sudo make install

11、安装Boost

        有一些编译失败,不知道和GCC版本是否有关系,暂时没管,如果编译hadoop失败,那就再重新倒腾。

  $ curl -L https://sourceforge.net/projects/boost/files/boost/1.72.0/boost_1_72_0.tar.bz2/download > boost_1_72_0.tar.bz2$ tar --bzip2 -xf boost_1_72_0.tar.bz2 && cd boost_1_72_0$ ./bootstrap.sh --prefix=/usr/$ ./b2 --without-python$ sudo ./b2 --without-python install

12、编译

        为了快一点,跳过文档

mvn package -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true

        环境都顺利的话,也是要编译很久,编译出来的在hadoop-dist/target目录下。

        编译结果如下图,基本各个文件夹都是sh或者cmd脚本,以及一些配置文件,只有share下面包含了大量的jar包,其中hadoop的共168个,其它的应该都是依赖的jar包。

        然后基于官方的运行安装命令就可以编辑配置文件,执行脚本运行了。当然最简单的办法还是直接下载官方编译好的来运行,这里编译的目的主要是为了测试和了解。

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

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

相关文章

Vue2基础及其进阶面试(二)

vue2的生命周期 删除一些没用的 App.vue 删成这个样子就行 <template><router-view/></template><style lang"scss"></style>来到路由把没用的删除 import Vue from vue import VueRouter from vue-router import HomeView from .…

JAVASE之类和对象(2)

哪怕犯错&#xff0c;也不能什么都不做。 主页&#xff1a;趋早–Step 专栏&#xff1a;JAVASE gitte:https://gitee.com/good-thg 接上部分&#xff0c;我们继续来学习JAVAEE类和对象。 引言&#xff1a; 这篇文章接上一篇&#xff0c;后半部分&#xff0c;结束类和对象 目录 …

Spring Boot 3.0:未来企业应用开发的基石

文章目录 一、Spring Boot 3.0的核心特性二、Spring Boot 3.0的优势三、如何在项目中应用Spring Boot 3.01.更新项目依赖2.调整代码结构3.测试和部署 《学习Spring Boot 3.0》内容简介作者简介目录内容介绍 随着技术的飞速发展&#xff0c;企业应用开发的需求也在不断演变。Spr…

爽!AI手绘变插画,接单赚爆了!

我最近发现一款名叫Hyper-SD15-Scribble的AI项目&#xff0c;可以实现一键手绘变插画的功能&#xff0c;而且它搭载了字节出品的超快速生成图片的AI大模型Hyper-SD15&#xff0c;可以实现几乎实时生成图片&#xff0c;有了它&#xff0c;拿去接一些手绘商单分分钟出图&#xff…

跟TED演讲学英文:How to escape education‘s death valley by Sir Ken Robinson

How to escape education’s death valley Link: https://www.ted.com/talks/sir_ken_robinson_how_to_escape_education_s_death_valley Speaker: Sir Ken Robinson Date: April 2013 文章目录 How to escape educations death valleyIntroductionVocabularySummaryTranscri…

WPF学习日常篇(一)--开发界面视图布局

接下来开始日常篇&#xff0c;我在主线篇&#xff08;正文&#xff09;中说过要介绍一下我的界面排布&#xff0c;科学的排布才更科学更有效率的进行敲代码和开发。日常篇中主要记录我的一些小想法和所考虑的一些细节。 一、主界面设置 主界面分为左右两部分&#xff0c;分为…

有什么免费视频翻译软件?安利5款视频翻译软件给你

随着“跨文化交流”话题的热度不断攀升&#xff0c;越来越多的视频内容跨越国界&#xff0c;触及全球观众。 在这一趋势下&#xff0c;视频翻译行业迎来了巨大的发展机遇。然而&#xff0c;面对众多的视频翻译工具&#xff0c;如何挑选出最合心意的那款呢&#xff1f; 现在&a…

【C++】从零开始构建红黑树

送给大家一句话&#xff1a; 日子没劲&#xff0c;就过得特别慢&#xff0c;但凡有那么一点劲&#xff0c;就哗哗的跟瀑布似的拦不住。 – 巫哲 《撒野》 &#x1f30b;&#x1f30b;&#x1f30b;&#x1f30b;&#x1f30b;&#x1f30b;&#x1f30b;&#x1f30b; ⛰️⛰️…

matlab使用教程(78)—控制颜色图范围

1.控制颜色图范围 对于您创建的许多类型的可视化图形&#xff0c;MATLAB 默认将完整的数据范围映射到颜色图上。数据中的最小值映射到颜色图中的第一行&#xff0c;最大值映射到颜色图中的最后一行。所有中间值线性映射到颜色图的中间行。 这种默认映射适用于大部分情况&#x…

auto关键字(C++11)

auto关键字&#xff08;C11&#xff09; 文章目录 auto关键字&#xff08;C11&#xff09;前言一、auto使用规则二、auto不适用的场景三、auto推荐适用的场景总结 前言 在C11中&#xff0c;auto关键字能够自动推导出变量的实际类型&#xff0c;可以帮助我们写出更加简洁、现代…

【LeetCode刷题】滑动窗口思想解决问题:长度最小的子数组、无重复字符的最长子串

【LeetCode刷题】Day 7 题目1&#xff1a;209.长度最小的子数组思路分析&#xff1a;思路1&#xff1a;暴力枚举 O(N^2^)思路2&#xff1a;滑动窗口 O(N) 题目2&#xff1a;3. 无重复字符的最长子串题目分析&#xff1a;思想1&#xff1a;暴力枚举哈希表O(N^2^)思想2&#xff1…

【C语言】八进制、十六进制

前言 在我们日常生活中使用的数往往是十进制的&#xff0c;而当我们学习C语言后我们会接触到许多不同的进制并且时常需要去思考与使用这些不同的进制&#xff08;尤其是2的幂相关的进制&#xff0c;因为这种计数系统比十进制更接近于计算机的二进制系统&#xff09;&#xff0…

【图解IO与Netty系列】IO的同步与异步、阻塞与非阻塞,Linux五种IO模型

IO的同步与异步、阻塞与非阻塞&#xff0c;Linux五种IO模型 IO的同步与异步&#xff0c;阻塞与非阻塞阻塞IO与非阻塞IO同步IO与异步IO Linux五种IO模型BIONIOIO多路复用信号驱动IOAIO IO的同步与异步&#xff0c;阻塞与非阻塞 我们有时会看到类似于同步阻塞式IO、同步非阻塞式…

(避坑)SpringSecurity关于使用.antMatchers放行接口不生效问题

问题 在使用SpringSecurity的时候发现放行指定接口一直没有生效&#xff0c;使用"/**"就可以生效的问题 关于securityConfig的配置代码 Beanprotected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.csrf().disable() // 关闭csrf防护…

博客开始使用 Cache Master 缓存插件

明月在给大家推荐 Cache Master 插件的时候&#xff08;可参考【推荐个比较纯正的缓存插件——Cache Master】一文&#xff09;&#xff0c;仅仅是在其他站点上试用了一下&#xff0c;今天明月正式在博客上用上了 Cache Master&#xff0c;没有想到对 Dragon 主题的支持竟然是出…

RUST 和 GO 如何管理它们的内存

100编程书屋_孔夫子旧书网 Go 中的内存管理 Go 中的内存不会在缓存键被驱逐时立即释放。 相反&#xff0c;垃圾收集器会经常运行以发现任何没有引用的内存并释放它。 换句话说&#xff0c;内存会一直挂起&#xff0c;直到垃圾收集器可以评估它是否真正不再使用&#xff0c;而…

rtsp协议分析

rtsp概述 rtsp (real-time stream protocol)实时流媒体控制协议。RFC2326&#xff1a;这是RTSP的初始定义版本v1.0&#xff0c;由哥伦比亚大学、网景和RealNetworks公司提交给互联网工程任务组&#xff08;IETF&#xff09;作为RFC标准。RFC7826&#xff1a;这是RTSP的后续更新…

Java进阶学习笔记14——模板方法设计模式

面试和看源码。 谈到设计模式&#xff1a; 1、解决了什么问题&#xff1f; 2、怎么写&#xff1f; 模板方法设计模式解决了什么问题&#xff1f; 解决方法中存在重复代码的问题。 写法&#xff1a; 1&#xff09;定义一个抽象类&#xff1a; 2&#xff09;在里面定义两个方…

C# 控制台应用模板可生成顶级语句

C# 控制台应用模板可生成顶级语句 项目2024/01/0810 个参与者 反馈 本文内容 使用新的程序样式隐式 using 指令全局 using 指令使用旧程序样式 从 .NET 6 开始&#xff0c;新 C# 控制台应用的项目模板在 Program.cs 文件中生成以下代码&#xff1a; C#复制 // See https…

C++ prime 第五版 第14章 重载运算与类型转换

一、基本概念 重载的运算符是具有特殊名字的函数&#xff1a;它们的名字由关键字operator和其后要定义的运算符号共同组成。和其他函数一样&#xff0c;重载的运算符也包含返回类型、参数列表以及函数体。 我们不能为内置类型的运算对象重定义运算符。对于一个运算符函数来说&…