Docker搭建Hadoop环境

文章目录

  • Docker搭建Hadoop环境
    • Docker的安装与使用
    • 拉取镜像
    • 克隆配置脚本
    • 创建网桥
    • 执行脚本
    • Docker命令补充
    • 更换镜像源
    • 安装vim
    • 启动Hadoop
    • 测试Word Count
    • 查看Web管理页面

Docker搭建Hadoop环境

Hadoop集群环境配置起来相当繁琐,并且在学习Hadoop过程中没有一般不会去使用多台设备进行分布式集群配置。因此在一台机器上配置Hadoop分布式集群时通常采用虚拟机来模拟多台设备,但虚拟机较为占用系统资源,开多个虚拟机(模拟Hadoop集群通常使用3个,一个master,两个slave)对内存要求比较高,因此笔者就想是否能通过Docker来配置Hadoop,并且通过Jetbrains IDEA来连接Docker容器调试MapReduce程序。经过一番折腾,成功地搭建了Docker+IDEA的Hadoop环境。在此将结合网上其他一些教程和自己的经验讲配置过程记录下来。
注意:文中多次提到容器终端是hadoop-master这个容器的终端

Docker的安装与使用

建议在Ubuntu上配置以下内容,因为我自己在Windows上多次尝试配置,都出现Datanode启动不了的情况,同样的步骤在Ubuntu上就没有问题。

看了一些Docker教程,笔者认为菜鸟教程里的Docker教程不错,包含安装过程和一些基础命令,在这里就不赘述了,读者自行查看 菜鸟教程- Docker,另外建议将Docker的镜像源修改为国内镜像源,下载速度会更快。

拉取镜像

镜像,是 Docker 的核心,可以通过从远程拉取镜像即可配置好我们所需要的环境,我们这次需要的是 Hadoop 集群的镜像。我们使用kiwenlau/hadoop:1.0这个镜像。

sudo docker pull kiwenlau/hadoop:1.0

显示以下信息说明拉去镜像成功

克隆配置脚本

这一步是从github上克隆配置脚本,脚本的内容是使用kiwenlau/hadoop:1.0配置mater、slave1、slave2三个容器,其中slave数量可以修改:

git clone https://github.com/kiwenlau/hadoop-cluster-docker

切换到合适的路径在进行克隆,显示以下信息说明克隆完成

创建网桥

由于Hadoop的master节点需要与slave节点通信,需要在各个主机节点配置节点IP,为了不用每次启动都因为IP改变了而重新配置,在此配置一个Hadoop专用的网桥,配置之后各个容器的IP地址就能固定下来。

sudo docker network create --driver=bridge hadoop

出现以下信息说明网桥创建完成

执行脚本

此时可以通过前面步骤克隆下来的脚本进行容器创建了,首先看一下脚本内容

为了后续通过IDEA连接IDEA,需要修改脚本,添加一个端口映射,将容器的9000端口映射到本地的9000端口,在-p 8088:8088 \下添加一行如下图所示

执行脚本,脚本在创建完容器之后进入了容器的终端

Docker命令补充

1、切换到本地终端而不关闭容器:快捷键Ctrl+P+Q,前一个步骤进入了容器的终端,如果我们想在这个窗口执行本地命令,而不想关闭当前容器,可以使用这个快捷前切换回本地终端,如下图所示:

也可以通过新建一个终端窗口通过以下attach命令来进入容器终端,这种方式更方便一点,不需要使用命令来回切换终端
2、进入容器终端:在一个容器启动的情况下,我们想从本地终端切换到容器终端,可以使用docker的attach命令来切换:

# sudo docker attach [container-id]
sudo docker attach hadoop-master


3、以上两条是我们在后续步骤要多次用到的,在此提出,其他Docker命令请查看 菜鸟教程- Docker

更换镜像源

  • 在下一步中需要安装vim,在安装vim前需要执行sudo apt-get update更新软件源,这一步如果使用默认镜像源(国外源),更新速度会很慢,因此最好在次之前配置国内镜像源。
  • 由于更换镜像源需要复制镜像源到文件中,而容器中只有vi(非vim)编辑器,vi的粘贴很难用(我不会用),所有采用在本机创建一个镜像源文件,然后通过Docker命令移动到Docker容器中的方法来修改镜像源文件。
    首先新开一个本地终端,创建一个sources.list文件
gedit sources.list
  • 将以下内容复制进去
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
  • 容器终端下备份一下sources.list文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.copy
  • 本地终端使用Docker命令将本地文件复制到Docker容器里
sudo docker cp sources.list  hadoop-master:/etc/apt
  • 最后在容器终端更新一下软件源
sudo apt-get update

安装vim

  • 由于kiwenlau/hadoop:1.0这个镜像是没有安装vim编辑器,因此我们需要先把vim装上,方便后续查看文件,执行以下安装命令即可
# 安装vim
sudo apt-get install vim

启动Hadoop

在前面一个步骤的最后进入了Hadoop容器的终端(master节点),因为是已经配置好Hadoop的容器,所以可以直接使用Hadoop,在容器根目录下有一个启动Hadoop的脚本,脚本代码如下,启动了dfs和yarn:

  • 通过以下命令执行:
./start-hadoop.sh

出现以下信息说明Hadoop启动成功

测试Word Count

