Hadoop搭建及Springboot集成

文章目录

环境说明

使用Hadoop的前提是linux服务器上必须安装java ,这里不赘述怎么安装java。

Hadoop的版本为3.4.0,安装子啊linux服务器上 下载地址,springboot使用的是hadoop-aliyun依赖包。本地调试为Windows电脑

下载安装

hadoop下载解压到linux上,配置环境变量

shell 复制代码
vim /etc/profile

在/etc/profile文件下添加hadoop相关的环境变量

shell 复制代码
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

配置好变量后,使用如下命令验证

shell 复制代码
hadoop version

配置单机伪集群

进入到hadoop配置文件目录

shell 复制代码
一般在hadoop安装目录ect/hadoop文件夹里

配置hadoop-env.sh

shell 复制代码
export HADOOP_HOME=/usr/local/hadoop
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

配置core-sit.xml

xml 复制代码
<configuration>
<property>
        <name>fs.defaultFS</name>
        <!-- hadoop01-sit随便起的,不要使用ip及localhost -->
        <value>hdfs://hadoop01-sit:9000</value>
    </property>
 
    <!-- 指定 hadoop 数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/hdfs/tmp</value>
    </property>
 
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
 
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
 <property>
      <name>fs.hdfs.impl</name>
      <value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
 </property>

</configuration>

配置hdfs-site.xml

xml 复制代码
<configuration>
<property>
        <name>dfs.replication</name>      
        <value>1</value>
    </property>  
 
    <property>
        <name>dfs.namenode.name.dir</name>  
        <value>/usr/local/hadoop/hdfs/name</value>  
        <final>true</final>
    </property>  
 
    <property>
        <name>dfs.datanode.data.dir</name>  
        <value>/usr/local/hadoop/hdfs/data</value>  
        <final>true</final>
    </property>  
 
    <property>
    <!--web界面端口号 -->
        <name>dfs.http.address</name>
        <value>0.0.0.0:50070</value>
    </property>
 
    <property>
        <name>dfs.permissions</name>  
        <value>false</value>
    </property>
 <property>
   <!-- hadoop01-sit要和core-sit配置fs.defaultFS值一致 -->
        <name>dfs.namenode.rpc-address</name>
        <value>hadoop01-sit:9000</value>
    </property>
</configuration>

配置 yarn-site.xml

xml 复制代码
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
 </configuration>

配置mapred-site.xml

xml 复制代码
<configuration>
<property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
 </property>
</configuration>

启动

shell 复制代码
#在hadoop安装目录 sbin文件夹下
# 启动全部
./start-all

访问web界面

访问到界面标识启动成功,本地Windows电脑修改host文件将hadoop01-sit映射到了linux服务器ip

http://hadoop01-sit:50070/

Windows电脑远程调用

当本地springboot项目作为hadoop客户端的hdfs,会报错

java 复制代码
HADOOP_HOME AND HADOOP.HOME.DIR ARE UNSET

问题原因windos电脑作为客户端,操作hdfs还需要下载一个Windows的winutils程序。下载地址

下载后这里使用的是hadoop-3.0.0工具

将hadoop-3.0.0工具配置成Windows环境变量

springBoot 集成

使用的是hadoop-aliyun依赖包,但是操作hadoop的hdfs文件系统还需要引入

kts 复制代码
hadoopVersion = "3.1.4"
hadoop-hdfs = { module = "org.apache.hadoop:hadoop-hdfs", version.ref = "hadoopVersion" }
hadoop-hdfs-client = { module = "org.apache.hadoop:hadoop-client", version.ref = "hadoopVersion" }

本地调试操作hdfs,使用org.apache.hadoop.conf.Configuration进行配置,使用org.apache.hadoop.fs.FileSystem类对文件进行上传下载操作。

具体操作可参考这一篇博客链接: springboot操作hdfs上传下载

相关推荐
AI营销资讯站14 小时前
原圈科技AI营销内容生产体系助力企业降本提效新变革
大数据·人工智能
原神启动114 小时前
Nginx云计算大数据——安装AND版本升级(普通升级+平滑升级+失败回滚)
大数据·nginx·云计算
qq_124987075314 小时前
基于spark的新闻文本分类系统(源码+论文+部署+安装)
大数据·分类·数据挖掘·spark
存储国产化前线14 小时前
国产工业级存储进阶之路:从自主可控主控到可靠可用的全链路突围
大数据·人工智能·物联网
a程序小傲14 小时前
米哈游Java后端面试被问:Spring Boot Starter的制作原理
java·spring boot·后端
AI营销先锋14 小时前
原圈科技赋能AI市场舆情分析,推动企业智能化决策变革
大数据·人工智能
老蒋新思维14 小时前
创客匠人观察:知识IP的下一站——与AI智能体共生的“人机协同”模式
大数据·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
后端小张14 小时前
【JAVA 进阶】深入理解Sentinel:分布式系统的流量守卫者
java·开发语言·spring boot·后端·spring·spring cloud·sentinel
2024暴富14 小时前
SpringBoot基于Mybatis拦截器实现数据权限(图文)
spring boot·spring cloud·mybatis
啊吧怪不啊吧15 小时前
SQL之用户管理——权限与用户
大数据·数据库·sql