Hadoop 集群中使用 S3(对象存储)文件系统

这篇具有很好参考价值的文章主要介绍了Hadoop 集群中使用 S3(对象存储)文件系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hadoop 自带 S3 依赖,位置如下:

$HADOOP_HOME/share/hadoop/tools/lib/hadoop-aws-3.1.3.jar
$HADOOP_HOME/share/hadoop/tools/lib/aws-java-sdk-bundle-1.11.271.jar

但是这些依赖包默认不在 hadoop classpath 下面。可以使用以下两种方法引入这两个包:

在 hadoop-env.sh 中加入 export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/tools/lib/*。更改完毕后可以使用 hadoop classpath 确定。
通过软链接:ln -s $HADOOP_HOME/share/hadoop/tools/lib/*aws* $HADOOP_HOME/share/hadoop/common/lib/

修改hadoop的core-site.xml文件:
s3的配置模板(记得修改成自己的 secret key 与 access key )

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>fs.s3a.access.key</name>
    <value>xbqk6TYW5ujCaLxH</value>
  </property>
  <property>
    <name>fs.s3a.secret.key</name>
    <value>6fSRPMeFNwaNxkWxgz6OrupxsAY5YCjw</value>
  </property>
  <property>
    <name>fs.s3a.connection.ssl.enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>fs.s3a.path.style.access</name>
    <value>true</value>
  </property>
  <property>
    <name>fs.s3a.endpoint</name>
    <value>http://172.16.120.190:32613</value>
  </property>
  <property>
    <name>fs.s3a.impl</name>
    <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value>
  </property>
<property>
  <name>fs.defaultFS</name>
  <value>s3a://hive0614/</value>
</property>
</configuration>

更改完毕并重启集群后
测试hdfs dfs -ls s3a://hive0614/ 等命令操作 S3 中的文件。

bin/hdfs dfs -mkdir s3a://hive0614/mgtest
bin/hdfs dfs -ls s3a://hive0614/

Hadoop 集群中使用 S3(对象存储)文件系统

目前HDFS Client已经可以看到S3文件了。
如果需要yarn和MapReducer 需要修改如下文件
hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
        <value>false</value>
    </property><property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>dfs.namenode.servicerpc-bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>dfs.namenode.http-bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>dfs.namenode.https-bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>dfs.client.use.datanode.hostname</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.datanode.use.datanode.hostname</name>
        <value>false</value>
    </property>
</configuration>

yarn-site.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>tdh01</value>
    </property>
    <property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore</value>
    </property>
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>  
    <property>
        <name>mapred.map.output.compress.codec</name>
        <value>org.apache.hadoop.io.compress.SnappyCodec</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    </property>
    <property>
        <name>mapreduce.map.output.compress</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.resourcemanager.bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>yarn.nodemanager.bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>yarn.nodemanager.bind-host</name>
        <value>0.0.0.0</value>
    </property>
    <property>
        <name>yarn.timeline-service.bind-host</name>
        <value>0.0.0.0</value>
    </property>
<property>
    <name>yarn.application.classpath</name>
    <value>
        /opt/adptest/hadoop/etc/hadoop,
        /opt/adptest/hadoop/share/hadoop/common/*,
        /opt/adptest/hadoop/share/hadoop/common/lib/*,
        /opt/adptest/hadoop/share/hadoop/hdfs/*,
        /opt/adptest/hadoop/share/hadoop/hdfs/lib/*,
        /opt/adptest/hadoop/share/hadoop/mapreduce/*,
        /opt/adptest/hadoop/share/hadoop/mapreduce/lib/*,
        /opt/adptest/hadoop/share/hadoop/yarn/*,
        /opt/adptest/hadoop/share/hadoop/yarn/lib/*
    </value>
  </property>
</configuration>

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/adptest/hadoop</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/adptest/hadoop</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/adptest/hadoop</value>
</property>
<property>
    <name>yarn.application.classpath</name>
    <value>
        /opt/adptest/hadoop/etc/hadoop,
        /opt/adptest/hadoop/share/hadoop/common/*,
        /opt/adptest/hadoop/share/hadoop/common/lib/*,
        /opt/adptest/hadoop/share/hadoop/hdfs/*,
        /opt/adptest/hadoop/share/hadoop/hdfs/lib/*,
        /opt/adptest/hadoop/share/hadoop/mapreduce/*,
        /opt/adptest/hadoop/share/hadoop/mapreduce/lib/*,
        /opt/adptest/hadoop/share/hadoop/yarn/*,
        /opt/adptest/hadoop/share/hadoop/yarn/lib/*
    </value>
  </property>


</configuration>

分发给其他节点:

scp -r etc/hadoop/yarn-site.xml etc/hadoop/mapred-site.xml tdh02:/opt/adptest/

Hadoop 集群中使用 S3(对象存储)文件系统
配置完毕后,分发配置,然后需要重启整个 Hadoop 集群

Hive配置方法:
在 Hive 的安装目录下进行以下操作,增加依赖包:

mkdir /opt/hive/auxlib
 ln -s $HADOOP_HOME/share/hadoop/tools/lib/*aws* ./auxlib/

Hadoop 集群中使用 S3(对象存储)文件系统

创建 core-site.xml
在 $HIVE_HOME/conf 目录下新建 core-site.xml 并加入如下配置:
core-site.xml

<configuration>
  <property>
    <name>fs.s3a.access.key</name>
    <value>xbqk6TYW5ujCaLxH</value>
  </property>
  <property>
    <name>fs.s3a.secret.key</name>
    <value>6fSRPMeFNwaNxkWxgz6OrupxsAY5YCjw</value>
  </property>
  <property>
    <name>fs.s3a.connection.ssl.enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>fs.s3a.path.style.access</name>
    <value>true</value>
  </property>
  <property>
    <name>fs.s3a.endpoint</name>
    <value>http://172.16.120.190:32613</value>
  </property>
  <property>
    <name>fs.s3a.impl</name>
    <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value>
  </property>
</configuration>

配置 hive-env.sh
在 $HIVE_HOME/conf 目录下运行 cp hive-env.sh.template hive-env.sh 后添加如下内容:

# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=$HIVE_HOME/auxlib

重启hive服务

$HIVE_HOME/bin/hiveservices.sh restart
后台启动:
nohup ./hive --service metastore 2>&1 &
nohup ./hive --service hiveserver2 2>&1 &

启动完成后测试hive使用:
#创建表

create table mgtest2(id int) location 's3a://hive0614/hive/warehouse/mgtest2';
insert into table mgtest2 values(1);
select * from mgtest2;

Hadoop 集群中使用 S3(对象存储)文件系统
Hadoop 集群中使用 S3(对象存储)文件系统文章来源地址https://www.toymoban.com/news/detail-455274.html

到了这里,关于Hadoop 集群中使用 S3(对象存储)文件系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop的分布式文件存储系统HDFS组件的使用

    存储整个HDFS集群的元数据(metaData) —— 整个集群中存储的目录和文件的索引 管理整个HDFS集群 接收客户端的请求 负责节点的故障转移 存储数据,是以block块的形式进行数据的存放。 默认情况下block块的大小是128M。 blocksize大小的计算公式: 寻址时间:下载文件时找到文件

    2024年02月09日
    浏览(73)
  • [ 云计算 | AWS 实践 ] 使用 Java 列出存储桶中的所有 AWS S3 对象

    本文收录于【#云计算入门与实践 - AWS】专栏中,收录 AWS 入门与实践相关博文。 本文同步于个人公众号:【 云计算洞察 】 更多关于云计算技术内容敬请关注:CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文: [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶

    2024年02月06日
    浏览(49)
  • [ 云计算 | AWS ] Java 应用中使用 Amazon S3 进行存储桶和对象操作完全指南

    本文收录于【#云计算入门与实践 - AWS】专栏中,收录 AWS 入门与实践相关博文。 本文同步于个人公众号:【 云计算洞察 】 更多关于云计算技术内容敬请关注:CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文: [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶

    2024年02月11日
    浏览(45)
  • [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶和对象操作完全指南

    本文收录于【#云计算入门与实践 - AWS】专栏中,收录 AWS 入门与实践相关博文。 本文同步于个人公众号:【 云计算洞察 】 更多关于云计算技术内容敬请关注:CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文: [ 云计算 | AWS 实践 ] Java 应用中使用 Amazon S3 进行存储桶

    2024年02月08日
    浏览(44)
  • aws对象存储s3基于lambda实现图片裁剪

    存储桶名称:wmmzz 1.存储桶策略设置 2. 创建lambda函数 点击跳转到IAM控制台,创建自定义角色,选择服务类型lambda,创建策略 输入策略下一步取名resize-policy,回到创建角色页面,搜索刚才创建的策略选中,再搜索AmazonS3FullAccess选中 点击下一步,输入角色名称resize-role,点击“创建角色

    2024年02月11日
    浏览(46)
  • s3fs挂载对象存储到本地

    S3FS是Google开发的一款支持将对象存储中的bucket以文件形式导出的文件系统接口,兼容POSIX语法 S3FS基于FUSE开发的文件系统,允许Linux和Mac OS 挂载S3的存储桶到本地文件系统,并保持对象原来格式。 只要支持S3存储协议的都支持挂载,比如minio、华为云OBS、阿里云OSS等 centos 安装

    2024年02月15日
    浏览(51)
  • 【Ceph集群应用】Ceph对象存储系统之RGW接口详解

    接上文基于ceph-deploy部署Ceph集群详解 (1)对象存储概念 对象存储(object storage)是非结构数据的存储方法,对象存储中每一条数据都作为单独的对象存储,拥有唯一的地址来识别数据对象,通常用于云计算环境中。 不同于其他数据存储方法, 基于对象的存储不使用目录树

    2024年02月17日
    浏览(40)
  • Amazon S3 对象存储Java API操作记录(Minio与S3 SDK两种实现)

    今年(2023年) 2月的时候做了个适配Amazon S3对象存储接口的需求,由于4月份自学考试临近,一直在备考就拖着没总结记录下,开发联调过程中也出现过一些奇葩的问题,最近人刚从考试缓过来顺手记录一下。 Amazon S3(Simple Storage Service)对象存储出现得比较早且使用简单的RESTful

    2024年02月01日
    浏览(51)
  • 【数据库入门】什么是对象存储?如何配置S3? | OushuDB

    对象存储,也称为“面向对象的存储”,英文是Object-based Storage。 它综合了网络附加存储(NAS)和存储局域网(SAN)的优点,同时具有SAN的高速直接访问和NAS的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。 对象存储允许将计

    2024年01月25日
    浏览(45)
  • elasticsearch snapshot快照备份到minio对象存储S3 —— 筑梦之路

    minio 最新版 elasticsearch 7.9 访问minio web:http://ip:9001 ,创建用户和桶,示例如下: 参考:elasticsearch snapshot快照指定多个索引并行备份——筑梦之路_筑梦之路的博客-CSDN博客

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包