0


基于Ubuntu的Hadoop伪分布式配置

基于Ubuntu的Hadoop伪分布式配置

Hadoop 下载

推荐去我的网盘下载或者找国内镜像资源,因为https://hadoop.apache.org/下载速度龟速。
在这里插入图片描述

链接:https://pan.baidu.com/s/1uwqnN4rMWfGNIB-33fFZKw?pwd=1010
提取码:1010

Hadoop 安装

需要具有

Ubuntu

环境

sudouseradd -m hadoop -s /bin/bash

sudopasswd hadoop
# 对 hadoop用户添加管理员权限sudo adduser hadoop sudosudoapt-get update

# ssh 安装和登录sudoapt-getinstall openssh-server

ssh localhost

# 配置无密码登录exitcd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys

sudoapt-get update

sudoapt-getinstall openjdk-8-jdk
java -version
gedit ~/.bashrc
exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source ~/.bashrc
echo$JAVA_HOME
java -version
whereis java

# 安装 hadoopsudotar -zxf ~/下载/hadoop-3.2.4.tar.gz -C /usr/local
cd /usr/local/
sudomv ./hadoop-3.2.4/ ./hadoop
sudochown -R hadoop ./hadoop
cd /usr/local/hadoop

# 检查 hadoop是否是可用的
./bin/hadoop version

mkdir ./input
cp ./etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'cat ./output/*

# hadoop 默认不会覆盖结果文件,因此再次运行上面实类时,会报错,需要要将 ./output 删除rm -r ./output

# hadoop 伪分布式配置cd /usr/local/hadoop

gedit ./etc/hadoop/core-site.xml

<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>

gedit ./etc/hadoop/hdfs-site.xml

<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>cd /usr/local/hadoop
./bin/hdfs namenode -format
# 开启 NameNode和 DataNode守护进程
./sbin/start-dfs.sh
# 判断是否成功启动
jps

火狐浏览器访问

localhost:9870

在这里插入图片描述
win10上访问
在这里插入图片描述

./bin/hdfs dfs -mkdir -p /user/hadoop
./bin/hdfs dfs -mkdir input

# 复制到分布式文件系统中
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
# 查看文件列表 
./bin/hdfs dfs -ls input

