【Hadoop】Hadoop 编译源码

目录

  • 为什么要源码编译
  • Hadoop 编译源码
    • 1前期工作准备
    • 2jar 包安装
      • 2.1安装 Maven
      • 2.2安装 ant
      • 2.3安装 glibc-headers 和 g++
      • 2.4安装 make 和 cmake
      • 2.5安装 protobuf
      • 2.6安装 openssl 库
      • 2.7安装 ncurses-devel 库
    • 3编译源码
      • 3.1解压源码到 /opt/ 目录
      • 3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令
        • 3.3成功的 64 位 hadoop 包在 /opt/hadoop-2.7.7-src/hadoop-dist/target 下

为什么要源码编译

  • Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries) 的概念。
  • 说白了,就是Hadoop的某些功能,必须通过JNT来协调Java类文件和Native代码生成的库文件一起才能工作。
  • linux系统要运行Native 代码,首先要将Native 编译成目标CPU 架构的[.so]文件。而不同的处理器架构,需要编译出相应平台的动态库[.so] 文件,才能被正确的执行,所以最好重新编译一次hadoop源码,让[.so]文件与自己处理器相对应。
  • 简单来说就是编译出适合自己机器的Hadoop。

Hadoop 编译源码

1前期工作准备

  • CentOS 联网
  • 配置 CentOS 能连接外网。Linux 虚拟机 ping www.baidu.com 是畅通的。
  • jar 包准备(hadoop 源码、JDK8、maven、ant 、protobuf)
    ① hadoop-2.7.7-src.tar.gz
    ② jdk-8u151-linux-x64.tar.gz
    ③ apache-ant-1.9.9-bin.tar.gz(build 工具,打包用的)
    ④ apache-maven-3.0.5-bin.tar.gz
    ⑤ protobuf-2.5.0.tar.gz(序列化的框架)

2jar 包安装

参考我的另一篇博客:【Linux】Linux上的一些软件安装与环境配置(Centos7配置JDK、Hadoop)

2.1安装 Maven

  • 下载地址:链接:https://pan.baidu.com/s/1qp_LhRMvqpIXXznbDdK3kw?pwd=6666 提取码:6666

  • 上传到/root/soft

  • 解压到/opt/module/

    tar -zxvf apache-maven-3.8.4-bin.tar.gz -C /opt/module/
    

    在这里插入图片描述

  • 配置环境变量

    	vim /etc/profile#添加以下内容export MAVEN_HOME=/opt/module/apache-maven-3.8.4export PATH=$PATH:$MAVEN_HOME/bin#生效source /etc/profile
    
  • 进入解压后的 Maven 目录,编辑配置文件(更改 Maven 镜像)
    在这里插入图片描述

    <mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    

    在这里插入图片描述

  • 查看 Maven 是否安装成功
    在这里插入图片描述

2.2安装 ant

  • 下载地址:链接:https://pan.baidu.com/s/1_5AU5KjwjWBZoNEYwVj5sw?pwd=6666 提取码:6666

  • 上传到/root/soft

  • 解压到/opt/module/

    tar -zxvf apache-ant-1.9.9-bin.tar.gz -C /opt/module/
    
  • 配置环境变量

vim /etc/profile#添加以下内容
#ANT_HOME
export ANT_HOME=/opt/module/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin#生效
source /etc/profile
  • 查看 ant 是否安装成功
    在这里插入图片描述

2.3安装 glibc-headers 和 g++

yum install glibc-headers
yum install gcc-c++

2.4安装 make 和 cmake

 yum install make
 yum install cmake

2.5安装 protobuf

  • 下载地址:链接:https://pan.baidu.com/s/1nHvCXa1xd2jvp3XIEjeH5g?pwd=6666 提取码:6666

  • 上传到/root/soft

  • 解压到/opt/moudel

    tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/
    
  • 配置环境变量

    vim /etc/profile#添加以下内容
    #LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0
    export PATH=$PATH:$LD_LIBRARY_PATH#生效
    source /etc/profile
    
  • 进入到解压后 protobuf 主目录,/opt/module/protobuf-2.5.0,然后相继执行命令

    cd /opt/module/protobuf-2.5.0
    ./configure 
    make
    make check
    make install
    ldconfig 
    
  • 查看安装结果
    在这里插入图片描述

