栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

基于hadoop的分布式存储平台的搭建与验证(搭建hadoop伪分布式环境步骤)

基于hadoop的分布式存储平台的搭建与验证(搭建hadoop伪分布式环境步骤)

文章目录

手把手带你搭建Hadoop集群

虚拟机配置

修改网络配置文件⚠ ens33找不到三台机子--关闭防火墙三台机子--关闭selinux三台机子--修改主机名三台机子--主机名与ip地址映射三台机子--时钟同步三台机子 -- 添加普通用户三台机子--定义同一目录三台机子hadoop用户免登三台机子--关机重启安装jdk环境 Hadoop下载安装

服务部署规划

修改 core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers创建目录拷贝文件 hadoop环境变量配置格式化集群启动集群关闭集群验证集群补充

rsync创建 xsync脚本启动hadoop集群的脚本所有机器查看进程脚本 zookeeper 安装

修改配置文件添加myid配置三台机子配置环境变量启动zookeeper服务关闭zookeeper集群

手把手带你搭建Hadoop集群

视频学习链接 准备工作: Vmware 三台 centos7 虚拟机 NAT 搭建 Hadoop 集群


虚拟机配置

提一句,当在敲linux命令行时,可以利用 tab键进行补全哈~


修改网络配置文件

-ens33网卡


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

从 centos7 64位 克隆 三台机子: centos7-001-100、centos7-002-110、centos7-003-120


例: centos7 -001-100


IPADDR="192.168.237.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.237.2"
DNS1="8.8.8.8"

依次修改克隆机子 ipaddr 192.168.237.110 、 192.168.237.120, 同上配置文件


修改后,进行重启


systemctl restart network

查看当前网络情况


ifconfig

⚠ ens33找不到

注意:若遇到 找不到 ens33的情况,可参考依次执行如下命令:


ifconfig ens33 up
systemctl stop NetworkManager
ifup ens33
systemctl restart network.service

接下来,对三台虚拟机进行环境配置。我们可以采用 xshell 远程连接虚拟机的方式,进行命令行配置。当然,也可以直接在虚拟机里进行操作。


由于下面的命令,对三台虚拟机都适用,这边就偷个懒,在xshell,选择发送到所有会话。执行如下命令:



三台机子–关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

三台机子–关闭selinux
vim /etc/sysconfig/selinux

修改如下:



补充 vim编辑器 快捷键说明:


vim filename # 进入vim编辑器


按下 I 进入编辑模式 按下 Esc 退出该模式, 按下 : 输入wq 保存并退出


:q! # 强制退出不保存


三台机子–修改主机名
vim /etc/hostname

删除文件中内容,依次添加名字如下:


node01.j1ayhey.com # 第一台机子配置
node02.j1ayhey.com # 第二台机子配置
node03.j1ayhey.com # 第三台机子配置


三台机子–主机名与ip地址映射
vim /etc/hosts

三台都执行下面命令


192.168.237.100 node01.j1ayhey.com node01
192.168.237.110 node02.j1ayhey.com node02
192.168.237.120 node03.j1ayhey.com node03


三台机子–时钟同步

通过网络进行时钟同步


三台机子安装 ntpdate


yum -y install ntpdate

阿里云时钟同步服务器


ntpdate ntp4.aliyun.com

三台机器定时任务


crontab -e

*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;


三台机子 – 添加普通用户

三台机子统一添加普通用户hadoop


useradd hadoop
passwd hadoop

设置普通用户密码 (至少八个字符,且不能同用户名重复)


j1ay7777

给以sudo权限


visudo

按下 /ALL 进行搜索,找到如下,进行添加, 可将光标停留 root这行, 按下 yy,再按一下 p,就会直接复制该行,我们只需将 root 改成 hadoop 即可。



三台机子–定义同一目录
mkdir -p /j1ay/soft  # 软件压缩包存放目录
mkdir -p /j1ay/install # 软件解压后存放目录
chown -R hadoop:hadoop /j1ay # 将文件夹权限更改为hadoop用户

三台机子hadoop用户免登

生成公钥与私钥


ssh-keygen -t rsa

按 enter 就完事


拷贝公钥到node01服务器


ssh-copy-id node01

node01服务器将公钥拷贝给 node02与node03服务器


cd /home/hadoop/.ssh/
scp authorized_keys node02:$PWD
scp authorized_keys node03:$PWD

按 yes 即可,输入对应的服务器密码


测试:从node01免登到node02服务器


ssh node02

三台机子–关机重启
sudo reboot -h now

安装jdk环境

jdk8下载教程 将 jdk-8u311-linux-x64.tar.gz 下载, 上传到 node01服务器上



然后在node01服务器下,解压执行以下命令:


cd /j1ay/soft/
tar -xzvf jdk-8u311-linux-x64.tar.gz -C /j1ay/install/

