TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!

Hadoop-伪分布部署

伪分布部署

伪分布式部署模式介绍

  • Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。

  • 该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入/输出,以及其他的守护进程交互。

1)上传相应的jar包

下载包的相应网址:

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/

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

[root@hadoop-pseudo src]# ll
total 595432
-rw-r--r-- 1 root root 414624228 Nov 30 14:24 hadoop-2.10.2.tar.gz
-rw-r--r-- 1 root root 195094741 Oct 18 11:40 jdk-8u221-linux-x64.tar.gz

2)解压并配置环境

[root@hadoop-pseudo src]# tar xf jdk-8u221-linux-x64.tar.gz 
[root@hadoop-pseudo src]# tar xf  hadoop-2.10.2.tar.gz 
[root@hadoop-pseudo src]# mv jdk1.8.0_221 /usr/local/jdk
[root@hadoop-pseudo src]# mkdir /apps/ -p
[root@hadoop-pseudo src]# mv hadoop-2.10.2 /apps/hadoop
`添加环境变量`
[root@hadoop-pseudo src]# vim /etc/profile
#最后面添加
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/apps/hadoop
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
`让配置文件生效`
[root@hadoop-pseudo src]# source /etc/profile
`验证`
[root@hadoop-pseudo src]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

3)修改配置文件

主要涉及的配置文件有:hadoop-env.sh、mapred-env.sh、yarn-env.sh、core-site.xml

3.1)修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中JAVA_HOME参数

[root@hadoop-pseudo ~]# vim ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
#修改为jdk的绝对路径
export JAVA_HOME=/usr/local/jdk
[root@hadoop-pseudo ~]# vim ${HADOOP_HOME}/etc/hadoop/mapred-env.sh
#修改为jdk的绝对路径
export JAVA_HOME=/usr/local/jdk
[root@hadoop-pseudo ~]# vim ${HADOOP_HOME}/etc/hadoop/yarn-env.sh
#修改为jdk的绝对路径
export JAVA_HOME=/usr/local/jdk

3.2)修改core-site.xml

[root@hadoop-pseudo ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.139.31 hd1
​
[root@hadoop-pseudo ~]# vim ${HADOOP_HOME}/etc/hadoop/core-site.xml 
​
<configuration>
<!-- 配置fs.defaultFS -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hd1:8020</value>
  </property>
<!-- 配置hadoop临时目 -->
  <property>
     <name>hadoop.tmp.dir</name>
     <value>/opt/data/tmp</value>
  </property>
</configuration>

3.3)配置hdfs-site.xml

[root@hadoop-pseudo ~]# vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml 
​
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

dfs.replication配置的是HDFS存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1。

3.4)格式化hdfs

[root@hadoop-pseudo ~]# hdfs namenode -format
  • 格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中。

  • 格式化后,查看core-site.xml里hadoop.tmp.dir(本例是/opt/data目录)指定的目录下是否有了dfs目录,如果有,说明格式化成功。

[root@hadoop-pseudo ~]# ll /opt/data/tmp/dfs/name/current/
total 16
-rw-r--r-- 1 root root 323 Nov 30 15:32 fsimage_0000000000000000000
-rw-r--r-- 1 root root  62 Nov 30 15:32 fsimage_0000000000000000000.md5
-rw-r--r-- 1 root root   2 Nov 30 15:32 seen_txid
-rw-r--r-- 1 root root 218 Nov 30 15:32 VERSION
​
# fsimage是NameNode元数据在内存满了后,持久化保存到的文件。
# fsimage*.md5 是校验文件,用于校验fsimage的完整性。
# seen_txid 是hadoop的版本
# vession文件里保存:
  • namespaceID:NameNode的唯一ID。

  • clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群

4)启动角色

4.1)启动namenode

[root@hadoop-pseudo ~]# hadoop-daemon.sh start namenode 

4.2)启动datanode

[root@hadoop-pseudo ~]# hadoop-daemon.sh start datanode

4.3)验证

[root@hadoop-pseudo ~]# jps
13379 NameNode
13469 DataNode
13549 Jps

5) HDFS上测试创建目录、上传、下载文件

5.1)创建目录

[root@hadoop-pseudo ~]# hdfs dfs -mkdir -p /test/input 

5.2)上传文件

[root@hadoop-pseudo ~]# echo 123456 > test.txt
[root@hadoop-pseudo ~]# hdfs dfs -put /root/test.txt /test/input 

5.3)读取内容

[root@hadoop-pseudo ~]# hdfs dfs -cat /test/test.txt
123456

5.4)下载文件到本地

[root@hadoop-pseudo ~]# hdfs dfs -get /test/test.txt /tmp/
[root@hadoop-pseudo ~]# cat /tmp/test.txt 
123456

6)配置yarn

