Docker-hadoop集群搭建
事前准备
搭建的过程中碰到过很多的坑,所以在这里给大家的是从0开始搭建的步骤,基本上按照顺序搭建就可以,有问题的同学可以留言.
- docker安装
- docker下载centos镜像文件(版本看个人喜好,推荐centos7+,centos7之前对docker的支持不完全,这里不做深究,毕竟重点是hadoop集群的搭建)
# 下载centos镜像
sudo docker pull centos:centos7
docker容器中进行配置
- 首先启动一个基于centos7的最基本容器
# --name:容器名称,自己随意起
# --privileged:给与扩展权限,没有此选项的话容器内的root用户并不是真正意义上的root权限
# -d:为daemon,表示运行在后台的进程
# 然后接需要使用的镜像的registry:tag
# 容器运行/usr/sbin/init脚本后,才可以在容器内使用systemctl命令
# 否则会报Failed to get D-Bus connection: Operation not permitted
sudo docker run --name "centos-base" --privileged -d centos:centos7 /usr/sbin/init
# -it:开启一个伪终端设备提供给用户来进行交互
# i:interactive 交互模式
# t:伪tty
sudo docker exec -it centos-base /bin/bash
- 修改root用户密码,并创建一般用户(根据自己喜好来就行,这里我用的是hadoop)
# 修改root密码
passwd
# 添加hadoop用户
useradd hadoop
passwd hadoop
3.安装sudo(新手向,老鸟请跳过)
# 如果不知道一个命令需要安装什么软件时,可以先使用provides来查看
yum provides sudo
# 这里强行不用-y,为的是让新手能够仔细看看自己安装的内容和过程,本文后面也是如此一律不加-y
yum install sudo-1.8.23-4.el7.x86_64
# 执行visudo命令,来配置sudo信息
# 在101行位置为hadoop用户添加配置(可自己酌情配置)
visudo
# 配置成后以后我们切换到hadoop用户来进行接下来的操作
su - hadoop
4.安装wget(新手向,老鸟请跳过)
# 其实可以直接加-y参数自动同意安装,但是这里是新手向,建议仔细看清自己要安装的软件信息
yum install wget
5.jdk配置(新手向,老鸟请跳过)
如果不清楚具体下载方式的,可以参考我的另一篇博客jdk下载
# 创建一个文件夹,用来存放需要下载的软件包
sudo mkdir /opt/download
cd /opt/download
或者你主机中有jdk的也可以通过docker cp命令拷贝到当前容器中.
需要在docker容器外执行
# -a:完全拷贝,包括UID,GID等等
# -L:追踪链接文件的源目标
# /opt/download/jdk-8u202-linux-x64.tar.gz 这个是你本机存放jdk的位置,根据实际情况来
# centos:base 容器的名称,也可以用id
sudo docker cp -aL /opt/download/jdk-8u202-linux-x64.tar.gz centos-base:/opt/download/
创建/opt/softwares目录目录名称看个人喜好
(以后的软件都解压到此处),然后将jdk解压到此处
sudo mkdir /opt/softwares
sudo tar xzf /opt/download/jdk-8u202-linux-x64.tar.gz \
-C /opt/softwares
# 做个软链接,版本号太长打起来累
cd /opt/softwares
sudo ln -s jdk1.8.0_202/ jdk
配置JAVA环境变量
# /etc/profle 中的配置作用于所有用户
# 而~/.bash_profile 中的配置只作用于当前用户
vi ~/.bash_profile
# 在~/.bash_profle文件中添加JAVA相关信息
export JAVA_HOME=/opt/softwares/jdk
PATH=$PATH:......中间省略,添加:$JAVA_HOME/bin:$JAVA_HOME/sbin
source ~/.bash_profile
或
. ~/.bash_profile
# 查看版本信息
java -version
6. 下载并配置hadoop本地环境(新手向,老鸟请跳过)
具体细节也可以参照我的另外一篇博客hadoop单机模式与伪分布式
# 下载hadoop 同jdk一样,也可以从本地复制,由于上面做过演示了,所以这里不再做同样演示.
sudo wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
# 解压缩到/opt/softwares目录下
sudo tar xzf hadoop-2.8.5.tar.gz -C /opt/softwares/
# 名字太长记不住,来个链接(开玩笑,其实还有一个目的,就是当目录中有多个版本时,用链接的方式比较方便)
cd /opt/softwares/
sudo ln -s hadoop-2.8.5/ hadoop
# 同jdk配置时一样,再~/.bash_profile中添加hadoop环境变量
vi ~/.bash_profile
export HADOOP_HOME=/opt/softwares/hadoop
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/sbin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 重读配置文件
source ~/.bash_profile
或
. ~/.bash_profile
# 查看hadoop配置情况
hadoop version
如果报