./sbin/start-dfs.sh
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output `dfs[a-z.]+`
./bin/hdfs dfs -cat output/*
# 可能无法删除rm -f ./output
./bin/hdfs dfs -get output ./output
cat ./output/*
./bin/hdfs dfs -rm -r output

# 关闭hadoop
./sbin/stop-dfs.sh
gedit ~/.bashrc
exportPATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

source ~/.bashrc

hadoop@ubuntu:/usr/local/hadoop$ hadoop version
Hadoop 3.2.4
Source code repository Unknown -r 7e5d9983b388e372fe640f21f048f2f2ae6e9eba
Compiled by ubuntu on 2022-07-12T11:58Z
Compiled with protoc 2.5.0
From source with checksum ee031c16fe785bbb35252c749418712
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.2.4.jar

视频教程

https://www.bilibili.com/video/BV1eZ4y1k7LZspm_id_from=333.880.my_history.page.click

认识 Hadoop

大数据的定义
麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。

大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

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

  • Hadoop Common:支持其他Hadoop模块的通用实用程序。
  • Hadoop分布式文件系统HDFS:一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。
  • Hadoop YARN:用于作业调度和群集资源管理的框架。
  • Hadoop MapReduce:基于YARN的系统,用于并行处理大数据集。谷歌技术的开源实现
  • Hadoop Ozone: Hadoop的对象存储。

Hadoop 历史
2003 年和 2004 年,

Google

公司先后发表了两篇著名的论文

GFS

 MapReduce

。这两篇论文和 2006 年发表的

BigTable

成为了现在著名的"Google 三大论文"。

Doug Cutting 

在受到了这些理论的影响后开始了

Hadoop

的开发。
Hadoop 包含了两大核心组件。在

 Google

的论文中,

GFS 

是一个在庞大的计算机集群中运行的分布式文件系统,在

 Hadoop

HDFS

实现了它的功能。

MapReduce

是一个分布式计算的方式,

Hadoop 

用同名称的

MapReduce

框架实现了它的功能。
Hadoop 的作用

Hadoop

的作用非常简单,就是在多计算机集群环境中营造一个统一而稳定的存储和计算环境,并能为其他分布式应用服务提供平台支持。
也就是说,

Hadoop

在某种程度上将多台计算机组织成了一台计算机(做同一件事),那么

HDFS 

就相当于这台计算机的硬盘,而

MapReduce 

就是这台计算机的

CPU

控制器。

Hadoop 框架最根本的原理就是利用大量的计算机同时运算来加快大量数据的处理速度

hadoop3.2.1 中文文档

Hadoop 基本命令

Hadoop 

主要包含

HDFS 

MapReduce 

两大组件,

HDFS 

负责分布储存数据,

MapReduce 

负责对数据进行映射、规约处理,并汇总处理结果。

HDFS

Hadoop Distributed File System

Hadoop 

分布式文件系统,简称

HDFS

HDFS

用于在集群中储存文件,它所使用的核心思想是

Google 

GFS 

思想,可以存储很大的文件。
在服务器集群中,文件存储往往被要求高效而稳定,

HDFS

同时实现了这两个优点。

HDFS

使用了多个块进行存储,将文件划分为多个块(

Block

)存储在物理服务器中,

HDFS

会按照设计者的需求将文件复制

n

份,将存储在不同的数据节点中,储存数据的服务器,如果一个数据节点发生故障数据也不会丢失。

HDFS

运行在不同的计算机上,有的计算机(

DataNode

)数据节点 专门进行数据的存储,有的计算机

NameNode

命名节点 专门指挥其他计算机存储数据,指挥其他计算机存储数据的计算机配备了一个秘书

Secondary NameNode

副命名节点

NameNode
指挥其他节点存储的节点,任何一个文件系统

FS

都需要将文件路径映射到文件的功能,

NameNode

就是储存这些映射信息并提供映射服务的计算机,在整个

HDFS

中扮演了管理者的角色,因此在一个

HDFS

中只允许有一个

NameNode

Secondary NameNode
别名

次命名节点

,它可以具有多个,共同为一个

NameNode

服务,不能代替

NameNode

进行工作,无论

NameNode

是否可以继续工作,她的职责就是为

NameNode

分担压力,备份

NameNode

状态以及管理一些工作,一旦

NameNode

崩掉了,次命名节点提供备份数据,以便

NameNode

复原。

DataNode
用于存储数据块的节点。当一个文件被

NameNode

承认后会被存储到分配的数据节点中去。数据节点具有存储,读写数据的功能,存储的数据块比较类似于硬盘中的"扇区"概念,是

HDFS 

存储的基本单位。

MapReduce

Map

Reduce

(映射和规约)
通过

map

对每个大的数据分化成为小的

map

数据,方便进行处理,数据处理完成之后,

reduce

合并为最终需要的结果

Hadoop 配置

HDFS 配置和启动

Hadoop 三种模式:单机模式、伪集群模式和集群模式。

单机模式:Hadoop 仅作为库存在,可以在单计算机上执行 MapReduce 任务,仅用于开发者搭建学习和试验环境。
伪集群模式:此模式Hadoop 将以守护进程的形式在单机运行,一般用于开发者搭建学习和试验环境。
集群模式:此模式是 Hadoop的生产环境模式,也就是说这才是 Hadoop 真正使用的模式,用于提供生产级服务。

HDFS和数据库类似,是后台启动的,使用HDFS需要HDFS Client通过网络套接字连接到服务器端实现文件系统的使用。

<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client --><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.2.4</version><scope>provided</scope></dependency>

core-site.xml

<!--配置伪分布式--><configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration><!--
指定NameNode的地址
hadoop3.x默认端口为8020
--><property><name>fs.defaultFS</name><value>hdfs://hadoop102:8020</value></property><!--
指定hadoop数据的存储目录
--><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.2.4/data</value></property><!--
配置HDFS网页登录使用的静态用户为coffee
--><property><name>hadoop.http.staticuser.user</name><value>coffee</value></property>

hdfs-site.xml

<!--
NameNode web端访问地址
--><property><name>dfs.namenode.http-address</name><value>hadoop102:9870</value></property><!--
ScondNameNode web端访问地址
--><property><name>dfs.namenode.http-address</name><value>hadoop102:9870</value></property><!--
指定HDFS副本的数量,默认3,最大副本数默认512
--><property><name>dfs.replication</name><value>3</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>hadoop103</value></property><!--
设置日志保留7天
--><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property>

mapred-site.xml

<!--指定MapReduce程序运行在Yarn上--><property><name>mapreduce.framework.name</name><value>yarn</value></property><!--历史服务器地址--><property><name>mapreduce.jobhistory.address</name><value>hadoop102:10020</value></property><!--历史服务器web地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop102:19888</value></property>
标签: hadoop 分布式 ubuntu

本文转载自: https://blog.csdn.net/qq_46724069/article/details/126757600
版权归原作者 coffee_mao 所有, 如有侵权,请联系我们删除。

“基于Ubuntu的Hadoop伪分布式配置”的评论:

还没有评论