hadoop3编译安装

news2024/10/10 1:05:27

1.参考资料

官方的https://github.com/apache/hadoop/blob/trunk/BUILDING.txt

2.编译环境

Linux系统:Centos7.2

Jdk版本:jdk1.8

cmake版本:3.19

Hadoop版本:3.1.2

Maven版本:3.6.3

Protobuf版本:2.5

编译工具准备

a.安装依赖

1

yum -y install kernel-devel    gcc*      glibc-headers    gcc-c++    zip-devel    openssl-devel       git    ncurses-devel    lzo-devel    autoconf    libtool    automake 

b. java 和maven 环境

 java 和maven 环境用到的太普遍了,这个就不重复了

c.安装protobuf

可以先查看yum上的版本

  2.5.0正是所需要的,而不是官方里说的3.x,为什么呢?

 直接

1

yum install -y protobufx

自己安装时,以为yum没有protobufx,所以是到github上下载源码编译的GitHub - protocolbuffers/protobuf at v2.5.0

正常解压后只要

1

2

3

4

$ ./configure

$ make

$ make check

$ make install

 

但你会发现根本没有configure,我们需要执行autogen.sh去生成configure脚本

执行autogen.sh,会发现无法下载gtest-1.5.0.tar.bz2

 我们需要自行下载gtest-1.5.0.tar.bz2,

Index of /repo/pkgs/gtest/gtest-1.5.0.tar.bz2/md5/8b2c3c3f26cb53e64a3109d03a97200a

再执行autogen.sh里剩下的部分

 生成configure

 d.安装CMake 3.19

1

2

3

4

5

$ curl -L https://cmake.org/files/v3.19/cmake-3.19.0.tar.gz > cmake-3.19.0.tar.gz

$ tar -zxvf cmake-3.19.0.tar.gz && cd cmake-3.19.0

$ ./bootstrap

$ make -j$(nproc)

$ sudo make install

  

 3.下载hadoop源码进行编译

源码下载GitHub - apache/hadoop: Apache Hadoop

注意为了更好的性能,要使用 Native Hadoop Library

Native Hadoop Library 介绍:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/NativeLibraries.html

解压后 ,cd  hadoop-3.2.2-src

执行

1

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

编译中可能因为网络问题,有些包无法下载

可以自行到中央仓库Central Repository:下载相应jar包,

并先删除本地仓库中相应包目录下的缓存文件,再用maven安装到本地,再编译源码。

我遇到了2个jar无法下载,所以本地安装了下。

1

2

3

4

5

6

仓库目录:/root/.m2/repository/org/ow2/asm/asm-analysis/6.2.1

mvn install:install-file -Dfile=asm-analysis-6.2.1.jar  -DgroupId=org.ow2.asm -DartifactId=asm-analysis -Dversion=6.2.1 -Dpackaging=jar

仓库目录:/root/.m2/repository/biz/aQute/bnd/bndlib/2.3.0

mvn install:install-file -Dfile=bndlib-2.3.0.jar  -DgroupId=biz.aQute.bnd -DartifactId=bndlib -Dversion=bndlib -Dpackaging=jar

4.编译成功

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

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

相关文章

【数据分析专栏之Python篇】二、Jupyer Notebook安装配置及基本使用

文章目录 前言一、Jupter Notebook是什么1.1 简介1.2 组成部分1.3 Jupyter Notebook的主要特点 二、为什么使用Jupyter Notebook?三、安装四、Jupyter Notebok配置4.1 基本配置4.2 配置开机自启与后台运行4.3 开启代码自动补全 五、两种键盘输入模式5.1 编辑模式5.2 命令模式5…

J2EE通用分页02

目录 一.重构-提取公用方法 1.为了进行公共方法的抽取,需要找出上面实习中的可通用部分,和差异化部分 2.公用方法封装思路 3. 具体实现 二.分页标签 2.1 准备一个Servlet 3.2 结果展示页面 三. 过滤器解决中文乱码问题 四.加入分页功能 四…

Qt Core学习日记——第七天QMetaObject(上)

每一个声明Q_OBJECT的类都具有QMetaObject对象 Q_OBJECT宏源代码: #define Q_OBJECT \ public: \ QT_WARNING_PUSH \ Q_OBJECT_NO_OVERRIDE_WARNING \ static const QMetaObject staticMetaObject; \ virtual const QMetaObject *metaObject() const; \ vir…

Rust vs Go:常用语法对比(五)

