桥接网络配置

输入命令:

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

配置好ip地址网关等

ONBOOT="yes"

IPADDR=10.1.12.197
GATEWAY=10.1.0.1
NETMASK=225.225.192.0
DNS1=114.114.114.114
DNS2=8.8.8.8

重启网络:

service network restart  #重启网卡network服务
systemctl restart network  #重启网卡
systemctl enable network #开机启动网卡

NAT网络配置

设置网络

hadoop关联规则预测 hadoop联网_hadoop


点击更改设置

hadoop关联规则预测 hadoop联网_linux_02

设置IP地址和子网掩码,一般都有自动生成的ip如果有默认即可,没有ip自行设置不用和我的ip一样,设置好后点击NAT设置

hadoop关联规则预测 hadoop联网_linux_03


设置网关,这个一般自动生成的有,有则默认没有自行设置

hadoop关联规则预测 hadoop联网_网络_04


勾选如下图选项然后确定

hadoop关联规则预测 hadoop联网_网络_05

设置Windows网络,在任务栏中点击搜索“网络连接”点击“查看网络连接”

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_06


hadoop关联规则预测 hadoop联网_hadoop关联规则预测_07

双击打开

hadoop关联规则预测 hadoop联网_网络_08

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_09

输入命令配置ifcfg-ens33:

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

hadoop关联规则预测 hadoop联网_网络_10

将做如图设置:

MACADDR=preserve
ETHTOOL_OPTS="autoneng on"
IPADDR=ip地址和VMnet8处于同一网段即可
NETMASK=子网掩码
GATEWAY=默认网关
DNS1=DNS服务器ip
DNS2=DNS服务器ip

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_11

使用cmd可查看本机IP及DNS服务:

hadoop关联规则预测 hadoop联网_zookeeper_12

配置完后按键盘ESC键然后shift+:输入wq保存退出

service network restart  //输入命令重启网络

hadoop关联规则预测 hadoop联网_linux_13

ping一下网络是否连通,如图则表示ping通了

ping百度和宿主机

hadoop关联规则预测 hadoop联网_linux_14

设置时间同步

关闭防火墙操作:

firewall-cmd --state   查看防火墙状态“not running”出现表示关闭,“running”表示开启
systemctl stop firewalld.service  关闭防火墙
service firewalld restart  重启防火墙

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_15

输入命令进入:

crontab -e

输入以下内容,并保存退出:

0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

hadoop关联规则预测 hadoop联网_linux_16

输入命令:

/usr/sbin/ntpdate cn.pool.ntp.org

出现如图配置成功:

hadoop关联规则预测 hadoop联网_zookeeper_17

搭建Hadoop集群

一、配置虚拟机集群环境

1、关闭防火墙

查看防火墙当前状态(默认running)

firewall-cmd --state
或
systemctl status firewalld.service

关闭防火墙(运行状态变为 not running)

systemctl stop firewalld.service

禁止防火墙开机启动

systemctl disable firewalld.service

重新启动防火墙

systemctl start firewalld.service

使防火墙开机启动

systemctl enable firewalld.service

2、新建安装目录(记住不然找不到你就完了)

目录“/opt”常用用于存放第三方软件包和数据文件。创建一个文件夹“packages”,用来存放软件安装包

mkdir /opt/packages

创建jdk安装目录

mkdir /usr/local/java

创建hadoop安装目录

mkdir /usr/local/hadoop
mkdir /usr/local/hadoop/temp
mkdir /usr/local/hadoop/dfs
mkdir /usr/local/hadoop/dfs/name
mkdir /usr/local/hadoop/dfs/data

创建zookeeper安装目录

mkdir /usr/local/zookeeper

3、下载、安装和配置JDK

  1. 下载
    根据自己需要下载安装jdk版本
    在本文中使用的安装包:百度网盘链接:https://pan.baidu.com/s/1GgjsA0SUqtAARerLR9EAWA 提取码:ufsh
    官网下载地址:https://www.oracle.com/
  2. hadoop关联规则预测 hadoop联网_网络_18


  3. hadoop关联规则预测 hadoop联网_网络_19


  4. hadoop关联规则预测 hadoop联网_hadoop_20

  5. 卸载centOS 7系统预装的jdk
    查看系统已安装的OpenJDk
