在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即可,退出后容器可能关闭。

在docker容器中编译hadoop 3.1.0的更多相关文章

  1. 如何在 Docker 容器中运行 Kali Linux 2.0

    https://linux.cn/article-6103-1.html Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统.它带有大量安全相关的程序,这让它很容易用于渗透测试.最近 ...

  2. 浏览器/外网访问docker container中的hadoop

    假设你制作了个docker的 hadoop的镜像,镜像名叫 hd_image,如果想在外网的浏览器中访问hadoop的50070和8088端口,则在启动镜像hd_image时, 脚本如下: docke ...

  3. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  4. Docker容器中开始.NETCore之路

    一.引言 开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境 ...

  5. Docker容器中开始.Net Core之路

    开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境,服务器也 ...

  6. 无需安装 vsftpd , 直接使用 FTP 来管理 docker 容器中的文件

    无图无真相,先放个效果图:     背景 使用 docker 来跑一些服务很方便,但是有的时候想管理容器里面的文件却很麻烦 -- 一般常规做法有3种: 通过数据卷或数据卷容器的方式 启动容器的时候时候 ...

  7. 将netcore网站部署到docker容器中

    一.背景 最近一直在看docker的教程,基础知识看的差不多了.理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中. 环境:1.docker for wind ...

  8. 在 docker 容器中捕获信号

    我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号 ...

  9. 隔离 docker 容器中的用户

    笔者在前文<理解 docker 容器中的 uid 和 gid>介绍了 docker 容器中的用户与宿主机上用户的关系,得出的结论是:docker 默认没有隔离宿主机用户和容器中的用户.如果 ...

随机推荐

  1. service mc_start.sh does not support chkconfig

    在构建docker镜像时,编写Dockerfile构建镜像时,配置自启动脚本报错,service mc_start.sh does not support chkconfig 添加下面两句到 #!/b ...

  2. WinForm 无焦点获取键盘输入

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  3. TextBox 显示横线

    public class Xtxt3 : TextBox { private bool m_underLine; public bool UnderLine { get { return m_unde ...

  4. Python基础初识

    一.安装 暂时没空写,预留 二.python基础初识 2.1 注释 当行注释:# 被注释内容 多行注释:'''被注释内容''',或者"""被注释内容"" ...

  5. [技术翻译]您应该知道的13个有用的JavaScript数组技巧

    本次预计翻译三篇文章如下: 01.[译]9个可以让你在2020年成为前端专家的项目 02.[译]预加载响应式图像,从Chrome 73开始实现 03.[译]您应该知道的13个有用的JavaScript ...

  6. js同时获取多个共同class内容标签内容集合

    1.获取标签内容  标签如下:   <img image-code="#qq_1_gif#" class="emoji_icon" src="i ...

  7. 虚拟机VMware安装

    1.进入VMware官网,下载 (点击进入官网) 2.下载镜像文件 (点击进入官网下载) 3.下载好后,打开VMware,点击创建新的虚拟机 4.点击下一步,并找到刚才下载好的镜像文件 5.跟随系统点 ...

  8. python中read()、readline()、readlines()区别

    1.read([size])方法 read([size])方法从文件当前位置读取size个字节,若无参数size,则表示读取至文件结束位置,它范围为字符串对象   2.readline()方法 从字面 ...

  9. Makefile中 的 phony target,empty target

    phony target Makefile的语法很简单 <target> : <prerequisites> [tab] <commands> 目标.先决条件.命令 ...

  10. 十分钟掌握Pandas(上)——来自官网API

    十分钟掌握Pandas(上)——来自官网API 其实不止10分钟,这么多,至少一天 一.numpy和pandas numpy是矩阵计算库,pandas是数据分析库,关于百度百科,有对pandas的介绍 ...