天天看点

8.分布式存储(大数据平台存算分离)

目 录​

​​1 前言 1​​​

​​2 实验环境 1​​​

​​3 准备JuiceFS文件系统 2​​​

​​3.1 开启MinIO集群&Redis 2​​​

​​3.2 创建文件系统 2​​​

​​3.3 开启S3网关(Windows) 2​​​

​​4 在HDP中部署Java客户端 3​​​

​​4.1 下载预编译客户端 3​​​

​​4.2 在HDP中部署客户端 3​​​

​​4.3 客户端配置参数 4​​​

​​5 验证 5​​​

​​5.1 Hadoop CLI 5​​​

​​5.2 Hive 6​​​

分布式存储应用

(大数据平台存算分离)​

元工​:2022.08.09

前言​

目标:利用前面JuiceFS环境(系列1第5期)和大数据平台HDP环境(系列2第2期),验证一下JuiceFS 提供的Hadoop接口,也是一个大数据平台存算分离的应用场景。​

要求:对Linux、VMware workstaion、大数据基础理论有一定的熟悉,以及前面的实践经验。​

本系列内容:​

  • 第1期:分布式存储应用(大数据平台HDP搭建), [元工]​
  • 第2期:分布式存储应用(大数据平台HDP之操作实践), [元工]​
  • 第3期:分布式存储应用(大数据平台存算分离), [元工]​

实验环境​

与本系列第1期的实验环境网络拓扑相同,如下图所示:​

8.分布式存储(大数据平台存算分离)

准备JuiceFS文件系统​

开启MinIO集群&Redis​

// 开启MinIO集群和Redis服务器​

[root@mr01 ~]# docker-compose start​

8.分布式存储(大数据平台存算分离)
// 登录验证​​http://192.168.66.11:9001/​​​
8.分布式存储(大数据平台存算分离)

创建文件系统​

[root@mr01 ~]# juicefs format --storage minio --bucket http://192.168.66.11:9000/buck1/ --access-key minioadmin --secret-key minioadmin redis://:[email protected]:6379/1 myjfs​
8.分布式存储(大数据平台存算分离)

开启S3网关(Windows)​

C:\Windows\system32>set MINIO_ROOT_USER=admin​

C:\Windows\system32>set MINIO_ROOT_PASSWORD=12345678​

C:\Windows\system32>juicefs gateway redis://:[email protected]:6379/1 localhost:9080​

8.分布式存储(大数据平台存算分离)
// 验证:在浏览器中打开​​http://localhost:9080​​​
8.分布式存储(大数据平台存算分离)

在HDP中部署Java客户端​

下载预编译客户端​

// ​​下载​​后,拷贝到本地系统,并修改权限​
8.分布式存储(大数据平台存算分离)

在HDP中部署客户端​

// 将以上的JAR 文件和 $JAVA_HOME/lib/tools.jar 放置到HDP组件的 classpath 内。​

填坑:官方建议将 JAR 文件放置在一个统一的位置,其他位置通过“符号链接”进行调用,结果没有成功!可能因为Ambari在权限上的问题,导致不能够加载jar文件;最后,还是通过“复制”才成功;细节不想去追究了!​

// 执行命令​

[hadoop@node1 ~]$ sudo cp $JAVA_HOME/lib/tools.jar /usr/hdp/current/hadoop-client/lib/tools.jar​

[hadoop@node1 ~]$ sudo cp /home/hadoop/juicefs/juicefs-hadoop-1.0.0-rc3.jar /usr/hdp/current/hadoop-client/lib/juicefs-hadoop.jar​

[hadoop@node1 ~]$ sudo cp $JAVA_HOME/lib/tools.jar /usr/hdp/current/hive-client/lib/tools.jar​

[hadoop@node1 ~]$ sudo cp /home/hadoop/juicefs/juicefs-hadoop-1.0.0-rc3.jar /usr/hdp/current/hive-client/lib/juicefs-hadoop.jar​

客户端配置参数​

// 创建缓存目录​

[hadoop@node1 ~]$ sudo mkdir -p /data1/jfs​

[hadoop@node1 ~]$ sudo chmod -R 0777 /data1​

// 准备core-site.xml的配置项​

fs.jfs.impl=io.juicefs.JuiceFileSystem​

fs.AbstractFileSystem.jfs.impl=io.juicefs.JuiceFS​

juicefs.meta=redis://:[email protected]:6379/1​

juicefs.cache-dir=/data*/jfs​

juicefs.cache-size=0​

juicefs.access-log=/tmp/juicefs.access.log​

juicefs.superuser=hdfs​

// 在UI中添加:​

8.分布式存储(大数据平台存算分离)

// 在HDP中,除了修改 core-site 外,还需要通过 MapReduce2 服务界面修改配置mapreduce.application.classpath,在末尾增加(变量无需替换):​

:/usr/hdp/${hdp.version}/hadoop/lib/juicefs-hadoop.jar​

8.分布式存储(大数据平台存算分离)
// 最后重启服务或系统​

验证​

Hadoop CLI

// 在hadoop中查看HDFS文件系统​

[hadoop@node1 ~]$ hdfs dfs -ls /user/stu01​

8.分布式存储(大数据平台存算分离)

// 在hadoop中查看JuiceFS文件系统​

[hadoop@node1 ~]$ hdfs dfs -ls jfs://myjfs/​

8.分布式存储(大数据平台存算分离)

// 在hadoop中上传文件至JuiceFS文件系统​

[hadoop@node1 test1]$ hdfs dfs -put hjy_stu01.txt jfs://myjfs/​

8.分布式存储(大数据平台存算分离)
// 通过S3网关查看结果​
8.分布式存储(大数据平台存算分离)

// 在hadoop中查看JuiceFS文件系统中的文件内容​

[hadoop@node1 test1]$ hdfs dfs -cat jfs://myjfs/hjy_stu01.txt​

8.分布式存储(大数据平台存算分离)

Hive

// 在JuiceFS文件系统中,准备一个表的数据文件(即5.1中的"hjy_stu01.txt")​

// 登录Hive​

[hadoop@node1 ~]$ beeline --hiveconf hive.server2.logging.operation.level=NONE​

// 创建空表'hjy_stu06'​

0: jdbc:hive2://node1:2181/default> create table hjy_stu06 (name string,gender string ,age int) row format delimited fields terminated by ',' stored as textfile ;​

// 查看表记录:空的​

0: jdbc:hive2://node1:2181/default> select * from hjy_stu06;​

8.分布式存储(大数据平台存算分离)

// 导入juicefs文件系统中"hjy_stu01.txt"​

0: jdbc:hive2://node1:2181/default> load data inpath 'jfs://myjfs/hjy_stu01.txt' into table hjy_stu06;​

8.分布式存储(大数据平台存算分离)

// 查看表记录​

0: jdbc:hive2://node1:2181/default> select * from hjy_stu06;​

8.分布式存储(大数据平台存算分离)

继续阅读