Hadoop3.2.2完全分布式集群环境搭建(一)

2023-05-16

大数据学习之Hadoop3.2.2集群环境搭建





(一)Hadoop3.2.2完全分布式集群环境搭建
(二)Zookeeper入门之分布式集群的搭建
(三)HBase分布式集群的搭建





Apache hadoop是什么?
Apache™ Hadoop® 项目开发用于可靠、可扩展、分布式计算的开源软件。

Apache Hadoop 软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。该库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故障,因此在计算机集群之上提供高可用性服务,每台计算机都可能容易出现故障。

准备工作:

jdk-8u291-linux-x64.tar.gz

image-20210602213855449

hadoop-3.2.2.tar.gz

image-20210602213954837

虚拟机hadoop,hadoop1,hadoop2配置:

hadoophadoop1hadoop2
IP192.168.10.100192.168.10.101192.168.10.102

集群规划:

hadoophadoop1hadoop2
HDFS N a m e N o d e \color{#FF3030}{ NameNode } NameNode
DataNode
DataNode S e c o n a r y N a m e N o d e \color{#FF3030}{ SeconaryNameNode } SeconaryNameNode
DataNode
YARNNadeManager R e s o u r c e M a n a g e r \color{#FF3030}{ ResourceManager } ResourceManager
NodeManager
NodeManager

修改网络连接方式为NAT模式
image-20210602175809037
修改虚拟适配器VMnet8:
在这里插入图片描述

(一)创建模板机hadoop:

(1)创建用户hadoop,修改密码为123456:

[root@h ~]# useradd hadoop
[root@h ~]# passwd 

(2)配置hadoop用户具有root权限,方便后期sudo执行root权限的命令:

[root@h ~]# vim /etc/sudoers
# 在最后添加
hadoop   ALL=(ALL)   NOPASSWD:ALL

image-20210602193527970
(3)关闭防火墙(这很重要):

[root@h ~]# systemctl stop firewalld.service 
[root@h ~]# systemctl disable firewalld.service 

(4)修改主机名:

[root@h ~]# vim /etc/hostname

(5)把原来的主机名删了,修改为hadoop:

image-20210602175148022

(6)修改ip地址映射:

[root@h ~]# vim /etc/hosts

image-20210602175314118
(7)修改为静态ip(网卡名称可能不一样):

[root@h ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改以下内容:
BOOTPROTO=static  #将dhcp改为static
ONBOOT="yes"        #是否开机启动,将no改为yes
#添加以下内容
IPADDR=192.168.10.100  #ip地址
GATEWAY=192.168.10.2   #网关
DNS1=192.168.10.2      #dns
#重启网卡
[root@h ~]# systemctl restart network
#如果重启网卡失败,尝试关闭NetworkManager
systemctl stop NetworkManager    
systemctl disable NetworkManager #表示开机不启动

(8)切换用户hadoop,创建/opt/jdk—hadoop目录,用来存放jdk,hadoop:

[hadoop@hadoop ~]$ mkdir /opt/jdk-hadoop

(二)克隆模板虚拟机hadoop,生成hadoop1,hadoop2

(1)进入hadoop1,修改主机名与ip(192.168.10.101):

[root@hadoop ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改以下内容
IPADDR=192.168.10.101  #ip地址

(2)修改主机名为hadoop1:

[root@hadoop ~]# vim /etc/hostname

(3)进入hadoop2,修改主机名与ip(192.168.10.102):

[root@hadoop ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改以下内容
IPADDR=192.168.10.102  #ip地址

(4)修改主机名为hadoop2:

[root@hadoop ~]# vim /etc/hostname

(三)ssh免密登录:

1.在虚拟机hadoop的hadoop用户下生成ssh秘钥

[hadoop@hadoop ~]$ ssh-keygen -t rsa #一路回车

2.将公钥分发给其余两台虚拟机的hadoop用户:

[hadoop@hadoop ~]$ ssh-copy-id -i hadoop@192.168.10.100 #本机
[hadoop@hadoop ~]$ ssh-copy-id -i hadoop@192.168.10.101 #hadoop1
[hadoop@hadoop ~]$ ssh-copy-id -i hadoop@192.168.10.102 #hadoop2

3.现在确认能否不输入口令就用ssh登录localhost:

[hadoop@hadoop ~]$ ssh localhost

4.如果不输入口令就无法用ssh登陆localhost,执行下面的命令:

[hadoop@hadoop ~] ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
[hadoop@hadoop ~] cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

进入虚拟机hadoop1,hadoop2重复1~3的操作

(四)jdk安装:

(1)将jdk的压缩包放在/opt/jdk-hadoop目录下并解压到/opt/jdk-hadoop目录下:

# 进入/opt/jdk-hadoop目录中解压得到文件夹 jdk1.8.0_291
tar -zxvf jdk-8u291-linux-x64.tar.gz

(2)编辑/etc/profile文件,在文件末尾添加以下内容

# 设置 jdk 环境变量
export JAVA_HOME=/opt/jdk-hadoop/jdk1.8.0_291
export PATH=$PATH:JAVA_HOME/bin:
# 使环境变量生效
source /etc/profile
# 任意目录下测试环境变量是否生效
java -version
java version "1.8.0_291"

image-20210602191102626

(五)Hadoop的安装

(1)将hadoop的压缩包放在/opt/jdk-hadoop目录下并解压到/opt/jdk-hadoop目录下:

# 进入/opt/jdk-hadoop目录中解压 Hadoop 到/opt/jdk-hadoop
tar -zxf hadoop-3.2.2.tar.gz 

(2)编辑/etc/profile文件,在文件末尾添加以下内容:

# set hadoop path
export HADOOP_HOME=/opt/jdk-hadoop/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin
# 使环境变量生效
source /etc/profile
# 测试环境变量是否生效,任意目录下输入
hadoop

image-20210602191005999

(六)修改Hadoop文件

(1)hadoop-env.sh

cd /opt/jdk-haoop/hadoop-3.2.2/etc/hadoop/
vim hadoop-env.sh
# 添加以下内容
export JAVA_HOME=/opt/jdk-hadoop/jdk1.8.0_291

(2)core-site.xml

<configuration>
   <!--NameNode URI(协议,地址,端口)-->
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop:9000</value>
    </property>
    <!-- 指定Hadoop运行时产生文件的存储目录 -->
     <property>
           <name>hadoop.tmp.dir</name>
           <value>/opt/jdk-haoop/hadoop-3.2.2/data</value>
     </property>

</configuration>

(3)hdfs-site.xml

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

(4)mapred-site.xml

<configuration>
    <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
    </property>
    <property>
          <name>mapreduce.application.classpath</name>
          <value>/opt/jdk-haoop/hadoop-3.2.2/share/hadoop/mapreduce/*, /opt/jdk-haoop/hadoop-3.2.2/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

(5)yarn-site.xml

<configuration>
      <!-- Reducer获取数据的方式 -->
      <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
     </property>
     <!-- 指定YARN的ResourceManager的地址 -->
     <property>
           <name>yarn.resourcemanager.hostname</name>
           <value>hadoop1</value>
     </property>
</configuration>

(6)workers

cd /opt/jdk-haoop/hadoop-3.2.2/etc/hadoop/
vim workers
#删除localhost,添加以下内容,即输入各节点的主机名
hadoop
hadoop1
hadoop2

(七)启动hadoop

(1)分发jdk与hadoop给虚拟机hadoop1,hadooop2

scp -r /opt/jdk-hadoop/hadoop-3.3.2 hadoop@hadoop1:/opt/jdk-hadoop
scp -r /opt/jdk-hadoop/hadoop-3.3.2 hadoop@hadoop2:/opt/jdk-hadoop
scp -r /opt/jdk-hadoop/jdk1.8.0_291 hadoop@hadoop1:/opt/jdk-hadoop
scp -r /opt/jdk-hadoop/jdk1.8.0_291 hadoop@hadoop2:/opt/jdk-hadoop

(2)格式化namenode:

cd /opt/jdk-hadoop/hadoop-3.2.2
hdfs namenode -format     #如果没报错就是格式化成功了

(3)在hadoop虚拟机上:

cd /opt/jdk-hadoop/hadoop-3.2.2/sbin
./start-dfs.sh      #启动hdfs

(4)在hadoop1上运行:

cd /opt/jdk-hadoop/hadoop-3.2.2/sbin
./start-yarn.sh     #启动yarn

(5)在三台虚拟机上分别输入jps,显示如下则符合集群规划:

hadoophadoop1hadoop2
HDFS N a m e N o d e \color{#FF3030}{ NameNode } NameNode
DataNode
DataNode S e c o n a r y N a m e N o d e \color{#FF3030}{ SeconaryNameNode } SeconaryNameNode
DataNode
YARNNadeManager R e s o u r c e M a n a g e r \color{#FF3030}{ ResourceManager } ResourceManager
NodeManager
NodeManager

hadoop(生产环境中NameNode和Datanode 不会在同一节点中):

[hadoop@hadoop sbin]$ jps
7585 NameNode
7703 DataNode
13132 NodeManager
13261 Jps

hadoop1:

[hadoop@hadoop1 sbin]$ jps
2690 DataNode
3850 ResourceManager
4031 Jps

hadoop2:

[hadoop@hadoop2 ~]$ jps
3280 DataNode
3360 SecondaryNameNode
5878 NodeManager
5996 Jps

注意:jps命令为查看jvm进程,默认为本机
(6)浏览器输入以下会看到相应的网页:
192.168.10.100:9870
192.168.10.100:9000

参考地址:http://hadoop.apache.org/docs/r1.0.4/cn/cluster_setup.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop3.2.2完全分布式集群环境搭建(一) 的相关文章

  • python基础

    python基础 文章目录 python基础基础语法关键字标识符多行语句数据类型 字符串输出import 与from import基本数据类型多个变量赋值标准数据类型Number xff08 数字 xff09 数值运算数学函数随机数函数三角
  • Debian简介与Debian源

    1 Deiban是一套自由操作系统 使用Linux内核 xff0c 大部分基本工具来自GNU计划 因此称Deiban为Debian GNU Linux Debian是第一个使用包管理系统的Linux发行版 xff0c 是的安装和删除软件变得
  • cloudmusic:网易云爬虫

    文章目录 cloudmuscic xff1a 网易云音乐爬虫安装使用music对象1 music对象属性2 music对象方法3 music对象函数 user对象1 user对象属性2 user对象方法3 获取user对象函数 cloudm
  • 链家深圳二手房房价数据分析

    文章目录 链家深圳二手房房价数据分析1 链家数据爬取源码2 雷达图的绘制2 1 源码2 2 雷达图效果图 3 饼状图的绘制3 1 源代码3 2 饼状图效果图 4 多维散点图4 1 源码4 2 多维散点图效果图 5 玫瑰图5 1 源码5 2
  • UNIX基础知识

    文章目录 UNIX基础知识1 1 引言1 2 UNIX体系结构1 3 登录1 4 文件和目录1 5 输入和输出1 6 程序和进程1 程序2 进程和进程ID3 进程控制4 线程和线程ID 1 7 出错处理出错恢复 1 8 用户标识1 用户ID
  • 栈和队列——小猫钓鱼

    星期天A和B在一起玩扑克牌 xff0c 他们在玩一个古怪的扑克牌游戏 小猫钓鱼 游戏的规则是这样的 xff0c 将一副扑克牌平均分成两份 xff0c 每人拿一份 A先拿出手中的第一章牌放在桌上 xff0c 然后B也从手里拿出一张牌放在桌上
  • 二叉树与二叉树遍历

    树的介绍 你可能回文树和图有什么区别 xff1f 这个称之为树的东西和无向图差不多嘛 树其实就是不包含回路的连通无向图 图画的不好啊 xff0c 把箭头忽略一下将就看一下 xff0c 上面这个图左边就是一棵树 xff0c 而右边就是一个图
  • 广度优先搜索

    在前面的迷宫中 xff0c 我们使用了深度优先搜索的方法 xff0c 这里介绍一个新的方法来解决这个问题 广度优先搜索 xff0c 也称为宽度优先搜索 这里还是用一个二维数组来存储迷宫 xff0c 最开始的时候A也是在迷宫 0 0 处 xf
  • 图的遍历--深度优先搜索

    深度优先搜索和广度优先搜索 xff0c 其实都是针对图的变量而言的 简单来说 xff0c 图就是一些圆点和连接这些圆点的直线组成 例如上图的这五个定点和四条边 我们现在从1号顶点开始遍历整个图 xff0c 遍历指的就是把图的每一个顶点都访问
  • 暴力的枚举

    枚举算法又叫穷举算法 xff0c 光听名字就是能知道这个很暴力 有一个题 xff1a 3 6528 61 3 8256 xff0c 在两个方框里面填入相同的数字使得等式成立 你可能会觉得这个很简单 xff0c 3行代码就可以搞定 xff1a
  • 虚拟机的使用及基本命令

    虚拟机的使用 kiosk 64 foundation0 Desktop rht vmctl view desktop 显示虚拟机 kiosk 64 foundation0 Desktop rht vmctl start desktop 打开
  • 【虚拟机网络问题】关于怎么解决Ubuntu上Linux网络突然失灵这个问题的若干方案汇总

    虚拟机网络问题 关于怎么解决Ubuntu上Linux网络突然失灵这个问题的若干方案汇总 PS xff1a 本文仅是针对个人使用基于Ubuntu18 04上的Linux系统问题相关记录 xff0c 便于遇到此类问题快速解决 前言 本篇文章在参
  • sublime text 3+mingw搭建C++编译环境

    sublime text 3 43 mingw搭建C 43 43 编译环境 附上Sublime Text下载地址和MinGW下载链接 目录 sublime text 3mingw搭建C编译环境 目录安装MinGW系统配置环境 配置参数简单测
  • React 属性验证 propTypes

    React 组件可以根据预先设置进行属性验证 React prop验证使用 propTypes xff0c 它可以保证我们的应用组件被正确使用 xff0c React PropTypes 提供很多验证器 validator 来验证传入数据是
  • 【2023年最新版】Kali安装详细教程

    一 前期准备 kali镜像下载地址 前排提醒 xff1a 文末有绿色安装包领取 xff01 二 VMware虚拟机配置 1 打开vmware xff0c 点击创建新的虚拟机 2 选择自定义 高级 选项 xff0c 点击下一步 3 继续下一步
  • 七段码 蓝桥杯 python

    这题我是跟着别人的写出来的 xff0c 也就是暴力出来的 xff0c 真不清楚别人怎么将dfs bfs应用进去的 记得7根一根根亮的7中情况 xff0c 和7根都亮的1种情况 整题非常暴力 xff0c 即将2到6的所有组合写出来 xff0c
  • 矩池云上使用nohup和&让任务后台运行

    1 nohup 用途 xff1a 不挂断地运行命令 语法 xff1a nohup Command Arg amp 无论是否将 nohup 命令的输出重定向到终端 xff0c 输出都将附加到当前目录的 nohup out 文件中 如果当前目录
  • Ubuntu系统安装完nvidia显卡驱动后黑屏,不能进入系统

    昨天想看显卡 xff0c 更新了下驱动 xff0c 发现服务器重启进不去 步骤 1 开机按esc 进入 选项界面 2 进去以后选择一个括号里面带recovery mode的选项 3 然后它自动黑屏出现代码 xff0c 然后弹出一个选择框 x
  • 基于gazebo实现多机器人编队仿真(三)

    基于gazebo实现多机器人编队仿真 xff08 三 xff09 三角编队与一字编队的实现 前言原理简图代码实现虚拟坐标的发布跟随者消息接收 总结 前言 前文已经阐述了多机器人的编队模型实现与多辆小车跟随的实现 xff0c 本文以通过tf通
  • 10章 面向对象分析

    第10章 面向对象分析 10 1 面向对象分析的基本过程10 1 1 概述10 1 2 3个模型与5个层次 10 2 需求陈述10 2 1 书写要点10 2 2 例子1 储户和柜员交互2 储户和ATM交互 10 3 建立对象模型10 3 1

随机推荐