您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

hadoop集群的搭建、完全分布式运行 一看就会

时间:2022-08-27 10:24:18  来源:  作者:鸨哥学Java

前期准备

模板机准备

修改静态IP

vim /etc/sysconfig.NETwork-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"  //这里改成static
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="caae399d-b520-4410-9425-88e6d3602534"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.10.100  //配置ip
GATEWAY=192.168.10.2    //配置网关
DNS1=192.168.10.2       //配置DNS

安装基本工具

yum install -y  net-tools vim psmisc  nc  rsync  lrzsz  ntplibzstd openssl-static tree iotop git

防火墙及开机自启

systemctl stop firewalld
systemctl disable firewalld.service
systemctl restart network

创建atguigu用户,修改密码

useradd atguigu
passwd atguigu   #新密码是ibacon66

给atguigu用户配置root权限

vim /etc/sudoers

添加第三行:

## Allow root to run any commandsanywhere
root    ALL=(ALL)     ALL
atguigu   ALL=(ALL)     NOPASSWD:ALL

记得最后:wq!退出

创建文件夹,修改其所有文件权限为atguigu

mkdir /opt/module
mkdir /opt/software

chown atguigu:atguigu /opt/module
chown atguigu:atguigu /opt/software

修改hosts文件,配置多主机映射(linuxwindows都要改)

sudo vim /etc/hosts

Linux中添加以下内容:

本地windows用utools工具带的hosts插件

192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108

非最小化安装的linux系统执行

rpm -qa | grep -i JAVA | xargs -n1 rpm -e --nodeps

克隆虚拟机

用hadoop100克隆出hadoop102、hadoop103、hadoop104

修改克隆机ip分别为102、103、104,并修改主机名

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

改谁重启谁

安装JDK、Hadoop到hadoop102

用xftp传安装包到102的/opt/software目录下

解压到hadoop102的/opt/module目录下

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

改文件名(非必须)

mv jdk1.8.0_212/ jdk8/
mv hadoop-3.1.3.tar.gz/ hadoop

配置环境变量

sudo vim /etc/profile.d/my_env.sh

添加:

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk8
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$JAVA_HOME/sbin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

使配置生效

source /etc/profile

查看版本

java -version
hadoop version

删除hadoop/share/目录下的doc

cd /opt/module/hadoop/share/
rm -rf doc

完全分布式运行

scp命令,将jdk、hadoop分别复制到hadoop103、hadoop104

先修改软件目录权限为atguigu(克隆之前已经修改)

在hadoop102上将hadoop102的/opt/module/jdk8目录复制到hadoop103上

scp -r /opt/module/jdk8  atguigu@hadoop103:/opt/module

在hadoop103上将hadoop102的/opt/module/hadoop目录复制到hadoop103上

scp -r atguigu@hadoop102:/opt/module/hadoop  atguigu@hadoop103:/opt/module

在hadoop103上将hadoop102的/opt/module下的所有目录复制到hadoop104上

