本文目录导读:
《Hadoop集群搭建:开启大数据之旅的完整指南》
图片来源于网络,如有侵权联系删除
在大数据时代,Hadoop作为一个开源的分布式计算框架,被广泛应用于数据存储和大规模数据处理,搭建Hadoop集群是利用其强大功能的基础,本文将详细介绍Hadoop集群搭建的完整教程。
环境准备
1、硬件要求
- 至少需要三台服务器(可以是物理机或者虚拟机)来构建一个基本的Hadoop集群,建议每台服务器具有足够的内存(如8GB以上)、磁盘空间(如100GB以上)和相对稳定的网络连接。
2、软件要求
- 操作系统:选择Linux系统,如CentOS 7或者Ubuntu 18.04,本教程以CentOS 7为例。
- Java环境:Hadoop是基于Java开发的,需要安装JDK,可以从Oracle官网下载适合版本的JDK,例如JDK 8,安装步骤如下:
- 在每台服务器上执行以下命令:
- 下载JDK安装包:wget -c --header "Cookie: oraclelicense=accept - securebackup - cookie" http://download.oracle.com/otn - pub/java/jdk/8u231 - b11/5b13a193868b4bf28bcb45c792fce896/jdk - 8u231 - b11 - linux - x64.rpm
- 安装JDK:rpm - ivh jdk - 8u231 - b11 - linux - x64.rpm
- 设置环境变量:编辑/etc/profile
文件,添加export JAVA_HOME = /usr/java/jdk1.8.0_231 - amd64
和export PATH = $PATH:$JAVA_HOME/bin
,然后执行source /etc/profile
使环境变量生效。
Hadoop安装
1、下载Hadoop
- 从Hadoop官方网站(https://hadoop.apache.org/releases.html)下载稳定版本的Hadoop,例如Hadoop 3.2.1,在主节点(可以选择集群中的任意一台服务器作为主节点,这里假设为node1)上执行以下命令:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop - 3.2.1/hadoop - 3.2.1.tar.gz
- 解压安装包:tar - zxvf hadoop - 3.2.1.tar.gz - C /opt/
2、配置Hadoop环境变量
- 编辑/etc/profile
文件,添加export HADOOP_HOME = /opt/hadoop - 3.2.1
和export PATH = $PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
,然后执行source /etc/profile
使环境变量生效。
Hadoop集群配置
1、核心配置文件(core - site.xml)
- 在$HADOOP_HOME/etc/hadoop
目录下编辑core - site.xml
文件,主要配置如下:
```xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop - 3.2.1/tmp</value>
</property>
</configuration>
```
- 这里将默认文件系统设置为HDFS,并且指定了Hadoop临时文件的存储目录。
2、HDFS配置文件(hdfs - site.xml)
- 同样在$HADOOP_HOME/etc/hadoop
目录下,编辑hdfs - site.xml
文件。
图片来源于网络,如有侵权联系删除
```xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop - 3.2.1/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop - 3.2.1/dfs/data</value>
</property>
</configuration>
```
- 其中dfs.replication
表示数据块的副本数量,这里设置为3,适用于三个节点的集群。dfs.namenode.name.dir
和dfs.datanode.data.dir
分别指定了NameNode和DataNode存储数据的目录。
3、YARN配置文件(yarn - site.xml)
- 编辑yarn - site.xml
文件:
```xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux - services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
```
- 这里指定了ResourceManager的主机名以及NodeManager的辅助服务。
4、MapReduce配置文件(mapred - site.xml)
图片来源于网络,如有侵权联系删除
- 编辑mapred - site.xml
文件:
```xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
```
- 将MapReduce的框架名称设置为YARN。
节点配置
1、主节点配置(NameNode和ResourceManager)
- 在主节点(node1)上,执行以下命令初始化HDFS:hdfs namenode - format
。
- 启动Hadoop集群相关服务:
- 启动HDFS:start - dfs.sh
- 启动YARN:start - yarn.sh
2、从节点配置(DataNode和NodeManager)
- 在从节点(假设为node2和node3)上,不需要执行hdfs namenode - format
操作。
- 直接启动HDFS和YARN相关服务,由于在主节点上执行start - dfs.sh
和start - yarn.sh
时会通过SSH自动启动从节点上的服务,前提是主节点到从节点的SSH免密登录已经配置好,配置SSH免密登录的步骤如下:
- 在主节点上生成SSH密钥对:ssh - keygen - t rsa
,一路回车默认即可。
- 将公钥复制到从节点:ssh - copy - id node2
和ssh - copy - id node3
,按照提示输入从节点的密码。
集群测试
1、HDFS测试
- 在主节点上创建一个测试文件:echo "Hello Hadoop" > test.txt
。
- 将测试文件上传到HDFS:hdfs dfs - put test.txt /
。
- 查看HDFS中的文件:hdfs dfs - ls /
,如果能看到上传的test.txt
文件,则说明HDFS功能正常。
2、MapReduce测试
- 运行一个简单的MapReduce示例,如WordCount,Hadoop自带了WordCount示例程序。
- 首先在HDFS上创建一个输入目录并上传一些文本文件作为输入数据:
hdfs dfs - mkdir /input
hdfs dfs - put /etc/profile /input
- 然后运行WordCount程序:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop - mapreduce - examples - 3.2.1.jar wordcount /input /output
- 最后查看输出结果:hdfs dfs - cat /output/part - r - 00000
,如果能看到单词统计结果,则说明MapReduce功能正常。
通过以上步骤,我们成功搭建了一个Hadoop集群,并对HDFS和MapReduce功能进行了简单测试,在实际应用中,还可以根据需求进一步优化集群配置,如调整内存分配、增加节点数量等,以满足不同规模大数据处理的要求。
评论列表