导语
由于Hadoop是为集群而设计的软件,所以在学习和使用的过程中难免会遇到在多台机器上配置Hadoop的情况,这个对于初学者来说会造成很多的障碍。主要的障碍有两个;
- 昂贵的计算机集群。多个计算机构成的集群环境需要昂贵的硬件。
- 难以部署和维护。在众多的机器上都要部署相同的软件环境是一个比较大的工程量。而且比较不灵活,需要修改的话很多的内容都需要修改。
为了解决这个问题,现在有一个比较成熟的解决方案就是使用Docker。
Docker 是一个容器管理系统,他可以向虚拟机一样运行多个虚拟机容器,并且构成一个集群。因为虚拟机会完整的虚拟出一个计算机来。所以会消耗大量的硬件的资源。而Docker提供了一个独立的、可复制的运行环境,实际上容器中所有进程依然在主机的内核中被执行。所以它的运行效果几乎与在内存中运行效果是一样的。对于Docker的内容在后续的分享中博主会分享到。
文章目录- Docker部署
- 查询镜像
- 获取镜像
- 创建容器
- 配置Java与SSH环境
- Hadoop 的安装
- 创建Hadoop单机容器
下面就来看一下在Docker中如何对Hadoop进行部署
Docker部署进入进入到Docker命令行之后,首先需要拉取一个Linux的作为Hadoop的运行环境。这里需要说明的是推荐使用CentOS 作为运行环境
查询镜像首先执行如下的命令查询对应的镜像内容
docker search centos
执行完成之后会看到如下的内容,第一个stars是最多的也就是说被人使用的次数是最多的一个CentOS的镜像。我们就选择这个作为对应的运行环境的镜像
获取镜像利用上面的命令查询到对应的镜像之后,接下来的事情就是要获取对应的镜像内容。可以使用如下的命令来拉取镜像
docker pull centos
拉取完成之后可以使用docker images 命令来查看对应的下载完成的镜像。接下来就是需要运行容器镜像了。
镜像拉取完成之后,使用如下的命令来创建一个容器
docker run -d centos:8 /usr/sbin/init
使用 docker ps 查看容器运行期情况;
可以让容器输出一点东西,使用如下的命令
docker exec 182010411d12 echo "Hello World!"配置Java与SSH环境
首先创建一个容器,名称是java_ssh_proto, 用于配置一个包含Java和SSH的环境。
需要停止之前运行的容器,使用 docker stop + 容器ID的方式。
创建一个容器
docker run -d --name=java_ssh_proto --privileged centos:8 /usr/sbin/init
进入到容器中
docker exec -it java_ssh_proto bash
配置镜像的yum源
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/centos|g' -i.bak /etc/yum.repos.d/CentOS-Linux-AppStream.repo /etc/yum.repos.d/CentOS-Linux-baseOS.repo /etc/yum.repos.d/CentOS-Linux-Extras.repo /etc/yum.repos.d/CentOS-Linux-PowerTools.repo /etc/yum.repos.d/CentOS-Linux-Plus.repo yum makecache
结果如下
安装 Open JDK和SSH服务
yum install -y java-1.8.0-openjdk-devel openssh-clients openssh-server
Java环境测试
启动SSH服务
systemctl enable sshd && systemctl start sshd
到此为止,如果没有出现任何的故障,一个包含Java运行环境和SSH环境的容器就被创建好了,这个是一个非常关键的容器,建议首先在容器中exit命令退出,然后运行如下的两条命令,并且保存一个名为java_ssh的镜像:
docker stop java_ssh_proto docker commit java_ssh_proto java_sshHadoop 的安装
Hadoop 官网地址:http://hadoop.apache.org/
Hadoop 发行版本下载:https://hadoop.apache.org/releases.html
以上面保存好的java_ssh镜像创建容器hadoop_single;
docker run -d --name=hadoop_single --privileged java_ssh /usr/sbin/init
将下载好的hadoop压缩包拷贝的容器中的 /root 目录下;
docker cp <你存放hadoop压缩包的路径> hadoop_single:/root/
进入容器
docker exec -it hadoop_single bash
进入到root目录
cd /root
解压刚刚拷贝过来的内容
tar -zxvf hadoop-3.3.1.tar.gz
解压之后将其拷贝到一个比较常用的地方
mv hadoop-3.3.1 /usr/local/hadoop
配置响应的环境变量
echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/bashrc echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> /etc/bashrc
然后退出 docker 容器并重新进入。
echo "export JAVA_HOME=/usr" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh echo "export HADOOP_HOME=/usr/local/hadoop" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
这两步配置了 hadoop 内置的环境变量,然后执行以下命令判断是否成功:
hadoop version
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)