使用VirtualBox虚拟机安装centos 7并基于docker搭建hadoop完全分布式

一.环境准备

1.虚拟机软件: Oracle VM VirtualBox
2.linux系统: centos 7
3.jdk版本: jdk1.8
4.hadoop版本: hadoop3.1.3
5.ssh工具: MobaXterm

二.centos安装

1.安装Oracle VM VirtualBox

下载好Oracle VM VirtualBox安装包之后双击狂点下一步即可

2.安装centos 7

2.1管理

在这里插入图片描述

2.2 虚拟介质管理

在这里插入图片描述

2.3 注册

在这里插入图片描述

2.4 找到下载好的.iso镜像选择打开

在这里插入图片描述

2.5 应用关闭

在这里插入图片描述

2.6 创建虚拟机

新建
在这里插入图片描述
简单配置
在这里插入图片描述
简单配置好后点击下一步
在这里插入图片描述
最好选择4G运存以上,好之后下一步
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三.安装centos7

1.启动

在这里插入图片描述

2.镜像选择

在这里插入图片描述

3. 开始安装

键盘方向键上下键选择第一个后点击回车
在这里插入图片描述

4.选择语言

(提醒:如果想要把鼠标移出窗口,点击右Ctrl即可)
在这里插入图片描述

5.开始安装

5.1 安装位置选择

在这里插入图片描述
在这里插入图片描述

5.2 网络配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 root用户配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待自动重启

安装完成
在这里插入图片描述

四. MobaXterm连接虚拟机

1.安装net-tools

1.1 登录centos7

输入账号密码后回车(输入密码时不显示密码)
在这里插入图片描述

1.2 安装net-tools

在这里插入图片描述
1.3 获取ip
安装好net-tools后输入ifconfig获取ip
在这里插入图片描述
记住这个ip
在这里插入图片描述
1.4 MobaXterm连接centos7
自行安装好MobaXterm后
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入root账号密码
在这里插入图片描述

五.安装启动docker

1.安装

yum install docker -y
在这里插入图片描述

2.启动

systemctl start docker
在这里插入图片描述

六.docker构建镜像并启动容器

1.创建hadoop目录

在这里插入图片描述

2.进入hadoop目录

在这里插入图片描述
在这里插入图片描述

3.将jdk和hadoop压缩包上传到hadoop目录

在这里插入图片描述
在这里插入图片描述

4.创建编写docker镜像配置文件

cd hadoop
vi Dockerfile
在这里插入图片描述
进入文档后按i键进入编辑状态
在这里插入图片描述
写入以下内容

FROM centos:7

# 安装openssh-server和openssh-clients
RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN yum  install -y openssh-clients

# 添加用户root,密码root
RUN echo "root:root" | chpasswd
RUN echo "root   ALL=(ALL)       ALL" >> /etc/sudoers
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# 启动sshd服务并且暴露22端口  
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

#jdk                                        
ADD jdk-8u162-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_162 /usr/local/jdk1.8
ENV JAVA_HOME /usr/local/jdk1.8
ENV PATH $JAVA_HOME/bin:$PATH

#hadoop
ADD hadoop-3.1.3.tar.gz /usr/local
RUN mv /usr/local/hadoop-3.1.3 /usr/local/hadoop
ENV HADOOP_HOME /usr/local/hadoop
ENV PATH $HADOOP_HOME/bin:$PATH

写入完成后按esc键退出编辑,输入:wq保存退出
在这里插入图片描述

5.在docker容器中构建hadoop镜像

docker build -t 'hadoop' .
在这里插入图片描述
在这里插入图片描述

6.docker启动多个容器

启动hadoop0作为名称节点,对外开放端口50070和8088
docker run --name hadoop0 --hostname hadoop0 -d -P -p 50070:50070 -p 8088:8088 hadoop
启动两个从节点(数据节点)
docker run --name hadoop1 --hostname hadoop1 -d -P hadoop
docker run --name hadoop2 --hostname hadoop2 -d -P hadoop
在这里插入图片描述

七.配置hosts

1.进入名称节点hadoop0

docker exec -it hadoop0 /bin/bash
在这里插入图片描述

2.配置hosts文件

vi /etc/hosts
在这里插入图片描述
文件中添加以下内容
在这里插入图片描述
保存退出后ping其他节点
在这里插入图片描述
有数据返回即可,按Ctrl+C强制中断

之后将hosts文件传输到另外两个容器
scp /etc/hosts hadoop1:/etc/
在这里插入图片描述
另一个容器hadoop2也类似操作
在这里插入图片描述

八.创建ssh无密码登录

1.每个容器创建hadoop用户,并设置密码hadoop

hadoop0:
在这里插入图片描述
输入密码时输入两遍即可,我这里输错了所以多来了一遍。hadoop0创建完后退出到容器外
在这里插入图片描述
进入容器hadoop1创建hadoop用户,密码依然hadoop
在这里插入图片描述
完成后退出到容器外,进行hadoop2容器的操作
在这里插入图片描述
完成后退出容器外,进入容器hadoop0
在这里插入图片描述

2.ssh无密码登录

进入容器hadoop0后切换到hadoop用户
在这里插入图片描述
输入ssh-keygen然后按一直回车即可
在这里插入图片描述
将密钥传入到各个节点(密码为hadoop用户密码 hadoop)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后使用ssh 主机名检测是否成功,之后exit回来
在这里插入图片描述
很顺利完成

九.hadoop配置文件修改

1.修改hadoop-env.sh文件

添加内容
在这里插入图片描述

保存退出后刷新文件
在这里插入图片描述

2.修改文件workers

需要把所有数据节点的主机名写入该文件,每行一个。

删掉localhost这行,让hadoop0节点仅作为名称节点使用。
在这里插入图片描述

3.修改文件core-site.xml

请把core-site.xml文件修改为如下内容:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hadoop0:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
        </property>
</configuration>

在这里插入图片描述

4.hdfs-site.xml

<configuration>		
	<property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop0:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>

在这里插入图片描述

5.修改文件mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoop0:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>hadoop0:19888</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property> 
</configuration>

在这里插入图片描述

6.修改文件 yarn-site.xml

<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop0</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

在这里插入图片描述

十.复制hadoop文件到数据节点

scp -rq /usr/local/hadoop/ hadoop1:/usr/local/
scp -rq /usr/local/hadoop/ hadoop2:/usr/local/
在这里插入图片描述

十一.格式化

hdfs namenode -format
在这里插入图片描述
出现:successfully代表成功
在这里插入图片描述

十二.启动hadoop集群

start-all.sh
启动之后输入jps查看进程,少一个都代表出问题
在这里插入图片描述

输入hdfs dfsadmin -report查看数据
在这里插入图片描述
出现了两个数据节点,完事。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值