Bigtop 从0开始(下)

news2024/11/24 19:09:44

原文阅读:【巨人肩膀社区·博客·分享】Bigtop 从0开始

bigtop 使用示例:

这里使用 官方的bigtop 3.2.0 作为示例,使用centos7 为编译操作系统,其他的系统和其他版本也是一样的操作。

1.创建一个开发目录

mkdir /home/jialiang/dev/

2.克隆bigtop 到本地

cd /home/jialiang/dev/
git clone https://github.com/apache/bigtop.git

3.切换到3.2.0

git checkout release-3.2.0

#这里假设你的Linux 宿主机已经安装好了docker

4.拉取bigtop 的centos7 编译环境镜像

#如果你要编译其他操作系统或者其他架构比如arm
#可以去这个bigtop 的镜像仓库,搜索对应的bigtop 版本,然后在其中找你需要的操作系统的镜像包
#https://hub.docker.com/r/bigtop/slaves/tags

docker pull bigtop/slaves:3.2.0-centos-7

5.1启动镜像

情况1:

如果你之前在本地编译过大数据组件,本地有 maven的仓库的缓存,最好把这个maven仓库目录映射到容器的maven的默认下载目录下去,这样就不需要重复下载包.

比如你本地的maven仓库目录是 /data/sdv1/repository,可以这样启动

cd /home/jialiang/dev/bigtop
docker run -d -it --network host  -v `pwd`:/ws -v /data/sdv1/repository:/root/.m2/repository --workdir /ws --name bigtopr bigtop/slaves:3.2.0-centos-7
情况2:

如果你本地之前没maven 缓存,或者你不懂这个,那么我们也要映射一个目录到bigtop 镜像中,方便反复编译时,可以使用下载好的maven缓存,否则镜像删除后,你下的maven缓存就没了,而我们重复编译时,最耗时的阶段就是依赖下载,因此需要避免这种情况发生。

mkdir -p /root/.m2/repository
cd /home/jialiang/dev/bigtop
docker run -d -it --network host  -v `pwd`:/ws -v /root/.m2/repository:/root/.m2/repository --workdir /ws --name bigtopr bigtop/slaves:3.2.0-centos-7

5.2 修改镜像中的 maven 源为阿里云的源

由于镜像中默认的maven 中使用的yum 源是国外的,即使能科学上网,下载也很慢,这里需要把这个配置文件替换为国内阿里云源。

1.进入镜像
docker exec -it bigtop /bin/bash
2.修改镜像地址
vi /usr/local/maven/conf/settings.xml

把里面的内容替换如下:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
  http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
  <interactiveMode/>
  <usePluginRegistry/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors>
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>central</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/central</url>
    </mirror>
    <mirror>
      <id>repo1</id>
      <mirrorOf>central</mirrorOf>
      <name>central repo</name>
      <url>http://repo1.maven.org/maven2/</url>
    </mirror>
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>apache snapshots</mirrorOf>
      <name>阿里云阿帕奇仓库</name>
      <url>https://maven.aliyun.com/repository/apache-snapshots</url>
    </mirror>
  </mirrors>
  <proxies/>
  <activeProfiles/>
  <profiles>
    <profile>  
      <repositories>
        <repository>
          <id>aliyunmaven</id>
          <name>aliyunmaven</name>
          <url>https://maven.aliyun.com/repository/public</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>MavenCentral</id>
          <url>http://repo1.maven.org/maven2/</url>
        </repository>
        <repository>
          <id>aliyunmavenApache</id>
          <url>https://maven.aliyun.com/repository/apache-snapshots</url>
        </repository>
      </repositories>             
    </profile>
  </profiles>
</settings>

5.3 修改 bigtop 中的仓库地址为 阿里云地址

在宿主机上执行

cd /home/jialiang/dev/bigtop
vi build.gradle

把 build.gradle 中 buildscript 中的 mavenCentral() 替换为

maven{url "https://maven.aliyun.com/repository/central"}

如下图所示

image.png

