学习大数据DAY43 Sqoop 安装,配置环境和使用

news/2024/9/18 6:29:27/ 标签: 学习, 大数据, sqoop, hive, hadoop

目录

sqoop%20%E5%AE%89%E8%A3%85-toc" style="margin-left:40px;">sqoop 安装

配置 mysql

sqoop%20%E5%AE%89%E8%A3%85-toc" style="margin-left:80px;">sqoop 安装

sqoop%20%E6%8C%87%E4%BB%A4%E9%9B%86-toc" style="margin-left:40px;">sqoop 指令集

sqoop%20%E4%BD%BF%E7%94%A8-toc" style="margin-left:40px;">sqoop 使用

sqoop%20%E5%88%9B%E5%BB%BA%20hive%20%E8%A1%A8-toc" style="margin-left:80px;">sqoop 创建 hive

sqoop%20%E5%85%A8%E9%87%8F%E5%AF%BC%E5%85%A5%E8%A1%A8-toc" style="margin-left:80px;">sqoop 全量导入表

sqoop%20%E5%A2%9E%E9%87%8F%E5%AF%BC%E5%85%A5%E8%A1%A8-toc" style="margin-left:80px;">sqoop 增量导入表

sqoop%20%E5%85%A8%E9%87%8F%E5%AF%BC%E5%87%BA%E8%A1%A8-toc" style="margin-left:80px;">sqoop 全量导出表

sqoop%20%E5%88%86%E5%8C%BA%E8%A1%A8%E5%AF%BC%E5%85%A5%E8%A1%A8-toc" style="margin-left:80px;">sqoop 分区表导入表

sqoop%20%E5%88%86%E5%8C%BA%E8%A1%A8%E5%AF%BC%E5%87%BA%E8%A1%A8-toc" style="margin-left:80px;">sqoop 分区表导出表

上机练习


sqoop%20%E5%AE%89%E8%A3%85">sqoop 安装

配置 mysql

create database test
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
-- 创建数据库
show databases;
-- 创建账号
Create user 'test'@'%' identified by 'test';
Grant all privileges on test.*
to test@'%'
identified by 'test' with grant option;
-- 刷新权限配置
flush privileges;

sqoop 安装

# 1. 拷贝安装包以及 mysql jar /root 目录 并解压
tar
-zvxf
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
-C
/opt/module/
# 2. 配置环境变量
vim /etc/profile.d/my_env.sh
# 加入 sqoop 路径
#SQOOP_HOME
export
SQOOP_HOME=/opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha
export PATH=$PATH:$SQOOP_HOME/bin
# 刷新环境变量
source /etc/profile
# 3. 配置 sqoop
cd $SQOOP_HOME/conf
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
# 配置信息
export HADOOP_COMMON_HOME=/opt/module/hadoop-3.1.3
export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3
export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
#export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
# 拷贝 jdbc 驱动到 sqoop lib 目录下
cp
mysql-connector-java-5.1.27-bin.jar
/opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib/
# 连接测试
sqoop list-databases --connect jdbc:mysql://localhost:3306/
--username root --password root

sqoop%20%E6%8C%87%E4%BB%A4%E9%9B%86">sqoop 指令集

sqoop%20%E4%BD%BF%E7%94%A8">sqoop 使用

sqoop%20%E5%88%9B%E5%BB%BA%20hive%20%E8%A1%A8">sqoop 创建 hive

$ bin/sqoop create-hive-table \
--connect jdbc:mysql://hadoop102:3306/company \
--username test \
--password test \
--table test \
--hive-table test

sqoop%20%E5%85%A8%E9%87%8F%E5%AF%BC%E5%85%A5%E8%A1%A8">sqoop 全量导入表

#!/bin/bash
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--table student2 \
--hive-import \
--delete-target-dir \
--hive-database db_hive \
--fields-terminated-by "\t" \
--target-dir "/user/hive/warehouse/db_hive.db/student2_sqoop" \
--hive-table student2_sqoop \
-m 1

sqoop%20%E5%A2%9E%E9%87%8F%E5%AF%BC%E5%85%A5%E8%A1%A8">sqoop 增量导入表

bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/test \
--username root \
--password root \
--table emp \
--check-column deptno \
--incremental lastmodified \
--last-value "10" \
--m 1 \
--append

sqoop%20%E5%85%A8%E9%87%8F%E5%AF%BC%E5%87%BA%E8%A1%A8">sqoop 全量导出表

#!/bin/bash
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
-m 1 \
--table student2 \
--input-fields-terminated-by ',' \

--export-dir '/user/hive/warehouse/db_hive.db/student2'

sqoop%20%E5%88%86%E5%8C%BA%E8%A1%A8%E5%AF%BC%E5%85%A5%E8%A1%A8">sqoop 分区表导入表

