datax数据同步问题(mysql2hive)汇总

文章摘要:

1、代码

2、搭建spark

3、使用datax

4、常见问题

5、指正补充

前言:

git代码,有需要的可以参考

![GitHub contributors](https://img.shields.io/github/contributors/WeiYe-Jing/datax-web)
![GitHub issues](https://img.shields.io/github/issues/WeiYe-Jing/datax-web)
![GitHub](https://img.shields.io/github/license/WeiYe-Jing/datax-web)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/WeiYe-Jing/datax-web)
![](https://img.shields.io/badge/qq%E7%BE%A4-776939467-green.svg)

datax数据同步问题(mysql2hive)汇总

一、搭建spark并启动

启动sts:/data/spark/spark/sbin/start-thriftserver.sh –master yarn –queue default –name spark241

搭建方式:Spark环境搭建安装及配置详细步骤(保姆教程)_西皮树下的博客-CSDN博客_spark环境搭建及配置

二、创建hive表

— 创建库
create database myhive;
— 使用库
use myhive;
— 查看当前全部库
SHOW DATABASES;
— 创建表 (text格式) (参考:https://www.csdn.net/tags/MtTaEg5sOTU1MS1ibG9n.html)

drop table IF EXISTS myhive.comm_attachment ;
CREATE TABLE IF NOT EXISTS myhive.comm_attachment( id int, version String)
COMMENT ‘hive测试表 details’
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
lines terminated by “\n”
STORED AS TEXTFILE;

(orc格式)
CREATE TABLE IF NOT EXISTS comm_attachment2 (
id int primary key DISABLE NOVALIDATE RELY,
version string
)
partitioned by(ds string)
stored as orc;

创建表解释
1.CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常

2.EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION)

3.LIKE 允许用户复制现有的表结构,但是不复制数据

4.COMMENT 可以为表与字段增加描述

5.PARTITIONED BY 指定分区

6.ROW FORMAT
DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]
MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
| SERDE serde_name [WITH SERDEPROPERTIES
(property_name=property_value, property_name=property_value, …)]
用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe;

7.STORED AS
SEQUENCEFILE //序列化文件
| TEXTFILE //普通的文本文件格式
| RCFILE //行列存储相结合的文件
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname //自定义文件格式
如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCE

8.LOCATION 指定表在HDFS的存储路径(默认地址/user/hive/warehouse)

三、datax-创建任务说明

1、创建/查看执行器(支持自动注册)
2、创建数据源(有示例)mysql\hive
3、创建任务模板(任务管理-DataX任务模板)
4、构建json脚本(任务管理-任务构建)(自行填写json,可忽略此步骤)
5、任务批量构建(任务管理-任务批量构建)可参考:https://wenku.baidu.com/view/7bffee414bd7c1c708a1284ac850ad02de800793.html

注意:datax-executor添加同步插件时
1、pom.xml 加上对应插件(log包剔除,具体参考hdfs)
2、{projectHome}\datax-executor\src\main\resources\plugin\writer 添加对于插件
3、TEXT FILE仅支持GZIP、BZIP2 两种压缩, 不支持配置的 compress 模式 : [NONE]

四、常见问题

hadoop安装目录:/usr/hdp/2.4.3.0-227/hadoop
/data/spark/spark-2.4.3-bin-hadoop2.7-meta23_20220428/sbin/start-all.sh

hdfs指令:
bin/hdfs dfsadmin -report 查看hdfs的各节点状态信息

bin/hdfs haadmin -getServiceState nn1 获取一个namenode节点的状态

sbin/hadoop-daemon.sh start namenode 单独启动一个namenode进程(datax链接active,共两个状态:active、standby)

Permission denied: user=root, access=WRITE解决指令:
— 查看目录权限用户:hdfs dfs -ls /spark/warehouse/
— 授权:hadoop fs -chmod -R 777 /spark/warehouse/

以上是我搭建datax数据同步所遇到的问题,感谢大家指正补充

Original: https://blog.csdn.net/qq_32272499/article/details/125257600
Author: 豪尔
Title: datax数据同步问题(mysql2hive)汇总

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817869/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球