zoukankan      html  css  js  c++  java
  • 在docker容器中编译hadoop 3.1.0

    在docker容器中编译hadoop 3.1.0

    优点:docker安装好之后可以一键部署编译环境,不用担心各种库不兼容等问题,编译失败率低。

    Hadoop 3.1.0 的源代码目录下有一个 `start_build_env.sh** 的脚本,通过脚本会从Docker hub网站拉取hadoop-build镜像,然后在镜像中添加本地用户信息和环境变量等,最后运行Docker镜像并挂载本地目录。

    docker跨平台的特性已经非常不错,最需要注意的一点在于:所有操作不要使用root用户也不要使用sudo。对docker和linux权限管理比较熟悉的话,也可以考虑修改脚本上添加用户的那一项,以及后面一系列的权限问题。

    大致流程:

    1. 安装docker

    2. 更改用户所在的组(用来运行Docker命令)

    docker为了保证安全,默认只有root用户和root用户组(某些发行版是docker用户组)能够运行,因此需要将当前用户添加到对应的用户组。

    查看docker文件所在的用户组 ls -l /var/run/docker.sock

    更改用户组
    usermod -g username groupname

    3. 添加docker的源

    docker 修改镜像源地址或添加代理,避免拉取镜像时失败。

    此处可百度,方法多且不复杂,daocloud、163等都可以考虑。

    4. 运行 start_build_env.sh构建容器

    下载Hadoop源码, ./start_build_env.sh

    等待构建完成,这个主要看网速,需要下载一个多G的镜像。完成后会自动进入容器。

    容器基于Ubuntu,编译相关的环境都已经安装好,vim等软件可以自行apt。

    容器虚拟机挂载了当前用户目录下的.m2和当前的hadoop源代码位置,编译结果能够直接在docker外使用。

    5. 容器中使用maven编译

    简单的编译示例 mvn clean package -DskipTests -Pnative

    可以在源代码目录执行,也可以在下面的目录执行。

    详细的编译命令在 BUILDING.txt 中。

    附几个Docker基本命令

    docker ps 查看当前运行的容器,-a 选项能看到未运行的容器。
    docker images 查看所有镜像
    docker start container_id 启动容器,container_id在docker ps中可以看到,也可以使用container name。
    docker exec -it container_id 进入运行中的容器

    从容器中退出直接输入exit即可,退出后容器可能关闭。

  • 相关阅读:
    JS 基于面向对象的 轮播图1
    JS 原型继承的几种方法
    angularJs 自定义服务 provide 与 factory 的区别
    C# 调用JS Eval,高效率
    Linq表连接大全(INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN、CROSS JOIN)
    C# LINQ干掉for循环
    C# 彻底搞懂async/await
    .NET中的异步编程——动机和单元测试
    .NET中的异步编程——常见的错误和最佳实践
    C# 实用代码段
  • 原文地址:https://www.cnblogs.com/fly2wind/p/9018531.html
Copyright © 2011-2022 走看看