学习Hadoop首先要安装环境,用虚拟机安装分布式测试环境。VM虚拟机占用资源多,而docker可以像VM一样创建虚拟机,但占用资源少,单机也能实现多机分布式环境。 之前,写过一篇docker实现HDFS,包括创建docker image、Volume、entry_point.sh等细节。但随着对HDFS的理解,发现那篇文章中有关docker的、免密码登录等设置都是多余的,而这篇文章尽力简化docker使用,演示求pi的MapReduce程序、YARN web界面和mapred收集日志。
https://docs.docker.com/toolbox/toolbox_install_mac/ 安装好Toolbox后,在启动台多出Kitematic软件,是一个轻量级的docker管理工具。抱歉没有安装这个软件的过程。启动后界面如图,
Kitematic
点击左下角的'Docker CLI'按钮可以打开一个命令行工具(我的电脑安装了Iterm,默认打开Iterm),在打开的iterm中可以执行docker命令。
docker shell
在一个空的目录下编写Dockerfile,创建一个Ubuntu 16.04系统镜像。 cd到这个目录,执行下面的命令,完成在Kitematic中,MyImages中多出一个wsn/base镜像。注:先启动DockerCLI,在这个CLI中才能执行docker命令。
docker build -t wsn/base .
保存文件名为Dockerfile:
FROM ubuntu:16.04
MAINTAINER wsn
RUN apt-get update
RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y vim
RUN apt install -y net-tools
RUN apt install -y iputils-ping
RUN echo 'root:root' |chpasswd
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
ENV JRE_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre
ENV PATH /usr/lib/jvm/java-8-openjdk-amd64/bin:$PATH
ENV CLASSPATH ./:/usr/lib/jvm/java-8-openjdk-amd64/lib:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib