Hadoop 是一個免費的、開源的 Java 軟件框架。它可以讓服務器集群管理、處理、儲存海量的數(shù)據(jù),而不必通過傳統(tǒng)的數(shù)據(jù)存儲方式進行。MySQL 是一種常用的關(guān)系型數(shù)據(jù)庫軟件。在 Hadoop 中,我們常常需要將數(shù)據(jù)從 MySQL 導入到 HDFS 中或者從 HDFS 中導出到 MySQL 中。下面我們將介紹如何通過 Hadoop 2.7 連接 MySQL。
首先,我們需要在 Hadoop 中添加 MYSQL 驅(qū)動:
$ wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.36.tar.gz $ tar zxvf mysql-connector-java-5.1.36.tar.gz $ sudo cp mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar /usr/local/hadoop/share/hadoop/common/
然后,在使用 Hadoop 時添加 MySQL 相關(guān)的參數(shù):
$ hadoop jar hadoop-examples.jar \ org.apache.hadoop.examples.WordCount \ -files /path/to/mysql-connector-java-5.1.36-bin.jar \ -libjars /path/to/mysql-connector-java-5.1.36-bin.jar \ -Dmapred.driver.class=com.mysql.jdbc.Driver \ -Dmapred.mapper.class=com.mysql.hadoop.mapreduce.input.MySQLInputMapper \ -Dmapred.mapoutput.key.class=com.mysql.jdbc.PreparedStatement \ -Dmapred.mapoutput.value.class=org.apache.hadoop.io.LongWritable \ -Dmapred.input.format.class=com.mysql.hadoop.mapreduce.input.MySQLInputFormat \ -Dmapred.output.format.class=org.apache.hadoop.mapreduce.lib.output.TextOutputFormat \ -Dmapred.jdbc.url=jdbc:mysql://localhost:3306/testdb \ -Dmapred.jdbc.username=user \ -Dmapred.jdbc.password=password \ -Dmapred.job.name=MySQLImport
其中:
- files 和 libjars 用于指定 MySQL 驅(qū)動的路徑;
- mapred.mapper.class 用于指定 MySQL 數(shù)據(jù)讀取的 Mapper;
- mapred.mapoutput.key.class 和 mapred.mapoutput.value.class 用于指定 Mapper 的輸出鍵和值的類型;
- mapred.input.format.class 和 mapred.output.format.class 用于指定輸入和輸出格式;
- mapred.jdbc.url、mapred.jdbc.username 和 mapred.jdbc.password 用于指定 MySQL 數(shù)據(jù)庫的連接信息;
- mapred.job.name 用于指定任務的名稱。
以上是關(guān)于 Hadoop 2.7 連接 MySQL 的介紹,希望對大家有所幫助。