一、 环境准备与虚拟机搭建
1. 硬件与软件准备:
- 硬件:建议电脑内存至少为8GB,有条件可升级至16GB,以保证多台虚拟机同时运行的流畅性。硬盘空间建议预留500GB以上。
- 虚拟机软件:推荐使用 VMware Workstation 或 VirtualBox。
- Linux发行版:常见的选择有 CentOS 或 Ubuntu。
2. 虚拟机安装与基础配置:
- 创建虚拟机:在VMware中新建虚拟机,选择下载好的CentOS 7 ISO镜像文件,并分配至少2-4GB内存和20GB以上的硬盘空间。
- 配置静态IP:为保证集群节点间通信稳定,需要为每台虚拟机配置静态IP地址。
- 修改主机名与hosts映射:为每个节点设置易于识别的主机名,并修改每台虚拟机的 "/etc/hosts" 文件,添加所有节点的IP与主机名映。
- 关闭防火墙:为避免网络通信被阻断,学习环境中通常需要关闭防火墙。
- 使用远程连接工具并配置好字符编码以避免乱码。
二、 JDK安装与配置
Java是运行Hadoop等大数据组件的必备环境。
1. 卸载系统自带JDK:为避免版本冲突,安装前应先检查并卸载系统可能自带的OpenJDK。可以使用 "rpm -qa | grep -i java" 查看已安装的Java包,并用 "rpm -e --nodeps" 命令卸载。
2. 上传与解压JDK:
- 在 "/opt" 目录下创建 "software"(存放安装包)和 "module"(存放解压后的软件)目录,并修改目录所有者以便操作。
- 使用SSH工具(如FinalShell的文件传输功能)将下载好的JDK压缩包上传至 "/opt/software" 目录。
- 使用 "tar -zxvf" 命令解压JDK到 "/opt/module" 目录。
3. 配置环境变量:
- 编辑环境变量配置文件。
- 在文件中添加以下内容,注意将路径替换为你的实际JDK安装路径
- 使用 "source" 命令使配置立即生效,然后通过 "java -version" 命令验证安装是否成功。
三、 Hadoop安装与伪分布式/完全分布式集群配置
核心部分:讲解了Hadoop的安装与集群配置,从单机模式到完全分布式模式的演进。
1. Hadoop安装:
- 上传与解压:与JDK类似,将Hadoop安装包(如 "hadoop-3.1.3.tar.gz")上传至 "/opt/software",并解压到 "/opt/module"。
- 配置环境变量:在 "my_env.sh" 等配置文件中添加Hadoop环境变量:export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 验证安装:执行 "hadoop version" 查看版本信息。
2. Hadoop运行模式:
- 本地模式:默认模式,无需配置,使用本地文件系统,用于调试。
- 伪分布式模式:在单台机器上模拟一个小的集群,所有守护进程(NameNode, DataNode, ResourceManager等)都运行在同一台机器上。这是理解Hadoop架构的好方法。需要配置核心文件如 "core-site.xml"、"hdfs-site.xml"、"mapred-site.xml" 和 "yarn-site.xml"。
- 完全分布式模式:在多台机器上部署真正的集群,是生产环境的标准模式。视频后续重点讲解了这种模式的配置。
3. 完全分布式集群配置关键步骤:
- 集群规划:通常需要至少3个节点,分别作为主节点(Master)和从节点(Slave)。
- 配置SSH免密登录:这是集群管理的基础。在每台机器上使用 "ssh-keygen -t rsa" 生成密钥对,并使用 "ssh-copy-id" 将公钥拷贝到所有节点(包括自身),实现节点间的无密码SSH访问。
- 编写集群分发脚本:为了高效地将配置文件同步到所有集群节点,可以递归同步目录到所有指定主机。
- 修改Hadoop配置文件:这是配置集群的核心,主要包括(路径在 "$HADOOP_HOME/etc/hadoop/"):
- "core-site.xml":配置HDFS的默认访问地址和临时数据存储目录。
- "hdfs-site.xml":配置HDFS的副本数量(通常设为3)、NameNode和DataNode的数据存储路径等。
- "yarn-site.xml":配置YARN资源管理器的相关参数,如NodeManager的辅助服务。
- "mapred-site.xml":指定MapReduce运行框架为YARN。
- "workers":指定所有的DataNode和NodeManager节点的主机名。
- 使用分发脚本同步配置:在一台节点上修改好所有配置文件后,使用之前编写的 "xsync" 脚本,将这些配置文件同步到集群中的所有其他节点。
- 格式化与启动集群:
- 在第一次启动前,需要在NameNode所在节点执行 "hdfs namenode -format" 命令来格式化HDFS。
- 使用 "start-dfs.sh" 和 "start-yarn.sh" 脚本分别启动HDFS和YARN集群。
- 使用 "jps" 命令查看各节点上的Java进程,确认NameNode、DataNode、ResourceManager、NodeManager等进程是否正常启动。
- Web UI访问:启动成功后,可以通过浏览器访问以下界面监控集群:
- HDFS NameNode: "http://<namenode_ip>:9870" (Hadoop 3.x)
- YARN ResourceManager: "http://<resourcemanager_ip>:8088"
四、 运行第一个Hadoop示例程序
演示如何运行经典的WordCount程序来验证集群。
1. 启动HDFS和YARN:确保集群已正常启动。
2. 准备输入数据:
- 在本地文件系统创建一个测试文件,如 "test.txt",里面包含一些英文文本。
- 在HDFS上创建输入目录:"hadoop fs -mkdir /input"。
- 将本地文件上传到HDFS:"hadoop fs -put test.txt /input"。
3. 运行WordCount示例:
- Hadoop自带了示例JAR包。使用以下命令运行:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output 该命令会读取HDFS上 "/input" 目录下的所有文件,进行词频统计,并将结果输出到HDFS的 "/output" 目录。
4. 查看结果:
- 作业完成后,使用 "hadoop fs -ls /output" 查看输出目录。
- 使用 "hadoop fs -cat /output/part-r-00000" 查看最终的词频统计结果。
- 也可以通过NameNode的Web UI(端口9870)浏览HDFS文件系统,查看输入和输出文件。