在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即可,退出后容器可能关闭。
在docker容器中编译hadoop 3.1.0的更多相关文章
- 如何在 Docker 容器中运行 Kali Linux 2.0
https://linux.cn/article-6103-1.html Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统.它带有大量安全相关的程序,这让它很容易用于渗透测试.最近 ...
- 浏览器/外网访问docker container中的hadoop
假设你制作了个docker的 hadoop的镜像,镜像名叫 hd_image,如果想在外网的浏览器中访问hadoop的50070和8088端口,则在启动镜像hd_image时, 脚本如下: docke ...
- Docker容器中运行ASP.NET Core
在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...
- Docker容器中开始.NETCore之路
一.引言 开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境 ...
- Docker容器中开始.Net Core之路
开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境,服务器也 ...
- 无需安装 vsftpd , 直接使用 FTP 来管理 docker 容器中的文件
无图无真相,先放个效果图: 背景 使用 docker 来跑一些服务很方便,但是有的时候想管理容器里面的文件却很麻烦 -- 一般常规做法有3种: 通过数据卷或数据卷容器的方式 启动容器的时候时候 ...
- 将netcore网站部署到docker容器中
一.背景 最近一直在看docker的教程,基础知识看的差不多了.理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中. 环境:1.docker for wind ...
- 在 docker 容器中捕获信号
我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号 ...
- 隔离 docker 容器中的用户
笔者在前文<理解 docker 容器中的 uid 和 gid>介绍了 docker 容器中的用户与宿主机上用户的关系,得出的结论是:docker 默认没有隔离宿主机用户和容器中的用户.如果 ...
随机推荐
- 怎样解决Script error报错问题
如果脚本网址与网页网址不在同一个域(比如使用了 CDN), 那如果这个脚本执行报错了, 就会报:Script error. 由于同源策略, 浏览器禁止向外部脚本泄漏信息, 因此不会提供完整的报错信息, ...
- hdu 1548 简单bfs。。。
由于题目过水.. 我就在这里把bfs的模板写一些吧.. bfs的思想是利用队列的特性 对树的每一层先遍历 每一次访问时取出队首 然后排出~ #include<queue>void bfs( ...
- 【css】文本效果
一.字体属性 在css字体样式中常见的字体属性有以下几种 p{ font-size: 50px; /*字体大小*/ line-height: 30px; /*行高*/ font-family: 幼圆, ...
- 自定义AuthorizeFilter
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization.Infrastructure; u ...
- 【转载】网站配置Https证书系列(一):腾讯云申请免费的SSL证书的流程步骤(即https安全连接使用的证书)
很多网站为了安全性考虑都会上https安全连接,此时就需要考虑使用SSL证书,其实在腾讯云这边提供有免费的SSL证书申请,登录腾讯云管理控制台后,进入SSL证书管理页面,里面有个申请免费证书.腾讯云申 ...
- 最新版Navicate破解激活
2019年5月5日激活成功 版本12.1.18 Navicat12.1下载地址 http://www.navicat.com.cn/download/navicat-premium有32位和64位,大 ...
- Python的range和xrange
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. range示例: >>> r ...
- Mongodb创建用户Error: couldn’t add user: Use of SCRAM-SHA-256 requires undigested passwords
解决方案:修改mechanisms加密方式为SCRAM-SHA-1 db.createUser({ user: "admin", pwd: "xxx", rol ...
- P1078 文化之旅[最短路]
题目背景 本题是错题,后来被证明没有靠谱的多项式复杂度的做法.测试数据非常的水,各种玄学做法都可以通过(比如反着扫),不代表算法正确.因此本题题目和数据仅供参考. 题目描述 有一位使者要游历各国,他每 ...
- Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包
联网情况下在命令终端CMD中输入“pip install numpy”即可自动安装,pandas和matplotlib同理一样方法进行自动安装. 工作的电脑不能上外网,所以不能通过直接输入pip命令来 ...