001 Hadoop安装、Spring整合测试

Hadoop安装、整合测试

文章目录

参考原文:https://blog.csdn.net/weixin_44458771/article/details/141711471

1.简介

Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一 [2]。2004年,Google在"操作系统设计与实现"(Operating System Design and Implementation,OSDI)会议上公开发表了题为MapReduce:Simplified Data Processing on Large Clusters(Mapreduce:简化大规模集群上的数据处理)的论文之后,受到启发的Doug Cutting等人开始尝试实现MapReduce计算框架,并将它与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法 [2]。由于NDFS和MapReduce在Nutch引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并被命名为Hadoop。到了2008年年初,hadoop已成为Apache的顶级项目。

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。广义上也可代指hadoop生态圈

1.优点

1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖 。

2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中 。

3.高效性 。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快 。

4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

5.低成本。Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,成本很低。

2.组成

hadoop主要由三大部分组成

  • MapReduce:负责计算
  • HDFS: 分布式文件存储
  • Yarn:资源管理调度 (hadoop2.x之后引入)

2.安装

1.安装jdk(如已安装可跳过)

1.下载安装包

shell 复制代码
wget --no-check-certificate https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz

2.解压

shell 复制代码
tar -zxvf jdk-8u151-linux-x64.tar.gz

3.重命名

shell 复制代码
mv jdk1.8.0_151/  java8

4.配置环境变量

shell 复制代码
echo 'export JAVA_HOME=/usr/local/jdk/java8' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile

5.验证是否安装成功

shell 复制代码
java -version

2.安装hadoop

1.安装

1.下载安装包

shell 复制代码
wget --no-check-certificate https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

2.解压重命名

shell 复制代码
tar -zxvf hadoop-3.1.3.tar.gz 
mv hadoop-3.1.3  hadoop

3.配置环境变量

shell 复制代码
echo 'export HADOOP_HOME=/usr/software/hadoop/' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile
source /etc/profile

4.修改配置文件

shell 复制代码
echo "export JAVA_HOME=/usr/local/jdk/java8" >> /usr/software/hadoop/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/usr/local/jdk/java8" >> /usr/software/hadoop/etc/hadoop/hadoop-env.sh

5.验证是否安装成功

shell 复制代码
hadoop version
  • Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
  • Hadoop 的配置文件位于 /usr/software/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
2. 修改配置文件core-site.xml

编辑

shell 复制代码
vim /usr/software/hadoop/etc/hadoop/core-site.xml

将下列内容添加进configuration标签

xml 复制代码
<property>
  <name>hadoop.tmp.dir</name>
  <value>file:/usr/software/hadoop/tmp</value>
  <description>location to store temporary files</description>
</property>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://0.0.0.0:9000</value>
</property>
3. 修改配置文件hdfs-site.xml

编辑hdfs-site.xml

shell 复制代码
vim /usr/software/hadoop/etc/hadoop/hdfs-site.xml
xml 复制代码
<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/software/hadoop/tmp/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/software/hadoop/tmp/dfs/data</value>
</property>
<property>
        <name>dfs.namenode.http-address</name>
        <value>0.0.0.0:50070</value>
</property>

Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

4.启动hadoop

初始化namenode

shell 复制代码
hadoop namenode -format

启动hdfs

shell 复制代码
start-dfs.sh

若出现以下报错

编辑/etc/profile

shell 复制代码
vim /etc/profile

在文件末尾加入以下内容

shell 复制代码
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

激活配置

shell 复制代码
source /etc/profile
5.启动yarn
shell 复制代码
start-yarn.sh
6.执行jps查看

如果失败可以查看hadoop/logs下日志

7.相关端口及配置位置
shell 复制代码
NameNode:
默认端口:9870
配置文件:hdfs-site.xml

DataNode:
默认端口:9864
配置文件:hdfs-site.xml

ResourceManager:
默认端口:8088
配置文件:yarn-site.xml

NodeManager:
默认端口:8043
配置文件:yarn-site.xml

SecondaryNameNode:
默认端口:9868
配置文件:hdfs-site.xml
8.访问后台
shell 复制代码
http://127.0.0.1:8088

这个链接通常与Hadoop的YARN资源管理器相关。

shell 复制代码
http://127.0.0.1:50070

这个链接通常与Hadoop的HDFS(Hadoop分布式文件系统)的Web界面相关。

3.Springboot整合HDFS

xml 复制代码
     <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>3.1.3</version>
        </dependency>

测试

java 复制代码
@Test
public void test02() throws Exception {
    Configuration configuration = new Configuration();
    configuration.set("fs.defaultFS", "hdfs://127.0.0.1:9000");
    FileSystem fileSystem = FileSystem.get(new URI("hdfs://127.0.0.1:9000"),configuration, "root");
    System.out.println(fileSystem);
}

如果出现报错

Caused by: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.

原因:本地远程连接Hadoop系统时需要在本地配置相关的Hadoop变量 。

下载同版本的winutils:https://github.com/cdarlint/winutils

设置windows环境变量 HADOOP_HOME为下载的版本目录

Path新增

复制bin目录下hadoop.dll文件到windows/system32

重启idea,测试

相关推荐
cainiao0806053 分钟前
Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
java·大数据·开发语言
神秘的t1 小时前
Spring Web MVC————入门(2)
java·spring·mvc
冷心笑看丽美人1 小时前
Spring MVC数据绑定和响应 你了解多少?
java·spring·mvc
End9283 小时前
Spark之搭建Yarn模式
大数据·分布式·spark
我爱写代码?3 小时前
Spark 集群配置、启动与监控指南
大数据·开发语言·jvm·spark·mapreduce
TDengine (老段)3 小时前
什么是物联网 IoT 平台?
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
青云交3 小时前
Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网海量设备数据长期存储中的应用优化(248)
java·大数据·工业互联网·分布式存储·冷热数据管理·hbase 优化·kudu 应用
艾醒(AiXing-w)4 小时前
探索大语言模型(LLM):国产大模型DeepSeek vs Qwen,谁才是AI模型的未来?
大数据·人工智能·语言模型
尽兴-4 小时前
Lambda架构与Kappa架构对比详解
hadoop·架构·kafka·lambda·kappa
蒂法就是我4 小时前
详细说说Spring的IOC机制
java·后端·spring