問題タブ [sqoop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - sqoop api を使用して sqoop コマンドを実行するには?
コマンドラインから import 、 import-all-tables 、およびその他のコマンドを実行する方法を知っています。
コマンドラインからこれらのコマンドを直接実行できるような、sqoop 1.4.2 用の Java API はありますか? はいの場合、どのように?
sqoop Java docs または簡単な例へのリンクは非常に役に立ちます。
hadoop - Apache Hadoop と Cloudera Hadoop にインストールされた apache sqoop の使用の違いは何ですか?
Apache Sqoop が Apache Hadoop の代わりに Cloudera Hadoop を使用することを推奨するのはなぜですか?
パフォーマンス関連の問題はありますか?
java - 小さなファイル用の複数のマッパー
Hive に基づく ETL アプリケーションに取り組んでいます。機能要件の 1 つは、Hive 内のデータの一部を Teradata (使用されている既存のソリューション) にエクスポートすること、およびその逆にエクスポートすることです。私の問題は輸出に関連しています。
Teradata コネクタで sqoop を使用して、HDFS ファイルをエクスポートしています。一部のファイルは、100 K のレコードがありますが、7 MB までの非常に小さいものです。そのため、sqoop はエクスポートの実行中に単一のマッパーのみを使用します (-m オプションを指定しましたが、機能しませんでした)。これは非常に遅いプロセスになります。
クラスター内の複数のマッパー間で単一ファイル (HDFS ブロック サイズより小さい) 内のデータを分割する方法はありますか?
(sqoop でマッパー間で行を分割することで import が高速になるので、これが比較のポイントになり、export を高速化する必要があります)
編集:- ソフトウェア バージョン:
Hadoop: MapR M3 - Hadoop 0.20
Sqoop: 1.4.2
Teradata Connector for Sqoop: 1.0.5
java - API から HBase へのデータのロード
データを集約し、それにアクセスするための REST API を公開する 1 つのサードパーティ サービスを使用しています。
これらのデータを取得して、ローカルの HBase クラスターにロードしようとしています。そのサードパーティ サービスからデータを取得して処理し、HBase クライアント API を使用してクラスターにロードする Java アプリケーションを作成しました。このアプリケーションの場合、手動で実行する必要があり、大量のデータをロードするのに HBase クライアント API がどれだけ効率的かもわかりません。
RDBMS からの一括転送を行うために、Sqoop と Cascading-dbmigrate に出会いました。私の質問は、REST API から大量のデータ転送を行う同様のツールはありますか? また、定期的にデータを同期します。
ありがとう ArunDhaJ http://arundhaj.com
oracle - Sqoopを使用するOracleDBから特定のユーザーのすべての(そして唯一の)テーブルをHiveにインポートするにはどうすればよいですか?
たくさんのテーブル(600以上)を含むデータベースがあり、sqoopを使用してそれらすべてをHiveにインポートしたいと思います。それは私が使用したコマンドです:
sqoopがユーザーに属していない一部のOracleシステムテーブルをインポートしようとするため、インポートは常に失敗します。
list-tablesは、次のSQLクエリと同じテーブルを一覧表示します。
代わりに、このクエリと同じテーブルを一覧表示してインポートしたいと思います(同じテーブルだと思います)。
sqoopを介してテーブルのインポートを制限する方法はありますか?そうでない場合は、「select *fromall_tables」が「select*fromuser_tables」と同じテーブルを提供するようにユーザー権限を構成する方法はありますか??
ありがとう
mysql - sqoopexportmysqlパーティション
sqoopを使用してパーティション化されたハイブテーブルからmysqlにエクスポートしようとしています。
最初はやってみました
コマンドがエラーになり、
パーティションディレクトリをポイントすると
コマンドは失敗します
また、パーティションキーなしでmysqlテーブルを再作成し、パーティション化されたmysqlテーブルを作成しようとしましたが、すべてが同じエラーメッセージで失敗します
hadoop - Sqoopを使用してRDBMSからHiveにデータをインポートするときにコマンドラインでHiveデータベース名を指定するにはどうすればよいですか?
RDBMSテーブルからリモートHiveマシンにデータをインポートする必要があります。Sqoopを使用してこれを実現するにはどうすればよいですか?
ナットシェルで、インポートコマンドでハイブデータベース名とハイブマシンi / pを指定するにはどうすればよいですか?
適切なsqoopコマンドを手伝ってください。
hadoop - タイムスタンプで分割された Hive テーブルでの sqoop エクスポートに関する問題
タイムスタンプで分割されたハイブ テーブルを sqoop エクスポートできません。
タイムスタンプで分割されたハイブ テーブルがあります。それが作成する hdfs パスには、sqoop で問題を引き起こしていると思われるスペースが含まれています。
fs -ls 2013-01-28 16:31 /user/hive/warehouse/my_table/day=2013-01-28 00%3A00%3A00
sqoop エクスポートからのエラー:
13/01/28 17:18:23 エラー security.UserGroupInformation: PriviledgedActionException as: ブランドン (認証: SIMPLE) 原因: java.io.FileNotFoundException: ファイルが存在しません: /user/hive/warehouse/my_table/day=2012- 10-29 00%3A00%3A00 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsUpdateTimes(FSNamesystem.java:1239) org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem. java:1192) org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1165) で org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1147) でorg.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:383) で、org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB で。getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:170) org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call.call (ProtobufRpcEngine.java:453) org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) で org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) でorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) で java.security.AccessController.doPrivileged(ネイティブメソッド) で javax.security.auth.Subject.doAs(Subject.java:396) ) org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) で org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687) で170) org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) で) org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) で org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) で org.apache.hadoop org.apache. hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)170) org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) で) org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) で org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) で org.apache.hadoop org.apache. hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) の callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) org.apache.hadoop.ipc.RPC$Server.call(RPC.java: 898) org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) で org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) で java.security で.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) の callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) org.apache.hadoop.ipc.RPC$Server.call(RPC.java: 898) org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) で org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) で java.security で.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)898) org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) で org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) で java.security で.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)898) org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) で org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) で java.security で.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)
fs -ls /user/hive/warehouse/my_table/day=2013-01-28 00%3A00%3A00 ls: /user/hive/warehouse/my_table/day=2013-01-28': No such file or directory
ls:
00%3A00%3A00': No such file or directory を実行した場合
引用符を追加すると機能します: brandon@prod-namenode-new:~$ fs -ls /user/hive/warehouse/my_table/day="2013-01-28 00%3A00%3A00" Found 114 items -rw-r --r-- 2 ブランドン スーパーグループ 4845 2013-01-28 16:30 /user/hive/warehouse/my_table/day=2013-01-28%2000%253A00%253A00/000000_0 ...
mysql - CentOS での sqoop-export
Hive から sqoop-export を使用したい => MySQL 以下のコマンドを実行しました。
ローカル マシンでコマンドを実行すると、機能します。しかし、サーバーで試してみると、そうではありません。
ローカル マシン: MySQL 5.5.28-0ubuntu0.12.10.2 を使用する Ubuntu 12.10
サーバー: CentOS 5.6 と MySQL 5.0.95-log
Hadoop/Hive/Sqoop は同じバージョンです。
私のPCからサーバーにhadoop/hive/sqoopをコピーし、両方ともサーバー上でうまく動作しました。
テーブルの作成は正常に動作します。
しかし、なぜ sqoop エラーが発生するのでしょうか?
ログは以下です。
hadoop - タスクのタイムアウトにより Sqoop インポート ジョブが失敗する
sqoop を使用して、MySQL の 1 TB テーブルを HDFS にインポートしようとしていました。使用したコマンドは次のとおりです。
sqoop import --connect jdbc:mysql://xx.xx.xxx.xx/MyDB --username myuser --password mypass --table mytable --split-by rowkey -m 14
バウンディング vals クエリを実行した後、すべてのマッパーが起動しますが、しばらくすると、タイムアウト (1200 秒) のためにタスクが強制終了されます。これは、select
各マッパーで実行されているクエリの実行にかかる時間が、タイムアウトに設定された時間よりも長くかかるためだと思います (sqoop では 1200 秒のようです)。したがって、ステータスの報告に失敗し、タスクはその後強制終了されます。(100 GB のデータ セットに対しても試しましたが、複数のマッパーのタイムアウトが原因で失敗しました。) 単一のマッパー インポートの場合、フィルター処理された結果セットが必要ないため、正常に動作します。0
sqoop で複数のマッパーを使用しているときに、マップ タスクのタイムアウトをオーバーライドする (または非常に高い値に設定する) 方法はありますか?