Hadoop环境配置(新手笔记)

1. 虚拟机配置

1.1 安装CentOS系统

这里以安装CentOS系统为例,不建议安装CentOS最新版本,安装CentOS后修改虚拟机名称为master。

注:本文使用VMWare进行配置,若使用VirtualBox配置时,除虚拟机网络配置略有不同外,其他一致。

1.2 网络连接介绍

1.桥接模式:虚拟机和物理机连的是同一个网络,虚拟机和物理机是并列关系,地位是相当的。无论是虚拟系统还是真实系统,只要在同一个网段下,相互之间就能ping通。

2.NAT模式:物理机会充当一个“路由器”的角色,虚拟机要想上网,必须经过物理机,那物理机如果不能上网,虚拟机也就不能上网了。不需要进行任何其他的配置,只需要物理机能访问互联网即可。虚拟系统只能和设置虚拟机的主机之间双向访问,无法访问同一网段下其他真实主机。

3.仅主机模式:相当于拿一根网线直连了物理机和虚拟机。所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开。

1.3 虚拟机网络配置

1.在VMWare中打开虚拟网络编辑器,选择VMnet8(NAT)模式,点击NAT设置,配置网关地址(可选择默认值)。

如下图所示:

a.打开虚拟网络编辑器

在这里插入图片描述

b.进入"更改设置"

在这里插入图片描述

c.如下图,取消勾选"使用本地DHCP服务器将IP地址分配给虚拟机(D)“这一选项,然后进入"NAT设置”,设置网关

在这里插入图片描述

d."NAT设置"界面,设置网关与本地的VMnet8的网关一致

在这里插入图片描述

2.打开控制面板,网络和共享中心,更改适配器,打开VMnet8的属性,配置TCP/IPv4属性。

3.网关地址与VMWare一致,不要配置已被占用的ip地址。

如下图,设置ip地址与上图"NAT设置"中的IP地址在同一网段,网关设为与上图"NAT设置"中的网关一致。

在这里插入图片描述

4.登录CentOS系统,进入etc/sysconfig/network-scripts中,编辑NAT网卡配置文件。

vi ifcfg-ens33 

5.配置以下变量

BOOTPROTO=static       #关闭DHCP,可以不做,不影响
ONBOOT=yes 		       #开机启动
IPADDR=192.168.32.10   #该虚拟机的ip地址
GATEWAY=192.168.32.2  #网关地址 
DNS1=192.168.32.2     #DNS可根据自己网络进行配置

如下图示例配置

在这里插入图片描述

1.4 重启网卡,网络配置生效

service network restart  

systemctl restart network

1.5 网络验证

CentOS下查看ip地址:

ip a

Windows下查看ip地址(运行cmd):

ipconfig

ipconfig  /all

若以下操作正确,网络配置成功

  • 虚拟机 ping 网关
  • 虚拟机 ping 物理主机
  • 物理主机 ping 虚拟机
  • 虚拟机 ping 百度(若ping不通外网地址,可在上步骤的网络配置文件中,修改其他DNS1地址)

1.6 关闭CentOS防火墙

分布式集群中,各个节点之间的通信会受到防火墙的阻碍,因此关闭防火墙(安全问题由专业软件在外围实现防火墙功能,统一管理)

systemctl stop firewalld.service 

禁止防火墙开机启动

vi /etc/sysconfig/network-scripts/ifcfg-ens33

1.7 安装XShell、XFtp

XShell与XFtp为付费软件,可在英文官方网站下载免费教育版(中文官网无此版本)

安装成功后,新建连接,输入要连接的虚拟机master ip地址,输入用户名、密码进行连接

登陆成功后,使用XShell代替虚拟机界面进行Shell操作。

如下图,点击"连接"

在这里插入图片描述

出现下图界面,点击"接受并保存"

在这里插入图片描述

2. 基础环境配置

2.1 切换用户至root用户

su root

2.2 配置时钟同步

在线安装ntpdate,使用阿里云ntp服务器同步时间,date命令查看当前时间

yum install ntpdate 
ntpdate ntp.aliyun.com
date 

若无法连接外网,可离线安装ntpdate ,ntpdate下载地址: https://pkgs.org/

rpm -ivh 'ntpdate包的路径' 
ntpdate ntp.aliyun.com
date

如下图,配置完成

在这里插入图片描述

2.3 配置主机名

在网络中能够唯一标识主机,和ip地址一样,可通过ip地址和网络主机名访问这台主机,作用:简化、方便。

修改主机名:

hostnamectl set-hostname master

查看修改后的主机名:

hostname

2.4 配置hosts列表

hosts列表作用是让集群中的每台服务器彼此都知道对方的主机名和ip地址

vi /etc/hosts

添加主机ip和主机名

