Hadoop的安装与配置v2.0-Hadoop3.x

前面那篇文章安装的是hadoop2,此次我们搭建hadoop3,环境还是多搭几次找找感觉。

环境节点配置

node1node2node3
NNSN
DNDNDN

node1 是namenode, node2是secondary namenode, node1~node3同时也是datanode

1 克隆节点

参考文章
https://blog.csdn.net/jinxilongjxl/article/details/108162296
克隆出3个节点node1,node2,node3
在这里插入图片描述

2 配置网络

2.1 修改网卡配置

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

删除uuid,修改ip
在这里插入图片描述
删除70-persistent-net.rules,centos7的话没有就不用删除

rm -rf /etc/udev/rules.d/70-persistent-net.rules

2.2 修改host文件

vim /etc/hosts

在这里插入图片描述

3 安装JDK

3.1 上传安装包

在家目录创建两个文件夹installpkgs放安装包,app放解压出来的东西

cd ~
mkdir installpkgs
mkdir app

推荐使用xftp,winscp,filezilla等ftp工具
在这里插入图片描述

3.2 解压

tar zxvf jdk-8u231-linux-x64.tar.gz -C ~/app

重命名JDK包好记点

cd ~/app
 mv jdk1.8.0_231/ JDK8

3.3 配置环境变量

 vim .bash_profile 

在这里插入图片描述
使配置立即生效

 source .bash_profile

3.4 配置host文件

vim /etc/hosts

在这里插入图片描述
node2,node3 同理

3.5 免密登陆

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node3

在这里插入图片描述
这个ssh-copy-id 命令能直接在被登录的主机用户目录下自动创建.ssh目录,及authorized_keys文件
在这里插入图片描述
测试免密登录
在这里插入图片描述

3.6 关闭防火墙

查看防火墙状态
service iptables status
停止防火墙
service iptables stop 
永久关闭防火墙
chkconfig iptables off

如果是centos7
查看防火墙状态
systemctl status firewalld.service
停止防火墙
systemctl stop firewalld.service
永久关闭防火墙
systemctl disable firewalld.service

4 安装Hadoop3

4.1 下载安装包

https://archive.apache.org/dist/hadoop/common/
在这里插入图片描述

4.2 上传安装包

在这里插入图片描述

4.3 解压,重名安装包

tar zxvf hadoop-3.1.0.tar.gz -C ~/app
cd ~/app
mv hadoop-3.1.0/ HADOOP3

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

4.4 部署和配置

4.4.1 配置HADOOP环境变量

vim ~/.bash_profile

JAVA_HOME=/root/app/JDK8
HADOOP_HOME=/root/app/HADOOP3
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HADOOP_HOME
export JAVA_HOME
export PATH

在这里插入图片描述

source ~/.bash_profile

在这里插入图片描述

4.4.2 hadoop-env.sh

cd ~/app/HADOOP3/etc/hadoop/
vim hadoop-env.sh

export JAVA_HOME=/root/app/JDK8
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

在这里插入图片描述
hadoop3为了提升安全性,添加了HDFS_NAMENODE_USER,HDFS_DATANODE_USER,
HDFS_SECONDARYNAMENODE_USER,实际情况不能都用root,此处仅是为了方便搭建环境,进行演示

4.4.3 core-site.xml

先创建一个data目录
在这里插入图片描述

vim core-site.xml

<configuration>
   <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9820</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/app/HADOOP3/data</value>
    </property>
</configuration>

在这里插入图片描述
说明:
fs.defaultFS指定namenode地址
hadoop.tmp.dir指定元数据的存放目录

3.4.4 hdfs-site.xml

 vim hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:9868</value>
    </property>
</configuration>

在这里插入图片描述

4.4.5 workers文件

在这里插入图片描述

vim workers

在这里插入图片描述

4.5 拷贝文件到从节点

4.5.1 拷贝jdk

在node1上执行

scp -r ~/app/JDK8 root@node2:/root/app/
scp -r ~/app/JDK8 root@node3:/root/app/

4.5.2 拷贝bash_profile

scp -r ~/.bash_profile root@node2:/root/.bash_profile
scp -r ~/.bash_profile root@node3:/root/.bash_profile

在这里插入图片描述

在node2上执行

source ~/.bash_profile

在这里插入图片描述
在node3上执行

source ~/.bash_profile

在这里插入图片描述

4.5.3 拷贝hadoop目录

scp -r ~/app/HADOOP3/ root@node2:/root/app/
scp -r ~/app/HADOOP3/ root@node3:/root/app/

4.6 格式化namenode

hdfs namenode -format

确认没有报错
在这里插入图片描述

4.7 启动

start-dfs.sh

确认启动成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.8 测试访问

在这里插入图片描述

5 HDFS HA高可用

之前只有一个NN,万一挂了就都跪了,高可用就是准备多个NN,一个active,一个standby。
环境节点配置

node1node2node3
NNNN
ZKFCZKFC
JNJNJN
ZKZKZK
DNDNDN

