分布式内存文件系统Alluxio(下)

简介: 分布式内存文件系统Alluxio(下)

image.png


通过命令行创建文件


创建文件夹目录


./bin/alluxio fs mkdir /alluxiotest


将本地文件复制到docker中 用于上传alluxio


docker cp /Users/mengfanxiao/Documents/work/code/simple-alluxio/README.MD  52f831088dd8:/opt/alluxio-2.3.0


创建文件


./bin/alluxio fs copyFromLocal /opt/alluxio-2.3.0/README.MD  /alluxiotest/


查看文件是否上传成功


image.png


使用java api


引入依赖


注:jar pom版本必须要和部署的alluxio版本一致


我部署的是 2.3.0版本的alluxio


java api依赖的版本号如下


<dependency>
   <groupId>org.alluxio</groupId>
   <artifactId>alluxio-core-client-fs</artifactId>
   <version>2.3.0</version>
  </dependency>
  <dependency>
   <groupId>org.alluxio</groupId>
   <artifactId>alluxio-core-common</artifactId>
   <version>2.3.0</version>
  </dependency>
  <dependency>
   <groupId>com.codahale.metrics</groupId>
   <artifactId>metrics-core</artifactId>
   <version>3.0.0</version>
  </dependency>


我在这块耽误了至少一下午时间 我用的是1.8版本的pom 去访问 2.3.0版本的alluxio 😂


至于为什么用1.8版本的 因为我百度了下 看到有一位网友用的1.8版本的 殊不知 人家部署的alluxio也是1.8版本的 。


因为版本不兼容的问题 会导致各种各样的问题 然后再去解决这些问题 肯定处理不好呀


因为本质是版本不兼容 所以这块浪费了一些时间


这里要反思下工作方法的问题


文件操作demo


##读取默认配置
  AlluxioProperties alluxioProperties=ConfigurationUtils.defaults();
  ##设置操作用户
  alluxioProperties.set(PropertyKey.SECURITY_LOGIN_USERNAME, "alluxio");
  AlluxioConfiguration alluxioConf = new InstancedConfiguration(alluxioProperties);
  ##目标文件
  AlluxioURI inputPath = new AlluxioURI("/alluxiotest/README.MD");
  ##输出文件
  AlluxioURI outputPath = new AlluxioURI("/alluxiotest/hello.txt");
  ##创建文件系统实例
  FileSystem fileSystem = FileSystem.Factory.create(alluxioConf);
  ##打开目标文件
  FileInStream is = fileSystem.openFile(inputPath);
  CreateFilePOptions options = CreateFilePOptions.newBuilder().setWriteType(WritePType.CACHE_THROUGH).setRecursive(true).build();
  ##生成输出文件并上传到文件系统
  FileOutStream os = fileSystem.createFile(outputPath, options);
  IOUtils.copy(is, os);
  is.close();
  os.close();


查看操作结果


image.png


本地电脑访问上面的demo代码 需要访问 alluxio-worker:29999 所以需要本地host文件中配置下域名访问转发


查看host文件


sudo vim /private/etc/hosts
添加
127.0.0.1 alluxio-worker


刷新缓存


dscacheutil -flushcache




相关文章
|
4天前
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
|
1月前
|
设计模式 安全 NoSQL
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
40 0
|
1月前
|
设计模式 存储 缓存
Java面试题:结合建造者模式与内存优化,设计一个可扩展的高性能对象创建框架?利用多线程工具类与并发框架,实现一个高并发的分布式任务调度系统?设计一个高性能的实时事件通知系统
Java面试题:结合建造者模式与内存优化,设计一个可扩展的高性能对象创建框架?利用多线程工具类与并发框架,实现一个高并发的分布式任务调度系统?设计一个高性能的实时事件通知系统
32 0
|
1月前
|
设计模式 安全 NoSQL
Java面试题:结合单例模式与Java内存管理,设计一个线程安全的单例类?分析Java多线程工具类ExecutorService与Java并发工具包中的工具类,设计一个Java并发框架的分布式锁实现
Java面试题:结合单例模式与Java内存管理,设计一个线程安全的单例类?分析Java多线程工具类ExecutorService与Java并发工具包中的工具类,设计一个Java并发框架的分布式锁实现
30 0
|
3月前
|
缓存 监控 Java
Java一分钟之-Apache Geode:分布式内存数据平台
【5月更文挑战第21天】Apache Geode是低延迟的分布式内存数据平台,用于构建实时应用,提供缓存、数据库和消息传递功能。本文聚焦于Geode的常见问题,如数据一致性(数据同步延迟和分区冲突)和性能瓶颈(网络延迟和资源管理不当),并提出解决方案。确保数据一致性可通过选择合适的数据策略和利用`InterestPolicy`、`CacheListener`;提升性能则需优化网络和合理配置资源。通过示例代码展示了如何创建和操作Geode的Region。正确配置和调优Geode对于实现高可用、高性能应用至关重要。
67 1
|
3月前
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
46 3
|
2月前
|
存储 缓存 NoSQL
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质
|
3月前
|
存储 缓存 监控
Java一分钟之-Apache Ignite:分布式内存计算平台
【5月更文挑战第21天】Apache Ignite是一款开源的分布式内存计算平台,涉及内存数据网格、流处理和计算服务。本文关注其常见问题,如数据丢失、分区不均、内存管理和网络延迟。为保证数据一致性,建议使用适当的數據模式和备份策略,实现数据持久化。优化内存配置和监控网络可提升性能与稳定性。提供的Java代码示例展示了如何创建分区缓存并设置备份。正确配置和管理Ignite是构建高可用、高性能应用的关键,持续监控集群状态至关重要。
96 0
|
3月前
|
SQL 分布式计算 Hadoop
Spark分布式内存计算框架
Spark分布式内存计算框架
99 0
|
3月前
|
运维 Cloud Native 持续交付
构建未来:以云原生为基石的分布式系统架构深入理解操作系统的内存管理机制
【4月更文挑战第30天】 随着企业数字化转型的不断深入,传统的IT架构已难以满足市场对于敏捷性、可扩展性和成本效益的需求。云原生技术作为推动这一变革的关键因素,其设计理念和实现方式正在重塑软件开发和运维模式。本文将探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)、以及无服务器计算等,并分析其在构建分布式系统中的作用与挑战。通过实际案例,我们将展示如何利用云原生技术构建高效、弹性和可维护的分布式系统。