前言TiDB单机搭建sparkDataframe连接TiDB
前言前几天领导让用spark集成TiDB支持读写,没办法只能简单的了解一下TiDB,然后搭建了一个单机版的TiDB测试使用,这里也理解的比较浅显,毕竟时间紧任务重,一切以完成任务为目的。。。
这里也附上几个我开发时用到的一些连接:
安装参考视频,安装参考博客,代码参考地址,中文文档地址
开发所需pom依赖
TiDB单机搭建//以下这个依赖删除也没出毛病,毕竟spark连接TiDB使用的是mysql驱动 mysql mysql-connector-java 5.1.38 jar
由于是测试使用,所以搭建怎么简单怎么来的,没进行太多的额外功能修改
1.安装 1.1获取压缩包 wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz 1.2解压 tar -xzf tidb-latest-linux-amd64.tar.gz -C /自定义目录 1.3启动PD(放入后台启动) ./bin/pd-server --data-dir=pd --log-file=pd.log & 1.4启动TiKV(放入后台启动) ./bin/tikv-server --pd="127.0.0.1:2379" --data-dir=tikv --log-file=tikv.log & 1.5启动TiDB(放入后台启动) ./bin/tidb-server --store=tikv --path="127.0.0.1:2379" --log-file=tidb.log & 2.连接(使用mysql连接TiDB) mysql -h127.0.0.1 -P4000 -uroot 3.使用Navicat连接TiDB(记得没错的话,密码为空)sparkDataframe连接TiDB
val conf = new SparkConf().setAppName("test").setMaster("local[4]")
val spark = SparkSession.builder().config(conf).getOrCreate()
//读数据
val df= spark.read.format("jdbc")
.option("url", "jdbc:mysql://127.0.0.1/dbname")
.option("driver", "com.mysql.jdbc.Driver")
.option("dbtable", "tc_table")
.option("user", "root")
.option("password","password")
.load()
df.show()
//写数据
//模拟Dataframe数据
val df = spark.createDataframe(Seq(
("ming", 20, 15552211521L),
("hong", 19, 13287994007L),
("zhi", 21, 15552211523L)
)).toDF("name", "age", "phone")
val properties = new Properties()
properties.put("user", "root")
properties.put("password", "password")
properties.put("driver","com.mysql.jdbc.Driver")
properties.put("isolationLevel","NONE") //如果这里事务不设置NONE,会报错
//写入TiDB数据库的tc_table表中
df.write.mode(SaveMode.Append).jdbc("jdbc:mysql://127.0.0.1/dbname","tc_table",properties)
直到现在对于TiDB的了解也是比较浅,毕竟只是为了应付开发去了解的,所以具体的学习可以去参考上面的官方文档链接



