Hadoop概览以及编译hadoop说明

news2024/9/8 23:46:56

一、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.coloradmin.cn/o/1697416.html

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

相关文章

基于SpringBoot+Vue+Mysql的实验室低值易耗品管理系统

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

OS复习笔记ch6-2

死锁的解决 死锁的预防(打疫苗)死锁的避免(戴口罩)死锁的检测(做核酸) 死锁的预防 前面我们提到了死锁的四个必要条件 防止前三个必要条件,就是间接预防防止最后一个必要条件–循环等待&…

每日一题23:统计文本中单词出现的次数

一、每日一题 解答: import pandas as pd def count_occurrences(files: pd.DataFrame) -> pd.DataFrame:bull_cnt len(files[files[content].str.contains(r\sbull\s)])bear_cnt len(files[files[content].str.contains(r\sbear\s)])res_df pd.DataFrame({…

【Text2SQL 论文】SeaD:使用 Schema-aware 去噪训练的 end2end 的 Text2SQL

论文:SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising ⭐⭐ NAACL 2022, arXiv:2105.07911 本论文提出 SeaD 模型,使用 schema-aware 的去噪方法来训练一个 end2end、seq2seq 的 Transformer 模型来实现 Text2SQL。 一、论文速读…

【LeetCode刷题记录】207.课程表

207 课程表 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 b…

第20届文博会:“特别呈现”—周瑛瑾雷米·艾融双个展,著名美术评论家,批评家彭德教授对周瑛瑾作品进行评论

周瑛瑾不是学院派艺术家,但在彩墨画领域的天赋超出中国八大美院的同类型画家。相比具有批判意识的当代艺术,他的彩墨艺术如同我们这个苦难世界的创可贴和安慰剂。当我面对他的彩墨画,首先是惊艳,随之想到屈原的离骚,还…

淘工厂订单导出自动化工具

目录 下载安装与运行 主要目的 其他工具的弊端 本工具的优势 视频演示 下载新版后的注意事项 支持的导出项 什么叫一单多拍 常见问题 如何实现快捷登录 导出卡住时如何操作 如何精确导出 下载安装与运行 下载、安装与运行 语雀 主要目的 导出订单信息&#xf…

【数据结构】哈希表的原理及其实现

文章目录 哈希表的概念哈希函数的设计常见的哈希函数 哈希冲突1. 闭散列代码实现 2. 开散列拉链法的优点 针对开散列哈希的扩展基于开散列拉链法封装哈希表MyHash.h 基于哈希表实现unordered_map类Myunordered_map.h 基于哈希表实现unordered_set类Myunordered_map.h 哈希表的概…

Ethercat总线学习:CAN、CANopen、EtherCAT、PDO与SDO

各种XoE CoE是什么 CoE CAN application protocol Over EtherCAT,是EtherCAT应用层协议的一种,根据CiA402协议编写,使用对象和对象字典的功能来实现邮箱通讯。 PDO与SDO是常用的数据传输方式,他们在实现高效数据传输、同步方面发…

html中被忽略的简单标签

1&#xff1a; alt的作用是在图片不能显示时的提示信息 <img src"https://img.xunfei.cn/mall/dev/ifly-mall-vip- service/business/vip/common/202404071019208761.jp" alt"提示信息" width"100px" height"100px" /> 2&#…

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

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

Java进阶学习笔记25——Objects类

为啥比较两个对象是否相等&#xff0c;要用Objects的equals方法&#xff0c;而不是用对象自己的equals方法来解决呢&#xff1f; Objects&#xff1a; Objects类是一个工具类&#xff0c;提供了很多操作对象的静态方法供我们使用。 package cn.ensource.d14_objects;import ja…

无货源抖店怎么起店?教你两种起店方法,记得收藏!

大家好&#xff0c;我是喷火龙。 开通抖音小店之后最重要的一步就是起店了&#xff0c;今天就给大家分享两种起店方法。 大家都知道&#xff0c;产品是做店的核心&#xff0c;品不行&#xff0c;就算平台给你免费的流量&#xff0c;那你也承接不住。 第一个&#xff0c;商品卡…

Steam在连接至服务器发生错误/连接服务器遇到问题解决办法

Steam作为全球最大的数字游戏分发平台&#xff0c;构建了一个活跃的玩家社区&#xff0c;用户可以创建个人资料&#xff0c;添加好友&#xff0c;组建群组&#xff0c;参与讨论&#xff0c;甚至直播自己的游戏过程。通过创意工坊&#xff0c;玩家还能分享自制的游戏模组、地图、…

【古董技术】ms-dos应用程序的结构

序 制定一个MS-DOS应用程序计划需要认真分析程序的大小。这种分析可以帮助程序员确定MS-DOS支持的两种程序风格中哪一种最适合该应用程序。.EXE程序结构为大型程序提供了好处&#xff0c;因为所有.EXE文件之前都有额外的512字节&#xff08;或更多&#xff09;的文件头。另一方…

跨境选品师不是神话:普通人也能轻松掌握,开启全球贸易新篇章!

随着互联网技术的飞速发展&#xff0c;跨境电商行业已成为全球经济的新增长点。在这个背景下&#xff0c;一个新兴的职业——跨境选品师&#xff0c;逐渐走进了人们的视野。那么&#xff0c;跨境选品师究竟是做什么的?普通人又该如何成为优秀的跨境选品师呢? 一、跨境选品师的…

Docker compose 的方式一键部署夜莺

官方安装文档&#xff1a;https://flashcat.cloud/docs/content/flashcat-monitor/nightingale-v7/install/docker-compose/ 介绍&#xff1a;夜莺监控是一款开源云原生观测分析工具&#xff0c;采用 All-in-One 的设计理念&#xff0c;集数据采集、可视化、监控告警、数据分析…

数据结构(四)串

2024年5月26日一稿(王道P127) 定义和实现

日志的介绍及简单实现

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 日志是什么&#xff1f; 为什么需要日志&#xff1f; 实现一个简单日志 时间戳 clock_gettime time & localtime 可变模板参数(使用C语言)&#xff0c;va_start & va_end & vsprintf 宏 __LINE__…

推荐一款媒体影音嗅探神器—Chrome扩展插件(猫抓cat-catch)

目录 1.1、前言1.2、下载地址1.3、github Releases 版本说明1.4、安装步骤1.5、猫抓插件常规设置1.5.1、设置抓取文件的类型1.5.2、设置抓取文件的后缀名 1.1、前言 我们在日常上网的过程中&#xff0c;很多音频、视频网站下载资源都非常不方便&#xff0c;要么需要安装客户端&…