2.6安装 openssl 库

yum install openssl-devel

2.7安装 ncurses-devel 库

yum install ncurses-devel

3编译源码

3.1解压源码到 /opt/ 目录

源码下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/

 tar -zxvf hadoop-2.7.7-src.tar.gz -C /opt/

3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令

cd  /opt/hadoop-2.7.7-src
mvn package -Pdist,native -DskipTests -Dtar

等待时间 2 小时左右。

3.3成功的 64 位 hadoop 包在 /opt/hadoop-2.7.7-src/hadoop-dist/target 下

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

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

相关文章

原生小程序开发的父子组件传值,兄弟组件传值

1.父子传值&#xff0c;父组件通过属性的方式去给子组件传递值&#xff0c;子组件在properties属性去接收父组件传递过来的值&#xff1a; 父组件部分&#xff1a; <view class"pcolor"><customer id"child" bind:changSex"changSex"…

AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…

UniTask 异步任务

文章目录 前言一、UniTask是什么&#xff1f;二、使用步骤三、常用的UniTask API和示例1.编写异步方法2.处理异常3.延迟执行4.等待多个UniTask或者一个UniTas完成5.异步加载资源示例6.手动控制UniTask的完成状态7.UniTask.Lazy延迟任务的创建8.后台线程切换Unity主线程9.不要返…

第二证券|热度飙升,出境游人数有望破亿,这些概念股被机构盯上

在免签和航班批量康复的方针利好下&#xff0c;本年出境游商场迎来炽热升温。 清明出境游有望爆火 3月20日&#xff0c;Airbnb爱彼迎在北京举行春季出境游趋势发布会举行。 爱彼迎中国数据显示&#xff0c;本年清明节期间的出境游查找热度已经超出2023年同期的2.5倍&#xf…

计算机网络面经-什么是IPv4和IPv6?

前言 Internet协议&#xff08;IP&#xff09;是为连接到Internet网络的每个设备分配的数字地址。它类似于电话号码&#xff0c;是一种独特的数字组合&#xff0c;允许用户与他人通信。IP地址主要有两个主要功能。首先&#xff0c;有了IP&#xff0c;用户能够在Internet上被识别…

选择排序-python实现

选择排序是一种简单直观的排序算法&#xff0c;它的工作原理如下&#xff1a; 1、 在未排序序列中找到最小&#xff08;或最大&#xff09;元素&#xff0c;存放到排序序列的起始位置。 2、再从剩余未排序元素中继续寻找最小&#xff08;或最大&#xff09;元素&#xff0c;然…

Redis 安装(二)

Redis安装说明 大多数企业都是基于Linux服务器部署项目&#xff0c;而且Redis官网也没有提供Windows版本的安装包&#xff0c;因此课程中我们会基于Linux系统来安装Redis。 此处选择Linux版本为Centos7。 Redis的官方网站地址&#xff1a;https://redis.io/ Redis的安装 切换…

TCP协议中的传输控制机制图文详解「重传机制」「流量控制」「拥塞控制」

目录 TCP重传机制 超时重传 快速重传 SACK 方法 Duplicate SACK TCP 流量控制 滑动窗口 累积确认 窗口大小由哪一方决定&#xff1f; 接收窗口和发送窗口的大小是相等的吗&#xff1f; 流量控制 窗口关闭的后果 糊涂窗口综合症 TCP拥塞处理 为什么要有拥塞控制呀&#xff0c;不…

如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf?

如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf? 步骤1 编译安装内核获取源码修改配置编译编译成功后配置重启WSL测试 步骤2 安装bcc安装依赖下载bcc&#xff0c;编译测试 环境: wsl2windows 11 步骤1 编译安装内核 去https://kernel.org/找你想要的版本&#xff0c; …

119.设计链表(力扣)