192.168.32.10 master

验证,ping ip地址和主机名,结果相同无区别

ping 192.168.32.10
ping master

2.5 安装Java环境

创建个人资料目录,java目录

mkdir /usr/dagou
mkdir /usr/java
mkdir /usr/hadoop

使用XFtp复制java安装包至dagou目录下,解压,移动至java目录下

tar -zxvf jdk-8u241-linux-x64.tar.gz
mv jdk1.8.0_241 /usr/java/jdk1.8.0_241

如下图,连接XFtp

在这里插入图片描述

上传hadoop和java安装包到/usr/dagou目录下

在这里插入图片描述

进入系统配置文件

vi /etc/profile

文件最后面添加以下两行

export JAVA_HOME=/usr/java/jdk1.8.0_241
export PATH=$JAVA_HOME/bin:$PATH

使配置生效

source /etc/profile
java -version   //查看java版本

2.6 安装Hadoop环境

使用XFtp上传hadoop安装包至dagou文件夹下,解压Hadoop安装包,并移动至新的文件夹中

tar -zxvf hadoop-2.10.0.tar.gz 
mv hadoop-2.10.0  /usr/hadoop/hadoop-2.10.0

配置Hadoop环境变量

vi /etc/profile

在配置文件最后添加以下两行

export HADOOP_HOME=/usr/hadoop/hadoop-2.10.0
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

使hadoop配置生效,并进行验证

source /etc/profile
hadoop version
whereis hdfs

无错误信息表示hadoop已成功加入到CentOS系统环境中

如下图

在这里插入图片描述

2.7 将hadoop与java绑定(这一步比较重要)

设置hadoop配置文件

cd /usr/hadoop/hadoop-2.10.0/etc/hadoop
vi hadoop-env.sh

找到下面这行代码:

export JAVA_HOME=${JAVA_HOME}

将这行代码修改为

export JAVA_HOME=/usr/java/jdk1.8.0_241

3. 配置Hadoop

3.1 Hadoop核心文件配置

进入hadoop的etc文件夹,配置core-site.xml文件,新增以下内容

<configuration>
    <!--指定文件系统的入口地址,可以为主机名或ip -->
    <!--端口号默认为8020 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    <!--指定hadoop的临时工作存目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop/tmp</value>
    </property>
</configuration>

配置yarn-env.sh文件,找到该行:

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

修改为:

export JAVA_HOME=/usr/java/jdk1.8.0_241

配置hdfs-site.xml文件,新增以下内容:

<configuration>
    <!--指定hdfs备份数量,小于等于从节点数目-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
		
  <!--  自定义hdfs中namenode的存储位置-->
  <!--  <property>-->
  <!--      <name>dfs.namenode.name.dir</name>-->
  <!--      <value>file:/usr/hadoop/dfs/name</value>-->
  <!--  </property>-->
  <!--  自定义hdfs中datanode的存储位置-->
  <!--  <property>-->
  <!--      <name>dfs.datanode.data.dir</name>-->
  <!--      <value>file:/usr/hadoop/dfs/data</value>-->
  <!--</property>-->
</configuration>

配置mapred-site.xml文件,通过cp命令生成不带后缀 template 的文件

cp mapred-site.xml.template mapred-site.xml

编辑mapred-site.xml文件,新增以下内容:

<configuration>
    <!--hadoop的MapReduce程序运行在YARN上-->
    <!--默认值为local-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置yarn-site.xml文件

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>     
    <!--nomenodeManager获取数据的方式是shuffle-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>  
</configuration>

修改slaves文件,删除原有内容,新增即将要建立的三个虚拟机的hostname

slave1
slave2
slave3

3.2 克隆多台slave机

使用master镜像克隆3台虚拟机(创建完整克隆),名称分别为slave1、slave2、slave3,根据电脑配置情况可以自由设置数量,以下步骤与上方执行过程相同。

  • 修改每个slave的主机名,方法同2.3

  • 进入etc/sysconfig/network-scripts中,修改每台slave机的ip地址 ,方法同1.3

  • 修改master和每个slave机的hosts文件,方法同2.4,将以下代码更新到etc/hosts文件中

192.168.32.10 master
192.168.32.20 slave1
192.168.32.30 slave2
192.168.32.40 slave3

如下图,克隆3台master虚拟机

在这里插入图片描述

3.3 可选—同步hadoop配置(仅当master与slave配置不同时使用)

将master机上的hadoop文件夹发送给三台slave机

scp -r /usr/hadoop slave1:/usr/hadoop 
scp -r /usr/hadoop slave2:/usr/hadoop 
scp -r /usr/hadoop slave3:/usr/hadoop 

4. 配置SSH登录

4.1 生成公钥私钥

