SparkでMysqlを接続

1639 ワード

開発中にsparkがMysqlに接続されている部分の操作に関しては、scalaで記述する必要がありますが、Java言語のいくつかの基礎的な手でscalaを使用するのは難しいことではありません...以下は接続部分のコードですが、mysqlの接続駆動など、使用前に関連する依存を導入することに注意してください.例demo:
def main(args: Array[String]): Unit = {
	val conf = new SparkConf().setAppName("test").setMaster("local")
	val sc = new SparkContext(conf)
	val sqlContext = new SQLContext(sc)
	val properties = new Properties()
	//            
	properties.put("user","test")
	properties.put("password","test")
	//             
	val url = "jdbc:mysql://localhost:3306/test"
	//      
	val test= sqlContext.read.jdbc(url,"test",properties)
	//      
    test.show()
}

しかし、私がこれらの十分な准备をしている时、待ちきれないほどデータベースに接続して一体を见たいと思っていますが、非情な拒否を受けました!!!エラー警告...エラーの原因は以下の通りです:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure 1回の操作が虎のように激しくて、書き方が難しいのではないでしょうか???ネットでいくつかの解決策を見ましたが、あまり適用されていないようです.このお兄さんがまとめたのを見るまで、自分の配置の問題かもしれません.
通信リンクに障害がある場合は、DBにアクセスできないことを示します.これには、次の1つ以上の理由があります.
  • JDBC URLのIPアドレスまたはホスト名が間違っています.ローカルDNSサーバでは、JDBC URLのホスト名を認識できません.JDBC URLのポート番号が失われたり、エラーが発生したりします.データベース・サーバが停止しています.データベースサーバはTCP/IP接続を受け入れません.データベース・サーバの接続が切れました.
  • JavaとDBの間には、ファイアウォールやエージェントなどの接続がブロックされています.

  • この問題を解決するには、次のアドバイスに従います.
    1.pingを使用して検証し、テストします.DNSをリフレッシュするか、JDBC URLのIPアドレスを使用します.MySQL DBによるmy.cnfで検証します.データベースを起動します.2.-skip-networkingオプションがない場合にmysqldを起動するかどうかを確認します.データベースを再起動し、それに応じてコードを変更して、最終的に接続を閉じます.3.ポートの転送を許可するために、ファイアウォールおよび/またはファイアウォール/エージェントの構成を無効にします.最后に自分がデータベースのipを接続するのが间违っていることを発见します...つらいですねモルヒネ!!!お兄さんのまとめに感謝..お兄さんのまとめに感謝..リンク回転