Ubuntu18.04虚拟机的Hadoop集群环境搭建

简介

基础环境:window主机 + VMware Workstation Pro + Ubuntu18.04镜像

资源

  1. jdk-8u231-linux-x64.tar.gz:链接: https://pan.baidu.com/s/1PDfZp7NExc6KdtQ1qhkPOQ 提取码: t4wt
  2. hadoop-2.8.5.tar.gz:链接: https://pan.baidu.com/s/10ex0snB0Eq4O5PpIWkEagw 提取码: vcn5
  3. ubuntu-18.04.2-desktop-amd64.iso:链接: https://pan.baidu.com/s/1-l1_brAur4ba8jln87CvyQ 提取码: 3tdr

虚拟机:master + slave1 ( + slave2) #内存不足可仅装两台

基本步骤

  1. 安装 master 虚拟机,并命名为 master
  2. master 配置名为 hadoop 的用户;
  3. master 安装 jdk (.tar.gz);
  4. master 安装 hadoop (.tar.gz);
  5. 配置 hadoop 内置文件
  6. 克隆 master 虚拟机,并命名为 slave1
  7. 两台虚拟机实现 ssh 免密登录;
  8. 启动 hadoop

1. 安装 master 虚拟机

  1. 打开VMware——新建虚拟机——选择典型安装——稍后安装操作系统
  2. 虚拟机名称可设置为master
  3. 内存大小建议 1 ~ 2G
  4. 安装时选择最小安装
  5. 等待系统安装完成

2. 配置名为 hadoop 的用户

  1. 打开master虚拟机,按住Ctrl+Alt+T进入终端
  2. 创建hadoop用户
sudo useradd -m hadoop -s /bin/bash
  1. 为hadoop用户设置密码
sudo passwd hadoop
  1. 为hadoop用户添加管理员权限
sudo adduser hadoop sudo
  1. 切换用户
su - hadoop
  1. 创建hadoop级目录(在 这里“~” 等同于 ”/home/hadoop“,即代表当前用户的用户主目录)
mkdir -p ~/chadoop/java
mkdir -p ~/chadoop/hadoop
mkdir -p ~/chadoop/tmp
mkdir -p ~/chadoop/dfs/name ~/chadoop/dfs/data

3. 安装 jdk

  1. 开启VMware共享文件夹
    在这里插入图片描述
  2. 在宿主机下,将下载好的jdk、hadoop文件拷贝到主机文件夹中
  3. 回到master虚拟机中,进入共享文件夹目录(/mnt/hdfs/共享文件夹名)
cd /mnt/hdfs/share
  1. 使用tar命令解压到目标文件夹
tar -zxvf jdk-8u231-linux-x64.tar.gz -C ~/chadoop/java
  1. 配置 jdk 环境变量
sudo vim /etc/profile

在末尾添加

export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231  #(必须与解压路径一致)
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
  1. 配置生效
source /etc/profile
  1. 测试
java -version

在这里插入图片描述

4. 安装 hadoop

  1. 进入共享文件夹目录(/mnt/hdfs/共享文件夹名)
cd /mnt/hdfs/share
  1. 使用tar命令解压到目标文件夹
tar -zxvf hadoop-2.8.5.tar.gz -C ~/chadoop/hadoop
  1. 配置hadoop环境变量
vim ~/.profile

在末尾添加

HADOOP_HOME=~/chadoop/hadoop/hadoop-2.8.5	#(文件路径必须一致)
HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
PATH=$PATH:$HADOOP_HOME/bin
PATH=$PATH:$HADOOP_HOME/sbin
export PATH HADOOP_HOME HADOOP_CONF_DIR
  1. 配置生效
source ~/.profile
  1. 测试
hadoop

5. 配置hadoop内置文件

cd ~/chadoop/hadoop/hadoop-2.8.5/etc/hadoop

涉及的文件:
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
hadoop-env.sh
mapred-env.sh
yarn-env.sh
slaves

  1. 【core-site.xml】
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/home/hadoop/chadoop/tmp</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
</configuration>
  1. 【hdfs-site.xml】
<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/home/hadoop/chadoop/dfs/name</value>
                <description>namenode的目录位置</description>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/home/hadoop/chadoop/dfs/data</value>
                <description>datanode的目录位置</description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
                <description>hdfs系统的副本数量</description>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
                <description>备份namenode的http地址</description>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
                <description>hdfs文件系统的webhdfs使能标致</description>
        </property>
</configuration>
  1. 【mapred-site.xml】
    mapred-site.xml需要先复制模板生成配置文件后修改内容
cp mapred-site.xml.template mapred-site.xml
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <description>指明MapRreduce的调度框架为yarn</description>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>master:10020</value>
                <description>知名MapReduce的作业历史地址</description>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
                <description>指明MapReduce的作业历史web地址</description>
        </property>
</configuration>
  1. 【yarn-site.xml】
<configuration>
<!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>master:18040</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>master:18030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>master:18088</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:18025</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:18141</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
</configuration>
  1. 【hadoop-env.sh】

加入JAVA_HOME位置

export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231
  1. 【mapred-env.sh】

加入JAVA_HOME位置

export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231
  1. 【yarn-env.sh】

加入JAVA_HOME位置

export JAVA_HOME=/home/hadoop/chadoop/java/jdk1.8.0_231
  1. 【slaves】

加入slave机器名称
在这里插入图片描述

6. 克隆 master 虚拟机

关闭master虚拟机,右键单击master机器名
在这里插入图片描述
克隆类型为 完整克隆
虚拟机名称为 slave1
slave1机器的内存分配可降低一些

7. 两台虚拟机实现 ssh 免密登录

启动 master
启动 slave1

Ctrl+Alt+T 打开终端
切换用户

su - hadoop

分别查看两台机器的IP,命令(18.04不再使用ifconfig):

ip address
(或ip a)

master 为例

  1. 添加IP映射
sudo vim /etc/hosts

在这里插入图片描述

  1. 测试连接
ping master
(相当于ping 192.168.28.130)
ping slave1

在这里插入图片描述

  1. 安装ssh-server
sudo apt-get update
sudo apt-get install openssh-server
  1. 进入ssh用户目录
cd ~/.ssh
  1. 生成密钥公钥
ssh-keygen -t rsa

回车默认确定

  1. 加入授权
cat ./id_rsa.pub >> ./authorized_keys
  1. 修改文件"authorized_keys"权限
chmod 600 authorized_keys
  1. 修改配置文件
sudo vim /etc/ssh/sshd_config

启用以下参数

AddressFamily any #允许任何地方登录
PermitRootLogin yes # 允许root账号登录
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile /home/hadoop/.ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

  1. 重启SSH
/etc/init.d/sshd restart
  1. 转入操作slave1机器上,重复 1~9 步骤

  2. 在master机器上把slave1的公钥传到master的authorized_keys上

ssh slave1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 在master上的authorized_keys文件复制替换到各个节点上,使得每个节点上的authorized_keys文件一样
scp ~/.ssh/authorized_keys slave1:~/.ssh/authorized_keys
  1. 测试
master:~$ ssh slave1
slave1:~$ ssh master

8. hadoop命令

  1. 格式化
hadoop namenode -format
  1. 在master机器上启动hadoop
start-all.sh
  1. 关闭hadoop
stop-all.sh
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值