NN:namenode 一个active,一个standby
zkfc:负责监控NN的状态,万一挂了,就把standby切换为active
JN:journal node负责存放两个NN的公共的edits等元数据
DN:datanode 用来存实际的数据块
ZK:zookeeper节点,zkfc节点把监控NN的心跳数据发送给zk,如果NN挂了,zk会进行选举

5.1 配置Zookeeper

a) 从官网或者附件下载链接中下载zookeeper

b) 上传到linux
在这里插入图片描述
c) 解压

cd ~/installpkgs
 tar zxvf zookeeper-3.4.6.tar.gz -C ~/app

5.1.1 修改zk配置文件zoo.cfg

# 创建一个存放数据的data目录
mkdir /root/app/zookeeper-3.4.6/data

# 拷贝一份配置文件
cp ~/app/zookeeper-3.4.6/conf/zoo_sample.cfg ~/app/zookeeper-3.4.6/conf/zoo.cfg

# 编辑配置文件
vim ~/app/zookeeper-3.4.6/conf/zoo.cfg

在这里插入图片描述

5.1.2 创建myid文件

cd /root/app/zookeeper-3.4.6/data
echo 1 > myid
more myid

在这里插入图片描述

5.1.3 拷贝zk到其他节点

 scp -r ~/app/zookeeper-3.4.6/ node2:/root/app/
  scp -r ~/app/zookeeper-3.4.6/ node3:/root/app/
vim myid
 more myid 

node2,node3的myid修改下
在这里插入图片描述
在这里插入图片描述

5.1.4 配置环境变量

为了方便启动zk,加个环境变量,node2,node3同理

vim ~/.bash_profile
source ~/.bash_profile

scp ~/.bash_profile node3:/root/.bash_profile
scp ~/.bash_profile node3:/root/.bash_profile

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

5.1.5 记得关闭防火墙

# centos7
# 查看防火墙状态
systemctl status firewalld.service
# 停止防火墙
systemctl stop firewalld.service
# 永久关闭防火墙
systemctl disable firewalld.service

在这里插入图片描述
node3 同理关闭

5.1.6 启动zk

zkServer.sh start

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

5.2 Hadoop配置文件

5.2.1 hadoop-env.sh

cd ~/app/HADOOP3/etc/hadoop/
vim hadoop-env.sh

export JAVA_HOME=/root/app/JDK8
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_ZKFC_USER=root
export HDFS_JOURNALNODE_USER=root

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

5.2.2 core-site.xml

vim core-site.xml

<configuration>
   <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/app/HADOOP3/data</value>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>node1:2181,node2:2181,node3:2181</value>
    </property>
</configuration>

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

  • fs.defaultFS 默认文件系统的

5.2.3 hdfs-site.xml

vim hdfs-site.xml

<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
    </property>
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1</name>
        <value>node1:8020</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn2</name>
        <value>node2:8020</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.mycluster.nn1</name>
        <value>node1:9870</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.mycluster.nn2</name>
        <value>node2:9870</value>
    </property>
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://node1:8485;node2:8485;node3:8485/wen</value>
    </property>
    <property>
        <name>dfs.client.failover.proxy.provider.mycluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
            shell(/bin/true)
        </value>
    </property>
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/journalnode/data</value>
    </property>
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
</configuration>

5.2.4 workers

vim workers

node1
node2
node3

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

5.3 复制文件到其他节点

scp hadoop-env.sh root@node2:/root/app/HADOOP3/etc/hadoop/
scp hadoop-env.sh root@node3:/root/app/HADOOP3/etc/hadoop/

scp core-site.xml root@node2:/root/app/HADOOP3/etc/hadoop/
scp core-site.xml root@node3:/root/app/HADOOP3/etc/hadoop/

scp hdfs-site.xml root@node2:/root/app/HADOOP3/etc/hadoop/
scp hdfs-site.xml root@node3:/root/app/HADOOP3/etc/hadoop/

scp workers root@node2:/root/app/HADOOP3/etc/hadoop/
scp workers root@node3:/root/app/HADOOP3/etc/hadoop/

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

5.4 免密登录

之前node1可以免密登录其他节点,现在node2也做一个免密登录

ssh-keygen

ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node3

在这里插入图片描述

5.5 启动journalnode

hdfs --daemon start journalnode

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

5.6 格式化namenode

hdfs namenode -format

在这里插入图片描述

5.7 复制元数据到另一个NN上

我们在node1上进行格式化,因为node2也是NN,所以需要把元数据复制一份到node2上

cd /root/app/HADOOP3
scp -r data root@node2:/root/app/HADOOP3/

在这里插入图片描述

5.8 格式化ZKFC

hdfs zkfc -formatZK

在这里插入图片描述

5.9 启动集群

start-dfs.sh

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

5.10 浏览器测试

node1
在这里插入图片描述

node2
在这里插入图片描述

5.11 高可用测试

kill -9 [active namenode的pid]

干掉active的node2后,node1成为active
在这里插入图片描述
在这里插入图片描述

附件安装介质下载

链接:https://pan.baidu.com/s/1DlB5NuVJWBYjPa1FzNxx4A
提取码:8ko9

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值