您的位置:首页 > 娱乐 > 八卦 > 廊坊视频优化效果_哪些项目适合开工作室_影视后期培训班一般要多少钱_惠州抖音seo策划

廊坊视频优化效果_哪些项目适合开工作室_影视后期培训班一般要多少钱_惠州抖音seo策划

2025/7/1 13:05:11 来源:https://blog.csdn.net/IT_Holmes/article/details/147092904  浏览:    关键词:廊坊视频优化效果_哪些项目适合开工作室_影视后期培训班一般要多少钱_惠州抖音seo策划
廊坊视频优化效果_哪些项目适合开工作室_影视后期培训班一般要多少钱_惠州抖音seo策划

推荐原文 见:http://docs.xupengboo.top/bigdata/di/sqoop.html

Sqoop(SQL-to-Hadoop) 是 Apache 开源的工具,专门用于在 Hadoop 生态系统(如 HDFS、Hive、HBase) 和 关系型数据库(如 MySQL、Oracle) 之间高效传输批量数据。专注于关系型数据库 ↔ Hadoop

Apache Sqoop 项目已于 2021 年 6 月停止维护,并被移至 Apache Attic。这意味着官方不再对 Sqoop 进行更新或提供支持。Apache Attic 是 Apache 软件基金会(ASF)设立的一个存储库,专门用于存放那些已停止活跃开发或维护的项目。

官方地址:https://sqoop.apache.org/

下载地址:https://archive.apache.org/dist/sqoop/

一、安装 Hadoop 客户端

由于 Sqoop 独立安装到一台服务上面,所以需要在独立服务器上安装 Hadoop 的客户端。

  1. 配置 /etc/hosts 文件。
192.168.10.68 vm-01
192.168.10.69 vm-02
192.168.10.70 vm-03
  1. 下载以及安装 Hadoop 客户端。(按照之前 Hadoop 集群安装 章节部署的集群操作)。
cd /opt
# 选择合适的hadoop版本,要与Hadoop集群匹配
wget https://downloads.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
# 解压
tar -xzvf hadoop-3.2.4.tar.gz
# /usr/local通常被用作本地软件安装目录。
mv hadoop-3.2.4 /usr/local/hadoop
  1. 配置相关文件:
  • core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://vm-01:9000</value> <!-- 这里是主节点的 IP 地址, 此处为 vm-01 的 IP 地址 --></property>
</configuration>
  • hdfs-site.xml
<configuration><property><name>dfs.nameservices</name><value>mycluster</value></property><property><name>dfs.ha.namenodes.mycluster</name><value>nn1</value></property><property><name>dfs.namenode.rpc-address.mycluster.nn1</name><value>vm-01:8020</value></property>
</configuration>
  • yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties --><!-- YARN ResourceManager 地址 --><property><name>yarn.resourcemanager.address</name><value>vm-01:8032</value></property>
</configuration>
  • mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value> <!-- 使用 YARN 作为 MapReduce 框架 --></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property>
</configuration>
  1. 执行命令校验:
hadoop fs -ls /  # 应返回远程 HDFS 根目录列表# 注意:我们并不是要创建一个hadoop子节点,仅仅是个客户端,所以不用启动hadoop的start相关脚本,可通过jps查看。

二、Sqoop 部署

:::tip
注意:选择 Sqoop 的版本需要与所使用的 Hadoop 版本相匹配,以确保两者的兼容性和稳定性。不同版本的 Sqoop 依赖于特定版本的 Hadoop,因此在部署时需要注意两者的对应关系。
:::

此处,已有的 hadoop 3.2.4,这是使用更稳定的版本: Sqoop 1.4.7。

  1. 下载 Sqoop 二进制包
curl -O -L https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
mv sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz /opt
cd /opt 
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoopvi /etc/profile
export SQOOP_HOME=/opt/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
  1. 配置 Sqoop
# 复制模板配置文件
cp $SQOOP_HOME/conf/sqoop-env-template.sh $SQOOP_HOME/conf/sqoop-env.sh
# 编辑 sqoop-env.sh,设置 Hadoop 路径
vi sqoop-env.sh
# 配置hadoop公共库和mapreduce的库目录
export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
  1. 下载驱动(不同的数据库,要给Sqoop不同的依赖驱动包)
cd $SQOOP_HOME/lib/
wget https://jdbc.postgresql.org/download/postgresql-42.7.3.jar
  1. 基本导入命令,例如:将 PostgreSQL 表中的数据导入到 HDFS 的指定目录
# 测试检查读取表格数据
sqoop eval \--driver org.postgresql.Driver \--connect jdbc:postgresql://192.168.10.66:5432/postgres \--username "root" \--password "0818" \--query "SELECT * FROM table_name2 LIMIT 1"# 强制指定 HDFS 操作用户身份
export HADOOP_USER_NAME=hadoopsqoop import \--verbose \--driver org.postgresql.Driver \--connect jdbc:postgresql://192.168.10.66:5432/postgres \--username "root" \--password "0818" \--table "table_name2" \--target-dir /user/sqoop \--delete-target-dir \-m 1

:::tip java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils 异常修复

# 抛出:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils 异常
# 解决办法:添加 commons-lang-2.6 版本,3版本不支持。
cd $SQOOP_HOME/lib
wget https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar

:::

成功页面 如下:

image-20250409135801481

  1. 下载 hadoop 中的文件,查看数据:
# 将导入成功的数据下载下来
$ hdfs dfs -get /user/sqoop /opt/temp/
$ ls
data.csv  sqoop
$ cat part-m-00000 # 数据内容
1,1,1,1,1
1,2,3,4,5
1,1,1,1,1
1,2,3,4,5
1,1,1,1,1
1,2,3,4,5
1,1,1,1,1
1,2,3,4,5

三、Sqoop 整体流程

  1. 生成代码:Sqoop 根据目标数据库表的结构,生成相应的 Java 类,用于序列化和反序列化数据。

  2. 编译和打包:生成的 Java 类会被编译并打包成一个可执行的 JAR 文件。

  3. 提交作业:Sqoop 将该 JAR 文件作为一个 MapReduce 作业提交给 YARN。

  4. 任务执行:YARN 根据集群的资源情况,分配资源并启动 MapReduce 作业的各个任务(Mapper)。每个 Mapper 通过 JDBC 从 MySQL 中读取数据,并将数据写入 HDFS。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com