前面我们已经把大数据平台搭建完成了,接下来是怎么应用大数据这件威力巨大的武器了。因为作者目前在一家传统型制造企业,很多业务和数据都是基于传统关系型数据库展开的,数据源大部分都存在Oracle、Mysql、PostgreSQL等传统关系型数据库,所以如何跟大数据平台建立联系,或者说让大数据技术更接地气,是应用大数据技术最好的实践。本文从一个初学者的角度去实践Spark访问Oracle数据库的过程。
1.创建测试数据
SQL> create table student
2 (id number,
3 name varchar(20),
4 age number);
表已创建。
添加数据
SQL> insert into student values
2 (2,'Leo',2);
2.启动集群
基于前面搭建好的大数据平台,调用启动集群脚本start-cluster.sh,启动完成后登陆http://master:50070 和http://master:8080网页访问Hadoop和Spark,验证集群有没有启动成功。
3.Spark直连Oracle
3.1. 集群成功启动后,进入Shell,因为笔者采用的是python脚本,所以通过pyspark命令来实现数据库操作任务,在spark集群上启动pyspark命令如下:
下载完jdbc驱动后得到的是一个ojdbc6.jar文件,为了方便管理,一定要把这个jar包放在${SPARK_HOME}/jars目录下,这个目录是存放跟spark交互相关的jar包的。
3.3. 通过pyspark交互平台查询数据库表结构和表里面的数据。
empDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:oracle:thin:username/password@//hostname:portnumber/SID") \
.option("dbtable", "hr.emp") \
.option("user", "db_user_name") \
.option("password", "password") \
.option("driver", "oracle.jdbc.driver.OracleDriver") \
.load()
empDF.printSchema()
empDF.show()
自己的代码
>>> empDF =spark.read\
... .format("jdbc")\
... . option("url","jdbc:oracle:thin:system/Hejun52191314@//127.0.0.1:1521/ORCL")\
... . option("dbtable","student")\
... . option("user","system")\
... . option("password","Hejun52191314")\
... . option("drive","oracle.ojdbc.driver.OracleDriver")\
... . load()
>>>
至此,Spark直连Oracle数据库完成。