根目录下还有一个测试WordCount程序的脚本,WordCount是Hadoop里“Hello World”程序,是一个用于文本字符统计的MapReduce程序,先来看一下run-wordcount.sh这个脚本的内容,脚本往hdfs里添加了数据文件,然后执行了Hadoop里的例子hadoop-mapreduce-examples-2.7.2-sources.jar:

  • 执行脚本
./run-wordcount.sh

输出结果没有报异常,且结果如下则WordCount程序执行成功

查看Web管理页面

  • Name Node:[Your IP Address]:50070/

    • 进入页面可以看到各节点的情况,注意如果Summary下的节点信息异常(容量为0、Live Nodes为0等)可能是配置过程出现了问题。
    • 在导航栏的Utilities中有两个选项Browse the file systemLogs,前者是查看hdfs文件系统的,后者是查看Hadoop运行日志的,出现任何异常时可以在日志中查看,看能否找出异常原因。

  • Resource Manager: [Your IP Address]:8088/

  • 容器的IP可以在启动容器时的输出信息里找到,或者在开启的本地端口映射的情况下使用本地浏览器,IP使用localhost

Docker配置Hadoop环境的过程到此就结束了,下一篇IDEA调试Docker上的Hadoop会介绍如何在IDEA连接Docker配置的Hadoop容器,并且调试的文章,以便于Hadoop的深入学习。

参考”从 0 开始使用 Docker 快速搭建 Hadoop 集群环境“:https://www.jianshu.com/p/b75f8bc9346d

转载https://blog.csdn.net/qq_24342739/article/details/89420496

原文地址:https://www.cnblogs.com/gaodi2345/p/11829312.html

时间: 2024-10-29 12:04:41

Docker搭建Hadoop环境的相关文章

mac下通过docker搭建LEMP环境

在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew update > brew install docker > brew install boot2docker 3.初始化boot2docker,也就是在virtualbox上安装一个docker的host环境 boot2docker init 此时会下载一个镜像 4.启动虚拟机host :~$ bo

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)【转】

[转自:]http://blog.csdn.net/hitwengqi/article/details/8008203 最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文. 首先要了解一下Hadoop的运行模式: 单机模式(standalone)       单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置.在这种默认模式下所有3个XML文件均为空.当配置文件为空时,Hadoop会完全运行在本地.因为不

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Hadoop在处理海量数据分析方面具有独天优势.今天花时间在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下. 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式是Hadoop的默认模.当配置文件为空时,Hadoop完全运行在本地.因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程.该模式主要用于开发调试MapReduce程序的应用逻辑. 2. 伪分布模式. Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群.

基于CentOS与VmwareStation10搭建hadoop环境

基于CentOS与VmwareStation10搭建hadoop环境     目  录 1.         概述.... 1 1.1.     软件准备.... 1 1.2.     硬件准备.... 1 2.         安装与配置虚拟机.... 2 2.1.     创建虚拟机.... 2 2.1.1.     创建虚拟机节点1.. 2 2.1.2.     创建虚拟机节点2.. 4 2.1.3.     创建虚拟机节点3.. 4 2.2.     安装操作系统CentOS6.0..

linux搭建hadoop环境

linux搭建hadoop环境 1.安装JDK (1)下载安装JDK:确保计算机联网之后命令行输入下面命令安装JDK sudo apt-get install sun-java6-jdk (2)配置计算机Java环境:打开/etc/profile,在文件最后输入下面内容 export JAVA_HOME = (Java安装目录) export CLASSPATH = ".:$JAVA_HOME/lib:$CLASSPATH" export PATH = "$JAVA_HOME

docker搭建lnmp环境

入门参考 http://www.runoob.com/docker/docker-install-nginx.html 十大常用命令玩转docker 1. #从官网拉取镜像 docker pull <镜像名:tag> 如:docker pull centos(拉取centos的镜像到本机) 2.#搜索在线可用镜像名 docker search <镜像名> 如:docker search centos( 在线查找centos的镜像) 3.#查询所有的镜像,默认是最近创建的排在最上 d

docker搭建 LNMP 环境

一.准备镜像安装完docker后,更换完镜像源(docker的安装十分简单自行百度即可)打开/etc/docker目录下的daemon.json添加以下内容 {"registry-mirrors": ["https://o3niohlb.mirror.aliyuncs.com"]} docker工作的基础即是镜像,可以认为镜像是一个独立的由应用组成的虚拟机重启docker服务 service docker restart docker pull nginx:alpi

用docker搭建测试环境--docker的基本操作

上一篇文章中最后执行了docker pull centos的指令,经过一段时间的等待,会从hub.docker.com上下载docker官方最新的centos的images,接下来熟悉一下docker的一些基本操作.1.查看本地的imagesdocker images 2.从hub.docker.com拉取响应的imagesdocker pull images 3.运行指定的images,并在images里边执行command命令docker run images command 4.查看当前运

使用docker搭建redis-cluster环境

目录 基础环境信息 搭建步骤 搭建中遇到的问题 其他参考 ? ? 临时接到一个测试任务,而测试需要用到redis-cluster环境,却没有现成的环境可用,于是只能自力更生搭建测试环境.一开始想采用在宿主机上硬搭,但苦于没有那么多的服务器,于是决定试试docker.以下为详细搭建步骤: 基础环境信息 ? 基础环境如下所示: CentOS Linux release 7.5.1804 Docker version 18.09.4 ? 以下操作均在root用户下面操作,如果是非root用户,需要在各