rpm -qa|grep openjdk

将查到的OpenJDk全部卸载

rpm -e --nodeps

hadoop关联规则预测 hadoop联网_zookeeper_21

  1. 将下载的jdk上传到虚拟机
    将jdk上传到“/opt/packages”
  2. 安装配置jdk
    将jdk解压到“/usr/local/Java”
tar -zxvf jdk-19_linux-x64_bin.tar.gz -C /usr/local/java

修改“/etc/profile”,配置jdk系统环境变量

vim /etc/profile

在“/etc/profile”文件末尾加入以下类容

export JAVA_HOME=/usr/local/java/jdk1.8.0_351
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib

刷新“/etc/profile”

source /etc/profile

查看jdk信息验证jdk是否安装成功,如图说明成功了

java -version

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_22

4、克隆虚拟机和配置主机IP映射

  1. 克隆虚拟机克隆两台分别命名为“hadoop02”和“hadoop03”


  2. 修改另外两台hadoop的主机名
hostnamectl set-hostname [主机名]
  1. 修改另外两台hadoop的IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_23

重启网络

service network restart

hadoop关联规则预测 hadoop联网_linux_24

  1. 配置主机映射
    在三个节点上分别操作,修改hosts文件
vim /etc/hosts

hadoop关联规则预测 hadoop联网_网络_25

在末尾处添加以下内容

192.168.237.XXX hadoop01
192.168.237.XXX hadoop02
192.168.237.XXX hadoop03

三台主机相互ping一下是否能ping通

hadoop关联规则预测 hadoop联网_hadoop_26

5、配置集群各节点SSH免密码登录

分别在3个节点,生成密钥文件

ssh-keygen -t rsa

hadoop关联规则预测 hadoop联网_网络_27

分别在3个节点上执行

ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

hadoop关联规则预测 hadoop联网_网络_28

在各节点用以下命令测试SSH免密登录

ssh hadoop01
ssh hadoop02
ssh hadoop03

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_29

二、搭建Hadoop高可用集群

1、安装配置与配置ZooKeeper

  1. 下载地址:https://archive.apache.org/dist/zookeeper/
  2. 将下载的ZooKeeper上传到hadoop01节点的“/opt/packages”
cd /opt/packages
  1. 将ZooKeeper压缩包减压到“/opt/programs”
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/zookeeper
  1. 切换到ZooKeeper安装目录
cd /usr/local/zookeeper

在该目录下分别创建文件夹“data”和“logs”

mkdir data
mkdir logs

切换到新建data目录下,新建一个名为“myid”的文件,并写入id号“1”

echo '1'>myid
  1. 进入ZooKeeper安装目录下的“conf”文件夹,将“zoo_sample.cfg”文件复制一份并重命名为“zoo.cfg”
cd /usr/local/zookeeper/apache-zookeeper-3.7.1-bin/conf
cp zoo_sample.cfg zoo.cfg

修改zoo.cfg文件

vim zoo.cfg

将文件中的“dataDir”

dataDir=/usr/local/zookeeper/data

再在文件末尾添加以下内容

dataLogDir=/usr/local/zookeeper/logs
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
  1. 将hadoop01整个节点的ZooKeeper安装目录远程复制到hadoop02和hadoop03节点
scp -r /usr/local/zookeeper root@hadoop02:/usr/local
scp -r /usr/local/zookeeper root@hadoop03:/usr/local

此处容易报错的几点:

  • 错误1:“Permission denied, please try again.”,密码错误重新输入正确的密码即可,因为我们在Linux系统中输入密码是无法明码显示,所以在输入密码时要输入正确密码,防止在一些操作中造成不可逆结果。如图
  • 错误2:“No such file or directory”,没有这样的文件或目录,请仔细查看直接的文件夹名或者目录是否输入正确

hadoop关联规则预测 hadoop联网_网络_30

  • 错误3:“Permission denied”,没有权限,请将普通用户名改为root用户,比如“liao@hadoop02”中的“liao”改为“root@hadoop02”,像下面
scp -r /usr/local/zookeeper liao@hadoop02:/usr/local
                                ↓↓
scp -r /usr/local/zookeeper liao@hadoop02:/usr/local

