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.rhkb.cn/news/336415.html

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

相关文章

在Visual Studio Code和Visual Studio 2022下配置Clang-Format,格式化成Google C++ Style

项目开发要求好的编写代码格式规范,常用的是根据Google C Style Guide 网上查了很多博文,都不太一样有的也跑不起来,通过尝试之后,自己可算折腾好了,整理一下过程 背景: 编译器主要有三部分:前…

Django 里如何使用 sqlite (操作步骤)

在 settings.py 里,已经设定好 sqlite 了 DATABASES {default: {ENGINE: django.db.backends.sqlite3,NAME: BASE_DIR / db.sqlite3,} }必须得设置好app # 在 settings.py 里INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contentt…

科技产业园3D探秘:未来科技之城的奇幻之旅

在数字时代的浪潮中,科技产业园区成为了推动城市经济发展、科技创新的重要引擎。 当我们打开科技产业园的3D可视化模型,仿佛穿越时空,来到了一个充满奇幻色彩的科技世界。在这里,高楼大厦鳞次栉比,绿色植被点缀其间&am…

React(四)memo、useCallback、useMemo Hook

目录 (一)memo API 1.先想一个情景 2.用法 (1)props传入普通数据类型的情况 (2)props传入对象的情况 (3)props传入函数的情况 (4)使用自定义比较函数 3.什么时候使用memo? (二)useMemo Hook 1.用法 2.useMemo实现组件记忆化 3.useMemo实现函数记忆化 …

记录jenkins中解决sqlite3报错的问题

参考博客python系列--Python3 No module named _sqlite3错误 - 知乎 安装sqlite3 2.1 下载sqlite3安装包 官网地址SQLite Download Page 下载安装包:wget https://www.sqlite.org/2024/sqlite-autoconf-3460000.tar.gz 2.2 上传服务器并进行安装 解压:tar -xv…

【运维】Linux 端口管理实用指南,扫描端口占用

在 Linux 系统中,你可以使用以下几种方法来查看当前被占用的端口,并检查 7860 到 7870 之间的端口: 推荐命令: sudo lsof -i :7860-7870方法一:使用 netstat 命令 sudo netstat -tuln | grep :78[6-7][0-9]这个命令…

618手把手教你捡漏服务器

618最全捡漏攻略 捡漏规则1、新人优惠⭐⭐⭐2、教育优惠⭐⭐3、回馈活动⭐️ ECS价格对比新人优惠💝京东云 50/年百度云 60.69/年阿里云 82/年腾讯云 99/年 回馈活动🎁阿里云 教育优惠🏫阿里云腾讯云 hi,好久不见各位,…

Spring Security整合Gitee第三方登录

文章目录 学习链接环境准备1. 搭建基本web应用引入依赖ThirdApp启动类创建index页面application.yml配置访问测试 2. 引入security引入依赖ProjectConfig访问测试 第三方认证简介注册gitee客户端实现1引入依赖application.yml配置文件创建index.html页面启动类InfoControllerPr…

SheetJS V0.17.5 导入 Excel 异常修复 Invalid HTML:could not find<table>

导入 Excel 提示错误&#xff1a;Invalid HTML:could not find<table> 检查源代码 发现 table 属性有回车符 Overview: https://docs.sheetjs.com/docs/ Source: https://git.sheetjs.com/sheetjs/sheetjs/issues The public-facing websites of SheetJS: sheetjs.com…

postman教程-7-文件上传接口

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了postman发送get请求的方法&#xff0c;本小节我们讲解一下postman文件上传接口的请求方法。 postman文件上传的方式大概有两种&#xff0c;一种是form-data类型上传文件&#xff0c;一种是bin…

redis数据类型之Hash,Bitmaps

华子目录 Hash结构图相关命令hexists key fieldhmset key field1 value1 [field2 value2...]hscan key cursor [MATCH pattern] [COUNT count] Bitmaps位图相关命令setbit1. **命令描述**2. **语法**3. **参数限制**4. **内存分配与性能**5. **应用实例**6. **其他相关命令**7.…

stm32学习-CubeIDE使用技巧

1.hex文件生成 右键工程 2.仿真调试 3.常用快捷键 作用快捷键代码提示alt/代码注释/反注释ctrl/ 4.项目复制 复制项目&#xff0c;将ioc文件名改为项目名即可图形化编辑

元宇宙三维互动展厅让体验者进入一个充满奇幻与创意的数字世界

元宇宙数字产品展厅搭建编辑器凭借强大的三维可视化互动功能&#xff0c;为用户带来前所未有的沉浸式数字展览体验。 在元宇宙数字产品展厅搭建编辑器中&#xff0c;用户可以轻松打造逼真的三维展览环境&#xff0c;通过VR虚拟现实技术&#xff0c;仿佛置身于一个充满奇幻与创意…

爬虫案例(读书网)

一.我们还是使用简单的bs4库和lxml&#xff0c;使用xpath&#xff1a; 导入下面的库&#xff1a; import requests from bs4 import BeautifulSoup from lxml import etree 我们可以看见它的div和每个书的div框架&#xff0c;这样会观察会快速提高我们的简单爬取能力。 二.实…

LabVIEW机器设备的振动监测

振动监测是工业和机械维护中重要的一部分&#xff0c;通过检测和分析机械振动&#xff0c;提前发现潜在故障&#xff0c;确保设备的可靠运行。LabVIEW是一种强大的图形化编程环境&#xff0c;非常适合用于振动监测系统的开发和实施。以下从多个角度详细介绍LabVIEW在振动监测中…

拷贝构造、移动构造、拷贝赋值、移动赋值

最近在学习C的拷贝构造函数时发现一个问题&#xff1a;在函数中返回局部的类对象时&#xff0c;并没有调用拷贝构造函数。针对这个问题&#xff0c;查阅了一些资料&#xff0c;这里记录整理一下。 调用拷贝构造函数的三种情况&#xff1a; ① 用一个类去初始化另一个对象时&a…

重学java 51.Collections集合工具类、泛型

"我已不在地坛&#xff0c;地坛在我" —— 《想念地坛》 24.5.28 一、Collections集合工具类 1.概述:集合工具类 2.特点: a.构造私有 b.方法都是静态的 3.使用:类名直接调用 4.方法: static <T> boolean addAll(collection<? super T>c,T... el…

民国漫画杂志《时代漫画》第17期.PDF

时代漫画17.PDF: https://url03.ctfile.com/f/1779803-1248612629-85326d?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

LVM、磁盘配额

LVM与磁盘配额 一、LVM LVM(逻辑卷管理)&#xff1a;是Linux系统下对硬盘分区的管理机制。 LVM机制适合于管理管理大存储设备。可以动态对硬盘进行扩容。 逻辑上的磁盘&#xff0c;概念上的磁盘&#xff0c;文件系统创建之后不考虑底层的物理磁盘。 若干个磁盘分区或者物理…

与MySQL的初相遇

&#x1f30e;初识MySQL 注&#xff1a;本文SQL语句只为了验证猜想&#xff0c;不会也不要紧。 文章目录&#xff1a; MySql开端 认识数据库       什么是数据库       主流数据库       MySQL的本质 MySQL基础使用       连接mysql服务器     …