Hadoop学习(一)---Hadoop集群搭建(hadoop-3.3.5)

一、修改服务器配置文件

1、配置环境变量

vim /etc/profile
#java环境变量
export JAVA_HOME=/usr/local/jdk/jdk8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#hadoop环境变量
export HADOOP_HOME=/usr/local/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

2、修改host映射

这里我准备了三台虚拟机
192.168.159.100
192.168.159.101
192.168.159.102
vim  /etc/hosts
# 添加本机的静态IP和本机的主机名之间的映射关系 
192.168.159.100 t1
192.168.159.101 t2
192.168.159.102 t2

二、开放端口

#NameNode 内部通信端口
firewall-cmd --zone=public --add-port=8020/tcp --permanent
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=9820/tcp --permanent

#Secondary NameNode
firewall-cmd --zone=public --add-port=9868/tcp --permanent

#NameNode HTTP UI 端口
firewall-cmd --zone=public --add-port=9870/tcp --permanent

#YARN 查看执行任务端口
firewall-cmd --zone=public --add-port=8088/tcp --permanent

#历史服务器通信端口(jobHistory)
firewall-cmd --zone=public --add-port=10020/tcp --permanent

#历史服务器通信WEB端口(jobHistory.webapp)
firewall-cmd --zone=public --add-port=19888/tcp --permanent

#重新加载防火墙
firewall-cmd --reload

# 查看开放端口
firewall-cmd --list-ports

三、修改HADOOP配置文件

1、core-site.xml

<configuration>
    <!-- 设置namenode节点 -->
    <!-- 注意: hadoop1.x时代默认端口9000 hadoop2.x时代默认端口8020 hadoop3.x时代默认端口 9820 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://t2:9820</value>
    </property>
    
    <!-- hdfs的基础路径,被其他属性所依赖的一个基础路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-3.3.5/tmp</value>
    </property>
</configuration>

2、hdfs-site.xml

<configuration>
    <!-- 块的副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>t3:9868</value>
    </property>
    <!-- namenode守护进程的http地址:主机名和端口号。参考守护进程布局,需要配置中namenode的服务器上 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>t2:9870</value>
    </property>
</configuration>

3、hadoop-env.sh

#这里必须配置JAVA_HOME,否则胡报错。
export JAVA_HOME=/usr/local/jdk/jdk8

# Hadoop3中,需要添加如下配置,设置启动集群角色的用户是谁
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

4、works

t1
t2
t3

四、启动集群

1、格式化集群

#每次修改文件之后,都要进行格式化。
hdfs namenode -format

2、启动集群

start-dfs.sh			# 启动HDFS所有进程(NameNodeSecondaryNameNodeDataNode)
stop-dfs.sh				# 停止HDFS所有进程(NameNodeSecondaryNameNodeDataNode)

# hdfs --daemon start 单独启动一个进程
hdfs --daemon start namenode				# 只开启NameNode
hdfs --daemon start secondarynamenode		# 只开启SecondaryNameNode
hdfs --daemon start datanode				# 只开启DataNode

# hdfs --daemon stop 单独停止一个进程
hdfs --daemon stop namenode					# 只停止NameNode
hdfs --daemon stop secondarynamenode		# 只停止SecondaryNameNode
hdfs --daemon stop datanode					# 只停止DataNode

# hdfs --workers --daemon start 启动所有的指定进程
hdfs --workers --daemon start datanode		# 开启所有节点上的DataNode

# hdfs --workers --daemon stop 启动所有的指定进程
hdfs --workers --daemon stop datanode		# 停止所有节点上的DataNode

3、进程查看

#查看java进程指令
jps

#t1
3378 DataNode
2082 org.elasticsearch.bootstrap.Elasticsearch
1192 QuorumPeerMain
5756 Jps
1215 QuorumPeerMain

#t2
3872 NameNode
2037 org.elasticsearch.bootstrap.Elasticsearch
4072 DataNode
9791 Jps

#t3
4566 DataNode
1976 org.elasticsearch.bootstrap.Elasticsearch
16520 Jps
4671 SecondaryNameNode

4、浏览器查看

http://192.168.159.101:9870/dfshealth.html#tab-datanode

在这里插入图片描述
在这里插入图片描述

### Hadoop Registry Jar 文件的获取方法 Hadoop 的组件通常会随着版本更新而调整其模块结构,因此某些特定 JAR 文件可能不会默认包含在基础安装包中。对于 `hadoop-registry-3.3.5.jar` 这样的文件,可以通过以下方式尝试解决问题。 #### 方法:通过 Maven 中央仓库下载 Maven 是 Java 开发中的依赖管理工具,许多开源项目的官方发布版都可以在其中央仓库找到。可以访问 Maven 官方网站并搜索对应版本的 Hadoop 组件[^1]。 具体操作如下: 1. 打开浏览器并导航到 [Maven Central Repository](https://search.maven.org/)。 2. 在搜索框输入关键词 `hadoop-registry` 和目标版本号 `3.3.5`。 3. 如果存在该文件,则可以直接点击进入详情页面,并下载对应的 `.jar` 文件。 如果无法在线找到所需版本,可能是由于该功能未被独立打包成单独的 JAR 文件,而是集成到了其他核心模块中。 #### 方法二:手动编译源码生成 JAR 文件 当预构建的 JAR 文件不可得时,可以从 Apache Hadoop 的源代码自行编译所需的模块。以下是基本流程: 1. **克隆 Hadoop 源码库** 使用 Git 命令从官方 GitHub 镜像拉取指定版本的源码: ```bash git clone https://github.com/apache/hadoop.git cd hadoop git checkout rel/release-3.3.5 ``` 2. **配置开发环境** 确保本地已安装 JDK、Apache Maven 及其他必要的构建工具。例如设置 JAVA_HOME 并验证版本兼容性。 3. **执行 Maven 构建命令** 利用 Maven 编译整个项目并将结果存储至本地目录: ```bash mvn clean package -Pdist,native -DskipTests -Dtar ``` 此过程可能会花费较长时间完成全部子模块的组装工作。完成后,在输出路径下应能找到完整的 JAR 文件集合。 #### 方法三:检查现有 CLASSPATH 是否遗漏加载 有时并非真正缺少物理上的 JAR 文件,而是因为应用程序未能正确定位它们所致。依据描述提到的情况——即运行过程中提示找不到某个类实例时,可参照已有文档说明排查是否存在 PATH 或 LIBRARY_PATH 设置错误等问题[^2]。 最后提醒点,不同发行商(如 Cloudera, Hortonworks)基于上游社区发布的稳定分支定制化修改后重新分发的产品形态各异,所以建议优先选用与当前部署平台致的标准镜像资源链接作为参考标准之。 ```python import os print(os.environ.get(&#39;CLASSPATH&#39;)) ``` 上述脚本可用于打印当前 Python 脚本所处环境中定义好的 CLASSPATH 参数值供调试诊断之需。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值