Hadoop是一个开源的分布式计算框架,由Apache Software Foundation开发和维护。能够对大量数据进行分布式处理。它的核心组件包括HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource Negotiator)。本文将详细介绍如何在Linux系统上搭建和配置Hadoop集群。它主要被设计用于处理和分析大数据,通过将计算任务分布到多个节点上,实现高度可扩展性和容错性。下面将对Hadoop进行详细介绍:
-
HDFS(Hadoop Distributed File System):
- HDFS是Hadoop的核心组件之一,负责在集群中存储数据。它将数据切分成多个块(通常为64MB或128MB),并将这些块分布到集群中的不同节点上。为了提高数据的可靠性和容错性,HDFS会对每个数据块创建多个副本(通常为3个)。这样,即使某个节点发生故障,数据仍然可以从其他节点上的副本中恢复。
-
MapReduce编程模型:
- MapReduce是Hadoop的核心编程模型,用于处理和分析HDFS中的数据。MapReduce任务包括两个阶段:Map阶段和Reduce阶段。在Map阶段,输入数据被切分成多个片段,并分发到集群中的各个节点上。每个节点上的Map函数对其分配的数据片段进行处理,并生成一组键值对(key-value pairs)。在Reduce阶段,这些键值对被汇总到一个或多个Reduce函数中,以生成最终的输出结果。
-
YARN(Yet Another Resource Negotiator):
- YARN是Hadoop的资源管理器,负责为多个应用程序分配和管理计算资源。它可以调度不同类型的应用程序,如MapReduce、Spark等,并提供资源隔离和共享功能。
-
Hadoop生态系统中的其他组件:
- Hive:一个基于Hadoop的数据仓库工具,提供了类似SQL的语言(HiveQL)来查询和管理数据。
- Pig:一个用于分析和处理大规模数据集的平台,提供了一种高级脚本语言(Pig Latin)来编写数据分析程序。
- Sqoop:一个用于在Hadoop和关系数据库之间传输数据的工具。
- Flume:一个用于收集、聚合和移动大量日志数据的工具。
- Zookeeper:一个分布式协调服务,用于管理分布式系统中的配置信息和服务发现。
一、虚拟机安装
我们使用VMware作为虚拟化软件,在VMware中创建三台虚拟机,一台作为Master节点,另外两台作为Slave节点。
- 新建虚拟机:打开VMware,选择“创建新的虚拟机”,然后选择“典型”。
- 选择安装介质:选择已下载好的CentOS7镜像文件。
- 虚拟机名称和位置:设置虚拟机名称和存储位置。
- 指定磁盘容量:建议设置为20GB。
- 虚拟机配置:根据需要配置虚拟机的内存和处理器数量,建议内存至少为2GB。
二、Linux系统安装
- 启动虚拟机:启动刚刚创建的虚拟机,选择安装CentOS7。
- 语言和时区设置:选择合适的语言和时区,这里我们选择中文和上海时区。
- 磁盘分区和网络配置:保持默认分区即可;网络配置选择静态IP地址,确保每台机器的IP地址在同一网段内,例如:
- Master节点:192.168.1.121
- Slave节点:192.168.1.122, 192.168.1.123
三、静态网络配置
- 查看网络是否连通:使用
ping www.baidu.com
测试网络连接。 - 安装net-tools:执行
yum install net-tools
。 - 修改网络配置文件:编辑
/etc/sysconfig/network-scripts/ifcfg-ens33
文件,设置静态IP地址、子网掩码和网关。 - 重启网络服务:执行
systemctl restart network
,并使用ifconfig
查看网络配置是否成功。
四、虚拟机克隆配置
- 克隆虚拟机:在Master节点的基础上克隆出两个Slave节点。
- 修改主机名:分别修改每个Slave节点的主机名为hadoop02和hadoop03。
- 修改hosts文件:在每个节点的
/etc/hosts
文件中添加其他节点的IP地址和主机名映射。
五、配置SSH免密登录
- 生成密钥文件:在Master节点上执行
ssh-keygen -t rsa
,按提示操作即可。 - 分发公钥:将公钥复制到所有节点上,执行以下命令:
ssh-copy-id hadoop01 ssh-copy-id hadoop02 ssh-copy-id hadoop03
- 验证免密登录:尝试从Master节点无密码登录到其他节点。
六、Hadoop集群配置
- 上传并解压Hadoop:将Hadoop安装包上传到Master节点,并解压到指定目录。
tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/
- 配置环境变量:编辑
/etc/profile
文件,添加以下内容:export HADOOP_HOME=/usr/local/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后执行source /etc/profile使配置生效。
-
配置核心文件:编辑
$HADOOP_HOME/etc/hadoop/core-site.xml
,添加以下内容:<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop01:9000</value> </property> </configuration>
-
配置HDFS:编辑
hdfs-site.xml
,添加以下内容:<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///usr/local/hadoop/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///usr/local/hadoop/data/datanode</value> </property> </configuration>
-
配置YARN:编辑
yarn-site.xml
,添加以下内容:<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
- 配置MapReduce:编辑
mapred-site.xml
,添加以下内容:<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
- 格式化NameNode:执行
hdfs namenode -format
。 - 启动Hadoop集群:执行以下命令启动HDFS和YARN:
start-dfs.sh start-yarn.sh
- 验证安装:通过浏览器访问NameNode web界面和Resource Web界面,查看Hadoop集群状态。
-
总结
通过以上步骤,我们完成了Hadoop集群的搭建和配置。需要注意的是,实际操作中可能会遇到各种问题,如网络不通、SSH免密登录失败等,需要根据具体情况进行调整。希望本文对你有所帮助,祝你在大数据的世界里越走越远!