代码解决 class MyLinkedList { public:// 定义链表节点结构体struct LinkedNode {int val;LinkedNode* next;LinkedNode(int val):val(val), next(nullptr){}};MyLinkedList() {dummyhead new LinkedNode(0);size0;}int get(int index) {if (index > (size - 1) || index…

从点云创建 DSM:网格化和可视化实用指南

今天我将向您展示如何从点云创建数字表面模型&#xff08;DSM&#xff09;。首先&#xff0c;我们将尝试了解 DSM 是什么&#xff0c;然后我们将进入讨论的更实际部分。 什么是 DSM&#xff1f; DSM 是一个描述表面及其表面所有内容的模型。现在&#xff0c;为了更清楚地了解…

学习JavaEE的日子 Day28 异常,多线程

Day28 1.异常机制 1.1 异常概念 异常是程序在运行期发生的不正常的事件&#xff0c;它会打断指令的正常执行流程。 设计良好的程序应该在异常发生时提供处理这些不正常事件的方法&#xff0c;使程序不会因为异常的发生而阻断或产生不可预见的结果。 ​ Java语言使用异常处理机…

LabVIEW柴油机安保监控系统

LabVIEW柴油机安保监控系统 随着航运业的快速发展&#xff0c;确保船舶柴油机的安全稳定运行变得尤为重要。船舶柴油机故障不仅会导致重大的经济损失&#xff0c;还可能危及人员安全和环境。设计并开发了一套基于LabVIEW平台的柴油机安保监控系统&#xff0c;旨在通过实时监控…

JavaScript数组中会修改原数组的方法有哪些?

前言&#xff1a; 最近跟小伙伴们一起讨论的时候遇见了一个问题&#xff1a;JavaScript中对原数组有影响的数组原生方法有哪些呢&#xff1f;对原数组没有影响的数组原生方法又有哪些呢&#xff1f;我翻阅了很多篇博客&#xff0c;我发现并没有总结特别全面的&#xff0c;我就…

lin_extract_5utr_cds_3utr.py

1.输入文件为基因组文件和gff3文件,输出为5utr和3utr,并且utr已经考虑了正负链和可变剪接情况,意思是如果utr存在可变剪接,输出的文件已经给拼接好了,并且考虑了正负链和拼接方向 #!/usr/bin/env python # -*- coding: utf-8 -*- # python lin_extract_5utr_cds_3utr2.py…

Python数学建模-2.9Matplotlib库

Matplotlib库是Python中一个非常流行的绘图库&#xff0c;它提供了大量的绘图工具&#xff0c;可以生成各种类型的静态、动态、交互式的图表。Matplotlib的设计初衷是为了与NumPy配合使用&#xff0c;从而提供一个强大的数学绘图工具。 1.Matplotlib的主要特点 丰富的图表类型…

Ubuntu18.04显示--有线连接未托管

引用: Ubuntu18.04连不网 报"有线连接未托管"_ubuntu20.04以太网未托管-CSDN博客 正文 虚拟机环境配置&#xff1a; VirtaualBox Ubuntu18.04桌面版 问题现象&#xff1a; Ubuntu18.04虚拟机的桌面上提示“有线连接未托管”&#xff0c;虚拟机不能上网&#xf…

香港银行卡

文章目录 香港银行香港汇丰&#xff08;HSBC&#xff09;中银香港其他 在内地办理香港银行卡流程赴港办理香港银行卡流程赴港办理香港银行卡注意事项提前做好旅游规划过关小白条务必保留好预约办理地点地址证明提前下载银行App 虚拟银行ZA Bank&#xff08;众安银行&#xff09…

已解决redis.clients.jedis.exceptions.JedisBusyException:无法处理命令异常的正确解决方法,亲测有效!!!

已解决redis.clients.jedis.exceptions.JedisBusyException&#xff1a;无法处理命令异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 总结 博主v&#xff1a;XiaoMing_Java 在使用Redis和Jedis客…

抖音视频批量下载软件可导出视频分享链接|手机网页视频提取|视频爬虫采集工具

解锁抖音视频无水印批量下载新姿势&#xff01; 在快节奏的生活中&#xff0c;抖音作为时下最热门的短视频平台之一&#xff0c;吸引着广大用户的目光。而如何高效地获取喜欢的视频内容成为了许多人关注的焦点。Q:290615413现在&#xff0c;我们推出的抖音视频批量下载软件&…