日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

Week08_day07(DataX从mysql上读取数据传输到HDFS上)

發(fā)布時(shí)間:2025/3/8 数据库 54 如意码农
生活随笔 收集整理的這篇文章主要介紹了 Week08_day07(DataX从mysql上读取数据传输到HDFS上) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)介
DataX 是阿里巴巴集團(tuán)內(nèi)被廣泛使用的離線數(shù)據(jù)同步工具/平臺(tái),實(shí)現(xiàn)包括 MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS 等各種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。DataX采用了框架 + 插件 的模式,目前已開源,代碼托管在github。

DataX安裝部署及小試
1.下載壓縮包:
下載頁(yè)面地址:https://github.com/alibaba/DataX 在頁(yè)面中【Quick Start】--->【Download DataX下載地址】進(jìn)行下載。下載后的包名:datax.tar.gz。解壓后{datax}目錄下有{bin conf job lib log log_perf plugin script tmp}幾個(gè)目錄。

2.安裝
將下載后的壓縮包直接解壓后可用,前提是對(duì)應(yīng)的java及python環(huán)境滿足要求。
  System Requirements:

Linux
JDK(1.6以上,推薦1.6)
Python(推薦Python2.6.X)一定要為python2,因?yàn)楹竺鎴?zhí)行datax.py的時(shí)候,里面的python的print會(huì)執(zhí)行不了,導(dǎo)致運(yùn)行不成功,會(huì)提示你print語(yǔ)法要加括號(hào),python2中加不加都行 python3中必須要加,否則報(bào)語(yǔ)法錯(cuò)
Apache Maven 3.x (Compile DataX)

測(cè)試:

json的讀寫兩端可以去github上進(jìn)行截取自己需要的代碼。

https://github.com/alibaba/DataX

雖然在使用之前花費(fèi)的不少的時(shí)間去研究json的寫法,但是傳輸速度真的要比sqoop的傳輸速度要快很多。

1、編寫json文件,去這個(gè)github上截取自己鎖需要的read和write,我這里需要的是mysqlreader 和 hdfswriter,拼起來是下面的代碼(需要修改自己數(shù)據(jù)庫(kù),對(duì)應(yīng)的表名,ip地址,對(duì)應(yīng)的字段及其類型,以及hdfs上的字段名,分隔符)在對(duì)應(yīng)的md下面有各個(gè)參數(shù)介紹,根據(jù)自己需要進(jìn)行修改添加。(注意,這里要現(xiàn)在hive中進(jìn)行建表,對(duì)應(yīng)字段和類型,不然會(huì)出現(xiàn)我下面的報(bào)錯(cuò))

{
"job": {
"setting": {
"speed": {
"channel": 3
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "123456",
"column": [
"id",
"name",
"age",
"gender",
"clazz"
],
"splitPk": "clazz",
"connection": [
{
"table": [
"student_zeng"
],
"jdbcUrl": [
"jdbc:mysql://192.168.230.20:3306/test"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://192.168.230.20:9000",
"fileType": "text",
"path": "/user/hive/warehouse/test.db/dataX_hdfs",
"fileName": "dataX_hdfs",
"column": [
{
"name": "id",
"type": "INT"
},
{
"name": "name",
"type": "VARCHAR"
},
{
"name": "age",
"type": "INT"
},
{
"name": "gender",
"type": "VARCHAR"
},
{
"name": "clazz",
"type": "VARCHAR"
}
],
"writeMode": "append",
"fieldDelimiter": "," }
}
}
]
}
}

2、去安裝dataX的bin目錄下執(zhí)行命令:

python datax.py /usr/local/soft/a_data_shujia006/test/flumedata/mysql_hdfs.json

注意:

python datax.py 加上你的json文件的絕對(duì)路徑

3、因?yàn)槲衣┝嗽趆dfs上建表,所以,我報(bào)了如下的錯(cuò)誤:

4、所以我又在hive中建表,建表語(yǔ)句如下:(注意對(duì)應(yīng)類型)

CREATE EXTERNAL TABLE IF NOT EXISTS dataX_hdfs(
id BIGINT ,
name STRING ,
age INT ,
gender STRING ,
clazz STRING
)
comment '學(xué)生表'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE

5、再執(zhí)行一遍,如下圖:(看到這樣的結(jié)果就說明執(zhí)行成功)

6、查看HDFS網(wǎng)頁(yè)

7、查看內(nèi)容

8、結(jié)果發(fā)現(xiàn),雖然將數(shù)據(jù)上傳了,但是這個(gè)分區(qū)和結(jié)果不是我們想要的,可能是因?yàn)閖son的參數(shù)沒有設(shè)置好。

總結(jié)

以上是生活随笔為你收集整理的Week08_day07(DataX从mysql上读取数据传输到HDFS上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。