Bigtop 从0开始(下)

原文阅读:【巨人肩膀社区·博客·分享】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



  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ambari是Apache软件基金会下的一个子项目,是一个开源的管理和监控Hadoop集群的工具。而Bigtop是一个Apache软件基金会下的开源项目,主要用于构建,测试和部署大数据平台。 Ambari Bigtop大数据平台安装部署指南主要包括以下几个步骤: 1. 准备工作:在开始安装之前,需要确保系统已经安装了合适的操作系统和相关的依赖软件,如Java、SSH等。此外,还需要确定网络环境是否能够正常访问所需的软件源和资源。 2. 下载和安装Ambari:从Ambari官方网站上下载适用于目标操作系统的Ambari软件包。安装Ambari时,需要注意选择合适的数据库和用户认证方式。 3. 配置Ambari服务器:根据实际需求,对Ambari服务器进行配置。一般需要设置主机名和端口号等基本信息,并选择适当的安装选项。 4. 启动Ambari服务器:启动Ambari服务器后,可以通过浏览器访问Ambari web界面,并使用默认的用户名和密码登录。登录成功后,可以进行集群的配置和管理。 5. 创建集群:使用Ambari web界面创建新的集群。在创建集群时,需要指定集群的名称,选择合适的Hadoop分发版本和相应的服务组件。 6. 配置集群:根据需要,配置集群中各个节点的主机名、IP地址、SSH访问等信息,并为各个服务组件分配合适的角色。 7. 安装集群:在配置完成后,可以开始安装集群。Ambari会自动根据所选的服务组件和配置要求,安装相应的软件包并启动服务。 8. 部署集群:安装完成后,可以对集群进行进一步的配置和优化。可以为各个服务组件设置参数,并在需要时添加额外的节点和组件。 9. 监控和管理:Ambari提供了丰富的监控和管理功能,可以用于实时监控集群的运行状态、性能参数等。还可以进行服务的启停、组件的升级等操作。 10. 测试和维护:在部署完成后,还需要进行一些测试和维护工作。可以运行一些测试工具对集群进行测试,以确保其正常运行。同时,定期进行安全和性能优化等维护工作也是非常重要的。 通过遵循Ambari Bigtop大数据平台安装部署指南,用户可以快速搭建和部署大数据平台,实现集群的管理和监控,为大数据处理提供便利和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值