前期准备:

 开集群:zkServer.sh start(master\slave1\slave2都要开)

                start-all.sh

权限问题:把hdfs里边要传输的数据的文件的路径(/user/logs/weblogs/cleaned_data(我的))都搞成Hadoop权限,然后后边.json文件的路径(/opt/module/flume/job(我的))的权限也都改一下也改成Hadoop。(这个是针对我的文件来说的)。

数据存在的问题,确保数据应该在的地方,都在!

开始干!:(我的以age表为例)

在/opt/module/datax/job/下边touch age.json,再vim age.json。

json配置文件内容:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "hdfsreader",
                    "parameter": {
                        "column": [
                            {
                                "index": 0,
                                "type": "string"
                            },
                            {
                                "index": 1,
                                "type": "double"
                            },
                            {
                                "index": 2,
                                "type": "double"
                            },
                            {
                                "index": 3,
                                "type": "double"
                            }
                        ],
                        "defaultFS": "hdfs://slave1:9000",//你active所在位置。
                        "encoding": "UTF-8",
                        "fieldDelimiter": ",",
                        "fileType": "csv",//你文件的形式
                        "path": "/user/logs/weblogs/cleaned_data",//hdfs里边的数据位置
                        "skipHeader": true
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "batchSize": 1000,
                        "column": [
                            "age_group",
                            "avg_sleep_duration",
                            "avg_systolic_bp",
                            "avg_heart_rate"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://localhost:3306/sleep",//虚拟机里边的sleep数据库
                                "table": [
                                    "age"
                                ]
                            }
                        ],
                        "password": "1525",//你的密码
                        "preSql": [
                                            "TRUNCATE TABLE age"
                        ],
                        "username": "root",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "errorLimit": {
                "percentage": "0.01",
                "record": "0"
            },
            "speed": {
                "byte": "104857600",
                "channel": "3"
            }
        }
    }
}

(注:这个文件里边涉及到的//注释在那个json文件里边都得删除。)

查看配置文件里边是否有内容错误代码: python -m json.tool /opt/module/datax/job/age.json

运行配置文件代码:python /opt/module/datax/bin/datax.py /opt/module/datax/job/age.json

最后成功的界面:

更多推荐