怎样关联电子邮件程序?(电子邮件程序有哪些)
1024
2022-05-30
MRS HADOOP/SPARK 代码访问OBS方式介绍
1 背景描述:
MRS样例代码没有介绍如何访问OBS,在默认情况下使用的文件系统都是HDFS;如果访问OBS需要添加一些配置,代码使用过程中也有一些需要注意的地方
2 配置OBS相关参数:
需要在客户端配置文件core-site.xml里面添加以下参数:
需要注意的是,此方式设置的aksk会明文暴露下文件中,谨慎使用
如果不想要明文显示可以设置ECS代理,参考指导文档
3 代码指导:
hadoop的文件系统对象是一个抽象类:org.apache.hadoop.fs.FileSystem
常用的获取FileSystem的方式是:
FileSystem fileSystem = FileSystem.get(conf);
此方法获取到的文件系统为配置项“fs.defaultFS”指定的文件系统类型
如果我们需要的是访问OBS的文件系统则需要使用另一个方法来获取FileSystem:
FileSystem fileSystem = FileSystem.get(URI.create("obs://Bucket-Name/tmp"),conf);
此时获取到的文件系统就是对应OBS的文件系统
obs://Bucket-Name/tmp
如果地址是s3a开头,这文件系统是S3aFileSystem
如果地址是obs开头,这文件系统是OBSFileSystem
此处一般都是传递过来一个文件地址参数,然后通过这个方法来自动识别文件系统
以上是对于hdfs API操作OBS文件的连接方式
如果是MapReduce任务需要读取/写入OBS的文件,可以直接将”obs://Bucket-Name/tmp”这样的地址传入,代码可以自动识别到文件系统并获取相应的文件,代码参考样例代码:
FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
如果是spark任务需要读取/写入OBS的文件,使用以下方法可以自动识别到相应的文件系统:
textFile(args[0])–读取文件
saveAsTextFile(args[1])–保存文件
saveAsHadoopFile(args[2])—指定格式保存文件
4 案例说明
例如我们使用MapReduce的wordcount任务:
访问hdfs上的文件进行计算启动命令:
yarn jar hadoop-mapreduce-examples-*.jar wordcount /tmp/input /tmp/output
如果需要访问OBS,则可以改成:
yarn jar hadoop-mapreduce-examples-*.jar wordcount obs://Bucket-Name/tmp/input obs://Bucket-Name/tmp/output
spark任务也是类似的操作,以spark自带样例为例:
spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.JavaWordCount spark-examples_*.jar /tmp/input
如果需要访问OBS,则可以改成:
spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.JavaWordCount spark-examples_*.jar obs://Bucket-Name/tmp/input
Hadoop mrs EI企业智能
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。