Linux

Info:
Docker 本身就是基于 Linux 的,所以首先以我的一台服务器做实验。虽然最后跑 wordcount 已经由于内存不足而崩掉,但是之前的过程还是可以参考的。
连接服务器
使用 ssh 命令连接远程服务器。
ssh root@[Your IP Address]
更新软件列表
apt-get update
更新完成。
安装 Docker
sudo apt-get install docker.io
当遇到输入是否继续时,输入「Y/y」继续。
安装完成
输入「docker」测试是否安装成功。
拉取镜像
镜像,是 Docker 的核心,可以通过从远程拉取镜像即可配置好我们所需要的环境,我们这次需要的是 Hadoop 集群的镜像。
在本文中,我们将使用 kiwenlau 的 Hadoop 集群镜像以及其配置。由于我的服务器本身即在国外,因此拉取镜像的速度较快,国内由于众所周知的原因,可以替换为相应的国内源,以加快拉取速度。
sudo docker pull kiwenlau/hadoop:1.0
拉取镜像完成。
克隆仓库
克隆仓库到当前文件夹(可以自行创建并切换到相应文件夹)。
git clone https://github.com/kiwenlau/hadoop-cluster-docker
克隆仓库完成
桥接网络
sudo docker network create --driver=bridge hadoop
运行容器
cd hadoop-cluster-docker ./start-container.sh
默认是 1 个主节点,2 个从节点,当然也可以根据性能调整为 N 节点,详见文末参考链接。
启动 Hadoop
./start-hadoop.sh
在上一步,我们已经运行容器,即可直接运行 Hadoop。启动时长与机器性能有关,也是难为了我这一台 512 MB 内存的服务器。
测试 Word Count
./run-wordcount.sh
Word Count 是一个测试 Hadoop 的 Shell 脚本,即计算文本中的单词个数。不过由于我的服务器内存不够分配无法完成,所以后续以本机进行测试。
网页管理
我们可以通过网页远程管理 Hadoop:
macOS
Info:
下载 & 安装
打开 Docker 官方网站:https://www.docker.com,选择社区版,并下载、安装。Windows 系统用户可以选择 Windows 版本。
Docker CE
macOS or Windows
运行 Docker
打开 Docker。为了简单,我没有改动配置,如需更改,可以在 Preferences 中修改。
我们可以在终端(Terminal)输入「docker」,测试是否安装成功。
拉取镜像 & 克隆仓库 & 桥接网络 & 运行容器 & 启动 Hadoop
同 Linux。
测试 Word Count
./run-wordcount.sh
同 Linux,但这次我们可以运算出结果了。
Windows
其实最开始就没有打算放出 Windows 版,倒不是因为觉得 Windows 不好,而是目前手头没有 Windows 的电脑,借用同学的电脑也不是很方便。如果需要安装 Docker,需要 CPU 支持虚拟化,且安装了 64 位 Windows 10 Pro/企业版(需要开启 Hyper-V)。其他版本的 Windows 可以安装 Docker Toolbox。
Intellij IDEA
我们的 Hadoop 集群已经在容器里安装完成,而且已经可以运行。相比自己一个个建立虚拟机,这样的确十分方便、快捷。为了便于开发调试,接下来就需要在 Intellij IDEA 下配置开发环境,包管理工具选择 Gradle。Maven 配合 Eclipse 的配置网上已经有很多了,需要的同学可以自行搜索。
Docker 开启 9000 端口映射
由于我们使用的是 kiwenlau 的镜像和开源脚本,虽然加快了配置过程,但是也屏蔽了很多细节。比如在其脚本中只默认开启了 50070 和 8088 的端口映射,我们可以通过 docker ps(注意是在本机,而不是在容器运行该命令)列出所有容器,查看容器映射的端口。
cd hadoop-cluster-docker vim start-container.sh
切换到脚本文件夹,使用 Vim 编辑 start-container.sh。在图中光标处添加以下内容,保存并退出。
-p 9000:9000 \
重启容器,并查看容器状态,如图即为映射成功。
开启 Web HDFS 管理*
该步非必须。为了方便在网页端管理,因此开启 Web 端,默认关闭。
which hadoop cd /usr/local/hadoop/etc/hadoop/ ls vi core-site.xml
找到 Hadoop 配置文件路径,使用 Vi 编辑,若 Vi 的插入模式(Insert Mode)中,上下左右变成了 ABCD,那么可以使用以下命令即可:cp /etc/vim/vimrc ~/.vimrc 修复。
添加以下内容。
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
启动 Hadoop
同 Linux。
构建依赖
使用 Intellij IDEA 新建一个 Gradle 项目,在 Build.gradle 中加入以下依赖(对应容器 Hadoop 版本)。
compile group: 'org.apache.hadoop', name: 'hadoop-common', version: '2.7.2' compile group: 'org.apache.hadoop', name: 'hadoop-hdfs', version: '2.7.2'
Demo
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.junit.Before;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URI;
/**
* Created by kingcos on 25/03/2017.
*/
public class HDFSOperations {
FileSystem fileSystem;
@Before
public void configure() throws Exception {
Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://192.168.1.120:9000");
fileSystem = FileSystem.get(URI.create("hdfs://192.168.1.120:9000"), configuration, "root");
}
@Test
public void listFiles() throws IOException {
Path path = new Path("/");
RemoteIterator<LocatedFileStatus> iterator = fileSystem.listFiles(path, true);
while (iterator.hasNext()) {
LocatedFileStatus status = iterator.next();
System.out.println(status.getPath().getName());
}
}
@Test
public void rm() throws IOException {
Path path = new Path("/");
fileSystem.delete(path, true);
}
@Test
public void mkdir() throws IOException {
Path path = new Path("/demo");
fileSystem.mkdirs(path);
}
}
之后便可以通过 IDEA 直接写代码来测试,这里简单写了几个方法。
总结
在写这篇文章之前,其实我对 Docker 的概念很不了解。但是通过 Learn by do it. 大致知道了其中的概念和原理。我们完全可以构建自己的容器 Dockerfile,来部署生产和开发环境,其强大的可移植性大大缩短配置的过程。
由于个人对 Hadoop 和 Docker 的了解甚少,如有错误,希望指出,我会学习、改正。
# docker搭建hadoop集群
# docker部署hadoop集群
# docker
# hadoop集群
# docker搭建Hadoop CDH高可用集群实现
# 使用docker部署hadoop集群的详细教程
# 在Docker中跑Hadoop与镜像制作方法
# ubuntu docker搭建Hadoop集群环境的方法
# docker 搭建hadoop以及hbase集群详解
# 详解使用docker搭建hadoop分布式集群
# 使用docker安装hadoop的实现过程
# 镜像
# 我们可以
# 的是
# 是在
# 一台
# 可以通过
# 本机
# 切换到
# 自己的
# 可以自行
# 是一个
# 桥接
# 端口映射
# 几个
# 国内
# 我会
# 有很多
# 如有
# 我对
# 我这
相关文章:
如何快速上传建站程序避免常见错误?
上海网站制作开发公司,上海买房比较好的网站有哪些?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
网站制作企业,网站的banner和导航栏是指什么?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
制作网站的公司有哪些,做一个公司网站要多少钱?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
如何高效搭建专业期货交易平台网站?
如何快速搭建FTP站点实现文件共享?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
寿县云建站:智能SEO优化与多行业模板快速上线指南
青岛网站建设如何选择本地服务器?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
建站之星如何取消后台验证码生成?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何设置并定期更换建站之星安全管理员密码?
建站之星安装提示数据库无法连接如何解决?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
jQuery 常见小例汇总
建站之星官网登录失败?如何快速解决?
如何快速查询域名建站关键信息?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
如何通过可视化优化提升建站效果?
网站制作软件有哪些,制图软件有哪些?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何通过智能用户系统一键生成高效建站方案?
建站之星安装后如何配置SEO及设计样式?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
建站之星2.7模板快速切换与批量管理功能操作指南
建站之星伪静态规则如何正确配置?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
javascript基本数据类型及类型检测常用方法小结
如何快速选择适合个人网站的云服务器配置?
如何快速搭建高效服务器建站系统?
如何获取PHP WAP自助建站系统源码?
实例解析angularjs的filter过滤器
建站主机SSH密钥生成步骤及常见问题解答?
建站之星如何开启自定义404页面避免用户流失?
如何正确下载安装西数主机建站助手?
网站专业制作公司有哪些,做一个公司网站要多少钱?
c# await 一个已经完成的Task会发生什么
香港服务器网站卡顿?如何解决网络延迟与负载问题?
建站之星安装失败:服务器环境不兼容?
如何在万网主机上快速搭建网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
*请认真填写需求信息,我们会在24小时内与您取得联系。