Spark连接MongoDB

jdk1.8安装

jdk解压到/opt/java目录,然后在~/.bashrc中加入下面几行:

export JAVA_HOME=/opt/java/jdk1.8.0_101
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
export PATH=$JAVA_HOME/bin:$PATH

使bashrc文件生效: $ source ~/.bashrc
查看java版本 :$ java -version

Scala安装
$ sudo mkdir /opt/scala
$ sudo tar zxvf scala-2.10.4.tgz -C /opt/scala
  • 添加环境变量/编辑配置文件bashrc (该配置文件只对当前用户有效)/
$ vim ~/.bashrc
export PATH=/opt/scala/scala-2.10.4/bin:$PATH
export SCALA_HOME=/opt/scala/scala-2.10.4
  • 测试,观察结果版本号是否一致
$ scala -version
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL
配置Spark文件
cp spark-env.sh.template  spark-env.sh
vi spark-env.sh
export SPARK_MASTER_IP= 192.168.247.131
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=1g
export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
export JAVA_HOME=/usr/java/1.8.0_101
IP错误
error:not found:value sqlContext
error:not found:value sc

查看ifconfig,看ip地址是否和你在/etc/hosts中的ip地址一致,如果不一致,请修改/etc/hosts中的ip地址。
查看Spark-env.sh中配置的SPARK_MASTER_IP是否和ifconfig中的ip地址一致,如果不一致,请修 改SPARK_MASTER_IP。

Spark验证

./sbin/start-all.sh(jps命令或访问http://192.168.159.136:8080)查看Spark是否成功。

MongoDB安装

下载地址:http://www.mongodb.org/downloads

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz         # 解压
mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb     # 将解压包拷贝到指定目录

MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
export PATH=<mongodb-install-directory>/bin:$PATH
<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 。

创建数据库目录
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(–dbpath)。
mkdir -p /data/db
执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:如果你的数据库目录不是/data/db,可以通过 –dbpath 来指定。
$ ./mongod
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):
$ cd /usr/local/mongodb/bin
$ ./mongo

资料链接

Spark连接MongoDB

启动Spark
启动MongoDB
Spark-MongoDB Connection

$ git clone https://github.com/mongodb/mongo-spark.git
$ cd mongo-spark
$ ./sbt check

启动spark-sheell (spark目录下bin目录中)

./bin/spark-shell --conf "spark.mongodb.input.uri=mongodb://127.0.0.1/test.myCollection?readPreference=primaryPreferred" \
                  --conf "spark.mongodb.output.uri=mongodb://127.0.0.1/test.myCollection" \
                  --packages org.mongodb.spark:mongo-spark-connector_2.10:1.1.0
import com.mongodb.spark._
import scala.collection.JavaConverters._

Write to MongoDB
MongoSpark.save()
To write to MongoDB from RDD, you can use the MongoSpark.save() method.

import org.bson.Document
val documents = sc.parallelize((1 to 10).map(i => Document.parse(s"{test: $i}")))
MongoSpark.save(documents) // Uses the SparkConf for configuration

Read and Analyze Data from MongoDB
MongoSpark.load()
Use the MongoSpark.load method to create an RDD representing a collection.

val rdd = MongoSpark.load(sc)
println(rdd.count)
println(rdd.first.toJson)

官方文档链接

版本问题

Spark1.6.3 (spark-1.6.2-bin-hadoop2.6.tgz)
scala2.10.4
jdk1.8
scala2.11版本不成功

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值