Alluxio HA模式部署

本文档详细介绍了如何配置Alluxio高可用集群,包括下载和解压Alluxio,创建并挂载ramdisk,设置集群节点,配置Zookeeper,以及配置Alluxio的Master和Worker。此外,还提供了测试部署成功和故障切换的步骤。
摘要由CSDN通过智能技术生成

准备

下载文件:wget https://downloads.alluxio.io/downloads/files/2.8.0/alluxio-2.8.0-bin.tar.gz

解压目录:/opt/servers/alluxio

创建目录:mkdir -p /mnt/ramdisk

机器:192.168.3.21(master,worker)192.168.3.22(master,worker)192.168.0.198(worker)

创建目录:/dev/ramdisk

# 创建虚拟盘
modprobe brd rd_nr=1 rd_size=16777216 max_part=0
modprobe brd rd_nr=1 rd_size=5120000 max_part=0

# 格式化虚拟磁盘
mkfs.ext4 /dev/ram0
mke2fs /dev/ram0 
mkfs -t ext2 /dev/ram0

# 挂载虚拟磁盘
mount /dev/ram0 /mnt/ramdisk0

# 写入测试
dd if=/dev/zero of=/mnt/ramdisk/lala2.im bs=8k count=500000 conv=fsync

# 读取测试
dd if=/mnt/ramdisk0//lala.im of=/dev/null bs=8

# 卸载虚拟磁盘
fuser -m /dev/ram0/
ps aux | grep 9236
kill -9 10167
umount /dev/ram0

HA 配置

搭建高可用集群前的准备:

  • ①确保Zookeeper服务已经运行

  • ②一个单独安装的可靠的共享日志存储系统(可用HDFS或S3等系统)

  • ③这个配置针对Alluxio 2.x版本,不适用于1.x版本

  • ④需要事先创建好ramdisk挂载目录

配置hive alluxio文件系统:core-site.xml

<configuration>
  <property>
      <name>fs.alluxio.impl</name>
      <value>alluxio.hadoop.FileSystem</value>
      <description>The Alluxio FileSystem (Hadoop 1.x and 2.x)</description>
  </property>
  <property>
      <name>fs.AbstractFileSystem.alluxio.impl</name>
      <value>alluxio.hadoop.AlluxioFileSystem</value>
      <description>The Alluxio AbstractFileSystem (Hadoop 2.x)</description>
  </property>
</configuration>

在所有机器上配置alluxio-env.sh (/usr/java/jdk1.8.0_291)

ALLUXIO_HOME=/opt/servers/alluxio
ALLUXIO_LOGS_DIR=/opt/servers/alluxio/logs
ALLUXIO_RAM_FOLDER=/mnt/ramdisk
JAVA_HOME=/usr/java/jdk1.8.0_291
ALLUXIO_WORKER_JAVA_OPTS=" -XX:+PrintGCDetails -XX:+PrintTenuringDistribution -XX:+PrintGCTimeStamps"
ALLUXIO_MASTER_JAVA_OPTS=" -Xms2048M -Xmx4096M"
ALLUXIO_JAVA_OPTS+=" -Djava.library.path=/opt/cloudera/parcels/CDH/lib/hadoop"

在3.21机器上配置Master和Worker:alluxio-site.properties

# 192.168.3.21    Master Worker
# Common properties
alluxio.master.hostname=192.168.3.21
alluxio.underfs.hdfs.configuration=/etc/hadoop/conf/core-site.xml:/etc/hadoop/conf/hdfs-site.xml
alluxio.master.mount.table.root.ufs=hdfs://nameservice1/user/alluxio/ha/
# Worker properties
alluxio.worker.memory.size=512MB
alluxio.worker.tieredstore.levels=1
alluxio.worker.tieredstore.level0.alias=MEM
alluxio.worker.tieredstore.level0.dirs.path=/mnt/ramdisk
# HA properties
alluxio.zookeeper.enabled=true
alluxio.zookeeper.address=192.168.0.201:2181,192.168.3.21:2181,192.168.3.22:2181
alluxio.master.journal.type=UFS
alluxio.master.journal.folder=hdfs://nameservice1/user/alluxio/journal/
alluxio.worker.block.heartbeat.timeout.ms=300000
alluxio.zookeeper.session.timeout=120s
# User properties
alluxio.user.file.readtype.default=CACHE_PROMOTE
alluxio.user.file.writetype.default=ASYNC_THROUGH
alluxio.user.metrics.collection.enable=true
alluxio.master.metrics.time.series.interval=1000
# Security properties
alluxio.security.authorization.permission.enabled=true
alluxio.security.authentication.type=SIMPLE
alluxio.master.security.impersonation.hive.users=*
alluxio.master.security.impersonation.hive.groups=*
alluxio.master.security.impersonation.yarn.users=*
alluxio.master.security.impersonation.yarn.groups=*
alluxio.master.security.impersonation.hdfs.users=*
alluxio.master.security.impersonation.hdfs.groups=*

在3.22机器上配置Master和Worker:alluxio-site.properties

