当我们使用依赖的时候,如果写错了,需要删掉重写导入一下,有的时候,就算你在maven里面重写引入一下 也不行,依赖删掉后在引入新的依赖
object FlinkSQL2Hbase {
def main(args: Array[String]): Unit = {
val env = ExecutionEnvironment.getExecutionEnvironment
val batchEnv = BatchTableEnvironment.create(env)
var map = Map[String, Object]()
map+=("oracleDriverUrl"-> "jdbc:oracle:thin:localhost:1521:orcl")
map+=("oracleUsername"-> "a")
map+=("oraclePassword"->"a")
map+=("oracleDriverClass"->"oracle.jdbc.driver.OracleDriver")
map+=("flinkDS"->"127.0.0.1")
map+=("flinkPort"->"8081")
map+=("jarPath"-> "/a-code-java-1.0-SNAPSHOT.jar")
val tmpData:DataSet[(Double,Double,String,String)] = HbaseBtCalService.executes(map,env)
batchEnv.registerDataSet("hbasetable",tmpData,'d1,'d2,'d3,'d4) //注册表
val sql = "select * from hbasetable "
val table = batchEnv.sqlQuery(sql)
table.printSchema()
# java.lang.NoClassDefFoundError: scala/Product$class
``
原因是Spark是基于scala 2.11编译的,而环境使用了最新的2.12的scala的编译版本;