【问题标题】:Which version of sqoop should I use for hadoop 3.3.0?hadoop 3.3.0 应该使用哪个版本的 sqoop?
【发布时间】:2020-09-06 09:21:19
【问题描述】:

我正在尝试在 hadoop 3.3.0 上的 windows 10 中安装 sqoop 1.4.7,

在 GIT bash 上使用 ./configure-sqoop 我得到以下 o/p:

警告:C:\sqoop_data\sqoop-1.4.7.bin__hadoop-2.6.0/../hbase 不存在! HBase 导入将失败。 请将 $HBASE_HOME 设置为 HBase 安装的根目录。 警告:C:\sqoop_data\sqoop-1.4.7.bin__hadoop-2.6.0/../hcatalog 不存在! HCatalog 作业将失败。 请将 $HCAT_HOME 设置为 HCatalog 安装的根目录。 警告:C:\sqoop_data\sqoop-1.4.7.bin__hadoop-2.6.0/../accumulo 不存在! Accumulo 导入将失败。 请将 $ACCUMULO_HOME 设置为 Accumulo 安装的根目录。 警告:C:\sqoop_data\sqoop-1.4.7.bin__hadoop-2.6.0/../zookeeper 不存在! Accumulo 导入将失败。 请将 $ZOOKEEPER_HOME 设置为 Zookeeper 安装的根目录。

在使用 sqoop.cmd 版本 验证安装时,我得到:

警告:未设置 HBASE_HOME 和 HBASE_VERSION。 警告:未设置 HCAT_HOME 警告:HCATALOG_HOME 不存在 HCatalog 导入将失败。 请将 HCATALOG_HOME 设置为 HCatalog 安装的根目录。 警告:ACCUMULO_HOME 未设置。 警告:未设置 ZOOKEEPER_HOME。 警告:HBASE_HOME 不存在 HBase 导入将失败。 请将 HBASE_HOME 设置为 HBase 安装的根目录。 警告:ACCUMULO_HOME 不存在 Accumulo 导入将失败。 请将 ACCUMULO_HOME 设置为 Accumulo 安装的根目录。 警告:ZOOKEEPER_HOME 不存在 Accumulo 导入将失败。 请将 ZOOKEEPER_HOME 设置为 Zookeeper 安装的根目录。 系统找不到指定的路径。

请帮忙解决这个问题

【问题讨论】:

    标签: windows hadoop sqoop


    【解决方案1】:

    这取决于您是在服务器端还是客户端工作。

    如果您在服务器端,请执行以下操作:

    将 Sqoop 工件复制到您要运行 Sqoop 服务器的机器上。 Sqoop 服务器充当 Hadoop 客户端,因此 Hadoop 库(Yarn、Mapreduce 和 HDFS jar 文件)和配置文件(core-site.xml、mapreduce-site.xml,...)必须在此节点上可用。您不需要运行任何与 Hadoop 相关的服务 - 在“网关”节点上运行服务器非常好。

    解压 Sqoop 分发压缩包

    tar -xvf sqoop-<version>-bin-hadoop<hadoop-version>.tar.gz
    

    将解压后的内容移动到任意位置

    mv sqoop-<version>-bin-hadoop<hadoop version>.tar.gz /usr/lib/sqoop
    

    更改工作目录

    cd /usr/lib/sqoop
    

    sqoopt 需要将环境变量指向 Hadoop 库。所以像这样设置和导出变量:

    # Export HADOOP_HOME variable
    export HADOOP_HOME=/...
    
    # Or alternatively HADOOP_*_HOME variables
    export HADOOP_COMMON_HOME=/...
    export HADOOP_HDFS_HOME=/...
    export HADOOP_MAPRED_HOME=/...
    export HADOOP_YARN_HOME=/...
    

    Sqoop 服务器需要模拟用户访问 HDFS,所以编辑 core-site.xml 文件:

    <property>
      <name>hadoop.proxyuser.sqoop2.hosts</name>
      <value>*</value>
    </property>
    <property>
      <name>hadoop.proxyuser.sqoop2.groups</name>
      <value>*</value>
    </property>
    

    用于客户端安装 只需在目标机器上复制 Sqoop 分发工件并将其解压缩到所需位置。您可以使用以下命令启动客户端:

    sqoop2-shell
    

    对于路径变量,所有面向用户和管理员的 shell 命令都存储在 bin/ 目录中。建议将此目录添加到您的 $PATH 以便于执行,例如:

    PATH=$PATH:`pwd`/bin/
    

    【讨论】:

    • 有效吗?是否可以将 Sqoop 1.4.7 与 Hadoop 3.X+ 一起使用?
    【解决方案2】:

    这个组合很适合我:

    • Hadoop:3.3.1
    • Sqoop:1.4.7
    • 连接器/J:5.1.49

    注意: 您必须在“$SQOOP_HOME/lib”中将“commons-lang3-3.4.jar”替换为“commons-lang-2.6.jar”以避免出现“java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils”错误使用“Sqoop 导入”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多