6.1)Yarn介绍

  • A framework for job scheduling and cluster resource management.

    功能:任务调度 和 集群资源管理

  • YARN (Yet An other Resouce Negotiator) 另一种资源协调者

    是 Hadoop 2.0新增加的一个子项目,弥补了Hadoop 1.0(MRv1)扩展性差、可靠性资源利用率低以及无法支持其他计算框架等不足。

  • Hadoop的下一代计算框架MRv2将资源管理功能抽象成一个通用系统YARN

  • MRv1的 jobtracker和tasktrack也不复存在,计算框架 (MR, storm, spark)同时运行在之上,使得hadoop进入了多计算框架的弹性平台时代。

总结:

  • yarn是一种资源协调者

  • 从mapreduce拆分而来

  • 带来的好处:让hadoop平台性能及扩展性得到更好发挥

6.2)使用Yarn好处

  • 在某些时间,有些资源计算框架的集群紧张,而另外一些集群资源空闲。 那么这框架共享使用一个则可以大提高利率些集群资源空闲。

  • 维护成本低。

  • 数据共享。 避免了集群之间移动数据。

YARN 主从架构

  • ResourceManager 资源管理

  • NodeManager 节点管理

  • ResourceManager负责对各个NodeManager 上的资源进行统一管理和任务调度。

  • NodeManager在各个计算节点运行,用于接收RM中ApplicationsManager 的计算任务、启动/停止任务、和RM中Scheduler 汇报并协商资源、监控并汇报本节点的情况。

6.3) 配置mapred-site.xml

默认没有mapred-site.xml文件,但是有个mapred-site.xml.template配置模板文件。复制模板生成mapred-site.xml

[root@hadoop-pseudo ~]# cp /apps/hadoop/etc/hadoop/mapred-site.xml.template /apps/hadoop/etc/hadoop/mapred-site.xml
[root@hadoop-pseudo ~]# vim /apps/hadoop/etc/hadoop/mapred-site.xml
​
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

指定mapreduce运行在yarn框架上。

6.4)配置yarn-site.xml

[root@hadoop-pseudo ~]# vim /apps/hadoop/etc/hadoop/yarn-site.xml
​
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hd1</value>
  </property>
</configuration>
  • yarn.nodemanager.aux-services配置了yarn的默认混洗方式,选择为mapreduce的默认混洗算法。

  • yarn.resourcemanager.hostname指定了Resourcemanager运行在哪个节点上。

6.5)启动yarn

[root@hadoop-pseudo ~]# yarn-daemon.sh start resourcemanager 
starting resourcemanager, logging to /apps/hadoop/logs/yarn-root-resourcemanager-hadoop-pseudo.out
[root@hadoop-pseudo ~]# yarn-daemon.sh start nodemanager 
starting nodemanager, logging to /apps/hadoop/logs/yarn-root-nodemanager-hadoop-pseudo.out
[root@hadoop-pseudo ~]# jps
14993 Jps
14630 ResourceManager
14349 NameNode
14445 DataNode
14877 NodeManager

6.6)YARN的Web页面

http://192.168.139.31:8088/

6.7)测试

在Hadoop的share目录里,自带了一些jar包,里面带有一些mapreduce实例小例子,位置在share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar,可以运行这些例子体验刚搭建好的Hadoop平台,我们这里来运行最经典的WordCount实例。

创建目录

[root@hadoop-pseudo ~]# hdfs dfs -mkdir /test 
[root@hadoop-pseudo ~]# hdfs dfs -mkdir /test/input

上传文件

[root@pseudo ~]# vim test.txt
nihap
12333
123332
12333
192.168.139.33
192.168.139.33
192.168.139.31
[root@hadoop-pseudo ~]# hdfs dfs -put /root/test.txt /test/input

运行实例

[root@hadoop-pseudo logs]# hadoop jar /apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar wordcount /test/input /test/output/00
`或者`
[root@hadoop-pseudo logs]# yarn jar /apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar wordcount /test/input /test/output/00

查看输出结果

[root@hadoop-pseudo ~]# hdfs dfs -ls /test/output/00
Found 2 items
-rw-r--r--   1 root supergroup          0 2023-11-30 21:43 /test/output/00/_SUCCESS
-rw-r--r--   1 root supergroup         59 2023-11-30 21:43 /test/output/00/part-r-00000
[root@hadoop-pseudo ~]# hdfs dfs -cat  /test/output/00/part-r-00000
12333   2
123332  1
192.168.139.31  1
192.168.139.33  2
nihap   1

7)停止hadoop

[root@hadoop-pseudo ~]# hadoop-daemon.sh stop namenode
[root@hadoop-pseudo ~]# hadoop-daemon.sh stop datanode
[root@hadoop-pseudo ~]# yarn-daemon.sh stop resourcemanager
[root@hadoop-pseudo ~]# yarn-daemon.sh stop nodemanager

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号