#!/bin/bash
sqoop_import(){
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--query
"select * from maket_p where cast(year(ord_date) as
decimal)='$part' and \$CONDITIONS" \
--hive-import \
--create-hive-table \
--hive-overwrite \
--fields-terminated-by "\t" \
--hive-database db_hive \
--hive-table market_sqoop \
--target-dir
"/user/hive/warehouse/db_hive.db/market_sqoop/type_p=$part/" \
--hive-partition-key type_p \
--hive-partition-value "$part" \
-m 1
}
for part in `mysql -uroot -proot --database=test -N -e \
"select distinct cast(year(ord_date) as decimal) from maket_p
order by cast(year(ord_date) as decimal) "`
do echo "$part 年数据 导入 ..."
sqoop_import
done
beeline -u jdbc:hive2://hadoop100:10000/db_hive \
-n root -p root --outputformat=csv2 --showHeader=false \
-e 'msck repair table market_sqoop;'

sqoop%20%E5%88%86%E5%8C%BA%E8%A1%A8%E5%AF%BC%E5%87%BA%E8%A1%A8">sqoop 分区表导出表

#!/bin/bash
sqoop_maket(){
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
-m 1 \
--table maket_p \
--input-fields-terminated-by '\t' \
--export-dir "/user/hive/warehouse/db_hive.db/maket_p/$val/"
}
part=`beeline -u jdbc:hive2://hadoop100:10000/db_hive \
-n root -p root --outputformat=csv2 --showHeader=false \
-e 'show partitions maket_p;'`
for val in $part
do
echo $val
sqoop_maket
done

上机练习

1 全表数据导出表自选
选择 hive 数据库的一张表导出到 mysql 的一张表里:
#!/bin/bash
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \--table student2 \
--export-dir /user/hive/warehouse/db_hive.db/student2 \
--fields-terminated-by "," \
-m 1
结果展示:
2 全表数据导入
#!/bin/bash
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--table student2 \
--delete-target-dir \
--create-hive-table \
--hive-import \
--hive-database db_hive \
--hive-overwrite \
--hive-table student2_sqoop \
--target-dir /user/hive/warehouse/db_hive.db/student2_sqoop \
--input-fields-terminated-by ',' \
-m 1

3 分区表数据导出
#!/bin/bash
sqoop_comm(){
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--table log_ \
--export-dir /user/hive/warehouse/db_hive.db/log/$part \
--fields-terminated-by '\t' \
-m 1
}
for part in \
`beeline -u "jdbc:hive2://hadoop100:10000/db_hive" \
--showHeader=False --outputformat=csv2 \
-n root -p 123456 -e 'show partitions log'`
do
echo "-----------$part-----------"
sqoop_comm
done

4 分区表数据导入
#!/bin/bash
sqoop_comm(){
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--query "select * from log_ where date_format(cast(date_ as
date),'%Y%m%d')=$part and \$CONDITIONS" \
--delete-target-dir \
--create-hive-table \
--hive-import \
--hive-overwrite \
--hive-table sqoop_log \
--hive-database db_hive \
--hive-partition-key load_date \
--hive-partition-value $part \
--target-dir
/user/hive/warehouse/db_hive.db/sqoop_log/load_date=$part \
--input-fields-terminated-by '\t' \
-m 1
}
for part in \
`mysql -utest -ptest --database=test -Ne \"select distinct DATE_FORMAT(cast(date_ as date),'%Y%m%d')from
log_"`
do
echo "---------$part---------"
sqoop_comm
done
beeline -u "jdbc:hive2://hadoop100:10000/db_hive" \
--showHeader=False --outputformat=csv2 \
-n root -p 123456 -e 'msck repair table sqoop_log


http://www.ppmy.cn/news/1519160.html

相关文章

农产品智慧物流系统论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#x…

python 实现一个简单的网页爬虫程序

最近在学习python,以下为网页爬虫代码,供参考 1、爬取指定网页的标题和所有的连接 2、并将这些信息保存到一个文件中。 前置:因使用到网页相关的功能,故需导入requests、BeautifulSoup 库来完成 #导入网页相关的库 import requ…

干货分享|分享一款高效的软件卸载神器 Geek Uninstaller

问题:卸载软件时,时常会留下残留文件和注册表。当遇到流氓软件,还常常卸载失败。 1.软件介绍 特点:高效快速,小巧便携。100% 免费 2.下载方法 官方下载网站:Geek Uninstaller - the best FREE uninstaller …

中锂天源锂电池:为卡车驻车空调提供高效、安全、持久的能源解决方案

随着我国运输行业的飞速发展,卡车司机对驾驶环境和行车舒适度的要求越来越高。在炎炎夏日或寒冷冬季,驻车空调已成为卡车司机的必需品。然而,传统驻车空调供电方式存在诸多问题,如电力不足、续航时间短等。为解决这一痛点&#xf…

Unet改进17:添加ShuffleAttention||减少冗余计算和同时存储访问

本文内容:在不同位置添加ShuffleAttention注意力机制 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 注意机制使神经网络能够准确地关注输入的所有相关元素,已成为提高深度神经网络性能的重要组成部分。在计算机视觉研究中广泛应用的注意机制主要有空间注…

