热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Sqoop导入Hive中mergekey实践

Sqoop导入Hive中m

  1. 创建hive表merge_test

    beeline -u jdbc:hive2://192.168.1.101:10000 -n hive -e "
    create table if not exists default.merge_test (
    id int,
    name String,
    age int,
    last_modify_time String
    )ROW FORMAT delimited fields terminated by '\t'
    STORED AS TEXTFILE;

    "

  2. sqoop导入数据
    merge-key参数是进行了一次完整的mapreduce操作

    sqoop import \
    --connect "jdbc:mysql://192.168.1.101:3306/testdb" \
    --username "root" \
    --password "123456" \
    --table "test" \
    --columns "id,name,age,last_modify_time" \
    --target-dir "/user/hive/warehouse/merge_test" \
    --fields-terminated-by '\t' \
    --null-string '\\N' \
    --null-non-string '\\N' \
    --hive-drop-import-delims \
    --incremental lastmodified \
    --merge-key id \
    --check-column last_modify_time \
    --last-value "2019-03-19" \
    --m 1

运行shell脚本

#!/bin/bash

# ********************************************************************************
# 程序名称: merge_test
# 功能描述: 测试数据导出merge
# 输入参数:
#
# 输入资源:
# 输出资源:
#
# 中间资源:
# 创建人员: Charles
# 创建日期: 2019-03-20
# 版本说明: v1.0
# 修改人员:
# 修改日期:
# 修改原因:
# 版本说明:
# ********************************************************************************

#创建hive表
SQL="
create table if not exists default.merge_test (
id int,
name String,
age int,
last_modify_time String
)ROW FORMAT delimited fields terminated by '\t'
STORED AS TEXTFILE;
"

HIVE2_SERVER="192.168.1.101:10000";
HADOOP_NAME="hive";
beeline -u jdbc:hive2://${HIVE2_SERVER} -n ${HADOOP_NAME} -e "${SQL}"

#数据库配置信息
mysql_ip="192.168.1.101:3306"
mysql_database="hft"
mysql_cOnnect="jdbc:mysql://${mysql_ip}/${mysql_database}"
mysql_username="root"
mysql_pwd="hd123456"

#sqoop导入数据
echo "sqoop import start..."

table_name="test"
target_dir="/user/hive/warehouse/merge_test"
target_columns="id,name,age,last_modify_time"

sqoop import \
--connect "$mysql_connect" \
--username "$mysql_username" \
--password "$mysql_pwd" \
--table "$table_name" \
--columns "$target_columns" \
--target-dir "$target_dir" \
--fields-terminated-by '\t' \
--null-string '\\N' \
--null-non-string '\\N' \
--hive-drop-import-delims \
--incremental lastmodified \
--merge-key id \
--check-column last_modify_time \
--last-value "2019-03-19" \
--m 1
echo "sqoop end..."




推荐阅读
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
author-avatar
秦schueler
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有