当前位置: 首页 » 综合知识 » it知识 » 正文

如何使用Docker快速搭建Hadoop集群环境

发布时间:2023-07-23 以下文章来源于网友投稿,内容仅供参考!

连接服务器

使用 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/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:

  1. name node: [your ip address]:50070/

  2. resource manager: [your ip address]:8088/

macos

info:

  1. macos 10.12.4 beta (16e191a)

下载 & 安装

打开 docker 官方网站:,选择社区版,并下载、安装。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 端口映射

由于我们使用的是 的镜像和开源脚本,虽然加快了配置过程,但是也屏蔽了很多细节。比如在其脚本中只默认开启了 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 版本)。

demo

import org.apachemons.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/2022.
 */
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);
  }
}
  • • Linux Ecdsa密钥长度选择有何依据

    在Linux

  • • Linux Khook在内核监控中的应用如何

    Linux

  • • Linux Gsoap是否支持异步通信

    GSOAP是

  • • Linux Coremail如何提升用户体验

    提升Linu

  • • Linux Ecdsa算法有哪些局限性

    ECDSA

  • 哎呀音乐钢琴键盘学习《 钢琴主人训练营》 西瓜学琴
    郭蝈 陪练钢琴 30节课时 考级刚需 让孩子每一次练琴都是高质量的
    30天轻松学会五线谱 流行钢琴自学初级教程 牙牙学琴
    流行爵士钢琴实战技巧VIP课 - 继伟 哎呀音乐
    【海上钢琴师】原版 MT1990钢琴谱
    百首经典流行钢琴实战曲集 - 继伟
    雷费尔德电钢琴重锤88键专业考级儿童初学者数码电子钢琴家用
    小练咖 真人钢琴陪练 1v1服务 2999随时退 1课时50分钟 考级刚需
    雅马哈电钢琴88键重锤CLP735智能数码电子钢琴家用专业初学者考级
    【原装进口】Yamaha/雅马哈钢琴 b121 SC2原声静音钢琴
  • 珠海专业调钢琴
  • 天津宝坻区调钢琴
  • 天津静海区钢琴调音
  • 成都简阳市钢琴调律
  • 大连瓦房店市钢琴调音
  • 眉山调钢琴联系方式
  • 惠州大亚湾钢琴调琴师
  • 长治调琴师
  • 厦门湖里区钢琴调音师
  • 上海普陀区钢琴调音师