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.rdd.saveAsTextFile( "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;
 }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM