haddop安装

环境

  • macOS Catalina 10.15.6
  • JDK 1.8.0_261
  • homebrew

安装

  • ssh locahost(免密码登陆)

在这里插入图片描述

ssh-keygen -t rsa -P "you-email"
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost
  • 安装
brew install hadoop

配置

所有的配置均在: /usr/local/Cellar/hadoop/3.3.0/libexec/etc/hadoop下

  • 配置文件
配置文件的名称作用
core-site.xml核心配置文件,主要定义了我们文件访问的格式 hdfs://
hadoop-env.sh主要配置我们的java路径
hdfs-site.xml主要定义配置我们的hdfs的相关配置
mapred-site.xml主要定义我们的mapreduce相关的一些配置
slaves控制我们的从节点在哪里 datanode nodemanager在哪些机器上
yarm-site.xml配置我们的resourcemanager资源调度
  • 指定Java环境:hadoop-env.sh
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
  • core-site.xml
<configuration>
  <!-- 临时数据存放的位置 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
        <description>A base for other temporary directories.</description>
    </property>
  <!-- 单一namenode,配置fs.default.name,
    namenode HA需要配置s.defaultFS
    HDFS和MapReduce组件都需要用到它 -->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
  • mapred-site.xml
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9010</value>
    </property>
</configuration>
  • hdfs-site.xml
<!-- 我们只有一台主机和一个伪分布式模式的DataNode,将此值修改为1-->
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

运行

  • 格式化hdfs文件系统
cd /usr/local/Cellar/hadoop/3.3.0/bin
hadoop namenode -format
  • 运行
cd /usr/local/Cellar/hadoop/3.3.0/sbin
./start-all.sh
jps
57969 SecondaryNameNode
58161 ResourceManager
57734 NameNode
58263 NodeManager
49034 RemoteMavenServer36
57835 DataNode
61182 Jps
<think>好的,我现在需要帮助用户解决如何在Java项目中通过Maven添加Hadoop依赖的问题。首先,我应该回顾用户提供的引用内容,看看有没有相关的信息。用户提供的引用主要涉及Flink和Spark的Maven配置,比如引用[1]中的Flink依赖示例,引用[3]和[4]中的Spark配置。虽然这些不是Hadoop的直接配置,但结构上可能有相似之处。 接下来,用户的问题是关于Hadoop的,所以我需要确定正确的groupId和artifactId。通常,Hadoop的核心依赖是org.apache.hadoop下的hadoop-common和hadoop-hdfs等模块。版本方面,用户可能需要选择最新的稳定版本,比如3.3.6,但也要根据项目需求调整。 然后,我需要确保依赖的格式正确,参考用户提供的Flink和Spark的例子,比如引用[1]中的结构。需要注意的是,Hadoop依赖通常不需要provided作用域,除非是在特定环境下,比如集群中运行,所以可能需要省略<scope>provided</scope>这一行。 另外,用户可能需要测试或运行MapReduce任务,所以可能需要hadoop-mapreduce-client-core依赖。同时,如果涉及HDFS,添加hadoop-hdfs也是必要的。还需要提醒用户注意版本兼容性,以及可能需要配置Maven仓库,特别是如果公司有私有仓库的话。 最后,根据用户提供的示例,我需要生成相关问题,比如如何管理版本冲突、Hadoop核心组件的作用等,这有助于用户进一步学习。</think>### 如何在Java项目中引入Hadoop依赖(Maven pom.xml) #### 步骤说明 1. **确认Hadoop版本** 选择与你的环境兼容的Hadoop版本。例如,当前稳定版本为`3.3.6`,但需根据实际需求调整。 2. **添加核心依赖** 在`pom.xml`的`<dependencies>`标签内添加以下内容: ```xml <!-- Hadoop Common(基础库) --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.3.6</version> </dependency> <!-- Hadoop HDFS(分布式文件系统) --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>3.3.6</version> </dependency> <!-- Hadoop MapReduce(计算框架) --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>3.3.6</version> </dependency> ``` 3. **配置Maven仓库(可选)** 如果本地仓库未缓存Hadoop依赖,需确保Maven配置中包含中央仓库: ```xml <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories> ``` #### 注意事项 - **版本一致性**:所有Hadoop组件的版本需保持一致,避免兼容性问题[^3]。 - **作用域**:若项目部署到Hadoop集群运行,可设置`<scope>provided</scope>`(参考Flink依赖示例)[^1]。 - **日志依赖**:Hadoop可能依赖SLF4J等日志框架,需额外添加日志实现库(如`log4j`)。 #### 示例代码 完整`pom.xml`片段: ```xml <dependencies> <!-- Hadoop基础库 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.3.6</version> </dependency> <!-- HDFS依赖 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>3.3.6</version> </dependency> <!-- MapReduce依赖 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>3.3.6</version> </dependency> </dependencies> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值