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

3 篇文章 0 订阅
2 篇文章 0 订阅

文章摘要:

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)

 

一、搭建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数据同步所遇到的问题,感谢大家指正补充

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值