题图来自 Rust vs Go 2023[1] 81. Round floating point number to integer Declare integer y and initialize it with the rounded value of floating point number x . Ties (when the fractional part of x is exactly .5) must be rounded up (to positive infinity). 按规…

垃圾回收标记阶段算法

1.标记阶段的目的 主要是在GC在前,判断出哪些是有用的对象,哪些是需要回收的对象,只有被标记为垃圾对象,GC才会对其进行垃圾回收。判断对象是否为垃圾对象的两种方式:引用计数算法和可达性分析算法。 2.引用计数算法…

MySQL基础(一)

目录 前言 一、概述 1.什么是数据库 2.数据库能干什么 3.为什么要用数据库,优势、特性 二、数据库类型 (一)、关系型数据库,RDBMS 1.概述 2.特点 3.代表产品 (二)、非关系型数据库,No…

性能测试常见故障和解决思路

目录 一、性能问题分析流程 二、内存溢出 (一)堆内存溢出 (二)永久代/方法区溢出 (三)栈内存溢出 (四)系统内存溢出 三、CPU过高 (一)us cpu过高 &a…

flink cdc环境搭建

1.下载flink https://archive.apache.org/dist/flink/flink-1.12.2/ 2.修改flink-conf.yaml #根据自己电脑核数修改,这里我设置为4,因为系统分配了4核 jobmanager.rpc.address: localhost #主机名根据自己设定 taskmanager.numberOfTaskSlots: 4 3.下载…

Databend 开源周报第 103 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 创建网络策略 …

机器学习深度学习——图像分类数据集

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——softmax回归(下) 📚订阅专栏:机器学习&&深度学习…

【腾讯云 Cloud Studio 实战训练营】沉浸式体验编写一个博客系统

文章目录 前言新建工作空间登录(注册)Cloud Studio 账号:进入 Cloud Studio 控制台:配置工作空间参数:确认并创建工作空间:项目搭建 配置nuxt 脚手架运行项目报错信息解决错误脚手架运行预览问题 开启博客代码配置layout首页配置 …

关于java中的内存回收机制

C中如果创建了一个对象,当不再使用的时候,需要手动调用delete方法来进行销毁。而Java提供了一套完整的垃圾回收机制(gc)。它会自动扫描内存中我们所创建过且不再使用的对象,进行自动销毁。但是gc并不完美,现…

7plus透明屏有哪些全新的使用体验?

7plus透明屏是指苹果公司推出的iPhone 7 Plus手机配备了透明屏幕的一种特殊版本。透明屏幕是一种新型的显示技术,可以使屏幕看起来透明,让用户感觉手机屏幕上的内容仿佛悬浮在空中一样。 透明屏幕的出现给用户带来了全新的使用体验。 首先,透…

对象存活判断

对象存活判断 在堆里存放着几乎所有的 Java 对象实例,在 GC 执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC 才会在执行垃圾回收时,释放掉其所占用的内存…

微信小程序客服系统-对接消息推送-对接模板订阅消息-嵌入webview客服链接

想要给自己的小程序增加客服系统功能 小程序客服对接导自己的系统等需求,可以参照我开发的客服系统,实现私有化部署搭建对接的微信小程序 小程序消息推送对接 首先登录小程序后台在小程序后台>开发管理>开发设置>服务器域名部分,配置…

基于Java+SpringBoot+vue前后端分离学科竞赛管理系统设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

Linux中的库

一、库是什么 库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。就是将源代码转化为二进制格式的源代码,相当于进行了加密,别人可以使用库,但是看不到库中的内容。 二、库的分类和优缺点 静态库:是在程…

Shell 排序法 - 改良的插入排序

说明 插入排序法由未排序的后半部前端取出一个值,插入已排序前半部的适当位置,概念简单但速度不快。 排序要加快的基本原则之一,是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度,Shel…

云安全攻防(二)之 云原生安全

云原生安全 什么是云原生安全?云原生安全包含两层含义:面向云原生环境的安全和具有云原生特征的安全 面向云原生环境的安全 面向云原生环境的安全的目标是防护云原生环境中的基础设施、编排系统和微服务系统的安全。这类安全机制不一定会具有云原生的…

git恢复删除的分支

1.查看被删除的分支 git remote prune --dry-run origin 被删除的分支是191 2.找到被删除分支的最后一次提交记录的commit SHA值 git reflog 最后一次提交的commit SHA值是3fa7532 3.恢复分支 git checkout -b xiaomeng 3fa7532 4.恢复成功后提交到远端,over&…