IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Apache Hadoop概述+Hadoop集群搭建+Hadoop集群启动命令 -> 正文阅读

[大数据]Apache Hadoop概述+Hadoop集群搭建+Hadoop集群启动命令


上一节: https://blog.csdn.net/m0_56600567/article/details/125676674

Apache Hadoop概述

Hadoop介绍

狭义上Hadoop指的是Apache软件基金会的一款开源软件
用java语言实现,开源
允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理

  • Hadoop核心组件
    Hadoop HDFS(分布式文件存储系统)︰解决海量数据存储
    Hadoop YARN(集群资源管理和任务调度框架)︰解决资源任务调度Hadoop MapReduce(分布式计算框架)︰解决海量数据计算

hadoop

广义上Hadoop指的是围绕Hadoop打造的大数据生态圈。


Hadoop现状

  1. HDFS作为分布式文件存储系统,处在生态圈的底层与核心地位;
  2. YARN作为分布式通用的集群资源管理系统和任务调度平台,支撑各种计算引擎运行,保证了Hadoop地位;
  3. MapReduce作为大数据生态圈第一代分布式计算引擎,由于自身设计的模型所产生的弊端,导致企业一线几乎不再直接使用MapReduce进行编程处理,但是很多软件的底层依然在使用MapReduce引擎来处理数据
Hadoop特性优点
  1. 扩容能力(scalability)
    Hadoop是在可用的计算机集群间分配
    数据并完成计算任务的,这些集群可方
    便灵活的方式扩展到数以千计的节点。
  2. 成本低(Economical)
    Hadoop集群允许通过部署普通廉价的机
    器组成集群来处理大数据,以至于成本很
    低。看重的是集群整体能力。
  3. 效率高(efficiency)
    通过并发数据,Hadoop可以在节
    点之间动态并行的移动数据,使得
    速度非常快。
  4. 可靠性(reliability)
    能自动维护数据的多份复制,并且在任务
    失败后能自动地重新部署(redeploy)计
    算任务。所以Hadoop的按位存储和处理
    数据的能力值得人们信赖。
Hadoop应用
  • Yahoo
    支持广告系统
    用户行为分析
    支持Web搜索
    反垃圾邮件系统
  • Facebook
    存储处理数据挖掘和日志统计
    构建基于Hadoop数据仓库平台(Apache Hive来自FB)
  • IBM
    蓝云基础设施构建
    商业化Hadoop发行、解决方案支持
  • 百度
    用户搜索表征的需求数据、阿拉丁爬虫数据存储
    数据分析和挖掘 竞价排名
  • 阿里巴巴
    为电子商务网络平台提供底层的基础计算和存储服务
    交易数据、信用数据
  • 腾讯
    用户关系数据
    基于Hadoop、Hive构建TDW(腾讯分布式数据仓库)
  • 华为
    对Hadoop的HA方案,以及HBase领域有深入研究

Hadoop集群简介

Hadoop集群包括两个集群:HDFS集群、YARN集群

  1. HDFS集群(分布式存储)

主角色:NameNode(NN)
从角色:DataNode(DN)
主角色辅助角色:SecondaryNameNode(SNN)

  1. YARN集群(资源管理、调度)

主角色:ResourceManager(RM)
从角色:NodeManager(NM)

  • 两个集群逻辑上分离、通常物理上在一起
    逻辑上分离
    两个集群互相之间没有依赖、互不影响
    物理上在一起
    某些角色进程往往部署在同一台物理服务器上

  • 两个集群都是标准的主从架构集群

在这里插入图片描述

Hadoop集群搭建

安装包、源码包下载地址
在这里插入图片描述

集群角色规划

  • 角色规划的准则
    根据软件工作特性和服务器硬件资源情况合理分配
  • 角色规划注意事项
    资源上有抢夺冲突的,尽量不要部署在一起
    工作上需要互相配合的。尽量部署在一起

在这里插入图片描述

服务器基础环境:

主机名 (3台机器)
cat /etc/hostname
在这里插入图片描述

hosts映射(3台机器)
cat /etc/hosts
在这里插入图片描述

防火墙关闭(3台机器)
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开启自启
systemctl status firewalld.service #查看防火墙状态
在这里插入图片描述

ssh免密登录
ssh-keygen #一直回车即可 生成公钥、私钥
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3 #依次输入,上传公钥到服务器
ssh node1
ssh node 2
ssh node3 #验证:在已经配置了的机器上
在这里插入图片描述

