Hadoop sqoop

2023-09-18 08:45:56

0目录

1.安装sqoop

2.补充sqoop流程

1.安装sqoop

解压、改名

[root@kb129 install]# tar -xvf ./sqoop-1.4.7.tar.gz -C /opt/soft/

[root@kb129 soft]# mv sqoop-1.4.7/ sqoop147

拷贝配置文件

[root@kb129 conf]# pwd

/opt/soft/sqoop147/conf

[root@kb129 conf]# cp sqoop-env-template.sh sqoop-env.sh

编辑配置文件

export HADOOP_COMMON_HOME=/opt/soft/hadoop313

export HADOOP_MAPRED_HOME=/opt/soft/hadoop313

export HBASE_HOME=/opt/soft/hbase235

export HIVE_HOME=/opt/soft/hive312

export HIVE_CONF_DIR=/opt/soft/hive312/conf

export ZOOCFGDIR=/opt/soft/zk345/conf

解压

[root@kb129 install]# tar -xvf ./sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ./

拷贝jar包

[root@kb129 sqoop-1.4.7.bin__hadoop-2.6.0]# cp ./sqoop-1.4.7.jar /opt/soft/sqoop147/

[root@kb129 lib]# pwd

/opt/soft/sqoop147/lib

[root@kb129 lib]# cp /opt/soft/hive312/lib/hive-common-3.1.2.jar ./

[root@kb129 lib]# cp /opt/install/sqoop-1.4.7.bin__hadoop-2.6.0/lib/avro-1.8.1.jar ./

[root@kb129 lib]# cp /opt/soft/hive312/lib/mysql-connector-java-8.0.29.jar ./

配置环境变量并source

#SQOOP

export SQOOP_HOME=/opt/soft/sqoop147

export PATH=$SQOOP_HOME/bin:$PATH

验证安装

[root@kb129 lib]# sqoop version

查看sqoop一般操作命令

[root@kb129 lib]# sqoop help

连接mysql命令(\代表换行输入)

[root@kb129 lib]# sqoop list-databases \

 --connect jdbc:mysql://kb129:3306/ \

 --username root \

 --password 123456

查看sql50数据库内的表

[root@kb129 lib]# sqoop list-tables --connect jdbc:mysql://kb129:3306/sql50 --username root --password 123456

在hive默认库中创建表(来源mysql库中的help_keyword表,仅复制表结构)

[root@kb129 lib]# sqoop create-hive-table \

--connect jdbc:mysql://kb129:3306/mysql \

--username root --password 123456 \

--table help_keyword \

--hive-table hk

导入mysql库中的help_keyword的数据到HDFS默认路径上/user/root

sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --table help_keyword -m 1

导入sql50库中的student表的数据到HDFS默认路径上

sqoop import --connect jdbc:mysql://kb129:3306/sql50 --username root --password 123456 --table student -m 1

导入: 指定分隔符和导入路径

sqoop import --connect jdbc:mysql://kb129:3306/sql50 --username root --password 123456 --table student --target-dir /kb23/student --fields-terminated-by '\t' -m 1

导入数据:带where条件

sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --where "name='STRING'" --table help_keyword --target-dir /kb23/hk1 -m 1

导入:指定自定义查询SQL

sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --target-dir /kb23/hk2 --query 'select help_keyword_id,name from help_keyword where $CONDITIONS and name="STRING"' --split-by help_keyword_id --fields-terminated-by ':' -m 4

在以上需要按照自定义SQL语句导出数据到HDFS的情况下:

1、引号问题,要么外层使用单引号,内层使用双引号,$CONDITIONS的$符号不用转义, 要么外层使用双引号,那么内层使用单引号,然后$CONDITIONS的$符号需要转义

2、自定义的SQL语句中必须带有WHERE \$CONDITIONS

2、把MySQL数据库中的表数据导入到Hive中

Sqoop 导入关系型数据到 hive 的过程是先导入到 hdfs,然后再 load 进入 hive

普通导入:数据存储在默认的default hive库中,表名就是对应的mysql的表名

sqoop import --connect jdbc:mysql://kb129:3306/mysql --username root --password 123456 --table help_keyword --hive-import -m 1

导入过程

第一步:导入mysql.help_keyword的数据到hdfs的默认路径

第二步:自动仿造mysql.help_keyword去创建一张hive表, 创建在默认的default库中

第三步:把临时目录中的数据导入到hive表中

指定行分隔符和列分隔符,指定hive-import,指定覆盖导入,指定自动创建hive表,指定表名,指定删除中间结果数据目录

sqoop import  \

--connect jdbc:mysql://192.168.3.129:3306/mysql  \

--username root  \

--password 123456  \

--table help_keyword  \

--fields-terminated-by "\t"  \

--lines-terminated-by "\n"  \

--hive-import  \

--hive-overwrite  \

--create-hive-table  \

--delete-target-dir \

--hive-database  default \

--hive-table new_help_keyword

增量导入(追加)

执行增量导入之前,先清空hive数据库中的my_help_keyword表中的数据

