利用Docker编译Hadoop 3.1.0
前言
- 为什么要使用Docker编译,请自行百度
- 操作系统环境:Centos 6.8
uname -r
内核版本:2.6.32-642.el6.x86_64
- 除非有把握否则不要在Centos6.8中直接编译hadoop3.0,因为依赖的很多服务需要的版本,这个操作系统不支持。
一、安装Docker
执行以下指令安装并启动Docker
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
yum -y install docker-io
service docker start
验证 docker
是否安装成功并在容器中执行一个测试的镜像
docker run hello-world
结果如下:
Unable to find image 'hello-world:latest' locally
latest: Pulling from hello-world
882673a3c694: Pull complete
83f0de727d85: Pull complete
Digest: sha256:4555e23a9cf5a1a216bd8b0d71b08a25e4144c2ecf6adb26df9620245ba99529
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly
Docker常用的一些指令:
- docker exec -it 775c7c9ee1e1 /bin/bash --进入之前的某个容器实例
- docker rm $(docker ps -a -q) 删除所有已停止的容器(container)
- docker rmi <imageid> 删除某个容器
- docker ps 查看当前活动的容器实例
- docker ps -a 查看所有容器实例
二、创建Dockerfile文件
内容为拉取一个centos7镜像并安装编译hadoop需要的相关软件
首先创建一个Docker目录
[root@SVR-29-152 ~]# cd /usr/local/
[root@SVR-29-152 local]# mkdir docker
[root@SVR-29-152 local]# cd docker
创建Dockerfile
[root@SVR-29-152 docker]# vi Dockerfile
文件内容如下:
# 镜像来源
FROM centos:7 # 镜像创建者
MAINTAINER "HAO" <z3261743@163.com> # 运行命令安装环境依赖
# 使用 -y 同意全部询问
RUN yum update -y && \
yum groupinstall -y "Development Tools" && \
yum install -y wget \
protobuf-devel \
protobuf-compiler \
pkgconfig \
openssl-devel \
zlib-devel \
gcc \
automake \
autoconf \
make
创建镜像文件:docker build -t <imagename> <Dockerfile所在的目录>
[root@SVR-29-152 docker]# docker build -t centos7-hadoop-compile .
成功后如图所示:
(注:)由于hadoop编译时需要3.3.0以上版本的Maven和1.8以上的jdk,以及cmake3.1以上版本,所以上面脚本中不安装这些软件,等镜像生成后,进入镜像手动安装
三、进入docker容器的交互模式
构建成功后,进入docker容器的交互模式(-i:打开一个终端,-t与docker容器进行标准化输入输出):
docker run -it <imagename>
[root@SVR-29-152 docker]# docker run -it centos7-hadoop-compile
四、安装jdk、maven、cmake
下载JDK:wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz?AuthParam=1524730623_21dd0411e24654629aad9b01069dbb80
下载maven:wget http://apache.fayea.com/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
下载cmake:wget https://cmake.org/files/v3.11/cmake-3.11.1.tar.gz
存放的目录为:/usr/local/src
1.安装JDK
解压包:
[root@5a0ab167faad src]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@5a0ab167faad src]# mv jdk1.8.0_171 ../
2.安装maven
解压包:
[root@5a0ab167faad src]# tar -zxvf apache-maven-3.5.3-bin.tar.gz
[root@5a0ab167faad src]# mv apache-maven-3.5.3 ../
3.安装cmake
先卸载旧版本
[root@5a0ab167faad src]# yum list cmake
[root@5a0ab167faad src]# yum remove -y cmake.x86_64
解压包:
[root@5a0ab167faad src]# tar -zxvf cmake-3.11.1.tar.gz
[root@5a0ab167faad src]# mv cmake-3.11.1 ../
安装包:
[root@5a0ab167faad src]# cd /usr/local/cmake-3.11.1/
[root@5a0ab167faad cmake-3.11.1]# ./configure
[root@5a0ab167faad cmake-3.11.1]# make
[root@5a0ab167faad cmake-3.11.1]# make install
4.配置环境变量
[root@5a0ab167faad local]# vi /etc/profile
文件末尾添加如下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_171
export M2_HOME=/usr/local/apache-maven-3.5.3
export CMAKE_HOME=/usr/local/cmake-3.11.1
使配置生效
[root@5a0ab167faad local]# source /etc/profile
5.验证安装是否成功
[root@5a0ab167faad local]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
[root@5a0ab167faad local]# mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T19:49:05Z)
Maven home: /usr/local/apache-maven-3.5.3
Java version: 1.8.0_171, vendor: Oracle Corporation
Java home: /usr/local/jdk1.8.0_171/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "2.6.32-642.el6.x86_64", arch: "amd64", family: "unix"
[root@5a0ab167faad local]# cmake -version
cmake version 3.11.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
五、编译hadoop
1.拷贝或下载Hadoop3.1.0的源码
[root@5a0ab167faad src]# wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.1.0/hadoop-3.1.0-src.tar.gz
[root@5a0ab167faad src]# tar -zxf hadoop-3.1.0-src.tar.gz
[root@5a0ab167faad src]# cd hadoop-3.1.0-src
2.执行编译
[root@5a0ab167faad hadoop-3.1.0-src]# mvn package -e -X -Pdist,native -DskipTests -Dtar
会执行比较长的时间。。。。。。。。。。。。。。。。。大约一小时。。。
编译成功!
编译后的文件在:/usr/local/src/hadoop-3.1.0-src/hadoop-dist/target
编译成功后,拷贝编译好的包到宿主机,要先退出当前镜像,或者新开一个shell进程。
[root@5a0ab167faad src]# exit
[root@SVR-29-152 ~]# docker cp jolly_carson:/usr/local/src/hadoop-3.1.0-src/hadoop-dist/target/hadoop-3.1.0.tar.gz /usr/local/src/
这个指令中的“jolly_carson" 是指镜像实例的名称。可以通过docker ps 查看
最后在宿主机中查看文件
已经有了.
最后祝你好运,一次成功!
利用Docker编译Hadoop 3.1.0的更多相关文章
- 在docker容器中编译hadoop 3.1.0
在docker容器中编译hadoop 3.1.0 优点:docker安装好之后可以一键部署编译环境,不用担心各种库不兼容等问题,编译失败率低. Hadoop 3.1.0 的源代码目录下有一个 `sta ...
- mac OS X Yosemite 上编译hadoop 2.6.0/2.7.0及TEZ 0.5.2/0.7.0 注意事项
1.jdk 1.7问题 hadoop 2.7.0必须要求jdk 1.7.0,而oracle官网已经声明,jdk 1.7 以后不准备再提供更新了,所以趁现在还能下载,赶紧去down一个mac版吧 htt ...
- 64位CentOS上编译 Hadoop 2.2.0
下载了Hadoop预编译好的二进制包,hadoop-2.2.0.tar.gz,启动起来后.总是出现这样的警告: WARN util.NativeCodeLoader: Unable to load n ...
- 64位centos 下编译 hadoop 2.6.0 源码
64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...
- CentOS 6.4 64位 源码编译hadoop 2.2.0
搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit. ...
- CentOS 64位上编译 Hadoop 2.6.0
Hadoop不提供64位编译好的版本号,仅仅能用源代码自行编译64位版本号. 学习一项技术从安装開始.学习hadoop要从编译開始. 1.操作系统编译环境 yum install cmake lzo- ...
- Centos 6.5 X64 环境下编译 hadoop 2.6.0 --已验证
Centos 6.5 x64 hadoop 2.6.0 jdk 1.7 protobuf-2.5.0 maven-3.0.5 set environment export JAVA_HOME=/hom ...
- ubuntu 环境下编译 hadoop 2.6.0的简单方法
由于服务器一般都64位系统, hadoop网站的release版本32位native库不能运行,所以需要自己在编译一下.以下是我采用的一个编译的过程,比较简单,不用下载各种版本及环境配置,通过命令就能 ...
- Windows 10 上编译 Hadoop
下载源码 源码下载地址(Source download):https://hadoop.apache.org/releases.html 这里以 2.9.2 为例,查看源码中的编译说明文件 BUILD ...
随机推荐
- U盘在制作Ubuntu启动盘后Windows系统下显示空间不对的解决办法(Ubuntu系统下格式化U盘的方法)
用Ubuntu系统自带的启动盘制作工具后,将U盘拿到Windows系统下使用显示出的空间与U盘大小不同. 解决该问题的办法: 使用Linux终端: 第一步:sudo fdisk -l 这个命令主要是查 ...
- JS知识点简单总结
JS(JavaScript) 是一种解释性语言 是弱/动态 最开始用于表单验证的 JS的五个部分: 1.核心语言定义 2.原生对象和内置对象 5boolean 3.BOM 4.DOM 5.事件处理模型 ...
- s3cmd安装
配置yum.repos cd /etc/yum.repos.d/ vim s3tools.repo [s3tools] name=Tools for managing Amazon S3 - Simp ...
- 蓝桥杯练习——C++输出阶乘的最右边一位非零数
#include<iostream> #include<iomanip> using namespace std; #define M 10000 #define N 1000 ...
- Remote System Explorer Operation总是运行后台服务,卡死eclipse
阿里云 > 教程中心 > android教程 > Remote System Explorer Operation总是运行后台服务,卡死eclipse Remote System E ...
- 简单的dos命令
cd .. 进入上一层目录cd /.. 进入当前盘所有根目录d: 进入d盘dir 查看下一级目录d:>d:\abc.txt 新建一个文档hostname 主机名SET 查看环境变 ...
- Response attachment filename 中文乱码
Response.setHeader("Content-Disposition", "attachment; filename=" + fileName+&qu ...
- CentOS安装wkhtmltopdf及解决中文支持问题
安装wkhtmltopdf,先下载 wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm yum install -y wkhtmltox-0.12.2.1_linu ...
- Spring Boot 之restful风格
步骤一:restful风格是什么? 我们知道在做web开发的过程中,method常用的值是get和post.可事实上,method值还可以是put和delete等等其他值. 既然method值如此丰富 ...
- bootstrap-datetimepicker日期控件下载
bootstrap-datetimepicker.js bootstrap-datetimepicker.zh-CN.js bootstrap-datetimepicker.min.css 下载网站: ...