Docker快速搭建Hadoop_三雷科技的博客-程序员秘密

技术标签: docker搭建hadoop  hadoop  docker  

前言:

    最近工作做开始使用到hadoop相关的东西,文件存储原来我们使用NFS方式存储,现在换成产品需要逐步换成hadoop来存储数据文件,所以想搭建一个hadoop来测试学习,以前也会搭建hadoop但是还是太麻烦了,但是,有了docker搭建起来就方便很多了,直接下载镜像然后启动docker就可以直接使用,是不是很方便呀。

注意:文中多次提到容器终端是hadoop-master这个容器的终端。

基础配置,centos7最小化版本,内存我配置了8G,cpu4核,磁盘空间为30G,已经搭建好docker。

一、修改镜像源为国内的镜像源。

    对于docker来说镜像是很重要的东西,所以我们第一步需要修改镜像源为国内镜像源这样在拉取镜像的时候可以快一点。下面是已经修改好的,我使用的是163的镜像,当然你们也可以使用其他的镜像源地址。

url 说明
https://registry.docker-cn.com

Docker 官方中国区

http://hub-mirror.c.163.com 网易
https://docker.mirrors.ustc.edu.cn ustc
https://pee6w651.mirror.aliyuncs.com 阿里云
[[email protected] ~]# cat /etc/docker/daemon.json
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

二、拉取镜像

接下来我们就要拉取镜像了,这个过程可能会有些久,只要连上网应该都能下载下来。

为了不让你下载错误,你可以使用docker search hadoop命令查询一下有哪些hadoop镜像可以下载

[[email protected] ~]#docker pull docker.io/kiwenlau/hadoop:1.0

 三、克隆配置脚本

克隆前由于我是最小化版本所以没有安装git,因此需要先安装git,安装指令如下。

 [[email protected] ~]#yum install git

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

[[email protected] ~]# git clone https://github.com/kiwenlau/hadoop-cluster-docker
Cloning into 'hadoop-cluster-docker'...
remote: Enumerating objects: 392, done.
remote: Total 392 (delta 0), reused 0 (delta 0), pack-reused 392
Receiving objects: 100% (392/392), 191.83 KiB | 2.00 KiB/s, done.
Resolving deltas: 100% (211/211), done.

四、创建网桥

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

[[email protected] ~]# sudo docker network create --driver=bridge hadoop
04443af07c3d4e5c87db1dd48f0acf87cce59e55944737b68ceab983bfff094a

 五、执行脚本

  改脚本模式是创建3个节点。

[[email protected] hadoop-cluster-docker]# ./start-container.sh 
start hadoop-master container...
start hadoop-slave1 container...
start hadoop-slave2 container...
[email protected]:~#

执行成功以后,就自动进入容器里面了。

六、更换容器的镜像源

       操作之前给大家补充一个命令,就是我们可以通过docker ps获取容器ID,然后可以通过docker exec -it [容器id] /bin/bash进入到容器中操作。为啥需要说这个呢,因为对于新手来说经常搞不明白是本地终端执行命令,还是在容器终端执行命令。

6.1 在容器终端备份sources.list文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.copy

6.2 在本地终端编写sorces.list文件并且拷贝到容器中。

[[email protected] ~]#vi 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

拷贝文件到容器中

[r[email protected] ~]#sudo docker cp sources.list  hadoop-master:/etc/apt

最后在容器终端更新一下软件源

sudo apt-get update

七、启动Hadoop

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

[email protected]:~# ./start-hadoop.sh 


Starting namenodes on [hadoop-master]
hadoop-master: Warning: Permanently added 'hadoop-master,172.18.0.2' (ECDSA) to the list of known hosts.
hadoop-master: starting namenode, logging to /usr/local/hadoop/logs/hadoop-root-namenode-hadoop-master.out
hadoop-slave1: Warning: Permanently added 'hadoop-slave1,172.18.0.3' (ECDSA) to the list of known hosts.
hadoop-slave2: Warning: Permanently added 'hadoop-slave2,172.18.0.4' (ECDSA) to the list of known hosts.
hadoop-slave2: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-hadoop-slave2.out
hadoop-slave1: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-hadoop-slave1.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-root-secondarynamenode-hadoop-master.out


starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn--resourcemanager-hadoop-master.out
hadoop-slave2: Warning: Permanently added 'hadoop-slave2,172.18.0.4' (ECDSA) to the list of known hosts.
hadoop-slave1: Warning: Permanently added 'hadoop-slave1,172.18.0.3' (ECDSA) to the list of known hosts.
hadoop-slave1: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-hadoop-slave1.out
hadoop-slave2: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-hadoop-slave2.out

八、登录查看。

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

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

使用docker搭建hadoop是不是很简单呀,只要有能下载镜像好像就没有那么难了吧。 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/arv002/article/details/105544787

智能推荐

C# int to BCD encode(最简单的实现办法)BCD编码编程实现算法_aifuge9347的博客-程序员秘密

