本文共 3339 字,大约阅读时间需要 11 分钟。
以下是当前版本的Hadoop生态系统服务及其下载链接:
| 服务名称 | 版本号 | 下载链接 |
|---|---|---|
| Zookeeper | v3.6.4 | https://archive.apache.org/dist/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz |
| Hadoop | v2.8.5 | https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz |
| Hive | v2.3.9 | https://archive.apache.org/dist/hive/stable-2/apache-hive-2.3.9-bin.tar.gz |
以下是集群中各节点的配置信息:
| 主机名称 | 主机IP | 角色 | 部署服务列表 | 资源详情 | 操作系统版本 |
|---|---|---|---|---|---|
| mapper-node1 | 192.168.0.101 | Master、Worker | Zookeeper、Namenode、Datanode、Resourcemanager、NodeManager、HiveServer2、HiveMetastore、JournalNode、ZKFC | 256G40C | CentOS Linux release 7.6.1810 (Core) |
| mapper-node2 | 192.168.0.102 | Master、Worker | Zookeeper、Namenode、Datanode、Resourcemanager、NodeManager、JournalNode、ZKFC | 32G8C | CentOS Linux release 7.6.1810 (Core) |
| mapper-node3 | 192.168.0.103 | Master、Worker | Zookeeper、Namenode、Datanode、Resourcemanager、NodeManager、HiveServer2、HiveMetastore、JournalNode、ZKFC | 32G8C | CentOS Linux release 7.6.1810 (Core) |
Zookeeper是一个分布式协调服务,负责管理集群中的节点状态及服务发现。集群中存在一个Leader节点负责处理客户端请求,其他节点作为Follower节点执行任务。Zookeeper支持数据发布/订阅和通知机制,适用于配置管理和状态同步。
JournalNode用于提供高可用性和容错性支持。它记录HDFS中的数据修改操作,包括文件创建、修改、删除等。JournalNode节点间通过复制协议保证数据一致性。在NameNode故障时,可以通过日志文件恢复数据。
ZKFC(ZooKeeper Fault Tolerant Cluster)实现HDFS的自动故障转移。当NameNode出现故障时,ZKFC会将故障节点转移给备用节点,确保HDFS的高可用性。ZKFC通过Zookeeper协调服务发现故障并执行故障转移操作。
Namenode管理HDFS的命名空间和数据块。它维护文件和目录的层次结构、数据块位置及副本信息。Namenode处理客户端的读写请求,并通过数据块副本机制保证数据可靠性。
Datanode负责存储文件数据块并提供读写服务。多个Datanode节点分布存储数据,客户端通过NameNode获取数据块位置后直接与Datanode通信进行读写操作。
Resourcemanager在YARN框架中管理集群资源和任务。它负责资源分配、任务监控和队列管理,确保集群运行高效。
NodeManager管理运行在本地节点上的YARN任务。它负责启动和监控容器,发送心跳和状态报告,作为工作节点的核心。
HiveServer2提供远程客户端访问Hive服务的接口,支持JDBC、ODBC等多种访问方式,适合多种客户端环境。
HiveMetastore存储Hive元数据,包括表、分区和列信息。它将元数据存储在关系型数据库中,便于Hive进行查询和管理。
在开始部署之前,需要完成以下准备工作:
建议使用LVM进行磁盘分区。格式化磁盘为xfs格式后,将挂载点配置到/data目录。以下是示例命令:
mkdir /datablkecho 'UUID="a7fdcbb9-eda4-4174-9512-de4cc3d2fb90" /data xfs defaults 0 0' > /etc/fstabmount -a
使用ssh-keygen生成密钥对,默认选项即可。然后执行以下命令为所有节点配置免密登录:
for hostNum in {1..3}; do ssh-copy-id mapper-node$hostNum; done tar -zxvf apache-zookeeper-3.6.4-bin.tar.gzmv apache-zookeeper-3.6.4-bin zookeeper
/etc/profile.d/zookeeper.sh:export ZOOKEEPER_HOME=/opt/soft/zookeeperexport ZOOCFGDIR=/opt/soft/zookeeper/confexport ZOO_LOG_DIR=/data/bigdata/logs/zookeeperexport ZOOPIDFILE=/var/run/zookeeper/zookeeper_server.pidPATH=$PATH:$ZOOKEEPER_HOME/bin
zoo.cfg,配置集群节点和端口:cp zoo_sample.cfg zoo.cfg# 修改数据目录及相关端口dataDir=/data/bigdata/zookeeperadmin.serverPort=12182 # 修改为避免端口冲突server.1=mapper-node1:2888:3888server.2=mapper-node2:2888:3888server.3=mapper-node3:2888:3888
scp /opt/soft/zookeeper root@mapper-node2:/opt/softscp /etc/profile.d/zookeeper.sh root@mapper-node2:/etc/profile.dscp /opt/soft/zookeeper root@mapper-node3:/opt/softscp /etc/profile.d/zookeeper.sh root@mapper-node3:/etc/profile.d
myid文件并启动Zookeeper:echo '1' > /data/bigdata/zookeeper/myidecho '2' > /data/bigdata/zookeeper/myidecho '3' > /data/bigdata/zookeeper/myidzkServer.sh start
启动完成后,通过查看状态确认集群搭建成功:
echo "mapper-node1"ssh mapper-node1 'zkServer.sh status'
转载地址:http://kpqbz.baihongyu.com/