本文共 7002 字,大约阅读时间需要 23 分钟。
是大数据领域数据内存加速利器,是世界上第一个面向基于云的数据分析和人工智能的开源的数据编排技术。 它为数据驱动型应用和存储系统构建提供了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置,从而使得数据能够更容易被访问。 这还使得应用程序能够通过一个公共接口连接到许多存储系统。 Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级。
在现有大数据生态系统中,Alluxio 位于数据驱动框架或应用(如 Apache Spark、Presto、Tensorflow、Apache HBase、Apache Hive 或 Apache Flink)和各种持久化存储系统(如 Amazon S3、Google Cloud Storage、OpenStack Swift、HDFS、GlusterFS、IBM Cleversafe、EMC ECS、Ceph、NFS 、Minio和 Alibaba OSS)之间。 Alluxio 统一了存储在这类不同存储系统中的数据,为其上层数据驱动型应用提供统一的客户端 API 和全局命名空间。
其中alluxio 的版本为2.4,以下是5个服务器节点,每个节点内存32GB,挂载数据盘大小200GB,采用虚拟机部署,也可以采用,安装用户为appuser,对其部署进行说明:
192.168.1.11 #master节点192.168.1.12 #master节点192.168.1.13 #master节点192.168.1.14192.168.1.15
vim /etc/hosts
在每个服务器节点,如果存在服务器名称,需要做名称与IP的映射,例如:192.168.1.11 ONE1181.main.local192.168.1.12 ONE1182.main.local192.168.1.13 ONE1183.main.local192.168.1.14 ONE1184.main.local192.168.1.15 ONE1185.main.local
vm.swappiness=5 net.core.wmem_default=256960 net.core.rmem_default=256960 vm.max_map_count=262144
sysctl -p 重启使其生效;
*soft nofile 204800 *hard nofile 204800 *soft nproc 204800 *hard nproc 204800
vi /etc/sudoers
增加如下一行信息后保存appuser ALL=(ALL)NOPASSWORD:/bin/mount * /mnt/ramdisk,/bin/umount * /mnt/ramdisk,/bin/mkdir * /mnt/ramdisk,/bin/chmod * /mnt/ramdisk
将alluxio-2.4.tar.gz压缩文件解压后,分别进行如下配置:
alluxio.master.hostname=hostIPalluxio.worker.hostname=hostIPalluxio.master.mount.table.root.ufs=s3a://s3-bucket #bucketalluxio.underfs.s3.endpoint=http://minio-f5:9000/ #minio集群F5或者ng地址alluxio.underfs.s3.disable.dns.buckets=truealluxio.underfs.s3.inherit.acl=truealluxio.underfs.s3.default.mode=0777alluxio.user.file.metadata.sync.interval=0aws.accessKeyId=minio #minio集群用户名aws.secretKey=minio #minio集群密码#HAalluxio.master.embedded.journal.addres=192.168.1.11:19200,192.168.1.12:19200,192.168.1.13:19200 #master节点的地址列表alluxio.zookeeper.enabled=truealluxio.zookeeper.address=zk1:2181,zk2:2181,zk3:2181 #zookeeper集群地址alluxio.master.journal.type=UFSalluxio.master.journal.folder=/ods/data #或hdfs://, 存储master journal日志的路径, 必须所有节点能访问到的地址alluxio.zookeeper.session.timeout=90 #需要保证Zookeeper部署设置maxSessionTimeout=90000#Securityalluxio.underfs.s3.inherit.acl=falsealluxio.security.login.username=rootalluxio.security.authorization.permission.enabled=falsealluxio.security.authorization.permission.umask=000alluxio.security.authorization.permission.supergroup=rootalluxio.user.file.delete.unchecked=truealluxio.master.security.impersonation.root.users=*alluxio.master.security.impersonation.root.groups=*alluxio.master.security.impersonation.client.users=*alluxio.master.security.impersonation.client.groups=*#Memoryalluxio.worker.memory.size=20GBalluxio.worker.tieredstore.levels=2alluxio.worker.tieredstore.level0.alias=MEMalluxio.worker.tieredstore.level0.dirs.path=/mnt/ramdiskalluxio.worker.tieredstore.level1.alias=SSDalluxio.worker.tieredstore.level1.dirs.mediumtype=SSDalluxio.worker.tieredstore.level1.dirs.path=/network/data #本地数据盘地址alluxio.worker.tieredstore.level1.dirs.quota=150GB#Networkalluxio.worker.block.heartbeat.interval=25sec#Performancealluxio.user.file.passive.cache.enabled=falsealluxio.user.block.master.client.pool.size.max=256alluxio.user.file.master.client.pool.size.max=256alluxio.user.file.replication.max=3#Machine Learningalluxio.user.metadata.cache.enabled=true
192.168.1.11 192.168.1.12 192.168.1.13
192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 192.168.1.15
ALLUXIO_LOGS_DIR=/ ALLUXIO_USER_LOGS_DIR=/ ALLUXIO_MASTER_JAVA_OPTS="-Xms2G -Xmx2G" ALLUXIO_WORKER_JAVA_OPTS="-Xms4G -Xmx4G -XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=70 - XX:G1RSetUpdatingPauseTimePercent=5 -XX:MAXGCPauseMillis=500 -XX:ParallelGCThreads=16 -XX:ConcGCThreads=16" ALLUXIO_JOB_WORKER_JAVA_OPTS="-Xms2G -Xmx2G"
其他可选参数:
-XX: +PrintGCDetails -XX: +PrintGCDatestamps XX: +PrintHeapAtGC -XX: +PrintTenuringDistribution -XX: +PrintGCApplicationStoppedTime -XX: +PrintPromotionFailure #-XX: PrintFLSStatistics=1 #-Xloggc: /applog/gc.log #-XX:HeapDumpPath:/heapdump -XX: +UseGCLogFileRotation -XX: NumberOfGCLogFiles=10 -XX: GCLogFileSize=10M
首次启动alluxio
前,必须先格式化所有master节点,执行命令为:
推荐
)./alluxio-start.sh masters #启动所有masters节点,前提必须免密设置 ./alluxio-start.sh master #或单独启动master节点(未设置免密登录时) ./alluxio-start.sh worker SudoMount #挂载woker,每台服务器(可根据具体需求)启动单个worker节点 ./allxio-start.sh job_master #job_worker依赖job_master,可以根据需要配置job_master节点个数,一般在所有master节点启动; ./allxio-start.sh job_worker #一般在所有worker节点(可根据具体需求)启动job worker,用于文件服务(例如:内存文件持久化到文件服务器)
浏览器正常访问:http://host:19999,注意host是masters三个节点中的某一个节点IP
配置完整性检查
:bin/alluxio fsadmin doctor configuration 要停止Alluxio服务,运行:
$ ./bin/alluxio-stop.sh all 这将停止conf/workers和conf/masters中列出的所有节点上的所有进程。可以使用以下命令仅停止master和worker:
$ ./bin/alluxio-stop.sh masters # 停止所有conf/masters 的 masters $ ./bin/alluxio-stop.sh workers # 停止所有conf/workers 的 workers
如果不想使用ssh登录所有节点来停止所有进程,可以在每个节点上运行命令以停止每个组件。 对于任何节点,可以使用以下命令停止master节点或worker节点:
$ ./bin/alluxio-stop.sh master # 停止 local master$ ./bin/alluxio-stop.sh worker # 停止 local worker一般建议如下:$./bin/alluxio-stop.sh job_worker #停止job_worker$./bin/alluxio-stop.sh job_master #停止job_master$ ./bin/alluxio-stop.sh workers #停止所有workers$ ./bin/alluxio-stop.sh master #待所有workers停止后,再分别停止master
与启动Alluxio类似,建议先清除alluxio.master.journal.folder目录下文件
,如果已经配置了conf/workers和conf/masters,可以使用以下命令启动集群:
$ ./bin/alluxio-start.sh masters # starts all masters in conf/masters$ ./bin/alluxio-start.sh workers # starts all workers in conf/workers
如果不想使用ssh登录所有节点来启动所有进程,可以在每个节点上运行命令以启动每个组件。 对于任何节点,可以使用以下命令启动master节点或worker节点:
$ ./bin/alluxio-start.sh master # 开始 local master$ ./bin/alluxio-start.sh worker # 开始 local worker一般建议如下:清除alluxio.master.journal.folder目录下文件$./bin/alluxio-start.sh masters #启动所有masters$./bin/alluxio-start.sh worker #验证master启动成功后,再分别启动各个worker有时出现文件访问异常,需要删除alluxio.master.journal.folder目录下文件,重新启动。
转载地址:http://lccpi.baihongyu.com/