# 192.168.1.102      Master Worker
# Common properties
alluxio.master.hostname=192.168.3.22
alluxio.underfs.hdfs.configuration=/etc/hadoop/conf/core-site.xml:/etc/hadoop/conf/hdfs-site.xml
alluxio.master.mount.table.root.ufs=hdfs://nameservice1/user/alluxio/ha/
# Worker properties
alluxio.worker.memory.size=512MB
alluxio.worker.tieredstore.levels=1
alluxio.worker.tieredstore.level0.alias=MEM
alluxio.worker.tieredstore.level0.dirs.path=/mnt/ramdisk
# HA properties
alluxio.zookeeper.enabled=true
alluxio.zookeeper.address=192.168.0.201:2181,192.168.3.21:2181,192.168.3.22:2181
alluxio.master.journal.type=UFS
alluxio.master.journal.folder=hdfs://nameservice1/user/alluxio/journal/
alluxio.worker.block.heartbeat.timeout.ms=300000
alluxio.zookeeper.session.timeout=120s
# User properties
alluxio.user.file.readtype.default=CACHE_PROMOTE
alluxio.user.file.writetype.default=ASYNC_THROUGH
alluxio.user.metrics.collection.enable=true
alluxio.master.metrics.time.series.interval=1000
# Security properties
alluxio.security.authorization.permission.enabled=true
alluxio.security.authentication.type=SIMPLE
alluxio.master.security.impersonation.hive.users=*
alluxio.master.security.impersonation.hive.groups=*
alluxio.master.security.impersonation.yarn.users=*
alluxio.master.security.impersonation.yarn.groups=*
alluxio.master.security.impersonation.hdfs.users=*
alluxio.master.security.impersonation.hdfs.groups=*

在0.198机器上配置Master和Worker:alluxio-site.properties

# 192.168.0.198      Worker
# Common properties
# Worker不需要写alluxio.master.hostname参数和alluxio.master.journal.folder参数
alluxio.underfs.hdfs.configuration=/etc/hadoop/conf/core-site.xml:/etc/hadoop/conf/hdfs-site.xml
alluxio.master.mount.table.root.ufs=hdfs://nameservice1/user/alluxio/ha/
# Worker properties
alluxio.worker.memory.size=512MB
alluxio.worker.tieredstore.levels=1
alluxio.worker.tieredstore.level0.alias=MEM
alluxio.worker.tieredstore.level0.dirs.path=/mnt/ramdisk
# HA properties
alluxio.zookeeper.enabled=true
alluxio.zookeeper.address=192.168.0.201:2181,192.168.3.21:2181,192.168.3.22:2181
alluxio.worker.block.heartbeat.timeout.ms=300000
alluxio.zookeeper.session.timeout=120s
# User properties
alluxio.user.file.readtype.default=CACHE_PROMOTE
alluxio.user.file.writetype.default=ASYNC_THROUGH
alluxio.user.metrics.collection.enable=true
alluxio.master.metrics.time.series.interval=1000
# Security properties
alluxio.security.authorization.permission.enabled=true
alluxio.security.authentication.type=SIMPLE
alluxio.master.security.impersonation.hive.users=*
alluxio.master.security.impersonation.hive.groups=*
alluxio.master.security.impersonation.yarn.users=*
alluxio.master.security.impersonation.yarn.groups=*
alluxio.master.security.impersonation.hdfs.users=*
alluxio.master.security.impersonation.hdfs.groups=*

在所有机器上指定Master和Worker节点

#vim masters
192.168.3.21
192.168.3.22

#vim workers
192.168.3.21
192.168.3.22
192.168.0.198

测试部署是否成功

./alluxio format
./alluxio-start.sh all SudoMount
./alluxio fsadmin report
./alluxio runTests    # 如果出现Passed the test则说明部署成功

测试高可用模式的自动故障处理: (假设此时hadoop101位primary master)

ssh hadoop101
jps | grep AlluxioMaster
kill -9 <AlluxioMaster PID>
alluxio fs leader  # 显示新的primary Master(可能需要等待一小段时间选举)
Hadoop High Availability (HA) 集群部署是指在一个集群中设置冗余,以确保即使在某个节点故障的情况下,数据处理和任务执行也能继续进行,提高系统的可靠性和可用性。下面是Hadoop HA集群部署的基本步骤: 1. **配置Hadoop集群**: 安装Hadoop并配置多个名称节点(NameNode)和任务跟踪器(JobTracker)。在Hadoop 2.x及以上版本,NameNode被替换为两个实例:Active NameNode(处理写入请求)和Standby NameNode(备份数据)。 2. **启用HA**: 在Hadoop配置文件(如core-site.xml和hdfs-site.xml)中启用HA模式。设置`ha.zookeeper.quorum`用于ZooKeeper服务的连接,这是协调NameNode状态的关键组件。 3. **安装ZooKeeper**: ZooKeeper作为元数据存储和命名服务,管理NameNode的状态。每个NameNode会连接到ZooKeeper,以同步集群状态。 4. **配置HA组件**: 创建并配置Hadoop的资源管理器(ResourceManager)和DataNode,它们将与新的High Availability架构协同工作。 5. **配置Fencing**: Fencing机制确保在主节点故障时,不发生冲突的切换。这可能涉及到网络或硬件级别的措施。 6. **启动Standby NameNode**: 启动Standby NameNode并让其监听,等待接替Active NameNode的角色。 7. **监控与自动故障切换**: 使用Hadoop的管理工具如JMX或Web UI监控集群状态,并配置自动故障切换,当主节点失效时,Standby会自动接管。 8. **测试**: 最后,进行充分的负载测试和故障恢复演练,确保HA集群能够在实际环境中正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值