赞
踩
在当今大数据的浪潮中,Hadoop作为一个开源的分布式系统框架,其重要性不言而喻。Hadoop以其高效的数据处理能力、可扩展的集群架构和强大的容错性,成为了大数据处理领域的佼佼者。本次课程,我们将深入探索Hadoop集群的搭建过程,并从中获得宝贵的经验和知识。
1、集群规划
1.1 hadoop版本
hadoop版本不同,配置的内容也不同,本文使用的是hadopp-3.3.2,同样适用3的其他版本,安装包链接见2.1节
1.2 节点数量
只为测试学习,节点不用太多,计划使用3个节点,即构建3个docker容器,1个namenode节点,2个datanode节点,其中1个datanode作为second namenode
1.3 hostname与ip
hadoop集群要求节点具有固定的hostname和ip,在此做如下规划:
namenode的hostname为master,ip为192.168.0.10
第1个datanode的hostname为slave1,ip为192.168.0.11
第2个datanode的hostname为slave2,ip为192.168.0.12
1.4 端口
hadoop集群提供了网页管理界面,主要包括hdfs(文件系统)、cluster(集群)、jobhistory(历史任务)三大部分,每个部分都有访问的端口号。通过查阅官方文档确认了默认的端口号分别为9870、8088、19888,我们直接使用这些默认的端口号
2、hadoop镜像构建
2.1 安装包
hadoop-3.3.2.tar.gz
jdk-8u321-linux-x64.tar.gz hadoop需要java的环境,此包下载需要oracle账号,没有账号的可以免费注册,如果有使用M1 MacOS系统的请下载aarch64版本的
2.2 Dockerfile
构建镜像我们使用Dockerfile,注意这个文件的内容大家可以根据自己的情况修改,如
镜像源:使用centos7,大家可以换
LABEL:元数据这里列了作者和日期,大家可以改成自己的信息
ssh:用于节点直接相互访问用
which:hadoop命令执行需要which,不然会报错
jdk:不是8u321版本的,可以修改下面这两行中的版本信息
ADD jdk-8u321-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_321 /usr/local/jdk1.8
hadoop:不是3.3.2版本的,可以修改下面这两行中的版本信息
ADD hadoop-3.3.2.tar.gz /usr/local
RUN mv /usr/local/hadoop-3.3.2 /usr/local/hadoop
下面是完整的文件内容
- # 镜像源
- FROM centos:7
-
- # 添加元数据
- LABEL author="hjq" date="2022/03/05"
-
- # 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no
- RUN yum install -y openssh-server sudo
- RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
-
- # 安装openssh-clients
- RUN yum install -y openssh-clients
-
- # 安装which
- RUN yum install -y which
-
- # 添加测试用户root,密码root,并且将此用户添加到sudoers里
- RUN echo "root:root" | chpasswd
- RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers
- RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
- RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
-
- # 启动sshd服务并且暴露22端口
- RUN mkdir /var/run/sshd
- EXPOSE 22
-
- # 拷贝并解压jdk,根据自己的版本修改
- ADD jdk-8u321-linux-x64.tar.gz /usr/local/
- RUN mv /usr/local/jdk1.8.0_321 /usr/local/jdk1.8
- ENV JAVA_HOME /usr/local/jdk1.8
- ENV PATH $JAVA_HOME/bin:$PATH
-
- # 拷贝并解压hadoop,根据自己的版本修改
- ADD hadoop-3.3.2.tar.gz /usr/local
- RUN mv /usr/local/hadoop-3.3.2 /usr/local/hadoop
- ENV HADOOP_HOME /usr/local/hadoop
- ENV PATH $HADOOP_HOME/bin:$PATH
-
- # 设置容器启动命令
- CMD ["/usr/sbin/sshd", "-D"]
Hadoop集群由多个节点组成,包括一个主节点(NameNode)和多个数据节点(DataNode)。主节点负责管理文件系统的元数据,而数据节点则负责存储和检索数据块。Hadoop集群通过分布式文件系统(HDFS)和MapReduce编程模型,实现了数据的高效存储和并行处理。
通过本次Hadoop集群的搭建过程,我们深刻体会到了大数据处理技术的复杂性和挑战性。同时,我们也收获了很多宝贵的经验和知识:
Hadoop集群的搭建是一个复杂而有趣的过程。通过本次课程的学习和实践,我们不仅掌握了Hadoop集群的搭建技能,还深入理解了大数据处理技术的核心思想和应用场景。这将为我们未来的大数据项目开发提供有力的支持和帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。