基于Docker的Hadoop集群搭建

基于Docker的Hadoop集群搭建

本文为在阿里云服务器上基于docker的Hadoop集群搭建

安装思路为

安装docker -> 运行docker导入ubuntu镜像 -> 运行ubuntu系统 -> 在系统中配置好单个节点 -> 
将配置好的单个节点系统导出为镜像 -> 根据镜像启动多个docker容器 -> 多个docker容器就是集群了。
总结:就是说你要先刻好一个模板,然后用这个模板去生成多个一样的东西,然后由这些来组成集群

安装docker

wget -qO- https://get.docker.com/ | sh

补充:wget是Linux中的一个下载文件的工具,用在命令行下,是一个非常强大的必不可少工具。
wget支持自动下载,就是说你可以登录系统启动一个wget任务,然后退出系统,这个任务将会一直执行,
如果这个任务被系统打断,再次启动的时候会从停止的地方继续下载,这对限定了链接时间的服务器非常有用。
同时支持多种协议HTTP,HTTPS,支持代理。
更多wget知识参考链接

启动docker

安装完成以后如下指令启动docker:

sudo service docker start

docker常用指令 参考链接

docker help—检查最新 Docker 可用命令;
docker attach—将本地输入、输出、错误流附加到正在运行的容器;
docker commit—从当前更改的容器状态创建新镜像;
docker exec—在活动或正在运行的容器中运行命令;
docker history—显示镜像历史记录;
docker info—显示系统范围信息;
docker inspect—查找有关 docker 容器和镜像的系统级信息;
docker login—登录到本地注册表或 Docker Hub;
docker pull—从本地注册表或 Docker Hub 中提取镜像或存储库;
docker ps—列出容器的各种属性;
docker restart—停止并启动容器;
docker rm—移除容器;
docker rmi—删除镜像;
docker run—在隔离容器中运行命令;
docker search—在 Docker Hub 中搜索镜像;
docker start—启动已停止的容器;
docker stop—停止运行容器;
docker version—提供 docker 版本信息。
使用docker构建虚拟桥接网络

由于docker网络自带了DNS解析功能,可以使用如下命令来构建一个名为hadoop的虚拟化桥接网络,该网络提供了了内部的DNS借下服务,会给集群内的机器分配IP,供之后的集群使用。

sudo docker network create --driver=bridge hadoop

如果需要查看docker中的网络,可以使用如下命令来查看

sudo docker network ls
root@iZ2ze8dsxce9ufrpvxlluxZ:~# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
22836c77585e        bridge              bridge              local
714594f681c1        hadoop              bridge              local
08965f3ddcd7        host                host                local
2d1234b6fccd        none                null                local
查找ubuntu容器
sudo docker search ubuntu
下载ubuntu16.04版本镜像
sudo docker pull ubuntu:16.04

如果需要查看已经下载的镜像
sudo docker images

启动容器
sudo docker run -it ubuntu:16.04 /bin/bash

启动容器后就会默认进入容器,如果需要退出容器,输入exit即可。
使用exit退出容器后,容器的状态为exit,并没有运行,如果需要运行容器,输入sudo docker start 容器ID
同样,需要停止已给容器,输入sudo docker stop 容器ID
重新进入容器:sudo docker exec -it 容器ID /bin/bash
可以输入docker ps -a获取容器ID

配置单个容器,作为模板

配置单个容器,首先需要进入容器,在这之后的操作都是默认是进入容器内部的操作,所以你一定要进入容器,不要在外面自己一通瞎几把输入,然后发现配置了半天是在配置服务器本身而不是在配置容器,你将原地气哭。
敲黑板:sudo docker exec -it 容器ID /bin/bash进入容器,然后再进行后面的操作

安装JDK1.8和Scala

spark的运行需要Scala,Scala的运行需要JDK1.8

更换源

由于这个ubuntu16.04的镜像是刚刚得到的,其中的apt源需要更换,此处将其更换为阿里源。
备份源,以防翻车:

cp /etc/apt/sources.list /etc/apt/sources_backup.list

删除源文件

rm /etc/apt/sources.list

使用echo命令将源写入到新文件中

echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe" > /etc/apt/sources.list  

之后,输入apt update来更新
好了,现在可以放开手脚使用apt install了。

安装JDK1.8
apt install openjdk-8-jdk

测试安装是否成功

java -version
root@iZ2ze8dsxce9ufrpvxlluxZ:~# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~16.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
安装Scala
apt install scala

安装完后Ctrl+D退出Scala命令行

安装Hadoop

安装vim和net-tools网络工具包
apt install vim
apt install net-tools

补充一下后面会用到的vim的相关操作:

  • 编辑一个文件可以直接:vim 文件名
  • 然后会进入到文件中,这时你还不能直接在文件中写东西,因为当前处于命令模式,编辑文本要进入编辑模式才行。
  • 你要按键盘的i键(insert),才能进入编辑模式。
  • 按下i键后,你就可以在文件中输入内容了;
  • vim也不支持鼠标点击,只可以通过鼠标滚轮上下移动行或者方向键来操控光标位置。
  • 编辑完毕后按ESC退出编辑模式重新回到命令模式,此时文件并没有保存。
  • 输入键盘中的冒号":"这时你在冒号后面可输入命令了
  • 然后输入"wq!"回车,就保存退出了。"w"表示保存(write);“q"表示退出(quite);”!"表示强制。
  • 如果你不想保存,或者担心文件改错了,想直接退出,那把"wq!"换成"q!"就可以了,表示直接退出,不保存修改。
安装SSH
apt-get install openssh-server
apt-get install openssh-client

要配置SSH的免密登录,然后后面的容器都是根据这个镜像启动的,就是一个模板出来的,具有相同的密钥,这样他们互相可以免密通信了。

配置SSH免密通信

进入用户根目录:

cd ~

生成公钥,输入一下指令后,一直回车,不用输入其他内容,这样生成的密钥文件会保存在默认位置
一定要复制这个指令,因为指令里面的P是大写,要是小写会报错。

ssh-keygen -t rsa -P ""

将公钥追加到authorized_keys中

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

启动SSH服务

service ssh start

免密登录自己

ssh 127.0.0.1

修改.bashrc文件,启动shell的时候,自动启动SSH服务。打开文件vim ~/.bashrc追加如下代码在末尾。

service ssh start

自动启动SSH

补充:

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值