博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sqoop2从Mysql导入Hdfs (hadoop-2.7.1,Sqoop 1.99.6)
阅读量:6273 次
发布时间:2019-06-22

本文共 4160 字,大约阅读时间需要 13 分钟。

hot3.png

一、环境搭建

1.Hadoop

2.Sqoop2.x

3. mysql

二、从mysql导入hdfs

1.创建mysql数据库、表、以及测试数据

xxxxxxxx$  mysql -uroot -pEnter password: mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || test               |+--------------------+4 rows in set (0.00 sec)test  => 是新建的数据库mysql> use test;mysql> show tables;+----------------------+| Tables_in_test       |+----------------------+               || test                 |+----------------------+1 rows in set (0.00 sec)test => 是新增的表mysql> desc test;+-------+-------------+------+-----+---------+----------------+| Field | Type        | Null | Key | Default | Extra          |+-------+-------------+------+-----+---------+----------------+| id    | int(11)     | NO   | PRI | NULL    | auto_increment || name  | varchar(45) | YES  |     | NULL    |                || age   | int(11)     | YES  |     | NULL    |                |+-------+-------------+------+-----+---------+----------------+3 rows in set (0.00 sec)mysql> select * from test;+----+------+------+| id | name | age  |+----+------+------+|  7 | a    |    1 ||  8 | b    |    2 ||  9 | c    |    3 |+----+------+------+3 rows in set (0.00 sec)

2. 为各个用户授权

注意:sqoop提交job后,各个节点在map阶段会访问数据库,所以需事先授权

mysql> grant [all | select | ...] on {db}.{table} to {user}@{host} identified by {passwd};mysql> flush privileges;#我给特定的hostname授权 username:root passwd:root 访问db:test 中任意table,权限是allmysql> grant all on test.* to 'root'@{host} identified by 'root';

3.启动sqoop2-server

[hadoop@hftclclw0001 sqoop-1.99.6-bin-hadoop200]$ pwd/home/hadoop/sqoop-1.99.6-bin-hadoop200[hadoop@hftclclw0001 sqoop-1.99.6-bin-hadoop200]$ ./bin/sqoop2-server start......webui可以访问校验,也可以查看log

4.启动sqoop2-shell

[hadoop@hftclclw0001 sqoop-1.99.6-bin-hadoop200]$ pwd/home/hadoop/sqoop-1.99.6-bin-hadoop200[hadoop@hftclclw0001 sqoop-1.99.6-bin-hadoop200]$ ./bin/sqoop2-shell ......sqoop:000> show version......sqoop:000> show connector+----+------------------------+---------+------------------------------------------------------+----------------------+| Id |          Name          | Version |                        Class                         | Supported Directions |+----+------------------------+---------+------------------------------------------------------+----------------------+| 1  | generic-jdbc-connector | 1.99.6  | org.apache.sqoop.connector.jdbc.GenericJdbcConnector | FROM/TO              || 2  | kite-connector         | 1.99.6  | org.apache.sqoop.connector.kite.KiteConnector        | FROM/TO              || 3  | hdfs-connector         | 1.99.6  | org.apache.sqoop.connector.hdfs.HdfsConnector        | FROM/TO              || 4  | kafka-connector        | 1.99.6  | org.apache.sqoop.connector.kafka.KafkaConnector      | TO                   |+----+------------------------+---------+------------------------------------------------------+----------------------+根据你的connector创建connectorsqoop:000> create link -c 1      => 先创建jdbc会填写name、jdbc-driver、url、username、passwd等等sqoop:000> create link -c 3      => 创建hdfs会填写name、hdfs url、等等sqoop:000> show link+----+-------------+--------------+------------------------+---------+| Id |    Name     | Connector Id |     Connector Name     | Enabled |+----+-------------+--------------+------------------------+---------+| 3  | 10-21_jdbc1 | 1            | generic-jdbc-connector | true    || 4  | 10-21_hdfs1 | 3            | hdfs-connector         | true    |+----+-------------+--------------+------------------------+---------+创建job -f=> from  -t to 即从哪些导入到哪里sqoop:000> create job -f 3 -t 4会填写,相应的table信息。还有hdfs信息sqoop:000> show job             +----+---------------+----------------+--------------+---------+| Id |     Name      | From Connector | To Connector | Enabled |+----+---------------+----------------+--------------+---------+| 1  | 10-20_sqoopy2 | 1              | 3            | true    |+----+---------------+----------------+--------------+---------+#启动jobsqoop:000> start job -j 2.........可以再webui上访问到,查看进度,也可以使用sqoop:000> status job -j 2

sqoop的guide

5.troubleshooting

多看日志,慢慢的排查

转载于:https://my.oschina.net/u/204498/blog/519798

你可能感兴趣的文章
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>