第5章Sqoop安装与使用 Ver1.8-20221010

Imagemap
第5章Sqoop安装与使用
Ver1.8-20221010概述Sqoop 是 SQL to Hadoop 的缩写,是一款开源工具,主要用在 H ...官网参考http://sqoop.apache.orghttp://www.apache.org/dyn/closer.lua/sqo ...官网下载http://archive.apache.org/dist/sqoop/视频学习sqoop的安装与wmware快照sqoop的配置与连接测试sqoop的使用实例sqoop导mysql和hdfssqoop导 mysql和hive(一)sqoop导mysql和hive( 二)sqoop导mysql和hive(三)Sqoop安装安装包准备通过官网下载wget -c http://archive.apache.org/dist/s ...或者通过hdd网下载wget -c http://home.hddly.cn:90/soft/had ...解压sqoop包tar -xzvf ./sqoop-1.4.7.bin__hadoop-2.6. ...sqoop目录转移sudo mv ./sqoop-1.4.7.bin__hadoop-2.6.0  ...mysql-connector通过hdd网下载wget http://bigdata.hddly.cn/b46488/file ...或者,通过镜像下载wget -c https://mirrors.tuna.tsinghua.ed ...hive-jdbc通过maven网下载cd /usr/local/sqoop/lib
wget -c https:// ...Sqoop配置系统环境变量/etc/profilesudo vi /etc/profileexport SQOOP_HOME=/usr/local/sqoop
expor ...使profile配置生效 :
source /etc/profile配置sqoop-env.shcd /usr/local/sqoop/conf
cp ./sqoop-env- ...sudo mkdir /usr/local/accumulovi ./sqoop-env.shexport HADOOP_COMMON_HOME=${HADOOP_HOME} ...链接hadoop&hive配置ln -s $HADOOP_HOME/etc/hadoop/core-site. ...复制Hadoop包cd /usr/local/sqoop/lib  
  \cp /usr/loc ...sqoop测试显示版本[hadoop@master ~]$ sqoop version
Warning ...注:上面有几个警告,因为没有启用对应的组件,暂时忽略。查询数据库查databasessqoop list-databases --connect jdbc:mysq ...运行结果结果:
information_schema
test查tablessqoop list-tables \
 --connect jdbc:mysq ...sqoop使用测试前准备在业务数据库test库
