分布式内存文件系统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月前
|
存储 运维 监控
在Linux中,在分布式环境中如何实现文件系统冗余和同步?(例如DRBD、GlusterFS)
在Linux中,在分布式环境中如何实现文件系统冗余和同步?(例如DRBD、GlusterFS)
|
4月前
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
|
5月前
|
设计模式 安全 NoSQL
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
74 0
|
5月前
|
设计模式 存储 缓存
Java面试题:结合建造者模式与内存优化,设计一个可扩展的高性能对象创建框架?利用多线程工具类与并发框架,实现一个高并发的分布式任务调度系统?设计一个高性能的实时事件通知系统
Java面试题:结合建造者模式与内存优化,设计一个可扩展的高性能对象创建框架?利用多线程工具类与并发框架,实现一个高并发的分布式任务调度系统?设计一个高性能的实时事件通知系统
67 0
|
5月前
|
设计模式 安全 NoSQL
Java面试题:结合单例模式与Java内存管理,设计一个线程安全的单例类?分析Java多线程工具类ExecutorService与Java并发工具包中的工具类,设计一个Java并发框架的分布式锁实现
Java面试题:结合单例模式与Java内存管理,设计一个线程安全的单例类?分析Java多线程工具类ExecutorService与Java并发工具包中的工具类,设计一个Java并发框架的分布式锁实现
72 0
|
7月前
|
缓存 监控 Java
Java一分钟之-Apache Geode:分布式内存数据平台
【5月更文挑战第21天】Apache Geode是低延迟的分布式内存数据平台,用于构建实时应用,提供缓存、数据库和消息传递功能。本文聚焦于Geode的常见问题,如数据一致性(数据同步延迟和分区冲突)和性能瓶颈(网络延迟和资源管理不当),并提出解决方案。确保数据一致性可通过选择合适的数据策略和利用`InterestPolicy`、`CacheListener`;提升性能则需优化网络和合理配置资源。通过示例代码展示了如何创建和操作Geode的Region。正确配置和调优Geode对于实现高可用、高性能应用至关重要。
158 1
|
7月前
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
89 3
|
6月前
|
存储 缓存 NoSQL
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质
了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质
|
7月前
|
存储 缓存 监控
Java一分钟之-Apache Ignite:分布式内存计算平台
【5月更文挑战第21天】Apache Ignite是一款开源的分布式内存计算平台,涉及内存数据网格、流处理和计算服务。本文关注其常见问题,如数据丢失、分区不均、内存管理和网络延迟。为保证数据一致性,建议使用适当的數據模式和备份策略,实现数据持久化。优化内存配置和监控网络可提升性能与稳定性。提供的Java代码示例展示了如何创建分区缓存并设置备份。正确配置和管理Ignite是构建高可用、高性能应用的关键,持续监控集群状态至关重要。
195 0
|
7月前
|
SQL 分布式计算 Hadoop
Spark分布式内存计算框架
Spark分布式内存计算框架
207 0