Hadoop3集群搭建
一、准备
官方文档-Setting up a Single Node Cluster
- 可以下载源码,下载后需要构建一下
- hadoop3.3.0源码
# 科学上网下载比较快,可以自己电脑下好了在上传到服务器
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0-src.tar.gz
# 解压文件
tar -zxvf hadoop-3.3.0-src.tar.gz
# maven构建
- 也可以直接下载安装包
# 比较大,科学上网下载比较快
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
# 解压文件
tar -zxvf hadoop-3.3.0.tar.gz
- 安装 java8
# 默认安装的是 java-1.8.0-openjdk.x86_64
yum install java
# 默认安装到 /usr/lib/jvm/
# 下载常用 java 命令,例如:jps\jstack\jstat\jmap
yum install java-devel
# 注册root环境变量
vim ~/.bashrc
# 加入下面的(示例的JAVA_HOME 只针对于 yum 安装的)
export JAVA_HOME=/usr/lib/jvm/jre
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
- 准备集群环境配置
- 解压文件及挪动
# 目前我是将软件挪到了 /opt 下
mv hadoop-3.3.0 /opt
cd /opt
ln -s hadoop-3.3.0 hadoop
- etc/hadoop/hadoop-env.sh
# set to the root of your Java installation
export JAVA_HOME=/usr/lib/jvm/jre
# 配置一下个资源启动用户
# ps: 我这个是内网,且只有我用才这么配置的都是 root
export HADOOP_USER_NAME=root
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
- 尝试是否ok
# 尝试是否可用
./bin/hadoop
二、启动完全分布式集群
- 先修改一台机器的配置
- etc/hadoop/hadoop-env.sh
# 提高 namenode 堆内存
export HDFS_NAMENODE_OPTS="-XX:+UseParallelGC -Xmx4g"
- /etc/profile
# 设置hadoop环境地址
HADOOP_HOME=/opt/hadoop
export HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- etc/hadoop/core-site.xml
<configuration>
<!-- NameNode URI -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop001:9000</value>
</property>
<!-- Size of read/write buffer used in SequenceFiles. 131072 -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
- etc/hadoop/hdfs-site.xml
<configuration>
<!-- namenode 配置 -->
<!-- namenode 本地存储 namespace and transactions logs -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/nn</value>
</property>
<!-- dfs 单 block 存储大小;3.x 默认 268435456 256MB;2.x 默认 128MB -->
<property>
<name>dfs.blocksize</name>
<value>268435456