然后把 allprojects { 中的 mavenCentral() 也替换为阿里云源

maven{url "https://maven.aliyun.com/repository/central"}

如下图所示

image.png



5.4 可选(这一步主要解决部分组件编译 maven 仍然不走国内源,下载maven 依赖慢的问题)

这一步其实也可以忽略,顶多让依赖下载比较慢

即使修改了 maven 仓库和阿里云的源,仍然会有不少组件下载 maven 依赖时用的国外的源,

因为这些组件的pom 文件中指定了repository

所以需要下载对应组件的源码,然后修改 pom 中的repo, 做成patch,然后把patch 添加到bigtop 指定目录即可

6 编译大数据组件

进入你启动的镜像

docker exec -it bigtop /bin/bash

编译组件

. /etc/profile.d/bigtop.sh;./gradlew flink-clean flink-pkg -PparentDir=/usr/bigtop -PpkgSuffix -PbuildThreads=2C repo

这里解释下编译参数

如果要编译ambari 下使用的大数据组件需要加这两个参数:

-PparentDir=/usr/bigtop -PpkgSuffix

第一个参数 -PparentDir=/usr/bigtop 作用是 改名包的默认安装路径,使bigtop 打出来的包符合ambari 的安装规范

第二个参数是打出来的包带了bigtop 版本号 类似 hadoop_3_2_0 符合 ambari bigtop service 的规范

等待编译完成。

对于apache bigtop 的并行编译,加快编译速度,相关PR已经提到社区,正在review 合并,进度是目前所有 bigtop 中的java组件都可以并行编译,预计在bigtop3.2.1 之后的版本发布

使用并行编译在打包时的耗时对比,这里是在所有依赖下载完成的情况下,重复编译的性能对比,平均有2-3倍的编译速度提升,在初次编译时,效果尤其明显,比如hadoop 初次编译耗时3H,并发编译耗时1H:

centos7 x86_64 16C maven3.8.8

docker run -d -it --network host  -v `pwd`:/ws -v /data/sdv1/repository:/data/sdv1/repository --workdir /ws --name bigtop bigtop/slaves:trunk-centos-7 --cpus 16
source /etc/profile.d/bigtop.sh
./gradlew alluxio-clean alluxio-pkg -PcompileThreads=2C
ComponentTime BeforeTime After
Alluxio21min07:43min
Hive05:33min03:04min
HBase06:18min02:55min
Zookeeper01:25min35s
Livy03:29min03:12min
Phoenix11:23min05:32min
Zeppelin14:15min13:19min
Flink36:27min14:16min
Hadoop50min16min



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

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

相关文章

监控篇之利用dcgm-exporter监控GPU指标并集成grafana大盘

一、应用场景 当环境中包含GPU节点时&#xff0c;需要了解GPU应用使用节点GPU资源的情况&#xff0c;例如GPU利用率、显存使用量、GPU运行的温度、GPU的功率等。 在获取GPU监控指标后&#xff0c;用户可根据应用的GPU指标配置弹性伸缩策略&#xff0c;或者根据GPU指标设置告警…

【鸿蒙 HarmonyOS NEXT】引入第三方js:dayjs

一、背景 项目中需要呈现日期&#xff0c;如&#xff1a;创建时间、申请时间、订单时间、售后时间等&#xff1b;但接口一般返回的是时间戳&#xff0c;需要将时间戳转换成日期格式&#xff0c;如&#xff1a;2023-10-13 14:28:40&#xff0c;此时便考虑使用第三方js库&#x…

【题解】【搜索】—— [NOIP2002 普及组] 选数

【题解】【搜索】—— [NOIP2002 普及组] 选数 [NOIP2002 普及组] 选数题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 解法1.子集枚举1.1.题意解析1.2.AC代码 解法2.深度优先搜索2.1.题意解析2.2.AC代码 [NOIP2002 普及组] 选数 戳我查看题目&#xff08;洛谷&…

NADAR: Neural Architecture Dilation for Adversarial Robustness

NADAR: 对抗鲁棒性的网络架构扩展 论文链接&#xff1a;https://arxiv.org/abs/2108.06885 Abstract 在过去的几十年里&#xff0c;卷积神经网络(CNN)在架构和规模上取得了巨大的进步&#xff0c;在某些任务中&#xff0c;它们可以很容易地达到甚至超过人类的表现。然而&…

【Unity】通用GM QA工具 运行时数值修改 命令行 测试工具

GM工具使用: GM工具通常用于游戏运行时修改数值(加钱/血量)、解锁关卡等&#xff0c;用于快速无死角测试游戏。一个通用型GM工具对于游戏项目是非常实用且必要的&#xff0c;但通用不能向易用妥协&#xff0c;纯命令行GM门槛太高&#xff0c;对QA不友好。 这类运行时命令行工具…

手动下载Sentinel-1卫星精密轨道数据

轨道信息对于InSAR&#xff08;干涉合成孔径雷达&#xff09;数据处理至关重要&#xff0c;因为它影响从初始图像配准到最终形变图像生成的整个过程。不准确的轨道信息会导致基线误差&#xff0c;这些误差会以残差条纹的形式出现在干涉图中。为了消除由轨道误差引起的系统性误差…

学习ComfyUI的一个网站:www.comflowy.com

学习ComfyUI&#xff0c;不仅仅是照搬别人的工作流来使用&#xff0c;重要的是能自己搭建工作流&#xff0c;而要能够熟练搭建&#xff0c;离不开对工作流中节点&#xff08;特别是重要节点&#xff09;的透彻理解。比如我自己&#xff0c;原来对 Lora 就十分陌生&#xff0c;不…

echart改变legend样式及分页

legend: {type: "scroll",orient: horizontal, // 纵向&#xff0c;默认横向不用写pageIconColor: #1b9aee, //翻页下一页的三角按钮颜色pageIconInactiveColor: #7f7f7f, //翻页&#xff08;即翻页到头时&#xff09;// 配置滚动类型的图例pageTextStyle: {color: &…

EmguCV学习笔记 VB.Net 4.4 图像形态学

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 教程VB.net版本请访问&#xff1a;EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问&#xff1a;EmguCV学习笔记 C# 目录-CSD…

vue3模拟生成并渲染10万条数据,并实现本地数据el-table表格分页

效果图&#xff1a; 一点都不卡 话不多说&#xff0c;直接上码 <template><div class"container"><h3 class"table-title">el表格 分页</h3><el-table :data"tableList.slice((currentPage-1)*pageSize, currentPage*p…

OpenCV与AI深度学习 | 使用OpenCV图像修复技术去除眩光

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;使用OpenCV图像修复技术去除眩光 眩光是一种因过度和不受控制的亮度而引起的视觉感觉。眩光可能会使人丧失能力或只是让人感到不舒服。眩光是一…

源控终端|为么叫源控终端以及SDAF-8860源控终端具备发电单元次/超同步振荡监测监视,告警的功能在新能源场站中的应用

源控终端|为么叫源控终端以及SDAF-8860源控终端具备发电单元次/超同步振荡监测监视,告警的功能在新能源场站中的应用 SDAF-8860源控终端具备发电单元次/超同步振荡监测监视,告警的功能在新能源场站中的应用 SDAF-8608源控终端具有发电单元并网、脱网、低穿等信息快速采集与传输…

数据库;SQL语言; 数据库编程

数据库&#xff1a; 1.概念&#xff1a; 文件&#xff1a;存放数据&#xff0c;掉电数据不会丢失&#xff0c;软件的配置及想要持续保存的数据放入文件中 大批量数据存储和管理时使用数据库 2.类型&#xff1a; 1.关系型数据库 1.Or…

项目启动报错:liquibase.lockservice:? - Waiting for changelog lock....

异常报错&#xff1a; 原因 工作流表部分日志表被锁&#xff0c;可能上次未正常终止程序导致的异常。 处理 登录mysql指定项目对应数据库 SELECT * FROM DATABASECHANGELOGLOCK; UPDATE DATABASECHANGELOGLOCK SET locked0, lockgrantednull, lockedbynull WHERE id1;

通过Qt Creator Plugin开发Qt Creator插件-【金丹篇】

1.前言 由于工作学习需要基于Qt Creator架构开发类似的插件&#xff0c;本人感慨网络上Qt 相关的文档真是少。我直接在官方社区查找Qt Creator Plugin愣是一点资料没有。其实想想也是自定义的三方插件到Qt的IED,主要是个社区的贡献者或官方技术人员自用&#xff0c;他开发布会…

仿OpenAI网页前端制作的ChatGPT,超仿真!!!自定义!!!

仿OpenAI网页前端制作的ChatGPT&#xff0c;超仿真&#xff01;&#xff01;&#xff01;自定义&#xff01;&#xff01;&#xff01; 基于C#和WPF的仿真ChatGPT项目 啊没错我是标题党啊&#xff0c;下面内容AI生成的&#xff0c;主要是介绍我基于C#和WPF制作的仿真ChatGPT项…

【HTTP学习】HTTP协议

HTTP介绍 HTTP请求 这里的get没有请求体&#xff0c;会在网站中直接显示提交的表单。而post提交会将请求参数存放在表单中&#xff0c;需要通过F12进行查看。 HTTP响应 HTTP协议解析

一次不严谨的C++、C、Pascal、Rust等对比

起因 现在ACM用得多的基本上就两种语言&#xff0c;C和Python3&#xff0c;还有部分Java&#xff0c;但是当年ACM必学的Pascal、新近流行的rust也有人用&#xff0c;只不过用户很少。 就以一道codeforce上的算法小题为样本&#xff0c;来对比一样用户数量、执行效率、易写程度…

校园综合服务小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;卖家管理&#xff0c;发布信息管理&#xff0c;订单信息管理&#xff0c;类型管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;发布信息&#xff0…

【PyCharm】从零到一:Python爬虫实战教程,小白、绕过反爬虫机制、实战案例全解析

文章目录 前言一、使用的工具二、安装必要的库三、编写程序1.引入库2.发送GET请求3.绕过反爬虫机制4.解析HTML内容5.输出需要的内容 四、完整源码总结 前言 爬虫&#xff08;Web Crawler&#xff09;是一种自动浏览万维网并从中收集信息的程序。它们常被用于搜索引擎、数据分析…