中添加课堂练习test相关表CREATE TABLE test.`test` (
  `id` int(10 ...在业务数据库test库
中添加强化练习class相关表#test.`class`来源于网络信息采集同学们采集上来的class表,存于h ...在hive数据库中
添加测试库myname
(myname为本人姓名全拼)--查看hive中的所有数据库
SHOW DATABASES;
--创建myna ...hdfs导入导出课堂练习从mysql库导入test表
到hdfs的test目录sqoop import --connect "jdbc:mysql://hom ...导入参数说明--num-mappers 1”或者“-m 1”,即最后汇总为一个输出文件默认以短号分隔,可以更换为以\t分隔数据(需带上“--fields-termin ...运行结果1,启动运行视频:sqoop import2,sqoop import命令运行结果截图3,hdfs上/user/myname/test目录下文件内容其它参考crt视频结果hdfs上文件内容在hdfs上test目录下
添加测试数据在linux下使用hdfs dfs命令生成数据hdfs dfs -get /user/myname/test/part-m-0 ...hdfs dfs -put ./part-m-00001 /user/mynam ...观察hdfs上/user/myname/test/part-m-00001的内容运行结果hdfs dfs -get修改内容 vi ./part-m-00001hdfs dfs -puthdfs上part-m-00001内容从hdfs导出test
目录到mysql的
test_hdfs表sqoop export --connect "jdbc:mysql://hom ...运行结果sqoop export运行视频一sqoop export运行结果截图观察mysql上test_hdfs结果已查到新增记录从mysql上导入test表
至hive的
myname库的
test_hive ...前提要先在hive中创建myname库请参考sqoop import   --connect "jdbc:mysql://h ...预期结果在hive中检查 use myname;
show tables;能查到test-hive表在hdfs上检查http://master:9870 ->打开目录:/user/hive/war ...能查到test-hive目录运行结果sqoop import 运行结果视频观察hdfs上hive表结果历史视频参考crt运行结果视频crt运行结果截图hdfs上的文件生成结果在test_hive表中
添加测试数据show databases;
use myname;
show tables; ...运行结果insert into test_hive运行视频观察hdfs上新增test_hive_1目录从hive库导出test_hive
至mysql的test_hive表sqoop export --connect "jdbc:mysql://hom ...hive默认字段分隔符为 \001运行结果运行过程视频一mysql上test_hive查询结果历史视频参考运行过程视频mysql上test_hive查询结果在实验室中
使用的脚本sqoop list-tables \
--connect jdbc:mysql ...强化练习导入class表
至hdfssqoop import --connect "jdbc:mysql://hom ...运行结果crt上运行结果hdfs上文件内容导出class
至mysqlsqoop export    --connect "jdbc:mysql:// ...成功运行mysql上导入的数据运行结果mysql上导入的数据中文正常从mysql库导入
class表到
hive的myname库
的class_hi ...以下命令中'张三'需更换为本人的中文姓名,需与采集数据时使用的名字一致sqoop import   --connect "jdbc:mysql://h ...运行结果hdfs上的文件生成结果在hive上查询
和验证数据use myname;
show tables;
select count(1) ...crt上运行结果从hive库中导出
class_hive表到
mysql库的
class_hiv ...sqoop export --connect "jdbc:mysql://hom ...运行结果运行过程视频mysql上class_hive查询结果实训作业利用Sqoop实现Mysq与HDFS和HIVE导入导出训练要点强化学习sqoop import 命令语句的编写使用熟练掌握利用sqoop数据转换工具进行数据的导入或导出方法需求说明1,从mysql库导入test表到hdfs的/user/myname/test目 ...2,从hdfs导出/user/myanme/test 目录到mysql的 tes ...3,从mysql上导入test表 至hive的myname库的 test_hiv ...4,从hive库导出test_hive 至mysql的test_hive表作业要求1,截图转换过程中运行脚本及运行结果截图2,hdfs的目录或hive的库名需换成本的姓名全拼3,传回到mysql的 test_hdfs表和test_hive表的数据记录需含 ...参考其它参考hbase与mysql数据互传参考1hive与mysql数据互传参考1hive与mongodb数据互传方式二:第二种方式—BSON-based,即使用mongoexport将所需要的 ...参考SQOOP 的基本使用参考1hdfs导入导出语法参考sqoop export  \
    --connect jdbc:mysql ...导入classsqoop import --connect jdbc:mysql://home ...运行结果crt上运行有异常异常内容:
CommunicationsException: Communica ...原因:无法从外网访问内网hdfs的datanode节点hive导入导出导入语法参考sqoop import \
  --connect "jdbc:mysql:/ ...Sqoop导入数据到Hive是通过先将数据导入到HDFS上的临时目录,然后再将数 ...hive中创建测试库导入到Hive中的sqoop_test数据库需要预先创建,不指定则默认使用Hiv ... # 查看hive中的所有数据库
 hive>  SHOW DATABASES; ...hive与oracle数据互传连接串sqoop import --connect jdbc:oracle:thin: ...默认导入的数据默认的列分隔符是'\001',默认的行分隔符是'\n'指定Sqoop也指定了参数 --fields-terminated-by和 --li ...sqoop import --connect jdbc:oracle:thin: ...其它:略scp批量复制hadoop备注1,可下载包括haddop、spark、hbase、hive、sqoop等工具2,默认配置为:主机名是master,主机ip是:192.168.137.100 ...3,scp第一次连接有提示是否联接,输入yes4,scp远程连接的用户名hadoop,有提示密码时请输入:hadoop下载hadoopscp -P 8222 -r hadoop@home.hddly.cn:/usr ...配置scp -P 8222 -r hadoop@home.hddly.cn:/usr ...下载sparkscp -P 8222 -r hadoop@home.hddly.cn:/usr ...配置scp -P 8222 -r hadoop@home.hddly.cn:/usr ...下载hbasescp -P 8222 -r hadoop@home.hddly.cn:/usr ...下载hivescp -P 8222 -r hadoop@home.hddly.cn:/usr ...下载sqoopscp -P 8222 -r hadoop@home.hddly.cn:/usr ...下载zookeeperscp -P 8222 -r hadoop@home.hddly.cn:/usr ...下载profilescp -P 8222 -r hadoop@home.hddly.cn:/etc ...scp批量复制到从机scp -r /usr/local/hadoop-3.3.1/etc/hadoo ...hive 注释方法-- 两横线为注释切记不可在--后加“;”号,它在任何时候都会被 解析Hive表字段、行、map默认分隔符hive 默认的字段分隔符为ascii码的控制符\001,建表的时候用field ...\001 用于分隔字段(列)\002 用于分隔ARRAY或者STRUCT中的元素,或用于MAP中键-值对之间 ...\003 用于MAP中键和值之间的分隔\n 用于分隔行常见问题sqoop配套hadoop3的问题参考2参考Sqoop提示$ACCUMULO_HOME警告参考主要是因为Sqoop加载$ACCUMULO_HOME环境变量,没有找到所以做出警 ...解决办法到Sqoop配置文件中
$SQOOP_HOME/bin/configure-sq ...#if [ ! -d "${ACCUMULO_HOME}" ]; then
#  ...导入$ACCUMULO_HOME变量sudo mkdir /usr/local/accumulo

vi ./sqo ...运行Sqoop报错解决:
 java.lang.NoClassDefFoundE ...错误信息Exception in thread "main" java.lang.NoC ...错误截图错误原因少commons-lang-2.6.jar解决办法官网下载: http://mirrors.tuna.tsinghua.edu.c ...解决办法2本机搜索[hadoop@master conf]$ sudo find / -name  ...copysudo cp /usr/local/hadoop-3.3.1/share/ha ...sqoop从hdfs到mysql报错报表不存在报表不存在错误Error executing statement: com.mysql.jdb ...处理:在mysql创建表处理:添加表CREATE TABLE test.`help_keyword_from_hdf ...导入mysql的数据乱码现象mysql上导入的数据如图,导入的记录中,中文是乱码crt上运行结果视频原因:未进行编码处理:连接串中添加编码sqoop export    --connect "jdbc:mysql:// ...运行结果报异常异常截图异常信息2022-10-08 21:25:32,494 ERROR mapreduce. ...问题分析将hadoop的history服务开启cd /usr/local/hadoop-3.3.1/sbin/
./mr-jo ...重新运行脚本sqoop export --connect "jdbc:mysql://hom ...观察http://master:8088上该任务通过任务号进入详情通过应用ID链接进入详细通过History链接进入详细进入logs链接进入详细进入here进入日志明细发现日志提示:Caused by: java.lang.NumberFormatExcepti ...如图原因是字符串过长,导致转换为Number时出错问题处理修改导入数据的第1个字段,改短些,在10位数以内,后重新导入,成功sqoop从mysql到 hdfs时报mysql错错误信息Caused by: javax.net.ssl.SSLHandshakeExc ...原因由于安全认证解决使用useSSL=false sqoop import --connect jdbc:mysql://192 ...sqoop import --connect jdbc:mysql://192. ...sqoop从mysql到hdfs时报yarn错错误信息java.lang.NoClassDefFoundError: org/apac ...错误截图解决指定yarn的路径
vi ./sqoop-env.shexport HADOOP_COMMON_HOME=${HADOOP_HOME} ...错误信息NoClassDefFoundError: org/apache/hadoop/ ...错误截图解决hadoop-common-2.8.5.jar是否已经拷贝到sqoop的lib目 ...[hadoop@master conf]$ find /usr/local/ha ...cp /usr/local/hadoop-3.3.1/share/hadoop/ ...错误信息UnsupportedFileSystemException: No FileS ...解决cp /usr/local/hadoop-3.3.1/share/hadoop/ ...错误信息NoClassDefFoundError: org/eclipse/jetty/ ...原因少websocket-server.jar解决[hadoop@master conf]$ sudo find / -name  ...错误信息SLF4J: Failed to load class "org.slf4j.i ...原因分析参考日志含义加载org.slf4j.impl.StaticLoggerBinder类 ...解决[hadoop@master conf]$ sudo find / -name  ...解决2官方下载https://repo1.maven.org/maven2/org/slf4j ...cd /usr/local/sqoop/lib/   909  
wget ht ... mv /usr/local/sqoop/lib/slf4j-nop-1.7.3 ...错误信息[2022-08-25 21:01:23.189]Container exite ...mapreduce.JobSubmissionFiles: Permission ...原因分析开启日志debug :set option --name verbose --value true处理sudo mkdir /tmp/hadoop-yarn
sudo chown h ...将hadoop包都copy过来[hadoop@master lib]$ cp /usr/local/hadoo ...可正常运行了,如视频修改hdfs的
机架数据,
需有2个机架[hadoop@master hadoop]$ more ./rack_topo ...警告信息WARN mapreduce.Counters: Group FileSyste ...hadoop日志错Not enough replicas was chosen. Reason:  ...截图原因: hdfs的配置文件被 设置为:
导致无法满足存储策略:
第一个副本尽可能 ...[hadoop@master hadoop]$ more ./rack_topo ...修改hdfs的
机架数据,
需有2个机架[hadoop@master hadoop]$ more ./rack_topo ...sqoop从mysql到hive时报错错误信息Could not load org.apache.hadoop.hive.co ...处理1删除sqoop_env.sh文件中行:export HIVE_CONF_DIR= ...处理2将hive的jar都复制到sqoop的lib目录下 cp /usr/local/hive/lib/hive* /usr/local ...处理3修改/usr/local/hadoop/etc/hadoop/hdfs-site ...cleaning up错误sqoop import   --connect jdbc:mysql://19 ...could not be cleaned up:
ERROR ql.Driver ...错误截图原因:未创建hive数据库:sqoop_test处理:重建数据库
use  sqoop_test;
drop table class; ...报权限异常sqoopl把mysql数据导到hive报错:
main ERROR Could ...截图ERROR Could not register mbeans java.sec ...原因java 的安全策略问题处理cd到java路径下的 jre/lib/security目录(我的java路径是 ...如图sqoop从hive到mysql时报错错误信息ERROR mapreduce.ExportJobBase: Export jo ...处理1只导mysql表中不存在的记录文件--export-dir /user/hive/warehouse/sqoop_ ...处理2删除目标库表中已存在的数据删除目标库表中已存在的数据对应的hdfs上的文件snoop连接远程mysql报连接异常运行导入脚本sqoop import --connect "jdbc:mysql://192 ...成功sqoop import --connect "jdbc:mysql://hom ...成功运行导出脚本sqoop export    --connect "jdbc:mysql:// ...成功运行视频mysql表数据ERROR sqoop.Sqoop: Got exception running ...ERROR sqoop.Sqoop: Got exception running ...截图原因:hdfs上源或目标路私径使用全路径且为hdfs方式,如:hdfs://ma ...snoop连接远程hdfs无法将数据写入从机datanode通过外网进入hdfs:
sqoop import --connect "jdbc ...运行异常视频原因:无法访问内网的datanode无法读取远程的hdfs上的数据通过外网访问hdfs:
sqoop export    --connect "j ...运行异常截图原因:无法远程访问内网的datanode数据提示/user/root/sqoop_hive路径不存在在执行sqoop import过程报异常,显示目录不存在如图版本历史Ver1.6-20220925Ver1.7-20220928其它参考增加:scp批量复制到从机Ver1.8-20221010修改随堂练习,增加myname的使用,默认分隔符的使用增加常见问题的处理:Export job failed!
hide
第5章Sqoop安装与使用
Ver1.8-20221010
hide
Sqoop配置
hide
sqoop使用
hide
测试前准备
hide
hdfs导入导出
hide
课堂练习
hide
强化练习
hide
其它参考
hide
常见问题
hide
运行Sqoop报错解决:
java.lang.NoClassDefFoundError:
hide
sqoop从hdfs到mysql报错
hide
运行结果报异常
hide
sqoop从mysql到hdfs时报yarn错
hide
错误信息
hide
错误信息
hide
sqoop从mysql到hive时报错