在master和每台slave上,使用rsa算法产生公钥和私钥(安装过程中,使用“Enter”键确定)

ssh-keygen -t rsa

查看生成的私钥id_rsa和公钥id_rsa.pub

cd /root/.ssh/
ls

4.2 发送公钥

在master上创建一个大家通用的公钥authorized_keys,修改authorized_keys权限,并将这个公钥发送给每个slave

cat id_rsa.pub >> authorized_keys
chmod 644 authorized_keys
systemctl restart sshd.service
scp /root/.ssh/authorized_keys slave1:/root/.ssh
scp /root/.ssh/authorized_keys slave2:/root/.ssh
scp /root/.ssh/authorized_keys slave3:/root/.ssh

4.3 Linux文件权限介绍

此处为知识介绍,非hadoop配置步骤

  • 1-3位数字代表文件所有者的权限

  • 4-6位数字代表同组用户的权限

  • 7-9位数字代表其他用户的权限

  • 读取的权限等于4,用r表示

  • 写入的权限等于2,用w表示

  • 执行的权限等于1,用x表示

    444 r–r--r–
    600 rw-------
    644 rw-r–r--
    666 rw-rw-rw-
    700 rwx------
    744 rwxr–r--
    755 rwxr-xr-x
    777 rwxrwxrwx

4.4 验证SSH

ssh登录检验,不需要密码即可登录路径从’~/.ssh ‘变成’~’,登出为exit

ssh master
ssh slave1
exit
ssh slave2
exit
ssh slave3
exit

注:只实现了master到slave单向免登陆!!!

如下图,实现了免密登录

在这里插入图片描述

5. 准备运行hadoop

5.1 格式化HDFS

在master机上,进入hadoop下的bin文件夹,运行以下代码:

hdfs namenode -format

注意:只需格式化一次!多次格式化会导致NameNode和DataNode的集群ID值不匹配,需要在格式化前删除NameNode,DataNode、日志等文件夹。

5.2 启动hadoop

进入hadoop中的sbin文件夹下,运行:

start-dfs.sh
start-yarn.sh

5.3 查看hadoop进程

jps

如下图

在这里插入图片描述

5.4 通过web端访问hadoop

查看NameNode、DataNode:
http://192.168.32.10:50070
查看SecondaryNameNode信息:
http://192.168.32.10:50090
查看YARN界面:
http://192.32.10:8088

如下图

在这里插入图片描述

附1:

//在安装虚拟前出现了以下不兼容的问题,把百度到的解决方法附带过来,作为笔记,感谢回头的浪子i大佬

解决VMware Workstation 15 与Device/Credential Guard不兼容的问题

产生原因

  1. Device Guard或Credential Guard与Workstation不兼容
  2. 与Windows系统的Hyper-V不兼容

解决方法

步骤一:禁用Device Guard或Credential Guard
1. 禁用用于启动Credential Guard的组策略设置
  1. 在主机操作系统上,快捷键win+r,键入gpedit.msc,然后单击“ 确定”。本地组策略编辑器打开。
  2. 转至本地计算机策略 > 计算机配置 > 管理模板>系统 >Device Guard> 打开基于虚拟化的安全。
  3. 右击编辑,选择"已禁用"",最后确定
2. 转到“ 控制面板” >“ 卸载程序” >“ 打开或关闭Windows功能”以关闭Hyper-V。
3. 选择不重启
步骤二:通过命令关闭Hyper-V(控制面板关闭Hyper-V起不到决定性作用,要彻底关闭Hyper-V)
以管理员身份运行 命令提示符

运行下面命令

bcdedit /set hypervisorlaunchtype off
步骤三:重启电脑,启动虚拟机

附2:

以下是Linux系统下用到的部分命令

cd / 切换到根目录

pwd 显示当前所在目录

ls 显示当前目录下的可见文档

ls -a 显示当前目录下的所有我文档(包括隐藏文件)

ls -l (或者 ll) 显示当前目录下文件的详细信息

mkdir 创建新目录

rmdir 删除(当前)空目录

cp 复制档案或目录

rm -rf 直接删除目录及其目录下的子目录

mv 移动档案与目录,或更名

shutdown -h now 关机

shutdown -r now 重启计算机

logout 用户注销

clear 清屏

vi (vim是vi的升级版本,兼容了vi的指令,还有部分新的特性)编辑器下到的部分命令

vi 进入某文件,此时处于"命令模式"下

键盘按下字母 i 或a,进入"插入模式",此时可以编辑了

编辑完成以后,按‘’ESC‘’键,输入": ",进入底线模式,输入wq保存退出,或者q!退出不保存,q退出。

新手上路,大佬求放过。在老师原有的文档上做了完善,对新手更加友好,在此分享笔记。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值