ElasticSearch7.12.1详细安装

部署ElasticSearch docker安装 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络 创建网络 docker network create es-net 查看网络列表 docker network ls 获取镜像包 docker pull elasticsearch:7.12.1 运行 docker run -d \ -…

【扩散模型(七)】IP-Adapter 与 IP-Adapter Plus 的具体区别是什么?

系列文章目录 【扩散模型(二)】IP-Adapter 从条件分支的视角,快速理解相关的可控生成研究【扩散模型(三)】IP-Adapter 源码详解1-训练输入 介绍了训练代码中的 image prompt 的输入部分,即 img projection…

EXO:模型最终验证的地方;infer_tensor;step;MLXDynamicShardInferenceEngine

目录 EXO:模型最终验证的地方 EXO:infer_tensor EXO:step MXNet的 mx.array 类型是什么 NDArray优化了什么 1. 异步计算和内存优化 2. 高效的数学和线性代数运算 3. 稀疏数据支持 4. 自动化求导 举例说明 EXO:模型最终验证的地方 EXO:infer_tensor 这段代码定…

MariaDB 和 MySQL 版本关联

MariaDB 和 MySQL 是两个常用的关系型数据库管理系统(RDBMS),它们在很多方面非常相似,因为 MariaDB 是 MySQL 的一个分支。MariaDB 和 MySQL 之间的版本关联可以通过以下几个方面来理解: 1. 历史背景 MySQL: MySQL 是…

数学建模强化宝典(1)级比检验

前言 级比检验是灰色预测中一个重要的步骤,主要用于判断原始数据是否满足准指数规律,从而确定数据是否适合进行灰色预测分析。 一、级比检验的定义 级比检验是通过计算原始数据与其前一期数据的比值(即级比),并对级比进…

智普大模型API调用

接口 用python调用智普免费API接口的例子,写成函数, 类似于 def get_answer(prompt):url = http://34.132.32.68:8081/v1/chat/completionsheaders = {Content-Type: application/json,}data = {"model": "Qwen2-72B-int4","messages": [{&q…

强化学习——马尔可夫决策过程的理解

目录 一、马尔可夫决策过程1.策略2.状态价值函数3.动作价值函数4.贝尔曼期望方程 参考文献 一、马尔可夫决策过程 马尔可夫决策过程(MDP)是马尔可夫奖励过程(MRP)的扩展,它引入了“动作”这一外界的影响因素&#xff0…

vscode怎么改成黑色主题?

在Visual Studio Code(简称VS Code)中,将界面调整为黑色主题是一个简单的过程,可以通过几个步骤轻松完成。以下是详细的操作指南,涵盖了从基本设置到高级自定义化的不同方法。 通过用户设置更改主题 打开设置&#xf…

C# 去掉字符串最后一个字符的5种方法

C# 去掉字符串最后一个字符的 5 种方法 (1)Substring string original "Hello!"; string result original.Substring(0, original.Length - 1); Console.WriteLine(result); // 输出: Hello (2)Remove string o…

prometheus安装篇

一、安装 1、下载二进制安装包 https://github.com/prometheus/prometheus/releases/download/v2.25.0/prometheus-2.25.0.linux-amd64.tar.gz 2、解压 rootxxx:~# cd /data rootxxx:~# tar -xf prometheus-2.25.0.linux-amd64.tar.gz rootxxx:~# mv prometheus-2.25.0.li…

比较一下React与Vue

React和Vue都是现代前端开发中广泛使用的JavaScript库,它们各自具有独特的特点和优势。以下是对React和Vue的比较: 1. 开发模式和范式 React: 本质是一个前端组件框架,由后端组件演化而来。 鼓励将UI分解为小的、独立的、可复用…

零基础学习人工智能—Python—Pytorch学习(九)

前言 本文主要介绍卷积神经网络的使用的下半部分。 另外,上篇文章增加了一点代码注释,主要是解释(w-f2p)/s1这个公式的使用。 所以,要是这篇文章的代码看不太懂,可以翻一下上篇文章。 代码实现 之前,我们已经学习了概念…

神经网络搭建实战与Sequential的使用

一、需要处理的图像 二、对上述图片用代码表示: import torch from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linearclass SUN(nn.Module):def __init__(self):super(SUN, self).__init__()self.conv1 Conv2d(3, 32, 5, padding2)self…

vivado 的 ila 接AXI 总线一直报错

反复测试都是The debug hub core was not detected。 接线正确的前提下总是报错,我的时钟接的ps端的时钟线FCLK_CLK0.对jtag的频率多次调整也没效果,后来参考他人意见,重启了ps端,解决问题。 重启PS端就是将vitis软件至于DEBUG状…

关于测试工程师在性能测试工具jmeter的熟悉和精通

经过一周的jmeter接口编写,不不不,是一年1-2次的jmeterd 使用,每次都是新的发现,新的起点!! 去年10月学习过的东西,现在还是不记得当时怎么这么聪明,于是,每次都是0基础…