接下来修改环境变量:


sudo vim /etc/profile

在最后,添加配置文件:


# 配置jdk环境变量
export JAVA_HOME=/j1ay/install/jdk1.8.0_311
export PATH=$PATH:$JAVA_HOME/bin

修改生效


source /etc/profile

node01配置完成后,进行配置 node02、node03


直接进行拷贝:


cd /j1ay/install/
scp -r jdk1.8.0_311/ node02:$PWD
scp -r jdk1.8.0_311/ node03:$PWD

配置环境变量同 node1


Hadoop下载安装

下载地址


跟之前一样安装jdk步骤一样,简单介绍如下:


cd /j1ay/soft/
ls
tar -xzvf hadoop-3.3.1.tar.gz -C /j1ay/install/

cd /j1ay/install/hadoop-3.3.1/
bin/hadoop checknative

想要支持openssl,执行如下命令


sudo yum -y install openssl-devel

服务部署规划


修改hadoop-env.sh


第一台机子node01:


cd /hadoop-3.3.1/etc/hadoop/
vim hadoop-env.sh

按下 shift + g, 输入 /JAVA_HOME 进行全局搜索,找到 export JAVA_HOME ,将前面 # 去掉,修改如下:


export JAVA_HOME=/j1ay/install/jdk1.8.0_311

修改 core-site.xml

node01 :


vim core-site.xml

添加配置如下:



  
    fs.defaultFS
    hdfs://node01:8020
  
  
    hadoop.tmp.dir
    /j1ay/install/hadoop-3.3.1/hadoopDatas/tempDatas
  
  
  
    io.file.buffer.size
    4096
  
  
  
    fs.trash.interval
    10080
  


hdfs-site.xml
vim hdfs-site.xml


    
    
    
      dfs.namenode.secondary.http-address
      node01:9868
    
    
      dfs.namenode.http-address
      node01:9870
    
    
    
      dfs.namenode.name.dir
      file:///j1ay/install/hadoop-3.3.1/hadoopDatas/namenodeDatas
    
     
    
      dfs.datanode.data.dir
      file:///j1ay/install/hadoop-3.3.1/hadoopDatas/datanodeDatas
    
    
    
      dfs.namenode.edits.dir
      file:///j1ay/install/hadoop-3.3.1/hadoopDatas/dfs/nn/edits
    
    
    
      dfs.namenode.checkpoint.dir
      file:///j1ay/install/hadoop-3.3.1/hadoopDatas/dfs/snn/name
    
     
    
      dfs.namenode.checkpoint.edits.dir
      file:///j1ay/install/hadoop-3.3.1/hadoopDatas/dfs/nn/snn/edits
    
    
      dfs.replication
      3
    
    
      dfs.permissions.enabled
      false
    
    
      dfs.blocksize
      134217728
    


mapred-site.xml
vim mapred-site.xml


    
        mapreduce.framework.name
        yarn
    
    
        mapreduce.job.ubertask.enable
        true
    
    
        mapreduce.jobhistory.address
        node01:10020
    
    
        mapreduce.jobhistory.webapp.address
        node01:19888
    
    
        yarn.app.mapreduce.am.env
        HADOOP_MAPRED_HOME=${HADOOP_HOME}
    
    
        mapreduce.map.env
        HADOOP_MAPRED_HOME=${HADOOP_HOME}
    
    
        mapreduce.reduce.env
        HADOOP_MAPRED_HOME=${HADOOP_HOME}
    


yarn-site.xml
vim yarn-site.xml


    
        yarn.resourcemanager.hostname
        node01
    
   
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    


workers
vim workers

将原内容替换成


node01
node02
node03

创建目录
mkdir -p /j1ay/install/hadoop-3.3.1/hadoopDatas/tempDatas
mkdir -p /j1ay/install/hadoop-3.3.1/hadoopDatas/namenodeDatas
mkdir -p /j1ay/install/hadoop-3.3.1/hadoopDatas/datanodeDatas
mkdir -p /j1ay/install/hadoop-3.3.1/hadoopDatas/dfs/nn/edits
mkdir -p /j1ay/install/hadoop-3.3.1/hadoopDatas/dfs/snn/name
mkdir -p /j1ay/install/hadoop-3.3.1/hadoopDatas/dfs/nn/snn/edits

拷贝文件

将 hadoop-3.3.1 拷贝到node02、node03


cd /j1ay/install/
scp -r hadoop-3.3.1/ node02:$PWD
scp -r hadoop-3.3.1/ node03:$PWD

hadoop环境变量配置

三台机子都得进行hadoop的环境变量配置


sudo vim /etc/profile

export HADOOP_HOME=/j1ay/install/hadoop-3.3.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

配置生效


source /etc/profile

