sqoop安装部署问题事项

主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中

sqoop主要有两个版本:1.4.x、1.99.x ; sqoop1和sqoop2两个版本。

环境变量配置无问题。 【以下问题是1.99.6版本,经过多方尝试,仍报错】

报错

【-bash: sqoop: command not found】

  • sqoop2中已经没有sqoop command指令了...sqoop指令是适用与sqoop1的

进入sqoop.sh client,使用show job 等。

报错

    sqoop:000> show job
    Exception has occurred during processing command
    Exception: org.apache.sqoop.common.SqoopException Message: CLIENT_0000:An unknown error has occurred

  • 原因是没有指定服务端,需设置 set server --host 主机名或IP地址
    sqoop:000> set server --host 主机名或IP地址
    Server is set successfully

  • 可通过设置,查看错误原因
    sqoop:000> set option --name verbose --value true
    Verbose option was changed to true

尝试利用sqoop2 1.99.7版本

下载地址 [https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/]

配置好环境变量

    export SQOOP2_HOME=/usr/local/sqoop/
    export PATH=$PATH:$SQOOP2_HOME/bin
    export CATALINA_BASE=$SQOOP2_HOME/server

修改 $SQOOP2_HOME/conf/sqoop.properties

     org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/local/hadoop-2.7.7/etc/hadoop
     org.apache.sqoop.security.authentication.type=SIMPLE
     org.apache.sqoop.security.authentication.handler=org.apache.sqoop.security.authentication.SimpleAuthenticationHandler
     org.apache.sqoop.security.authentication.anonymous=true
     # Number of milliseconds, submissions created before this limit will be removed, default is one day     //锁定提交的job时间,锁定时间内不能删除
     org.apache.sqoop.submission.purge.threshold=300000
     # JDBC repository provider configuration    //jdbc配置目录
     org.apache.sqoop.repository.jdbc.url=jdbc:derby:/usr/local/sqoop/logs/repository/db;create=true
     org.apache.sqoop.log4j.appender.file.File=/usr/local/sqoop/logs/sqoop.log                         //sqoop2日志文件目录
     org.apache.sqoop.repository.sysprop.derby.stream.error.file=/usr/local/sqoop/logs/derbyrepo.log   //错误日志文件目录

启动服务端 $SQOOP2_HOME/bin/sqoop2-server start

报错

    Setting conf dir: /usr/local/sqoop/bin/../conf
    Sqoop home directory: /usr/local/sqoop
    Can't load the Hadoop related java lib, please check the setting for the following environment variables:
    HADOOP_COMMON_HOME, HADOOP_HDFS_HOME, HADOOP_MAPRED_HOME, HADOOP_YARN_HOME

检查Hadoop环境是否配置正确

    export HADOOP_HOME=/usr/local/hadoop-2.7.7
    export PATH=$PATH:$HADOOP_HOME/bin;

<span style="color:red">注意</span>:配置这个变量主要是让Sqoop能找到以下目录的jar文件和Hadoop配置文件:

  • $HADOOP_HOME/share/hadoop/common
  • $HADOOP_HOME/share/hadoop/hdfs
  • $HADOOP_HOME/share/hadoop/mapreduce
  • $HADOOP_HOME/share/hadoop/yarn

官网上说名了可以单独对各个组建进行配置,使用以下变量:
HADOOP_COMMON_HOME,HADOOP_HDFS_HOME, HADOOP_MAPRED_HOME,HADOOP_YARN_HOME
若$HADOOP_HOME已经配置了,最好不要再配置下面的变量,可能会有些莫名错误。

查看是否启动成功方式有三种

  • 第一种查看日志
    [root@localhost bin]# sqoop2-server start
    Setting conf dir: /usr/local/sqoop/bin/../conf
    Sqoop home directory: /usr/local/sqoop
    Starting the Sqoop2 server...
    0    [main] INFO  org.apache.sqoop.core.SqoopServer  - Initializing Sqoop server.
    5    [main] INFO  org.apache.sqoop.core.PropertiesConfigurationProvider  - Starting config file poller thread
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/usr/local/hadoop-2.7.7/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/usr/local/apache-hive-2.3.4-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    Sqoop2 server started.

  • 第二种执行访问 http://IP地址:12000/sqoop/version
  • 第三种执行JPS命令查看进程:Bootstrap、SqoopJettyServer
    [root@localhost bin]# jps
    22402 RunJar
    5861 Jps
    11848 NamesrvStartup
    2936 DataNode
    3513 jenkins.war
    5561 SqoopJettyServer
    2060 NameNode
    22317 RunJar
    12285 JswLauncher
    12686 NodeManager
    12399 ResourceManager
    5135 Bootstrap

启动客户端 $SQOOP2_HOME/bin/sqoop2-shell

再次尝试 show job、show connector 没有报错 这说明安装部署成功

sqoop:000> show connector
0    [main] WARN  org.apache.hadoop.util.NativeCodeLoader  - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
+------------------------+---------+------------------------------------------------------------+----------------------+
|          Name          | Version |                           Class                            | Supported Directions |
+------------------------+---------+------------------------------------------------------------+----------------------+
| generic-jdbc-connector | 1.99.7  | org.apache.sqoop.connector.jdbc.GenericJdbcConnector       | FROM/TO              |
| kite-connector         | 1.99.7  | org.apache.sqoop.connector.kite.KiteConnector              | FROM/TO              |
| oracle-jdbc-connector  | 1.99.7  | org.apache.sqoop.connector.jdbc.oracle.OracleJdbcConnector | FROM/TO              |
| ftp-connector          | 1.99.7  | org.apache.sqoop.connector.ftp.FtpConnector                | TO                   |
| hdfs-connector         | 1.99.7  | org.apache.sqoop.connector.hdfs.HdfsConnector              | FROM/TO              |
| kafka-connector        | 1.99.7  | org.apache.sqoop.connector.kafka.KafkaConnector            | TO                   |
| sftp-connector         | 1.99.7  | org.apache.sqoop.connector.sftp.SftpConnector              | TO                   |
+------------------------+---------+------------------------------------------------------------+----------------------+
sqoop:000> show job
+----+------+----------------+--------------+---------+
| Id | Name | From Connector | To Connector | Enabled |
+----+------+----------------+--------------+---------+
+----+------+----------------+--------------+---------+

尝试后

我想要的功能是将hive数据移入mysql,经对sqoop2的使用发现,sqoop2并不支持。遗憾。接下来将尝试sqoop1。

区别在于

功能 | Sqoop 1 | Sqoop 2
--|---
用于所有主要 RDBMS 的连接器 | 支持 | 不支持 解决办法: 使用已在以下数据库上执行测试的通用 JDBC 连接器: Microsoft SQL Server 、 PostgreSQL 、 MySQL 和 Oracle 。 此连接器应在任何其它符合 JDBC 要求的数据库上运行。但是,性能可能无法与 Sqoop 中的专用连接器相比
Kerberos 安全集成 | 支持 | 不支持
数据从 RDBMS 传输至 Hive 或 HBase | 支持 | 不支持 解决办法: 按照此两步方法操作。 将数据从 RDBMS 导入 HDFS 在 Hive 中使用相应的工具和命令(例如 LOAD DATA 语句),手动将数据载入 Hive 或 HBase
数据从 Hive 或 HBase 传输至 RDBMS | 不支持 解决办法: 按照此两步方法操作。 从 Hive 或 HBase 将数据提取至 HDFS (作为文本或 Avro 文件) 使用 Sqoop 将上一步的输出导出至 RDBMS | 不支持 按照与 Sqoop 1 相同的解决方法操作

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容