集群时间同步(3台机器)
yum -y install ntpdate
ntpdate ntp4.aliyun.com
在这里插入图片描述
如果没有出现上图,则可能是因为网络问题 ,再次执行即可

创建统一工作目录(3台机器)
mkdir -p /export/server/ #软件安装路径
mkdir -p /export/data/ #数据存储路径
mkdir -p /export/software/ #安装包存放路径
ls /export/ #验证3个目录是否都已经创建了
在这里插入图片描述

JDK 1.8安装(3台机器)选择在第一台机器安装,在发送给其他机器

  1. 找到目录
    在这里插入图片描述
  2. 将安装包拖拽进去
  3. 打开目录:cd /export/server
    查看:ll
    在这里插入图片描述
  4. 解压:tar -zxvf jdk-8u241-linux-x64.tar.gz
  5. 检查:ll
    在这里插入图片描述
    可以选择删除压缩包:rm -rf jdk-8u241-linux-x64.tar.gz
  6. 配置环境变量

官方文档
配置环境变量
vim /etc/profile
#Go #跳转到文件末行
写入文件末行后保存
export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
shift+zz 保存
如何保存?小白不会保存?在文本末端按esc,然后是(shift+z)按两次,即可保存退出了
注意:如果出现如下问题:
在这里插入图片描述
解决方案:来自转载

  1. #重新加载环境变量文件
    source /etc/profile
    #检查是否生效:成功显示版本就生效了哦
    java -version
    在这里插入图片描述
  2. 剩下两台机器,采用远程拷贝,拷贝jdk+环境变量
    #使用绝对路径来做
    cd ~
    #scp 远程拷贝
    scp -r /export/server/jdk1.8.0_241/ root@node2:/export/server/
    scp -r /export/server/jdk1.8.0_241/ root@node3:/export/server/
    scp -r /etc/profile root@node2:/etc/
    scp -r /etc/profile root@node3:/etc/
  3. 对3太机器同时发送命令,依次查看是否都安装好了jdk,配置好了环境变量
    #重新加载环境变量文件
    source /etc/profile
    #检查是否生效:成功显示版本就生效了哦
    java -version
上传解压Hadoop
  1. 上传安装包到对应的位置并查看
    在这里插入图片描述
  2. 进行解压:tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz (可以将安装包删除:rm -rf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz )
    在这里插入图片描述
  3. 打开文件(cd hadoop-3.3.0),查看内容(ll)
    在这里插入图片描述
  4. 主要的几个目录:
    在这里插入图片描述
  5. 修改配置文件
    官网文档:https://hadoop.apache.org/docs/r3.3.0/
    pwd–>ll—>cd etc/ —>ll —>cd hadoop/–>pwd—>ll

  • 修改 hadoop-env.sh
  1. 打开文件:vim hadoop-env.sh,去往最后一行:Go
  2. 插入:
