集群配置,hadoop配置过程,细节满满

这篇具有很好参考价值的文章主要介绍了集群配置,hadoop配置过程,细节满满。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

做一个hadoop的配置流程的全记录,把遇到的问题和细节全都记录了下来。

目录

1.安装前准备

jdk,hadoop安装包:

2.开始安装jdk,hadoop

导入安装包

修改jdk,hadoop文件用户所属

配置jdk,hadoop 环境变量,添加对应环境变量

测试安装是否成功

 3.hadoop 集群配置文件

core-site.xml

hdfs-site.xml

yarn-site.xml

mapred-site.xml

配置workers文件

修改hadoop-env.sh

4.创建xsync集群群发脚本

在根目录中创建xsync脚本文件

修改xsync脚本权限

同步jdk,hadoop到集群

启动hadoop,测试集群

附加内容:下面内容为非必要配置,如果不需要,请跳过

1.历史服务器配置(jobhistory)

 在web端中查看

如下图


文章中安装包的导入位置opt/software

          安装包的安装位置/usr/local/src

1.安装前准备

首先在开始安装hadoop前,准备好需要的相关安装包和配置

#安装vim编辑器:
yum install -y vim
#安装rsync远程同步工具
yum install -y rsync

jdk,hadoop安装包:

我这里使用jdk 1.8 版本,hadoop 3.3.4版本

这是jdk的下载地址

https://www.oracle.com/java/technologies/downloads/#java8

hadoop-env.sh 配置,hadoop,大数据,hdfs

 选择符合你电脑的版本(正常使用Windows的选择最下方即可)

hadoop的下载地址

https://hadoop.apache.org/releases.html

hadoop-env.sh 配置,hadoop,大数据,hdfs

 选择下载hadoop的版本,下载对应版本的binary安装包

(2)如果你的集群虚拟机已经都创建完成,且确保网络,ssh密钥登陆 都做好了后,就可以开始安装jdk和hadoop了

如果网络还没有完成,可以看我的另一篇文章,把网络配置文件确保配置完成。

集群配置,网络配置部分_酥悲清风的博客-CSDN博客

如果ssh密钥连接还没有做好,可以参考我的另一篇文章。这一步是集群配置的关键

 集群配置,ssh免密登录_酥悲清风的博客-CSDN博客

2.开始安装jdk,hadoop

导入安装包

导入安装包到opt/software中解压

tar -zxvf /opt/software/jdk-8u341-linux-x64.tar.gz -C /usr/local/src

tar -zxvf /opt/software/hadoop-3.3.4.tar.gz -C /usr/local/src/

hadoop-env.sh 配置,hadoop,大数据,hdfs

解压安装包到/usr/local/src

hadoop-env.sh 配置,hadoop,大数据,hdfs

进入安装目录,修改对应安装包文件名,改成jdk,hadoop

hadoop-env.sh 配置,hadoop,大数据,hdfs

(注意如果不修改文件名注意配置环境变量文件中对应文件名也要更改) 

修改jdk,hadoop文件用户所属

修改jdk,hadooop所在目录的所属用户
chown -R hadoop:hadoop /usr/local/src

hadoop-env.sh 配置,hadoop,大数据,hdfs

配置jdk,hadoop 环境变量,添加对应环境变量

#JAVA_HOME
export JAVA_HOME=/usr/local/src/jdk
export PATH=$PATH:$JAVA_HOME/bin
保存后退出
:wq
#HADOOP_HOME
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

重启配置文件,使其生效

source /etc/profile

测试安装是否成功

如果没有打错字符的话不应该出错

java -version  #测试jdk

hadoop-env.sh 配置,hadoop,大数据,hdfs

hadoop version   #测试hadoop

hadoop-env.sh 配置,hadoop,大数据,hdfs

 3.hadoop 集群配置文件

/usr/local/src/hadoop/etc/hadoop 中的对应配置文件中加入下面的相关参数

core-site.xml

<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>

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

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

hdfs-site.xml

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

yarn-site.xml

  <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</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>

mapred-site.xml

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

配置workers文件

