hadoop 3.3.0 应该使用哪个版本的 sqoop?
Posted
技术标签:
【中文标题】hadoop 3.3.0 应该使用哪个版本的 sqoop?【英文标题】:Which version of sqoop should I use for hadoop 3.3.0? 【发布时间】: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 安装的根目录。 系统找不到指定的路径。
请帮忙解决这个问题
【问题讨论】:
【参考方案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 导入”。
【讨论】:
以上是关于hadoop 3.3.0 应该使用哪个版本的 sqoop?的主要内容,如果未能解决你的问题,请参考以下文章