从原表501行数据开始到最后,追加到目标表中

sqoop import  \

--connect jdbc:mysql://kb129:3306/mysql  \

--username root  \

--password 123456  \

--table help_keyword  \

--hive-import  \

--incremental  append  \

--hive-database kb23db \

--check-column  help_keyword_id \

--last-value 500  \

-m 1

更多参考

Sqoop import https://www.cnblogs.com/qingyunzong/p/8807252.html

Sqoop export 小白篇(十二):sqoop export指令实操_belialxing的博客-CSDN博客

2.补充sqoop流程

更多推荐

macOS Big Sur:探索新设计,聚焦新体验

自苹果公司推出macOSBigSur以来,这一新版操作系统以其突破性的设计刷新了我们对Mac的认知。本文将详细介绍macOSBigSur的各项新功能及其为用户带来的卓越体验。安装:macOSBigSur(macos11)v11.7.10正式版一、全新设计:导览更轻松,控制更随心macOSBigSur对用户界面进行了全面

ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段

ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段有一段Json字符串:{"code":200,"message":"success","data":{"total":"1","list":[{"question_no":"21520

键盘失灵按什么键恢复?详细方法分享!

“我的电脑键盘莫名其妙失灵了,试了好多方法都无法恢复。请问遇到键盘失灵的情况,应该按什么键才能恢复呢?”键盘是计算机的重要输入设备之一,但有时候它可能会出现失灵的情况,让用户感到困惑和不知所措。但其实,解决该问题并不是很困难。键盘失灵按什么键恢复呢?别着急!继续往下看吧!小编给大家总结了详细的解决方法!键盘失灵的常见原

湖南湘潭家具3D轮廓扫描测量家居三维数字化外观逆向设计-CASAIM中科广电

随着科技的不断进步,CASAIM三维扫描技术在各个行业中得到了广泛应用,家具行业也不例外。传统的家具设计和展示方式已经无法满足现代消费者的个性化、多元化需求,而三维扫描技术的出现为家具行业带来了新的机遇和可能性。家具表面有雕刻图案,纹理特征较多,幅面大,传统人工建模方式效率低、耗时长,且尺寸易出现误差。特别是针对一些比

argparse的用法

目录一、使用argparse二、参数详解参考一、使用argparseargparse模块是Python内置的用于命令项选项与参数解析的模块,argparse模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。argparse定义包括四个步骤:导入argparse包——importargparse创建

《扩散模型 从原理到实战》Hugging Face (二)

第二章HuggingFace简介本章无有效内容第三章从零开始搭建扩散模型有时候,只考虑事情最简单的情况反而更有助于理解其工作原理。本章尝试从零开始搭建廓庵模型,我们将从一个简单的扩散模型讲起,了解其不同部分的工作原理,并对比它们与更复杂的结构之间的不同。首先,本章涵盖的知识点:1、退化过程2、什么是UNET模型以及如何

zoneinfo

在Linux系统中,zoneinfo是一个包含了世界各地时区信息的目录,通常位于/usr/share/zoneinfo。这个目录下的子目录和文件名对应了各个时区的名称。例如,/usr/share/zoneinfo/America/Los_Angeles文件就包含了美国洛杉矶的时区信息。你可以通过以下步骤来使用zonei

阿里云产品试用系列-云桌面电脑

无影云电脑(WUYINGWorkspace),是一种易用、安全、高效的云上桌面服务。它支持快速便捷的桌面环境创建、部署、统一管控与运维。无需前期传统硬件投资,帮您快速构建安全、高性能、低成本的企业桌面办公体系。可广泛应用于具有高数据安全管控、高性能计算等要求的安全办公、金融、设计、影视、教育等领域。如上所示,在阿里云官

使用 vue + vant 开发移动端网页

使用vue+vant开发移动端移动端开发的时候我们通常需要进行适配,比如设计图宽度是750px我们为了适应不同的设备,需要将我们设计图上的px转为视口单位vw这里我们采用postcss-px-to-viewport安装:npminstallpostcss-px-to-viewportvant-S新建postcss.co

Rasa:使用大语言模型进行意图分类

Rasa:使用大语言模型进行意图分类在Rasa的最新版本(3.x)中,引入了一种新的意图分类方法,即使用大型语言模型(LLM)和一种称为检索增强生成(RAG)的方法进行意图分类。LLM意图分类器是一种全新的意图分类器,利用大型语言模型(LLM)来对意图进行分类。LLM意图分类器依赖于检索增强生成(RAG)方法,结合了基

爬虫入门基础:深入解析HTTP协议的工作过程

在网络爬虫的学习中,了解HTTP协议的工作过程是非常重要的。HTTP(HypertextTransferProtocol)是一种用于在Web浏览器和服务器之间传输数据的协议,它负责客户端请求和服务器响应之间的通信。本文将详细介绍HTTP协议的工作过程,帮助你深入理解网络爬取的基础知识。让我们一起探索吧!一、HTTP协议

热文推荐