scp -r atguigu@hadoop102:/opt/module/*  atguigu@hadoop104:/opt/module

编写xsync,将环境变量从hadoop102同步到hadoop103、hadoop104

编写xsync

在/home/atguigu/bin目录下创建xsync文件

cd /home/atguigu
mkdir bin
cd /bin
vim xsync

添加如下内容:

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
   echo Not Enough Arguement!
   exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
 echo ====================  $host ====================
   #3. 遍历所有目录,挨个发送
   for file in $@
   do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file);pwd)

                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
   done
done

修改xsync具有执行权限

chmod +x xsync

将脚本复制到/bin中,用于全局

sudo cp xsync /bin/  失效了
sudo cp ../xsync ./     在/bin中执行这命令成功

分发环境变量配置

注意一定要用 sudo

sudo xsync /etc/profile.d/my_env.sh

在hadoop103、hadoop104上刷新

source /etc/profile

配置ssh无密登录

在hadoop102上atguigu账户生成公钥和私钥

在hadoop103上atguigu账户生成公钥和私钥

在hadoop104上atguigu账户生成公钥和私钥

在hadoop102上root账户生成公钥和私钥

ssh-keygen -t rsa

hadoop102上atguigu账户将公钥发送到102、103、104

hadoop103上atguigu账户将公钥发送到102、103、104

hadoop104上atguigu账户将公钥发送到102、103、104

hadoop102上root账户将公钥发送到102、103、104

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

集群配置

进入hadoop安装目录

cd $HADOOP_HOME/etc/hadoop

配置core-site.xml

vim core-site.xml

添加:

这里的存储目录也是后改成hadoop的 原来是hadoop-x.x.x

<configuration>
    <!-- 指定NameNode的地址-->
    <property>
       <name>fs.defaultFS</name>
       <value>hdfs://hadoop102:8020</value>
    </property>

    <!-- 指定hadoop数据的存储目录-->
    <property>
       <name>hadoop.tmp.dir</name>
       <value>/opt/module/hadoop/data</value>
    </property>

    <!-- 配置HDFS网页登录使用的静态用户为atguigu-->
    <property>
       <name>hadoop.http.staticuser.user</name>
        <value>atguigu</value>
    </property>
</configuration>

配置hdfs

vim hdfs-site.xml

添加:

<configuration>
   <!-- nn web端访问地址-->
   <property>
       <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
   <!-- 2nn web端访问地址-->
    <property>
       <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
</configuration>

配置yarn

vim yarn-site.xml

添加:

<configuration>
    <!-- 指定MR走shuffle -->
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   
       <!-- 指定ResourceManager的地址-->
   <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>hadoop103</value>
   </property>

    <!-- 环境变量的继承-->
   <property>
       <name>yarn.nodemanager.env-whitelist</name>
       <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
   </property>
</configuration>
vim mapred-site.xml

添加:

<configuration>
   <!-- 指定MapReduce程序运行在Yarn上-->
    <property>
       <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

在集群上分发配置好的hadoop配置文件

第一个hadoop是安装目录 之前经过改名了

xsync /opt/module/hadoop/etc/hadoop/

在hadoop103/hadoop104查看分发情况

注意第一个hadoop是安装目录

cat /opt/module/hadoop/etc/hadoop/core-site.xml

群起集群

配置workers

第一个hadoop=hadoop-3.1.3,全文所有涉及到安装目录的都是这样

vim /opt/module/hadoop/etc/hadoop/workers

添加:

hadoop102
hadoop103
hadoop104

xsync同步所有节点配置文件

xsync /opt/module/hadoop/etc

启动集群

集群第一次启动需要在hadoop102节点格式化NameNode

hdfs namenode -format

启动hdfs

sbin/start-dfs.sh

用sbin起不动,去掉sbin可以(220818)

其他的启动问题是因为hdfs-site.xml这个配置文件头出了格式错误

在配置了ResourceManager的节点(hadoop103)启动yarn

sbin/start-yarn.sh

web端查看hdfs的namenode

http://hadoop102:9870

查看hdfs存储的数据信息

web端查看hdfs的resourcemanager

http://hadoop103:8088

查看yarn上存储的job信息

集群基本测试

上传文件到集群

hadoop fs -mkdir /input

上传小文件

hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input

上传大文件

hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /

在安装目录hadoop下执行wordcount

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar  wordcount /input /output

 

配置历史服务器(0819更新)

配置mapred-site.xml

hadoop:vim mapred-site.xml

添加:

<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
   <value>hadoop102:10020</value>
</property>
<!-- 历史服务器web端地址-->
<property>
   <name>mapreduce.jobhistory.webApp.address</name>
    <value>hadoop102:19888</value>
</property>

分发配置

xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml

在hadoop102启动历史服务器

mapred --daemon start historyserver

查看历史服务器是否启动

jps

 

查看JobHistory

http://hadoop102:19888/jobhistory

 

配置日志聚集

配置yarn-site.xml

hadoop:    vim yarn-site.xml

添加:

<!-- 开启日志聚集功能 -->
<property>
   <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>  
   <name>yarn.log.server.url</name>  
   <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
   <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

分发配置

hadoop102:xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml

关闭NodeManager 、ResourceManager和HistoryServer

hadoop103(安装目录):sbin/stop-yarn.sh
hadoop102(安装目录): mapred --daemon stop historyserver

启动NodeManager 、ResourceManage和HistoryServer

hadoop103:    start-yarn.sh
hadoop102:    mapred --daemon start historyserver

删除HDFS上已经存在的输出文件

hadoop102:    hadoop fs -rm -r /output

执行WordCount程序

hadoop102(安装目录):    
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

查看日志

查看历史服务器地址

http://hadoop102:19888/jobhistory

查看历史任务列表

 

查看任务运行日志

 

查看运行日志详情

好像有点问题(已解决)

 

编写常用脚本

Hadoop集群启停脚本(包含HDFS,Yarn,Historyserver):myhadoop.sh

注意目录问题:/opt/module/hadoop/sbin/中的hadoop是安装目录

cd /home/atguigu/bin
vim myhadoop.sh

添加:

#!/bin/bash
if [ $# -lt 1 ]
then
    echo "No ArgsInput..."
    exit ;
fi
case $1 in
"start")
        echo "=================== 启动 hadoop集群==================="
        echo "--------------- 启动 hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 historyserver ---------------"
        ssh hadoop102 "/opt/module/hadoop/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------"
        ssh hadoop102 "/opt/module/hadoop/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

赋予脚本执行权限:

chmod +x myhadoop.sh

群起测试:

 

群关测试:

 

确认是否全部关闭:

 

查看三台服务器Java进程脚本:jpsall

cd /home/atguigu/bin
vim jpsall

添加:

#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
        echo ===============$host ===============
        ssh $host jps 
done

赋予脚本执行权限:

chmod +x jpsall

jpsall脚本测试:

 

分发/home/atguigu/bin目录,保证自定义脚本在三台机器上都可以使用

xsync /home/atguigu/bin/

 



Tags:hadoop集群   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
hadoop集群的搭建、完全分布式运行 一看就会
前期准备模板机准备修改静态IPvim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static" //这里改成stati...【详细内容】
2022-08-27  Search: hadoop集群  点击:(412)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(2)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(3)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(7)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(2)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(1)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(3)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(15)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(14)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(16)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔&middot;盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(38)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条