IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> sqoop安装以及使用(保会) -> 正文阅读

[大数据]sqoop安装以及使用(保会)

?sqoop安装及使用

1.上传并解压

tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

创建软连接

Ln -s sqoop............ sqoop

2.修改配置文件

1)切换到sqoop配置文件目录

cd /home/hadoop/app/sqoop/conf

2) 复制配置文件并重命名

cp sqoop-env-template.sh sqoop-env.sh

3) vim sqoop-env.sh 编辑配置文件,并加入以下内容(以下是我hadoop,zookeeper,hbase,hive安装路径)

export HADOOP_COMMON_HOME=/home/hadoop/app/hadoop

export HADOOP_MAPRED_HOME=/home/hadoop/app/hadoop/share/hadoop/mapreduce

export HBASE_HOME=/home/hadoop/app/hbase

export HIVE_HOME=/home/hadoop/app/hive

export ZOOCFGDIR=/home/hadoop/app/zookeeper/conf

export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper

4) 切换到bin目录

cd /home/hadoop/app/qoopbin

# vim configure-sqoop 修改配置文件,注释掉没用的内容(就是为了去掉警告信息)

3.修改环境变量

vim ~/.bashrc

# 将sqoop的目录加入环境变量

1)添加mysql连接驱动

sqoop可能会用到MySQL导入到hdfs上,就需要myssql驱动

cp mysql-connector-java-5.1.49.jar /home/hadoop/app/sqoop/lib/

常见错误

错误:如何寻找sqoop-1.4.6.jar文件包,解决找不到或无法加载主类org.apache.sqoop.sqoop的问题

解决方案:

1.sqoop-1.4.x.tar.gz在1.4.5以上的安装包已经没有了这个jar包,必须下载sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz这个安装包。

2.然后解压这个安装包,打开安装包取出sqoop-1.4.6.jar放在hadoop的lib下,或者放到share/hadoop/yarn下.

3.再次导入数据,查看报错是否存在,一般情况都会解决。

4.测试检查连通性

1)测试

sqoop version

2)测试MySQL连通性

sqoop list-databases -connect jdbc:mysql://master:3306/ -username root -password 123456

5.脚本

再执行脚本之前打开zookeeperhdfsyarn? sqooo用的就是mapreduce

  1. ?MysqlToHdfs

import

--connect

jdbc:mysql://master:3306/student

--username

root

--password

123456

--table

student

--m

2

--split-by

age

--target-dir

/sqoop/data/student

--fields-terminated-by

','

执行脚本:

sqoop --options-file MySQLToHDFS.conf

注意事项:

1、--m 表示指定生成多少个Map任务,不是越多越好,因为MySQL Server的承载能力有限

2、当指定的Map任务数>1,那么需要结合--split-by参数,指定分割键,以确定每个map任务到底读取哪一部分数据,最好指定数值型的列

3、如果指定的分割键数据分布不均,可能导致数据倾斜问题

4、编写脚本的时候,注意:例如:--username参数,参数值不能和参数名同一行

2)MysqlToHive

import

--connect

jdbc:mysql://master:3306/student

--username

root

--password

123456

--table

score

--fields-terminated-by

"\t"

--lines-terminated-by

"\n"

--m

2

--split-by

student_id

--hive-import

--hive-overwrite

--create-hive-table

--hive-database

testsqoop

--hive-table

Score

执行脚本:

sqoop --options-file 脚本名

注意:--direct

加上这个参数,可以在导出MySQL数据的时候,使用MySQL提供的导出工具mysqldump,加快导出速度,提高效率

注意:在hive中不能建表

问题:Sqoop异常解决ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException

解决:Hbase和hive的libthrift版本分别是libthrift-0.8.0.jar,libthrift-0.9.0.jar

copy libthrift-0.9.0.jar 到sqoop/lib目录下,问题解决。

再次支持导入语句的时候出现目录已经存在的问题

?ERROR security.UserGroupInformation: PriviledgedActionException as:jifeng cause:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory project already exists

14/09/08 01:28:56 ERROR tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory project already exists

删除目录问题解决:

[hadoop@master ~]$ hadoop dfs -rmr /user/hadoop/score

Warning: $HADOOP_HOME is deprecated.

Deleted hdfs://jifeng01:9000/user/jifeng/project

3)MysqlToHbase

import

--connect

jdbc:mysql://master:3306/student

--username

root

--password

123456

--table

student

--hbase-table

student

--hbase-row-key

id

--m

1

--column-family

cf1

注意:在HBase中创建student表

create 'student','cf1'

执行脚本:

sqoop --options-file 脚本名

  1. HDFSToMysql

export

--connect

jdbc:mysql://master:3306/student?useUnicode=true&characterEncoding=UTF-8

--username

root

--password

123456

-m

1

--columns

id,name,age,gender,clazz

--export-dir

/sqoop/data/student/

--fields-terminated-by

','

--table

Student

注意:先清空MySQL student表中的数据,不然会造成主键冲突

执行脚本:

sqoop --options-file 脚本名

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:36:19  更:2022-03-12 17:37:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:03:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码