hadoop关联规则预测 hadoop联网_linux_31

  1. 复制完成后,将hadoop02和hadoop03节点中的myid文件值修改为对应的数字,
    即:将hadoop02节点中的/usr/local/zookeeper/apache-zookeeper-3.7.1/data/myid文件中的值改为2,
    将hadoop03节点中的/usr/local/zookeeper/apache-zookeeper-3.7.1/data/myid文件中的值改为3。如图演示:
  2. 在3个节点中分别执行以下命令,修改文件“/etc/profile”,配置ZooKeeper环境变量
vim /etc/profile

在文件末尾添加以下类容:

export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.7.1-bin
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

保存之后刷新“profile”文件,使修改生效

source /etc/profile
  1. 重启Linux系统
  2. 然后执行以下命令,启动ZooKeeper集群。启动成功后如下图所示:
zkServer.sh start    # 启动ZooKeeper服务命令
zkServer.sh stop     # 关闭ZooKeeper服务命令

hadoop关联规则预测 hadoop联网_zookeeper_32

  1. 在3个节点上分别执行下面命令来查看ZooKeeper集群状态,分别如图所示:
zkServer.sh status

hadoop关联规则预测 hadoop联网_网络_33

hadoop关联规则预测 hadoop联网_zookeeper_34

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_35

2、安装与配置Hadoop

  1. 基本信息

主机名

IP

用户

hadoop01

192.168.237.135

liao

hadoop02

192.168.237.136

liao

hadoop03

192.168.237.137

liao

  1. 安装包等信息

安装包名

安装包路径

hadoop-3.3.4.tar.gz

/opt/packages

jdk-8u351-linux-x64.tar.gz

/opt/packages

  1. 下载
  • 下载地址:https://archive.apache.org/dist/hadoop/core
  • 我这里下载的版本是3.3.4
  • 跳转到此页找到后缀为**.tar.gz** 压缩包**(警告:不管你用什么版本,下载时一定要下载后缀带.tar.gz 的压缩包)**
  1. 将下载的压缩包上传到hadoop01节点的“/opt/packages”目录下,然后进入该目录
cd /opt/packages
  1. 将“hadoop-3.3.3.tar.gz”解压到“/opt/programs”目录下
tar -zxvf hadoop-3.3.4.tar.gz -C /usr/local/hadoop
  1. 配置环境变量
    修改profile
vi /etc/profile

末尾添加:

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

重启profile

source /etc/profile
  1. 进入“/usr/local/hadoop/hadoop-3.3.3/etc/hadoop/”目录,依次修改配置文件hadoop-env.shyarn-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml
  • 修改配置文件hadoop-env.sh
vim hadoop-env.sh

找到图中“# The java implementation to use. By default, this environment”位置,修改jdk路径

vim hadoop-env.sh

hadoop关联规则预测 hadoop联网_zookeeper_36

  • 修改配置文件yarn-env.sh
    vim yarn-env.sh 在开头处加入
export JAVA_HOME=/usr/local/java/jdk1.8.0_351

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_37

  • 修改配置文件core-site.xml
vim core-site.xml

将“<.configuration>”和"<./configuration>"标签的内容修改如下:

注意要修改的地方

<configuration>
         <property>
                 <name>fs.defaultFS</name>
                 <value>hdfs://hadoop01:9000</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
         <property>
                 <name>io.file.buffer.size</name>
                 <value>131072</value>
         </property>
         <property>
                 <name>hadoop.tmp.dir</name>
                 <value>file:/usr/local/hadoop/temp</value><!--这个是之前创建temp文件夹路径-->
         </property>
         <property>
                 <name>hadoop.proxyuser.root.hosts</name>
                 <value>*</value>
         </property>
         <property>
                 <name>hadoop.proxyuser.root.groups</name>
                 <value>*</value>
         </property>
 </configuration>

hadoop关联规则预测 hadoop联网_hadoop_38


hadoop关联规则预测 hadoop联网_linux_39

  • 修改配置文件hdfs-site.xml
vim hdfs-site.xml

将“<.configuration>”和"<./configuration>"标签的内容修改如下:

