如今技术革新非常快,搭建环境也日趋繁杂.我是个爱好折腾之人,时不时的总想把玩下新的技术,每天在win10,ubuntu,mac系统间来回切换,感谢Docker,救我于水火.
基础镜像
自己裁剪一个baseImage,带emacs编辑器.编写Dockerfile,并编译
1 | git clone https://github.com/LiZoRN/DockerBaseImage.git |
将镜像文件push到Docker hub
docker push invain/ubuntu
其他环境下就可以直接使用
docker pull invain/ubuntu
注意: Docker镜像共享,不建议直接拿Dockerfile build生产, 而应从Docker镜像库里拉,避免镜像Build的过程中引入编译环境差异.
Hadoop环境搭建(单站)
创建hadoop用户
增加hadoop用户,授予管理员权限,并登录
1 | $ sudo useradd -m hadoop |
安装并配置SSH
安装openssh
$ sudo apt-get install openssh-server
启动
$ sudo /etc/init.d/ssh start
设置免密码登录,生成私钥和公钥,并将公钥追加到 authorized_keys中,它为用户保存所有允许登录到ssh客户端用户的公钥内容。
1 | $ ssh-keygen -t rsa -P "" |
安装Java环境
sudo apt-get install openjdk-7-jdk
获取java安装目录.
1 | $ update-alternatives --config java |
~/.bashrc
中写入JAVA_HOME路径,
1 | export JAVA_HOME=JDK安装路径 |
安装Hadoop
安装hadoop,如2.7.3版本
1 | wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz |
配置Hadoop的环境变量
给你的~/bashrc
添加如下内容.
1 | #HADOOP VARIABLES START |
验证hadoop是否安装成功
1 | hadoop@8bbae082ad69:~$ hadoop version |
将镜像push到Docker hub
1 | docker commit 8bbae082ad69 invain/hadoop |
spark
运行一个java docker容器.
docker run -it invain/java
下载spark包.
1 | wget http://mirrors.hust.edu.cn/apache/spark/spark-2.0.1/spark-2.0.1-bin-hadoop2.7.tgz |
配置好环境变量.
1 | export SPARK_HOME=/usr/local/spark |
跑个小小示例.
创建个文本文件,如hellospark.txt
:
1 | hello world! |
运行spark的python交互式控制台,pyspark
.
1 | hadoop@4532e4bdaa51:~$ pyspark |
使用textFile加载文本到RDD,进行’wordcount’.
1 | >>> text = sc.textFile("hellospark.txt") |
调用saveAsTextFile,分布式作业开始了…
1 | counts.saveAsTextFile("hellospark_out") |
可以在工作台输出目录里查看
1 | hadoop@4532e4bdaa51:~$ cat hellospark_out/part-00000 |
tensorflow
docker run -it b.gcr.io/tensorflow/tensorflow
Docker hub
需要什么库可以从docker hub找.
Docker hub是一个类似Github一样的地方,只不过前者是一个镜像仓库.
docker可以让你的环境配置异常简单,通常你只需要执行一个命令.
Mysql
1 | $ docker run -p 3306:3306 --name username -e MYSQL_ROOT_PASSWORD=password -d mysql:tag |
mongo
docker run --name some-mongo -d mongo