当前位置: 首页 > news >正文

[安装] 搭建hadoop集群

参考资料:Hadoop集群搭建,14张过程截图超详细教程

目录

目录

hadoop集群构建 for ljgk

一、基础环境准备

修改主机名称

配置yum源

1. 局域网中配置代理环境

2.或者使用私有的yum源的方式

关闭防火墙

配置ip映射

集群免密登录

修改操作系统最大打开文件数(句柄数量)

设置服务器时间同步

二、构建hadoop集群

安装jdk

添加hadoop用户,并赋予权限(强烈推荐做)

修改hadoop配置文件(不完全配置)

格式化hdfs的节点

验证部署结果

[参考文档]

HDFS新增节点与删除节点

待完成(非紧急)

hadoop集群构建 for xxcom

搭建集群之前的准备工作:

下载hadoop安装包:[大数据]hadoop_2.7.4.tar.gz GZ文件[254.33MB]-码姐姐

新购买的服务器搭建大数据集群之前的准备工作_fct2001140269的博客-CSDN博客

一、基础环境准备

jdk1.8

hadoop2.7.2    x 

Centos7.6

修改主机名称

#查看主机名
hostname

#临时修改主机名称
hostname hadoop01

#永久修改主机名
hostnamectl set-hostname hadoop01

配置yum源

1. 局域网中配置代理环境

执行vim /root/.bashrc中添加代理服务地址:

#有一台专门的代理服务器
export http_proxy=http://172.18.8.162:7010
export https_proxy=http://172.18.8.162:7010

然后使用. /root/.bashrc命令,使得配置的环境生效.

设置yum源

进入209物理机:/etc/yum.repos.d,将配置好的yum源拷贝到对应的208机器上;

yum clean all
yum makecache

2.或者使用私有的yum源的方式

CentOS7配置离线YUM源

关闭防火墙

#查看防火墙状态
systemctl status firewalld.service

#关闭当前防火墙
systemctl stop firewalld.service

#永久关闭防火墙
systemctl disable firewalld.service

#查看是否生效防火墙状态
systemctl status firewalld.service

配置ip映射

修改主机名称,分别在四台机器中执行修改主机名,永久有效

hostnamectl set-hostname hadoop01

hostnamectl set-hostname hadoop02

hostnamectl set-hostname hadoop03

hostnamectl set-hostname hadoop04

配置映射关系vim /etc/hosts 如下所示

172.18.8.205  hadoop01
172.18.8.207  hadoop02
172.18.8.208  hadoop03
172.18.8.209  hadoop04

集群免密登录

注意:设置免密登录之前,请先设置号“主机名称”,以及“主机到ip的映射”

CentOS7 配置ssh免密登录_青春的样子1的博客-CSDN博客_centos7ssh免密登录

使用ssh-keygen命令和ssh-copy-id命令(当前是在root用户下执行的免密登录,hadoop集群需要在hadoop用户下免密登录配置,可以看下文配置)

例如在任何一台机器上执行如下命令

#在任意一台机器上执行,一直按enter,生成秘钥
ssh-keygen 

#将秘钥拷贝到其他的节点
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
ssh-copy-id hadoop04

最后,验证ssh免密是否可以行

修改操作系统最大打开文件数(句柄数量)

参考网上配置即可

