spark write data to minio test
Posted huaxiaoyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark write data to minio test相关的知识,希望对你有一定的参考价值。
想在本机测试一下,spark read write to s3 cloud storeage.
minio是一个不错的选择,轻量,兼容aws s3协议。
可以使用docker来做。
#拉取镜像
docker pull minio/minio
#启动容器
docker run -p 9000:9000 --name minio1
--network test
-e "MINIO_ACCESS_KEY=minio"
-e "MINIO_SECRET_KEY=minio123"
-v /Users/student2020/data/minio/data/:/data
minio/minio server /data
先在浏览器中登录 ,然后在右下角加号处添加一个新的bucket,
存储的格式是 s3a://bucket_name/dir_to_path
使用spark写入需要下面两个jar包,
aws-java-sdk-1.7.4.jar,hadoop-aws-2.7.3.jar
这两个文件可以在hadoop安装包解压后的目录中找到,直接 find . -name "*aws*.jar"即可。
spark-shell --executor-memory 2g --driver-memory 2g
--jars /Users/student2020/app/hadoop273/share/hadoop/tools/lib/aws-java-sdk-1.7.4.jar,/Users/student2020/app/hadoop273/share/hadoop/tools/lib/hadoop-aws-2.7.3.jar
val df=Seq((1,"student1"),(2,"student2"),(3,"student3")).toDF("id","name")
spark.sparkContext.hadoopConfiguration.set("fs.s3a.access.key", "minio")
spark.sparkContext.hadoopConfiguration.set("fs.s3a.secret.key", "minio123")
spark.sparkContext.hadoopConfiguration.set("fs.s3a.endpoint","127.0.0.1:9000")
spark.sparkContext.hadoopConfiguration.set("fs.s3a.path.style.access", "true");
spark.sparkContext.hadoopConfiguration.set("fs.s3a.connection.ssl.enabled", "false");
spark.sparkContext.hadoopConfiguration.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem");
df.save("s3a://test/df2")
如果想要使用nginx代理,则可以在http{}中添加如下内容
minion nginx 配置如下
server {
listen 80; #或者443
server_name file.example.com;#chang to yourself
location / {
proxy_buffering off; #important
proxy_set_header Host $http_host;
proxy_pass http://localhost:9000;
}
}
以上是关于spark write data to minio test的主要内容,如果未能解决你的问题,请参考以下文章
Minio"unable to rename (/minio/data4/.minio.sys/tmp -; /minio/...."问题的解决方法
Spark Dataframe Write to CSV 在独立集群模式下创建 _temporary 目录文件
ERROR 1 (HY000): Can‘t create/write to file ‘/data
解决gpg failed to sign the data fatal: failed to write commit object解决方案