《Hadoop分布式集群安装全攻略》
一、环境准备
图片来源于网络,如有侵权联系删除
1、硬件要求
- 多台服务器(至少3台,这里假设为3台用于构建一个基本的分布式集群),每台服务器具有足够的内存(建议8GB以上)、CPU(多核,如4核以上)和磁盘空间(根据数据量而定,例如100GB以上可用空间)。
- 服务器之间需要通过网络连接,建议使用千兆以太网或更高带宽的网络,以确保数据传输的效率。
2、软件要求
- 操作系统:选择Linux操作系统,如CentOS 7或Ubuntu 18.04,这里以CentOS 7为例。
- 确保每台服务器上安装了Java环境,因为Hadoop是基于Java开发的,可以通过命令yum install java - 1.8.0 - openjdk - devel
(CentOS)或从Oracle官网下载JDK并安装在Ubuntu系统上。
- 创建普通用户(非root用户)用于安装和运行Hadoop,这是为了安全考虑,创建名为hadoopuser
的用户,通过命令useradd hadoopuser
,然后设置密码passwd hadoopuser
。
- 配置服务器之间的无密码SSH登录,以hadoopuser
用户为例,在每台服务器上生成SSH密钥对,使用命令ssh - keygen - t rsa
,然后将公钥id_rsa.pub
内容复制到其他服务器的authorized_keys
文件中(位于~/.ssh/
目录下),这一步骤可以方便在集群节点之间进行通信,例如启动Hadoop守护进程时的远程操作。
二、Hadoop安装步骤
1、下载Hadoop
- 从Hadoop官方网站(https://hadoop.apache.org/releases.html)下载合适版本的Hadoop,下载Hadoop 3.x版本,选择二进制压缩包(如hadoop - 3.x.x.tar.gz
)。
- 将下载的压缩包通过scp
命令传输到每台服务器上的hadoopuser
用户的主目录下。
2、解压安装包
- 在每台服务器上,以hadoopuser
用户登录,执行解压命令,如tar - zxvf hadoop - 3.x.x.tar.gz
,解压后的目录可以重命名为hadoop
,使用命令mv hadoop - 3.x.x hadoop
。
3、配置Hadoop环境变量
- 编辑hadoopuser
用户的.bashrc
文件,添加以下内容:
```bash
export HADOOP_HOME=/home/hadoopuser/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
```
- 使环境变量生效,执行命令source.bashrc
。
4、Hadoop核心配置文件修改
- 进入$HADOOP_HOME/etc/hadoop
目录。
hadoop - env.sh
文件修改:
- 找到JAVA_HOME
的配置项,将其设置为服务器上Java的安装路径,例如export JAVA_HOME = /usr/lib/jvm/java - 1.8.0 - openjdk - 1.8.0.292.b10 - 0.el7_9.x86_64
。
core - site.xml
文件修改:
- 配置Hadoop的文件系统的基础URI,
```xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
图片来源于网络,如有侵权联系删除
<value>/home/hadoopuser/hadoop - tmp</value>
</property>
</configuration>
```
- 这里假设master
是集群中的主节点名称,hadoop - tmp
是临时目录,需要提前创建。
hdfs - site.xml
文件修改:
- 配置副本数、NameNode和DataNode的存储目录等,
```xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopuser/hadoop - namenode - dir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopuser/hadoop - datanode - dir</value>
</property>
</configuration>
```
- 同样,hadoop - namenode - dir
和hadoop - datanode - dir
需要提前创建。
mapred - site.xml
文件修改:
- 从模板文件mapred - site.xml.template
复制得到mapred - site.xml
,然后进行配置:
```xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
```
yarn - site.xml
文件修改:
图片来源于网络,如有侵权联系删除
- 配置YARN的相关参数,
```xml
<configuration>
<property>
<name>yarn.resourcemanager.hosts</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux - services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
```
5、节点规划与配置
- 确定主节点(如master
)和从节点(如slave1
、slave2
等)。
- 在主节点上,编辑$HADOOP_HOME/etc/hadoop/slaves
文件,将从节点的主机名(或IP地址)逐行写入,
```
slave1
slave2
```
三、启动Hadoop集群
1、格式化NameNode
- 在主节点上,以hadoopuser
用户执行命令hdfs namenode - format
,这一步骤只需要在首次启动集群或者重新初始化NameNode时执行。
2、启动集群守护进程
- 在主节点上,执行start - all.sh
命令,这个命令会启动Hadoop的各个守护进程,包括NameNode、DataNode、ResourceManager和NodeManager等。
- 可以通过命令jps
查看主节点和从节点上启动的进程是否正确,在主节点上应该看到NameNode
、ResourceManager
等进程,在从节点上应该看到DataNode
、NodeManager
等进程。
3、验证集群是否正常工作
- 通过浏览器访问http://master:9870
(Hadoop 3.x版本的NameNode的Web界面),可以查看HDFS的状态信息,如文件系统的使用情况、DataNode的状态等。
- 访问http://master:8088
(YARN的ResourceManager的Web界面),可以查看集群的资源使用情况、正在运行的作业等信息。
4、常见问题及解决方法
- 如果启动过程中出现Permission Denied
错误,可能是文件或目录权限设置不正确,确保hadoopuser
用户对Hadoop相关的目录(如配置文件目录、数据存储目录等)有足够的权限。
- 如果jps
命令查看进程时发现某些进程没有启动,可以查看$HADOOP_HOME/logs
目录下的日志文件,根据日志中的错误信息进行排查,如果DataNode无法启动,可能是存储目录不存在或者磁盘空间不足等原因。
通过以上步骤,就可以成功安装和部署Hadoop分布式集群,为大数据处理和分析提供强大的平台支持。
评论列表