hadoop-3.1.2部署HDFS并保证集群外的节点可以访问HDFS

本教程详细介绍了如何在Hadoop 3.1.2环境下部署HDFS,并确保外部节点通过HTTPFS进行访问。步骤包括安装Hadoop,配置JAVA环境,编辑相关配置文件如core-site.xml和hdfs-site.xml,设置主机名,启动NameNode等服务,以及开放14000端口以允许HTTPFS服务提供外部访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考教程:
https://hadoop.apache.org/docs/r3.0.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operatio1.1

https://hadoop.apache.org/docs/r3.0.0/hadoop-hdfs-httpfs/index.html

1.install hadoop-3.1.2

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

2.解压hadoop(任意目录)

tar -zxvf hadoop-3.1.2.tar.gz

3.安装JAVA-8

sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version

4.配置环境变量

open ~/.bashrc or /etc/proflie

加入

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

5.在/etc/hosts中加入master节点的名字

vim /et
[user1@node11 apache-flume-1.9.0-bin]$ bin/flume-ng agent -c ./conf -f ./conf/spool-hdfs.conf -n a1 -Dflume.root.logger=INFO,console Info: Sourcing environment configuration script /home/user1/hadooptools/apache-flume-1.9.0-bin/conf/flume-env.sh Info: Including Hadoop libraries found via (/home/user1/hadooptools/hadoop-3.1.2/bin/hadoop) for HDFS access Info: Including HBASE libraries found via (/home/user1/hadooptools/hbase-2.4.17/bin/hbase) for HBASE access Info: Including Hive libraries found via (/home/user1/hadooptools/hive/apache-hive-3.1.2-bin) for Hive access + exec /home/jdk1.8.0_161/bin/java -Xmx20m -Dflume.root.logger=INFO,console -cp '/home/user1/hadooptools/apache-flume-1.9.0-bin/conf:/home/user1/hadooptools/apache-flume-1.9.0-bin/lib/*:/home/user1/hadooptools/hadoop-3.1.2/etc/hadoop:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/common/lib/*:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/common/*:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/hdfs:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/hdfs/*:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/mapreduce/*:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/yarn:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/yarn/lib/*:/home/user1/hadooptools/hadoop-3.1.2/share/hadoop/yarn/*:/home/user1/hadooptools/hbase-2.4.17/conf:/home/jdk1.8.0_161/lib/tools.jar:/home/user1/hadooptools/hbase-2.4.17:/home/user1/hadooptools/hbase-2.4.17/lib/shaded-clients/hbase-shaded-client-byo-hadoop-2.4.17.jar:/home/user1/hadooptools/hbase-2.4.17/lib/client-facing-thirdparty/audience-annotations-0.13.0.jar:/home/user1/hadooptools/hbase-2.4.17/lib/client-facing-thirdparty/commons-logging-1.2.jar:/home/user1/hadooptools/hbase-2.4.17/lib/client-facing-thirdparty/htrace-core4-4.2.0-incubating.jar:/home/user1/hadooptools/hbase-2.4.17/lib/client-facing-thirdparty/reload4j-1.2.22.jar:/home/user1/h
最新发布
03-20
<think>好的,我现在需要帮助用户解决Apache Flume 1.9.0启动时遇到的依赖问题,特别是与Hadoop和HBase相关的问题。首先,我得回忆一下Flume的基本结构和依赖管理。用户提到启动问题,可能涉及到环境变量、配置文件、依赖包缺失或版本冲突等方面。 首先,用户提供的引用内容中有提到配置flume-env.sh文件,特别是设置JAVA_HOME。这可能是一个关键点,因为如果Java环境变量没有正确配置,Flume可能无法启动。需要检查flume-env.sh中JAVA_HOME的路径是否正确,且确保所有节点都分发了正确的配置。此,用户提到删除guava-11.0.2.jar可能导致异常,如果没有正确配置Hadoop环境变量,这也可能引发问题。因此,需要确认Hadoop的环境变量是否在启动Flume的节点上正确设置。 接下来,检查Flume的依赖包。Flume需要Hadoop和HBase的相关JAR文件,尤其是在集成HBase作为存储时。用户可能没有将Hadoop和HBase的依赖包放入Flume的lib目录下,或者版本不兼容。例如,HBase 2.x和Flume 1.9.0可能存在依赖冲突,需要确认版本是否匹配。另,Guava库的版本冲突是一个常见问题,Hadoop、HBase和Flume各自可能依赖不同版本的Guava,需要统一版本。 然后,查看Flume的配置文件是否正确。例如,在引用[3]中提到了Kafka Source的配置,包括拦截器的使用。如果用户在自己的配置中使用了自定义拦截器,但没有正确打包或配置类路径,可能导致启动失败。需要确认所有插件或自定义组件的路径是否正确,且相关类已被正确加载。 日志分析也是重要的一步。查看Flume的启动日志,特别是错误堆栈信息,可以快速定位问题。例如,ClassNotFoundException或NoSuchMethodError通常指向依赖缺失或版本冲突。用户需要检查日志中的具体错误信息,据此排查。 网络和权限问题也不能忽视。确保所有涉及的Hadoop和HBase服务正常运行,且Flume有足够的权限访问所需的目录和端口。例如,HBase的ZooKeeper连接是否正确,HDFS的路径是否可写等。 另,用户提到使用xsync分发Flume,这需要确认所有节点的配置和依赖是否一致。特别是环境变量和JAR文件,任何一个节点上的不一致都可能导致问题。 最后,建议用户按照步骤逐步检查,从环境变量到依赖包,再到配置文件和日志分析,逐步排除可能的原因。如果问题依然存在,提供详细的日志信息可以进一步帮助诊断。</think>### Apache Flume 1.9.0启动问题排查指南 #### 1. **检查环境变量配置** - **Java环境**:确保`flume-env.sh`中配置了正确的`JAVA_HOME`,例如: ```bash export JAVA_HOME=/opt/module/jdk1.8.0_144 # 路径需与实际安装目录一致[^1] ``` - **Hadoop环境**:如果Flume需要与Hadoop交互,需在`flume-env.sh`中添加Hadoop环境变量: ```bash export HADOOP_HOME=/opt/module/hadoop-3.1.3 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop ``` 确保所有节点通过`xsync`同步配置[^1][^4]。 #### 2. **验证依赖库兼容性** - **Hadoop/HBase依赖**: -Hadoop和HBase的客户端JAR包(如`hadoop-common-*.jar`、`hbase-client-*.jar`)复制到Flume的`lib`目录。 - **注意版本冲突**:例如,HBase 2.x与Flume 1.9.0可能存在Guava库冲突。需确保所有组件使用**相同版本的Guava**(如Guava 30.1-jre)[^5]。 - **依赖检查命令**: ```bash ls $FLUME_HOME/lib | grep -E &#39;hadoop|hbase|guava&#39; # 确认关键依赖存在 ``` #### 3. **配置文件排查** - **Agent配置**:检查`.conf`文件中Source、Channel、Sink的配置,例如Kafka Source需指定正确的bootstrap servers和topic: ```properties a1.sources.r1.kafka.bootstrap.servers = hadoop102:9092,hadoop103:9092,hadoop104:9092 a1.sources.r1.kafka.topics = topic_log # 与Kafka实际topic一致[^3] ``` - **插件与拦截器**:若使用自定义拦截器(如`TimeStampInterceptor`),需将编译后的JAR包添加到Flume的`plugins.d`目录或`lib`目录。 #### 4. **日志分析** - **查看启动日志**: ```bash tail -f $FLUME_HOME/logs/flume.log # 实时监控日志 ``` - **常见错误**: - **ClassNotFoundException**:依赖缺失,检查相关JAR是否在`lib`目录。 - **NoSuchMethodError**:版本冲突,需统一依赖版本(如Guava、Netty等)。 #### 5. **网络与权限验证** - **HDFS权限**:若Sink写入HDFS,需确保Flume进程用户(如`xiaobai`)有目标目录的写入权限。 - **HBase连接**:检查HBase的ZooKeeper地址配置是否正确,且相关服务(如HMaster、RegionServer)已启动。 #### 6. **最小化测试** - **使用简单配置测试**:通过极简配置排除复杂因素,例如: ```properties # test.conf a1.sources = r1 a1.sinks = k1 a1.channels = c1 a1.sources.r1.type = netcat # 使用内置Netcat Source a1.sinks.k1.type = logger a1.channels.c1.type = memory a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 ``` 启动命令: ```bash bin/flume-ng agent -n a1 -c conf -f test.conf -Dflume.root.logger=INFO,console ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值