(也在/usr/local/src/hadoop/etc/hadoop

(如果没有创建即可)

hadoop-env.sh 配置,hadoop,大数据,hdfs

(注意不要有空行,最后一行不要留有空格)

修改hadoop-env.sh

hadoop-env.sh 配置,hadoop,大数据,hdfs

 修改hadoop-env.sh文件中,JAVA_HOME=对应信息,改成你的jdk目录

PS:注意删除‘ # ’注释符号

4.创建xsync集群群发脚本

 #安装rsync远程同步工具 每台虚拟机都要安装
yum install -y rsync

在/root/中创建bin目录在目录中创建 一个文件命名为xsync

ps:注意我的脚本参数,需要根据你自己的虚拟机名,改变for循环遍历参数

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in master slave1 slave2
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脚本权限

hadoop-env.sh 配置,hadoop,大数据,hdfs

#我这图省事直接赋予了777权限
chmod 777 xsync

sed -i 's/\r$//' xsync 

因为这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有多出来的\r。

使用指令sed -i 's/\r$//' xxxxxxx,上面的指令会把 xxxxxxx 中的\r 替换成空白!

同步jdk,hadoop到集群

ps:xsync脚本命令一定要手动输入,复制粘贴会导致路径名后有空格,导致无法识别路径

使用脚本时,要注意如果在绝对路径下使用xsync,可以直接使用,

如果没有在绝对路径下,需要在命令前加上sh ,或者在/etc/profile中添加环境变量

sh xsync /etc/profile  #同步环境变量
sh xsync /usr/local/src  #同步jdk,hadoop

初始化hadoop

hdfs namenode -format 

hadoop-env.sh 配置,hadoop,大数据,hdfs 只要没有报错,就说明hadoop初始化成功了

启动hadoop,测试集群

#在master虚拟机上启动
start-all.sh

hadoop-env.sh 配置,hadoop,大数据,hdfs

附加内容:下面内容为非必要配置,如果不需要,请跳过

1.历史服务器配置(jobhistory)

(1)添加配置mapred-site.xml,yarn-site.xml

 mapred-site.xml

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

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

​<property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>/history/done</value>
</property>
<property>
    <name>mapreudce.jobhistory.intermediate.done-dir</name>
    <value>/history/done/done_intermediate</value>
</property>

 yarn-site.xml

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

(2)分发配置到其他虚拟机 

xsync /usr/local/src/hadoop/etc/hadoop/mapred-site.xml
xsync /usr/local/src/hadoop/etc/hadoop/yarn-site.xml

 如果没有按照我上面的步骤配置xsync,也可以下载配置文件到电脑中,在依次上传到其他虚拟机

 (3)在master启动历史服务器

mr-jobhistory-daemon.sh start historyserver 

#如果出现权限不够,看看当前用户是否切换错误,以及hadoop文件用户所属

 在web端中查看

端口名称

Hadoop3.x

NameNode内部通信端口

8020 / 9000/9820

NameNode HTTP UI

9870

MapReduce查看执行任务端口

8088

历史服务器通信端口

19888

 红色标注表示为教程中使用的端口号

在浏览器中输入 对应主机名:对应端号,即可进入对应web端界面

如下图 

 hadoop-env.sh 配置,hadoop,大数据,hdfs

hadoop-env.sh 配置,hadoop,大数据,hdfs

如果无法登陆到jobhistory,且之前配置没有问题的话,大概率是hadoo的安全模式开启了

hadoop dfsadmin -safemode leave

退出即可 

 hadoop-env.sh 配置,hadoop,大数据,hdfs

感谢您的观看,您的支持是我最大的动力。

如有侵权,请联系作者下架文章来源地址https://www.toymoban.com/news/detail-754978.html

到了这里,关于集群配置,hadoop配置过程,细节满满的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux之权限(内容详细,细节满满)

    个人主页:点我进入主页 专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶 C语言刷题       数据结构初阶    Linux 欢迎大家点赞,评论,收藏。 一起努力 目录 一.前言 二.权限修改的两种方法 2.1利用字符修改 2.1.1Linux中文件的类型

    2024年01月25日
    浏览(25)
  • C/C++自定义类型(2)细节满满!

    该文章的上一篇文章:C/C++自定义类型(1)-CSDN博客 个人主页:仍有未知等待探索_C语言疑难,数据结构,小项目-CSDN博客 专题分栏:C语言疑难_仍有未知等待探索的博客-CSDN博客 目录   一、引言 二、枚举 1、枚举是什么  2、枚举的格式 3、枚举类型的初始化 4、枚举类型中常量

    2024年02月08日
    浏览(21)
  • 【Linux】进度条小程序——深度解剖(细节满满)

    ​​​​​ ​ 前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁,主要内容含 欢迎订阅 YY 滴Linux专栏!更多干货持续更新!以下是传送门! 订阅专栏阅读: YY 的《Linux》系列 ❀❀❀❀❀ 【Linux】Linux环境搭建(新手指南,购买,登录)(

    2024年02月14日
    浏览(29)
  • LaWGPT安装和使用教程的复现版本【细节满满】

    LaWGPT 是一系列基于中文法律知识的开源大语言模型。该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM等)的基础上扩充法律领域专有词表、大规模中文法律语料预训练,增强了大模型在法律领域的基础语义理解能力。LaWGPT是本人尝试使用和微调的第一个法律专业领域的

    2024年01月18日
    浏览(23)
  • Hadoop简介以及集群搭建详细过程

    hadoop加群包括两个集群:hdfs集群,yarn集群 两个集群逻辑上分离,通常物理上在一起 两个集群都是标准的主从架构集群 逻辑上分离:两个集群相互之间没有依赖,互不影响 物理上在一起:某些角色今晚往往部署在同一台物理服务器上 MapReduce集群呢? MapReduce是计算框架、代

    2024年02月16日
    浏览(29)
  • C/C++文件操作(细节满满,part2)

    该文章上一篇:C/C++文件操作(细节满满,part1)_仍有未知等待探索的博客-CSDN博客 个人主页:仍有未知等待探索_C语言疑难,数据结构,小项目-CSDN博客 专题分栏:C语言疑难_仍有未知等待探索的博客-CSDN博客 目录   一、引言 二、文件的顺序 1、输入流和输出流 2、fputc 1.功能

    2024年02月08日
    浏览(27)
  • 【Linux】进度条小程序的深度解剖(细节满满)

    ​​​​​ ​ 前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁,主要内容含 欢迎订阅 YY 滴Linux专栏!更多干货持续更新!以下是传送门! 订阅专栏阅读: YY 的《Linux》系列 ❀❀❀❀❀ 【Linux】Linux环境搭建(新手指南,购买,登录)(

    2024年02月16日
    浏览(28)
  • C/C++文件操作(细节满满,part1)

    个人主页: 仍有未知等待探索_C语言疑难,数据结构,PTA-CSDN博客 专题分栏: C语言疑难_仍有未知等待探索的博客-CSDN博客 目录 一、引言  二、什么是文件  1、程序文件 2、数据文件 3、文件名  4、文件路径  1.相对路径 2.绝对路径 三、文件的打开和关闭  1、文件操作的大体流

    2024年02月08日
    浏览(25)
  • 【数据结构】线性表(顺序存储和链式存储)两种方法,细节满满,保你学会

    ⭐⭐⭐⭐⭐⭐ 🎊专栏【数据结构】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【勋章】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 ⭐⭐⭐⭐⭐⭐  目录 ⭐定义:  ⭐ 理解: ⭐存储方式 : ⭐顺序存储的优缺点: 优点: 缺点: ⭐链式存储的优

    2023年04月09日
    浏览(29)
  • springboot(spring)整合redis(集群)、细节、底层配置讲解

    1.引入依赖.      其实springboot整合其他主流框架直接在后面加上名称即可,比如spring-boot-starter-redis,然后就直接可以用,可以直接注入了.      主要原因大概就是springboot框架已经包含了自动注入的功能,对于每一个引入的主要jar包(包含starter),都有一个factory的配置文件,里面配置

    2024年02月09日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包