1. 下载和准备工作
1.1 安装包下载
https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/
访问apche官网源,下载3.3.4版本,我们用二进制通用版即可,因为hadoop运行在java环境,跨平台性使得无需编译arm架构版本。Hadoop 3.3.4 是当前稳定版本,兼容性和长期支持较好。此版本对最新的Spark和Flink以及Hive也有良好的支持。
然后将文件传到服务器ubuntu1节点。
1.2 前提条件
本次安装实验基于苹果m2芯片的mac系统,使用vmware fusion搭建三台ubuntu24分布式虚拟机,确保在三台机器上安装了Java jdk8,并配置了免密码登录,网络互通,防火墙关闭,授时服务器已经同步。如无提示,本次所有安装步骤均在root用户权限下进行。
| hostname | ip |
|---|---|
| ubuntu1 | 172.16.167.131 |
| ubuntu2 | 172.16.167.132 |
| ubuntu3 | 172.16.167.133 |
2. 安装过程
安装过程中遇到的报错已经在5. 安装报错小节中体现。本小节的所有配置和步骤均为优化后的无坑版安装方式。
STEP 1: 解压并配置Hadoop
首先,使用su rootroot权限,在Ubuntu1上解压Hadoop并配置环境变量:
tar -xzf hadoop-3.3.4.tar.gz
mv hadoop-3.3.4 /usr/local/hadoop
# 配置环境变量
vim ~/.bashrc
# 添加JDK路径到PATH
export JAVA_HOME=/usr/local/jdk1.8.0_411
export PATH=$PATH:$JAVA_HOME/bin
# 设置Hadoop环境变量
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
# 添加Hadoop路径到PATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 刷新环境
source ~/.bashrc
首先要有java jdk的环境变量,java在此前已经成功配置。
如果已经在 ~/.bashrc 中添加了Hadoop和JDK的环境变量,并且是以 root 用户登录和运行Hadoop,那么通常情况下不需要在 /etc/profile 中再次添加这些环境变量。配置在 ~/.bashrc 中已经足够确保在每次以 root 用户打开新的终端时,这些环境变量都会生效。
选择环境变量添加位置的原则
- 仅需要特定用户生效:在用户的
~/.bashrc文件中添加环境变量,当前我们以root用户权限登录。 - 需要所有用户生效:在
/etc/profile文件中添加环境变量。
如果你希望这些环境变量在所有用户登录时都生效(例如,你有多个用户需要运行Hadoop),可以考虑将这些配置添加到 /etc/profile 中。这可以确保所有用户登录时都能够使用这些环境变量。
检查环境变量是否生效
在控制台打印以下内容,如果回显出正确路径,即为配置成功。
echo $JAVA_HOME
echo $HADOOP_HOME
echo $PATH
STEP 2: 配置Hadoop
修改Hadoop配置文件。其中HADOOP_HOME已经设置为/usr/local/hadoop。
2.1. 修改core-site.xml
请在三台服务器上创建目录/home/hadoop/tmp并赋予777权限,赋予777权限在生产环境并不是安全的方式,请注意。
目录权限的推荐分配方式:
- 专用用户和组:通常情况下,Hadoop会运行在一个专用用户(例如,
hadoop用户)和一个专用组(例如,hadoop组)下。确保这些目录的所有者是该用户和组,在这里我们为了方便,只用root用户。 - 适当的权限设置:通常情况下,目录的权限设置为750(即,所有者具有读、写和执行权限,组具有读和执行权限,其他人没有任何权限)或700(即,只有所有者具有读、写和执行权限)。这可以有效地保护数据不被非授权用户访问和修改。
vim $HADOOP_HOME/etc/hadoop/core-site.xml添加以下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ubuntu1:9000</value>
</property>
<!--指定hadoop 数据的存储目录默认为/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<!--hive.hosts 允许 root 代理用户访问 Hadoop 文件系统设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<!--hive.groups 允许 Hive 代理用户访问 Hadoop 文件系统设置 -->
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 root -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!--配置缓存区的大小,实际可根据服务器的性能动态做调整-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--开启hdfs垃圾回收机制,可以将删除数据从其中回收,单位为分钟-->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>


4512

被折叠的 条评论
为什么被折叠?