`

############ limits 相关 ############
# 扩大句柄数
sed -i 's/4096/1000000/g' /etc/security/limits.d/20-nproc.conf
cat <<'EOF'> /etc/security/limits.d/20-all-users.conf
*               soft    nproc          1000000
*               hard    nproc          1000000
*               soft    nofile         1000000
*               hard    nofile         1000000
EOF

设置服务器时间同步

设置时区,统一设置为东8区,手动同步时间(hbase对集群服务器之间时间要求比较严格)

  date -R   ##查看时区时候是东八区时间
  date -s 'hh:mm:ss'   #设置相应的时间
  clock -w     #保存时钟,将时间写入系统硬盘,永久有效
  hwclock -w:#当我们进行完 Linux 时间的校时后,还需要以 hwclock 来更新 BIOS 的时间,因为每次重新启动的时候,系统会重新由 BIOS 将时间读出来

二、构建hadoop集群

安装jdk

过程略.....

#安装 jdk1.8.0_261 

#并设置环境变量

添加hadoop用户,并赋予权限(强烈推荐做)

  1. 添加hadoop用户(默认自动添加hadoop用户组),在切换到hadoop用户的情况下,进行ssh免密登录配置

2、新建用户hadoop
#useradd  hadoop(自动建组hadoop)

3、设置用户密码(配置ssh免密需要)
#passwd  hadoop

4、修改hadoop安装目录的权限
#chown  -R  hadoop:hadoop  /opt/software/hadoop-2.8.1

5、hadoop用户配置ssh免密
#su  - hadoop

$ssh_keygen+ssh_copy_id命令配合使用即可

修改hadoop配置文件(不完全配置)

core-site.xml


<configuration>

    <property>
	<name>hadoop.proxyuser.hue.hosts</name>
	<value>*</value>
    </property>

    <property>
	<name>fs.defaultFS</name>
	<value>hdfs://hadoop02:8020</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/data/hadoop/hadoop-2.7.4/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>

    <property>
	<name>hadoop.proxyuser.hue.groups</name>
	<value>*</value>
    </property>

    <property>
	<name>hadoop.http.staticuser.user</name>
	<value>hadoop</value>
    </property>

   <!--hive beeline with password-->
    <property>
       <name>hadoop.proxyuser.root.hosts</name>
       <value>*</value>
    </property>
    <property>
      <name>hadoop.proxyuser.root.groups</name>
      <value>*</value>
    </property>
</configuration>

修改hadoop安装目录下的/etc/hadoop/中文件,如下修改$HAOOP_HOME/etc/hadoop/配置hdfs-site.xml等

<configuration>
    <property>
        <name>yarn.application.classpath</name>
    </property>
   <!--环境变量的继承-->
    <property>
         <name>yarn.nodemanager.env-whitelist</name>,
    </property>


    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop02</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!--nodemanager-->
    <!-- 如果vmem、pmem资源不够,会报错,此处将资源监察置为false -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>


    <!--yarn.resourcemanager-->
    <!-- 选择调度器。默认容量-->
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
    </property>
    <!--ResourceManager处理调度器请求的现场数量,一共3*4=12,留出几个供其他使用-->
    <property>
        <name>yarn.resourcemanager.scheduler.client.thread-count</name>
        <value>40</value>
    </property>
    <!--是否让yarn自动检测硬件进行配置-->
    <property>
        <name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
        <value>false</value>
    </property>
    <!--是否将虚拟核数当作CPU核数 默认false-->
    <property>
        <name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
        <value>false</value>
    </property>
    <!--虚拟核数和物理核数乘数-->
    <property>
        <name>yarn.nodemanager.resource.pcores-vcores-multiplier</name>
        <value>2.0</value>
    </property>
    <!--nodemanager使用内存数,默认8g,但是服务器只有4G,修改为4g-->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>100000</value>
    </property>
    <!--nodemanager的CPU核数,默认设置为8个,但是服务器只有4核,修改为4个-->
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>20</value>
    </property>
    <!--容器最小内存,默认1g-->i


    <!--yarn.scheduler-->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>1024</value>
    </property>
    <!--容器最大内存,默认8g,但是服务器只有4G,修改为2g-->
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>20480</value>
    </property>
    <!--容器最小CPU核数,默认1个-->
    <property>
        <name>yarn.scheduler.minimum-allocation-vcores</name>
        <value>1</value>
    </property>
    <!--容器最大CPU核数,默认4个,但是服务器只有4核,修改为2个-->
    <property>
        <name>yarn.schedluler.maximum-allocation-vcores</name>
        <value>40</value>
    </property>
    <!--虚拟内存和物理内存设置比例,默认2.1-->
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
    </property>
</configuration>

修改mapred-site.xml文件

   <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xmx3072m</value>
    </property>
    <property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx4096m</value>
    </property>
    <property>
        <name>mapreduce.reduce.java.opts</name>
        <value>-Xmx6144m</value>
    </property>
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>8192</value>
    </property>
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>4096</value>
    </property>
    <property>
        <name>yarn.nodemanager.bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop02:8188</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop02:10020</value>
    </property>

    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-2.7.4</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-2.7.4</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-2.7.4</value>
    </property>

    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop02:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop02:19888</value>
    </property>
</configuration>

其他配置参考对应的参考文档,详情参考172.18.8.207:/opt/hadoop/hadoop-2.7.4/etc/hadoop/下的配置,主要是各种   ***-site.xml格式的文件,slave文件等;

格式化hdfs的节点

$HADOOP_HOME/bin/hdfs namenode -format ljgk_hadoop_cluster

启动hadoop集群

#启动hadoop集群之前,切换hadoop用户,密码是hadoop
su hadoop

#启动hadoop集群
${HADOOP_HOME}/sbin/start-all.sh

特别强调:今后操作hadoop集群,都是要以hadoop的用户身份操作;

验证部署结果

  1. 使用jps查看各个节点上进程的运行情况

例如:hadoop03

[hadoop@hadoop02 docker-dss]# jps
23521 ResourceManager
56951 PrestoServer
139752 Jps
23866 NodeManager
21613 NameNode
21837 DataNode

  1. 验证hdfs和yarn的可用性

·提交一个简单mr示例

#提交安装包中自带的mr程序,查看yarn运行情况,查看hdfs上是否有结果输出
hadoop jar /opt/bigdata/hadoop-2.9.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.9.2-tests.jar TestDFSIO -Dmapreduce.job.queuename=dmgeo -write -nrFiles 10 -fileSize 128MB 

hdfs访问地址:http://172.18.8.207:50070

yarn访问地址:http://172.18.8.207:8088

[参考文档]

HDFS新增节点与删除节点

HDFS新增节点与删除节点

HDFS系列讲解之HDFS新增节点与删除节点

hadoop伪分布式搭建(root用户迁移到非root)

待完成(非紧急)

  1. yarn中的timelineServer服务:YARN之配置Timeline服务_TomAndersen的博客-CSDN博客_yarn时间线服务

  2. 增加hadoop中的hadoop用户;

  3. 总结hadoop的更多使用场景;

  4. shell脚本化部署hadoop

相关文章:

  • React - setState 更新状态的两种写法
  • pinia 持久化存储
  • A-Level商务例题解析及练习Theory of Maslow Theory of Herzberg
  • Head First设计模式(阅读笔记)-11.组合模式
  • 手把手教你成为荣耀开发者:数据报表使用指引
  • java计算机毕业设计企业人事管理系统源程序+mysql+系统+lw文档+远程调试
  • HDFS的概念及shell操作
  • Spring Web 应用程序中的 Flash 属性指南
  • 虚拟机共享物理机网路的NAT连接方法
  • Netty入门——基于NIO实现机器客服案例
  • Maven项目管理工具
  • 探索可观测性:AIOps中的时序数据应用
  • RISCV:cv_regress
  • 计算机毕业设计Java校园管理系统(系统+源码+mysql数据库+lw文档)
  • (附源码)Springboot中北创新创业官网 毕业设计 271443
  • Go语学习笔记 - 实现将mp4通过rtmp推送流媒体服务
  • 读取HDFS数据写入MySQL_大数据培训
  • MySQL日志管理(十一)
  • 前端一面经典vue面试题(持续更新中)
  • leetcode 638. 大礼包-思路整理
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