格式化集群

首次启动HDFS时,必须对其进行格式化操作。只有在首次启动的时候需要,以后不需要

node01执行一遍即可


hdfs namenode -format


说明成功~


启动集群

在node01,执行以下命令


start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver


启动成功~


关闭集群
stop-dfs.sh
stop-yarn.sh
mapred --daemon stop historyserver

# 单个进程逐个启动

# 主节点,即node01
hdfs --daemon start namenode
# node01
hdfs --daemon start secondarynamenode
# 每个节点
hdfs --daemon start datanode
# node01
yarn --daemon start resourcemanager
# 每个结点
yarn --daemon start nodemanager

验证集群

① 访问 web ui界面


hdfs集群访问地址 http://192.168.237.100:9870/

yarn 集群访问地址 http://192.168.237.100:8088/

jobhistory 访问地址 http://192.168.237.100:19888/


② 运行一个mr 例子


hadoop jar /j1ay/install/hadoop-3.3.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 5 5

若能得出结果,即安装成功~


注意,关闭时,先关闭集群,再关闭虚拟机,再关闭电脑。


补充
rsync
sudo yum -y install rsync

命令 选项参数 要拷贝文件路径或名称 目的用户@主机:目的路径/名称 例:


rsync -av /j1ay/soft/jdk-8u311-linux-x64.tar.gz node02:/j1ay/soft/
rsync -av /j1ay/soft hadoop@node02:/j1ay/soft

创建 xsync脚本
cd ~
mkdir bin
cd /home/hadoop/bin
touch xsync
vim xsync

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`

echo $fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo $pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=1; host<4; host++)); do
	   echo ------------------- node0$host -------------------
	   rsync -av $pdir/$fname $user@node0$host:$pdir
done

提权,使脚本具有执行权限


cd ~/bin/
chmod 777 xsync

运行 将 bin下的文件分发到node02,node03


xsync /home/hadoop/bin/

启动hadoop集群的脚本

在 /home/hadoop/bin 目录下创建脚本


cd /home/hadoop/bin/
vim hadoop.sh

#!/bin/bash
case $1 in
"start" ) {
 source /etc/profile;
 /j1ay/install/hadoop-3.3.1/sbin/start-dfs.sh
 /j1ay/install/hadoop-3.3.1/sbin/start-yarn.sh
 /j1ay/install/hadoop-3.3.1/sbin/mr-jobhistory-daemon.sh start historyserver
};;
"stop"){

 /j1ay/install/hadoop-3.3.1/sbin/stop-dfs.sh
 /j1ay/install/hadoop-3.3.1/sbin/stop-yarn.sh
 /j1ay/install/hadoop-3.3.1/sbin/mr-jobhistory-daemon.sh stop historyserver
};;
esac

修改脚本权限


chmod 777 hadoop.sh
./hadoop.sh start # 启动hadoop集群
./hadoop.sh stop  # 停止hadoop集群

所有机器查看进程脚本

依旧在bin目录下


vim xcall

#!/bin/bash

params=$@
for (( i=1; i <= 3; i = $i + 1)); do
	echo =========== node0$i $params ============
	ssh node0$i "source /etc/profile;$params"
done
	

然后一键查看进程并分发该脚本

chmod 777 xcall
xsync /home/hadoop/bin/

所有机器查看进程

xcall jps

zookeeper 安装

下载地址


同之前的步骤,首先解压。


cd /j1ay/soft/
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C /j1ay/install/

修改配置文件

node01:


cd /j1ay/install/apache-zookeeper-3.7.0-bin/conf/
mkdir -p /j1ay/install/apache-zookeeper-3.7.0-bin/zkdatas
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

修改如下:



添加myid配置
# 注意路径为  zkdatas  [hadoop@node01 zkdatas]$ 
echo 1 > /j1ay/install/apache-zookeeper-3.7.0-bin/zkdatas/myid

node01, 执行安装包分发


若没编解 xsync脚本,也可使用 scp 命令进行拷贝


xsync /j1ay/install/apache-zookeeper-3.7.0-bin/

在node02修改myid的值为2


echo 2 > /j1ay/install/apache-zookeeper-3.7.0-bin/zkdatas/myid

在node03修改myid的值为3


echo 3 > /j1ay/install/apache-zookeeper-3.7.0-bin/zkdatas/myid

三台机子配置环境变量
sudo vim /etc/profile

添加如下:


export ZK_HOME=/j1ay/install/apache-zookeeper-3.7.0-bin
export PATH=$PATH:$ZK_HOME/bin

source /etc/profile

启动zookeeper服务
# 启动
zkServer.sh start
# 查看启动状态
zkServer.sh status

状态,一个是 leader,其余是 follower


关闭zookeeper集群
zkServer.sh stop

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772151.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号