这个函数是自己写的,不知道有误没有,网上找了很多但是都写得怪麻烦的。 希望对大家有所帮助 byteLength是返回字节的长度。 privatestaticintGetSum(intbaseInt,int[]sValue){intcount=sValue.Length;if(count==1...

grid网格布局_grid下边框_John的WEB前端学习日记的博客-程序员秘密

前言现在我们大家在实际的开发中,可能用的最多的就是flex布局,当然还有浮动和定位,除此之外,这两年一直听到网格布局是趋势,即grid布局,但是项目中没有太多的应用,所以特此总结一下,希望对大家也对我自己有帮助。给大家一个直接的效果体验一下:网格布局:就是一个容器内部由一个个的项目组成,是一个二维布局,接下来,我们就会围绕 容器 和项目 来介绍网格布局,目录...

每天一道算法题(26)——输入字符串表达式求值_攻城狮凌风的博客-程序员秘密

题目:       输入字符串,求输出的值。输入的均为整形,要求包含运算符         例如输入: "24*1 +(4+6)*2+ (4-3*2) *( 4+6-9+(11-3*4)*2 +2)* 10+ 20 -3* 2 *4 +2"                输出结果:20         要求:对于多余空格字符完好的鲁棒性,函数原型:void process(cons

RVDS2.2 成功安装与AXD调试步骤_rvds2.2 debug_CheneyKid的博客-程序员秘密

Arm11要用到RVDS来裸机,买的时候却没有附带安装包,这是一件非常恼火的事情,不过,经过我网上寻找,也终于安装完成,且可以调试。AXD调试时遇到的小问题也成功解决。  下面是两步,安装与调试,贴出链接,因为没法上传文件。只要按照步骤,应该没什么问题。1、下载与安装rvds2.2:  一、 我们将rvds2.2的压缩包(下载地址:http://115.com/file/a

221:vue+openlayers 加载geoserver瓦片WMS数据,使用getFeatureInfoUrl获取瓦片数据信息_还是大剑师兰特的博客-程序员秘密

第221个本示例的目的是介绍演示如何在vue+openlayers中加载geoserver发布的WMS数据,其核心目标是在地图上显示瓦片,点击瓦片层,可以获取到瓦片上的信息。https://xiaozhuanlan.com/topic/8026571943 这是另外的一种方法。

Windows10环境下使用 VisualSVN server搭建SVN服务器及客户端搭建_andy5520的博客-程序员秘密

SVN分为客户端和服务端:服务端:常用的主要有2个,分别为:1. VisualSvn Server:免费,集成了Subversion和Apache,安装使用非常简单;2. Subversion:在Windows上安装起来比较麻烦;所以在Windows环境下搭建SVN服务器时,我们选择VisualSvn Server;客户端:1. VisualSVN :收费,不选择使用;2. T...

随便推点

Verilog HDL always语句_sareiu的博客-程序员秘密

转载出处:https://www.cnblogs.com/SummerSunnyDay/p/11543929.html如有侵权,请告之。在本篇里,我们讨论 Verilog 语言的综合问题,Verilog HDL (Hardware Description Language) 中文名为硬件描述语言,而不是硬件设计语言。这个名称提醒我们是在描述硬件,即用代码画图。在 Verilog 语言中,always 块是一种常用的功能模块,也是结构最复杂的部分。笔者初学时经常为 always 语句的编写而苦恼.

SQL汉字转拼音函数-支持首字母、全拼_weixin_34037977的博客-程序员秘密

为什么80%的码农都做不了架构师?>>> ...

Echarts常见问题汇总_bagu1904的博客-程序员秘密

关于echarts使用的常见问题总结来源:李文杨关于echarts使用的问题总结1.legend图例不显示的问题:在legend中的data为一个数组项,数组项通常为一个字符串,每一项需要对应一个系列的 name,如果数组项的值与name不相符则图例不会显示;2.图表位置无法紧贴画布边缘的问题:在grid绘图网格里,containLabel(grid 区域是否包含坐标轴...

步进电机基本概念_步进电机齿数_落子摘星的博客-程序员秘密

一、步进电机相关概念       步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数。       角位移:角位移就是步进电机的转轴转动行驶的位移。1.步进电机的相、线、极性...

知识图谱(五)——实体消歧___盛夏光年__的博客-程序员秘密

一、任务概述多样性——同一实体在文本中会有不同的指称。eg:飞人、帮主、老大和MJ都指美国篮球运动员迈克尔·乔丹歧义性——相同的实体指称在不同的上下文中可以指不同的实体。eg:迈克尔·乔丹指美国篮球运动员、爱尔兰政治家等1、任务定义实体消歧,定义为六元组。此处实体指的是命名实体。M=N,E,D,O,K,δM=N,E,D,O,K,\deltaM=N,E,D,O,K,δN=n1,n2,....

zabbix监控系统_weixin_34387468的博客-程序员秘密

企业级 Zabbix 监控1、Zabbix监控架构监控中心zabbix-server|------------------------------| |---proxy--- ---proxy---agent agent agent agent2、zabbix 监控邮件报警Postfix邮局(MTA)------邮递员(smtp 25)------邮局(MTA)| |MDA...

推荐文章

热门文章

相关标签