原文地址:http://wanghaisheng.github.io/2014/12/20/run-rhadoop-on-docker-cn/
网络上已经有了太多的 RHadoop 的安装使用的教程,鉴于其中的配置配置繁复,对软件版本的要求又极其苛刻,故笔者想用时下热门的 docker 来尝尝鲜,以下是心路历程,供看客参考,希望能给大家一些帮助。
操作系统:OXS 10.10.1
docker安装版本:boot2docker(推荐大家使用https://github.com/unixorn/docker-helpers.zshplugin该插件可以省去大家不少功夫)
Hadoop镜像:sequenceiq/hadoop-ubuntu:2.6.0
1、考虑到GFW的因素,拟将 sequenceiq/hadoop-ubuntu:2.6.0 镜像中的源替换成163的,顺便添加R语言安装的source
新建source.list
1 | deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse |
2、下载好RHadoop的几个 tar.gz 安装包,版本以自己安装日期的最新版本号为准
1 | rmr-2.3.3 |
3、测试过程中会用到的测试数据 主要是wordcount程序中
1 | subl part-m-00000 |
数据内容如下所示
1 | 10,3,tsinghua university,2004-05-26 15:21:00.0 |
4、这些文件准备好了之后,最好放置在宿主机的某个文件夹下,比如我这里放在
1 | /Users/wanghaisheng/docker |
5、请确保docker成功安装,不同操作系统的安装教程请前往国内docker中文社区寻找答案
docker中文社区站
docker.cn
DockerPool
1、从远端服务器拉取Hadoop镜像文件 由于GFW和网络原因,可能耗时较长 请耐心等待
1 | ~ docker pull sequenceiq/hadoop-ubuntu:2.6.0 |
2、把之前准备好的文件夹挂载到我们要启动的单机 Hadoop 容器中去,这里笔者比较懒,各位可以自行用喜欢的目录替换容器中的挂载目录(冒号后面的部分/Users/wanghaisheng/docker)
1 | ~ docker run -i -t -v /Users/wanghaisheng/docker:/Users/wanghaisheng/docker sequenceiq/hadoop-ubuntu:2.6.0 /etc/bootstrap.sh -bash |
1、修改源文件
1 | cp /etc/apt/sources.list /etc/apt/sources.list_backup |
2、从CRAN安装R
CRAN中具有最新的R版本,所以一般建议利用CRAN进行R的安装。其基本步骤为:
1 | ~ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 |
然后需要添加CRAN源到/etc/apt/sources.list:
1 | deb http://cran.r-project.org/bin/linux/ubuntu xxx/ |
其中xxx为你的Ubuntu版本,这里的话就是trusty。同时CRAN的地址可以用任意你喜欢的镜像替换。这里我们在source.list中已经事先准备好了,直接进入下一步
1 | ~ sudo apt-get update |
1、需要运行如下命令,让R与系统中安装好得jdk环境关联起来
1 | ~ R CMD javareconf |
2、启动启动R程序
1 | ~ R |
3、安装RHadoop会使用到的依赖包
1 | install.packages("rJava") |
1、配置环境变量,网络上大量的例子使用的是hadoop1.0.3,我们使用的是Apache2.6,这里的HADOOP_STREAMING路径可能大不一样,/hadoop-1.0.3/contrib/streaming/hadoop-streaming-1.0.3.jar),PATH这里要添加hadoop的安装路径的bin目录,否则后续使用hadoop命令会出现not found
1 | ~ vi /etc/environment |
2、安装rhdfs
1 | ~ R CMD INSTALL /Users/wanghaisheng/docker/rhdfs_1.0.8.tar.gz |
3、安装rmr2
1 | ~ R CMD INSTALL /Users/wanghaisheng/docker/rmr2_3.3.0.tar.gz |
1、启动R
2、载入rmr2包
1 | library(rmr2) |
3、执行如下命令
1 | > small.ints = to.dfs(1:10) |
这里要注意的是 这个临时文件的名字是变化的 请自己根据上一条命令的返回信息进行替换
1、首先,是基本的hdfs的文件操作。查看hdfs文件目录
hadoop的命令:hadoop fs -ls /usr
R语言函数:hdfs.ls(“/usr/“)
你会发现什么数据都没有,这时候把事先准备好的测试数据拿进来好了
1 | hadoop fs -mkdir /user/hdfs |
2、启动R程序
1 | > library(rhdfs) |
这里要注意的是 这个临时文件的名字是变化的 请自己根据上一条命令的返回信息进行替换
1.Linux环境下RHadoop配置笔记
2.RHadoop实践系列文章