sqoop2-mysqlをhdfsにインポート

sqoop2 mysql —> hdfsデータの完全インポート

Sqoop2ダウンロードアドレスhttps://mirrors.bfsu.edu.cn/apache/sqoop/1.99.7/sqoop-1.99.7-bin-hadoop200.tar.gzmysql
ドライバーjarパッケージリンク:https://dev.mysql。 com / get / Downloads / Connector-J / mysql-connector-java-5.1.41.zip

1.mysqlデータの準備

create table sqoop_table(id int, name varchar(100), age int, remark varchar(255));
insert into sqoop_table(id, name, age, remark) values(1, '张三', 1, '我是张三');
insert into sqoop_table(id, name, age, remark) values(2, '李四', 2, '我是李四');
insert into sqoop_table(id, name, age, remark) values(3, '王五', 3, '我是王五');

2.sqoop2のインストール

  1. tar -zxvf sqoop-1.99.7-bin-hadoop200.tar.gz

  2. vim ./etc/hadoop/core-site.xml(hadoopディレクトリへ)

sqoopはプロキシメソッドを使用してHadoopのMapReduceにアクセスするため、受け入れられたプロキシユーザーとグループはHadoopで構成する必要があります

<!-- sqoop2 -->
<property>
  <name>hadoop.proxyuser.${SYSTEM_USER}.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.${SYSTEM_USER}.groups</name>
  <value>*</value>
</property>
<!-- ${SYSTEM_USER} 为启动sqoop时的用户 非服务器名称
value标签 表示可代理访问范围 -->
  1. vim ./bin/sqoop.sh
HADOOP_COMMON_HOME=${HADOOP_HOME}/share/hadoop/common
HADOOP_HDFS_HOME=${HADOOP_HOME}/share/hadoop/hdfs
HADOOP_MAPRED_HOME=${HADOOP_HOME}/share/hadoop/mapreduce
HADOOP_YARN_HOME=${HADOOP_HOME}/share/hadoop/yarn
  1. vim conf / sqoop.properties
org.apache.sqoop.submission.engine.mapreduce.configuration.directory=$HADOOP_HOME/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
  1. 確認します。/bin/sqoop2-toolverify

ここに画像の説明を挿入

  1. mysql-connector-java-5.1.41.zipを
    解凍します。jarパッケージcpをserver / libおよびshell / libの下のsqoopディレクトリに解凍します。

  2. 開始
    server./bin/sqoop.shサーバーの開始を

  3. 起動状況を表示するjps-l
    14690 org.apache.sqoop.server.SqoopJettyServer

Three.sqoopターミナルモード

  1. sqoopターミナルモードを入力します。/
    binに/ sqoop2シェル

  2. サーバーに接続し、パラメーターを構成します
    set server --host 127.0.0.1 --port 12000 --webapp sqoop

  3. コマンドを実行してクライアントとサーバーのバージョン情報を表示し、接続が成功したことを確認し
    ます。showversion -all
    ここに画像の説明を挿入

  4. サポート
    されているlinkshowコネクタを確認してください。表示された情報から、mysqlとhdfsは問題ないはずです。続行
    ここに画像の説明を挿入

  5. mysqlリンク接続の
    作成リンクの作成-connectorgeneric-jdbc-connector

Name:标示这个link的字符串,如180mysql
Driver Class:指定jdbc启动时所需要加载的driver类,我们这里使用的是MySQL,那么就是com.mysql.jdbc.Driver

Connection String:就是使用jdbc连接时所需要的url参数了。如:jdbc:mysql://hadoop005:3306/sqoop_test,sqoop_test就是数据库名称。

Username:链接数据库的用户名,也就是mysql客户端传入的-u参数。如:root

Password:链接数据库的用户密码。

FetchSize:这个与jdbc中的fetchSize参数一样。当需要更多行时应该从数据库获取的行数。直接回车了,使用默认值。

entry# 这时候可以手动指定很多JDBC属性的值。本例只覆盖了一个protocol值为tcp:
protocol=tcp

Identifier enclose: 指定SQL中标识符的定界符,也就是说,有的SQL标示符是一个引号:select * from "table_name",这种定界符在MySQL中是会报错的。这个属性默认值就是双引号,所以不能使用回车,必须将之覆盖,可使用空格覆盖了这个值。
  1. 作成が成功すると、次の行が入力
    されます。検証ステータスOK、名前180mysqlで新しいリンクが正常に作成されました


  2. hdfsのリンク接続を作成しますcreatelink -connector hdfs-connector

Name:标示这个link的字符串,如HDFS
URI: 集群URI,这个是在Hadoop中配置的,可找到/etc/hadoop/core-site.xml文件中的fs.defaultFS属性,输入对应的value值即可。
Conf directory: hadoop的配置文件目录,如:/home/bigdata/module/hadoop-2.7.2/etc/hadoop
entry# 覆写hadoop中的配置值,这里我们不需要覆盖,直接回车即可
  1. 作成が成功したら、リンクを表示して構成済みのリンクを表示できます
    ここに画像の説明を挿入
  2. 次に、使用するリンクを組み合わせて、
    fromのジョブ-f、toの-tを作成
    する必要があります。mysql-> hdfsなので、create job -f "180mysql" -t "180hdfs"を作成します。
Name: 标示这个job的字符串,如180mysql2hdfs

Schema name: 数据库的schema,这里使用MySQL也就是数据库的名称了,如:sqoop_test

Table name: 数据库中的表名 如: sqoop_table

SQL statement: 就是sql查询语句,可选的,直接回车就好

element# 重写数据相关的一些参数,可选,直接回车就好

Partition column: 分割的列,也就是将最终文件分割为多个,默认导入到一个文件。

Partition column nullable: (可选直接回车)

Boundary query: (可选直接回车)

Check column: (可选直接回车)

Last value: (可选直接回车)

Override null value:  覆盖值为空的列 (可选直接回车)
Null value: 覆盖的值为什么 (可选直接回车)

File format: 文件格式,这里选择0,TEXT_FILE

Compression codec:  压缩编码器,这里不压缩,选择0

Custom codec: 自定义的编码器,这里也不需要,直接回车

Output directory: 导入的输出目录,这里需要注意指定存储在HDFS文件系统中的路径,需要指定一个存在的路径,或者存在但路径下是空的,貌似这样才能成功。如: /180sqoop/sqoop_table

Append mode:  用于指定是否是在已存在导出文件的情况下将新数据追加到数据文件中。可选回车

Extractors: 可选,对应 mapreduce 的 job 中 map 的数量。这里直接回车

Loaders:  可选,对应 mapreduce 的 job 中的 reduce 的数量。这里直接回车

element#    Classpath配置,如:需要添加任务额外的jar包,这里直接回车
  1. ジョブ開始ジョブ
    開始-n'180mysql2hdfs '

ここに画像の説明を挿入

  1. 糸の実行を見る

ここに画像の説明を挿入

  1. hdfsでファイルを表示
    ここに画像の説明を挿入

総括する:

  1. Sqoopはhadoopに統合され、変数を構成し、サーバーを起動します
  2. シェルに入り、2つのリンクを作成します
  3. ジョブを作成し、2つのリンク関係を指定し、テーブルとhdfsパスを設定します
  4. ジョブを開始して、yarnとhdfsの結果を表示します

おすすめ

転載: blog.csdn.net/weixin_45657738/article/details/112362679