背景:mac自带的brew 安装 brew install hadoop 默认3.3.6,安装后Hadoop version没反应。遂决定手动安装。
开始:避免最新版报错,此处安装3.2.4版本。
1.地址:
Index of /hadoop/common/hadoop-3.2.4
2.解压
tar -zxvf hadoop-3.2.4.tar.gz
我此处解压到文档下,即/Documents。
3. hadoop目录及简介
bin:存放基础的管理脚本和使用脚本,这些脚本是sbin目录下管理脚本的基础实现,用户>可以用这些脚本管理和使用hadoop
etc:存放包括core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml等配置>文件。.template是模板文件。
lib:存放Hadoop的本地库(对数据进行压缩解压缩功能)
sbin:存放启动或停止Hadoop集群相关服务的脚本
share:存放Hadoop的依赖jar包、文档、和官方案例
libexec:各个服务所对应的shell配置文件所在目录,可用于配置日志输出目录、启动参数(比如JVM参数)等基本信息
4.配置
4.1 etc/hadoop/hadoop-env.sh 里新增
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home
此路径为自己java路径,自己根据自己实际情况修改。可以用java -verbose查询
4.2 etc/hadoop/core-site.xml 里新增
<configuration>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/chenl/Library/JavaSoft/Middleware/Hadoop/hadoop3.2.4/hdfs/tmp</value>
</property>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
4.3 etc/hadoop/hdfs-site.xml 里新增
<configuration>
<!-- 变量dfs.replication指定了每个HDFS数据库的复制次数。 通常为3,
由于我们只有一台主机和一个伪分布式模式的DataNode,将此值修改为1 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4.4 配置ssh免登录(Hadoop是分布式平台,需要多个机器之间协作)
ssh localhost 可以进入不报错即可。
此处不报错可略过:
提示:1.开启远程共享
系统偏好设置->共享->勾选远程登录
2.配置免密
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys3.如果还有问题 host配置localhost.
/etc/hosts 里新增
127.0.0.1 localhost
4.5 配置hadoop环境变量
~/.bash_profile 文件新增
#Hadoop 3.2.4
export HADOOP_HOME=/Users/chenl/Library/JavaSoft/Middleware/Hadoop/hadoop-3.2.4
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
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
刷新文件使生效
source ~/.bash_profile
5. 运行
3.1 第一次需要先格式化,执行命令 hdfs namenode -formatt
3.2 执行命令
start-all.sh
6. 打开页面
END. 撒花🎉