export JAVA_HOME=/export/server/jdk1.8.0_241 
#文件最后添加 
export HDFS_NAMENODE_USER=root 
export HDFS_DATANODE_USER=root 
export HDFS_SECONDARYNAMENODE_USER=root 
export YARN_RESOURCEMANAGER_USER=root 
export YARN_NODEMANAGER_USER=root
  1. 保存并退出:esc —>shift+zz

  • 修改 core-site.xml
  1. 打开文件:vim core-site.xml
  2. <configuration>添加内容的位置</configuration>
    在这里插入图片描述
	<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>
    
    <!-- 设置Hadoop本地保存数据路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/data/hadoop-3.3.0</value>
    </property>
    
    <!-- 设置HDFS web UI用户身份 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
    
    <!-- 整合hive 用户代理设置 -->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    
    <!-- 文件系统垃圾桶保存时间 -->
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>
  1. 保存并退出:esc —>shift+zz

  • 配置hdfs-site.xml
  1. 打开hdfs-site.xml:vim hdfs-site.xml
  2. <configuration>添加内容的位置</configuration>
    在这里插入图片描述
	<!-- 设置SNN进程运行机器位置信息 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:9868</value>
    </property>
  1. 保存并退出:esc —>shift+zz

  • 配置mapred-site.xml
  1. 打开:vim mapred-site.xml

  2. 插入:
    在这里插入图片描述

    <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    
    <!-- MR程序历史服务地址 -->
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>node1:10020</value>
    </property>
     
    <!-- MR程序历史服务器web端地址 -->
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>node1:19888</value>
    </property>
    
    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
  1. 保存并退出:esc —>shift+zz

  • yarn-site.xml
  1. 打开:vim yarn-site.xml

  2. 插入
    注意:中间的注释可以删除:dd
    在这里插入图片描述i进入插入模式,

	<!-- 设置YARN集群主角色运行机器位置 -->
    <property>
    	<name>yarn.resourcemanager.hostname</name>
    	<value>node1</value>
    </property>
    
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 是否将对容器实施物理内存限制 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    
    <!-- 是否将对容器实施虚拟内存限制。 -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    
    <!-- 开启日志聚集 -->
    <property>
      <name>yarn.log-aggregation-enable</name>
      <value>true</value>
    </property>
    
    <!-- 设置yarn历史服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://node1:19888/jobhistory/logs</value>
    </property>
    
    <!-- 历史日志保存的时间 7天 -->
    <property>
      <name>yarn.log-aggregation.retain-seconds</name>
      <value>604800</value>
    </property>
  1. 保存并退出:esc —>shift+zz

  • workers
  1. 打开:vim works

  2. 删除: dd,添加

    node1.itcast.cn
    node2.itcast.cn
    node3.itcast.cn
    
  3. 保存并退出:esc —>shift+zz


  • 剩下两台机器,采用远程拷贝
cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
  • 将hadoop添加到环境变量(3台机器)
    打开:vim /etc/profile
    到末行:Go
    添加:
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在这里插入图片描述

  • 远程拷贝给其他机器

scp -r /etc/profile root@node2:/etc/
scp -r /etc/profile root@node3:/etc/

  • 3台机器执行:source /etc/profile
  • 验证:hadoop
    在这里插入图片描述
格式化操作
  • 首次启动HDFS时,必须对其进行格式化操作。
  • format本质上是初始化工作,进行HDFS清理和准备工作
  • 只能初始化一次
  • 第一台机器!!!
hdfs namenode -format

成功标志:
在这里插入图片描述
如果多次format除了造成数据丢失外,还会导致hdfs集群主从角色之间互不识别。通过删除所有机器hadoop.tmp.dir目录重新format解决
以下链接可能有用,我自己没有试过
重新格式化
重新格式化需注意问题

Hadoop集群启停命令、Web UI

手动逐个进程启停

优点:可以精准控制每个进程启停,避免群起群停。
缺点:比较麻烦。

  • HDFS集群:
#hadoop2.x版本命令
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
#hadoop3.x版本命令
hdfs --daemon start|stop namenode|datanode|secondarynamenode
  • YARN集群
#hadoop2.x版本命令
yarn-daemon.sh start|stop resourcemanager|nodemanager
#hadoop3.x版本命令
yarn --daemon start|stop resourcemanager|nodemanager
shell脚本一键启停

前提:配置好机器之间的SSH免密登录和workers文件。

  • HDFS集群
start-dfs.sh 
stop-dfs.sh
  • YARN集群
start-yarn.sh
stop-yarn.sh
  • Hadoop集群
start-all.sh
stop-all.sh

启动第一台机器
第一台机器输入命令:start-dfs.sh
然后依次在第一台,第二台,第三台机器上输入jps
结果
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

没有试过,但是有人遇到了这样的问题:hadoop集群启动的时候,从机的DataNode没有启动的原因及解决

补充记忆

  1. 在这里使用Java进程查看是否启动成功,进程是ps(progress),Java进程命令是jps
  2. 在屏幕内容过多时,使用CTRL+l进行清屏操作
如何查看是否启动成功?
  • 通过进程查看
    在这里插入图片描述
    注意
    如果出现一个进程查看的时候存在,过一会就不在了,叫做进程的闪退,说明配置有问题
  • 看日志
    Hadoop启动日志路径:/export/server/hadoop-3.3.0/logs/
集群的Web页面浏览

HDFS集群
地址:http://namenode_host:9870
其中namenode_host是namenode运行所在机器的主机名或者ip

浏览文件系统:
在这里插入图片描述


YARN集群
地址:http://resourcemanager_host:8088
其中resourcemanager_host是resourcemanager运行所在机器的主机名或者ip
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:56:33  更:2022-07-20 18:58:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:39:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码