<configuration>
             <property>
                 <name>dfs.namenode.secondary.http-address</name>
                 <value>hadoop01:9001</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
         <!-- 设置namenode.name目录 -->
         <property>
                 <name>dfs.namenode.name.dir</name>
                 <value>file:/usr/local/hadoop/dfs/name</value><!--这个是之前创建name文件夹路径-->
         </property>
         <!-- 设置namenode.data目录 -->
         <property>
                 <name>dfs.datanode.data.dir</name>
                 <value>file:/usr/local/hadoop/dfs/data</value><!--这个是之前创建data文件夹路径-->
         </property>
         <!-- 设置副本个数 -->
         <property>
                 <name>dfs.replication</name>
                 <value>2</value>
         </property>
         <!-- 开启webHDFS -->
         <property>
                 <name>dfs.webhdfs.enabled</name>
                 <value>true</value>
         </property>
         <property>
                 <name>dfs.permissions</name>
                 <value>false</value>
         </property>
         <property>
                 <name>dfs.web.ugi</name>
                 <value>supergroup</value>
         </property>
 </configuration>

hadoop关联规则预测 hadoop联网_hadoop关联规则预测_40


hadoop关联规则预测 hadoop联网_hadoop关联规则预测_41

  • 修改配置文件mapred-site.xml
vim mapred-site.xml

将“”和""标签的内容修改如下:

<configuration>
         <property>
                 <name>mapreduce.framework.name</name>
                 <value>yarn</value>
         </property>
         <property>
                 <name>mapreduce.jobhistory.address</name>
                 <value>hadoop01:10020</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
         <property>
                 <name>mapreduce.jobhistory.webapp.address</name>
                 <value>hadoop01:19888</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
 </configuration>

hadoop关联规则预测 hadoop联网_hadoop_42

  • 修改配置文件yarn-site.xml
vim yarn-site.xml

将“<.configuration>”和"<./configuration>"标签的内容修改如下:

<configuration>
         <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>
         <property>
                 <name>yarn.resourcemanager.address</name>
                 <value>hadoop01:8032</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
         <property>
                 <name>yarn.resourcemanager.scheduler.address</name>
                 <value>hadoop01:8030</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
         <property>
                 <name>yarn.resourcemanager.resource-tracker.address</name>
                 <value>hadoop01:8031</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
         <property>
                 <name>yarn.resourcemanager.admin.address</name>
                 <value>hadoop01:8033</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
         <property>
                 <name>yarn.resourcemanager.webapp.address</name>
                 <value>hadoop01:8088</value><!--将“hadoop01”修改为自己的主机名-->
         </property>
 </configuration>

hadoop关联规则预测 hadoop联网_hadoop_43

  • 修改配置文件workers
    将内容修改如下:
hadoop01
hadoop02
hadoop03
  1. 执行以下命令将hadoop01节点的Hadoop安装目录远程复制到hadoop02和hadoop03节点
scp -r /usr/local/hadoop/ root@hadoop02:/usr/local/
scp -r /usr/local/hadoop/ root@hadoop03:/usr/local/
  1. 在主节点的hadoop目录
    执行命令
./bin/hdfs namenode -format
  1. 报错解决
    hadoop-3.1.0启动hadoop集群时会报如下错误:
root@hadoop01:~# start-all.sh
Starting namenodes on [hadoop]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-07-16 05:45:04,628 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
......

解决方案:

source /etc/profile

然后在末尾加入加入如下的内容

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

重启profile

source /etc/profile

3、启动与测试Hadoop

  1. 由于第一次启动Hadoop之前,需要格式化NameNode。格式化NameNode需要先启动JournalNode(以后就不必了)。在3个节点上分别执行以下命令,启动JournalNode:
hdfs --daemon start journalnode
  1. 格式化NameNode
hdfs namenode -format
  1. 格式化ZKFC
hdfs zkfc -formatZK
  1. 主节点上在hadoop目录下执行:
./sbin/start-all.sh

5.在浏览器中输入“主机名或IP:9870”,注意:3.x 版本50070端口 改为9870端口了检查。 namenode 和 datanode 是否正常。UI 页面如下图所示:

hadoop关联规则预测 hadoop联网_zookeeper_44


6.在浏览器中输入“主机名或IP:8088”, 检查 Yarn 是否正常,页面如下图所示:

hadoop关联规则预测 hadoop联网_网络_45