問題タブ [hive]
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.
hadoop - HiveはHDFSのどこにファイルを保存しますか?
Hiveテーブルとそれらが表す実際のHDFSファイル(またはディレクトリ)の間のマッピングを見つける方法を知りたいです。テーブルファイルに直接アクセスする必要があります。
HiveはファイルをHDFSのどこに保存しますか?
hadoop - 既存の HIVE テーブルに列を追加すると、どのような影響がありますか?
HIVEの使用を開始してから数百Gigsを追加したいとします。私が見たさまざまな記事やページから、次の点での結果を理解できません
- 必要な収納スペース(2倍?)
- ブロッキング (他のプロセスでテーブルを読み取ることはできますか) ?
- 時間 (MySQL の変更と同じくらい速いですか、それとも遅いですか?)
- 基礎となるストレージ (基礎となるすべてのファイルを変更する必要がありますか? RCFile を使用してどのように行うことができますか?)
HIVE 列の構造体に関する同じ質問に回答できる人へのボーナス。
unit-testing - ApacheHiveでの自動テスト
Apache Hadoop / Hiveを使用して、さまざまなダウンストリームアプリケーションのデータフィードを生成するためのハイブクエリスクリプトのコレクションを含むプロジェクトに着手しようとしています。これらのスクリプトは、一部の単体テストの理想的な候補のように見えます。これらは、データストアとクライアントアプリケーション間のAPIコントラクトの履行を表しているため、特定の開始データのセットに対して期待される結果を記述するのは簡単です。私の問題は、これらのテストを実行する方法です。
SQLクエリを使用している場合は、SQLliteやDerbyなどを使用して、テストデータベースをすばやく起動し、テストデータをロードして、それらに対してクエリテストのコレクションを実行できます。残念ながら、私はHive用のそのようなツールを知りません。現時点では、テストフレームワークでHadoopローカルインスタンスを起動し、それに対してHiveを実行することをお勧めしますが、これまでに行ったことがなく、それが機能するか、正しいパスになるかはわかりません。
また、私が行っているのが単体テストなのか統合テストなのかについての衒学的な議論には興味がありません。コードが機能することを証明できればよいだけです。
mapreduce - (小さな) データセットの Apache Hive でクエリを並列化する方法
データ セットの一部で最新の Hive をテストしています。カスタム SerDe を介して読み取っているのは、ほんの数 GB のログ ファイルです。
単純な Group By クエリ (4 つの MR ジョブ) を実行すると、次のようなログが取得されます。
- マップ: 100%
- 減らす: 0%
- マップ : 85%
- 減らす: 0%
- マップ : 86%
- 減らす: 0%
その間ずっと、8 コア サーバーで 1 つのコアのみを使用していました。なんか無駄…
並列オプションを有効にしましたが、それでも並列化されません。リデュース ジョブの数を 8 に設定しました。
私の期待は、私のデータセットが分割されている (=> 異なるファイル) ため、少なくとも一部の map-reduce フェーズをそれらのファイルで並行して実行できることです。
私の理解は間違っていますか?クエリを記述する特定の方法はありますか?
ありがとう
amazon-ec2 - サイレントに失敗する疑似分散 Hadoop ノードへの新しいボリュームの追加
にボリュームの場所を追加して、Hadoop 疑似分散ノードに新しいボリュームを追加しようとしていdfs.name.dir
ますhdfs-site.xml
。この場所にロック ファイルが表示されますが、試してみると、ファイルをロードすると (ハイブを使用する場合) これらの場所はほとんど使用されません (ロック ファイルといくつかのサブフォルダーが表示されますが、Hadoop は明らかにそれらにアクセスできます)。メイン ボリュームの容量が不足しそうになると、次の例外が発生します。
新しいボリュームを Hadoop に追加する方法についての指針はありますか? EC2を使用しているFWIW im。
hadoop - 現在のディレクトリで作成するのではなく、特定のパスからハイブにメタストアをロードさせる方法は?
一部のデータ処理には Hive を使用しています。しかし、Hive-Shell を起動すると、現在のディレクトリにメタストアが作成され、別のディレクトリに作成したテーブルにアクセスできなくなります。これは、特定のディレクトリに移動してから、Hive-Shell を起動してテーブルを表示するのが少し面倒です。
hive-default.xml でパスを構成しようとしましたが、成功しませんでした。
ありがとう
perl - Perl Thrift クライアントからハイブへ?
Perl を使用して Hadoop ベースの Hive データストアに接続したいと考えています。Hive は Thrift インターフェイス ( http://wiki.apache.org/hadoop/Hive/HiveClient ) を使用した接続を可能にし、Perl 用の Thrift 実装があります (例: http://metacpan.org/pod/Thrift::XS ) 。 . ただし、私が見つけた唯一の Thrift クライアントは Cassandra クライアントです。
そのようなクライアントが存在する場合、またはそれを作成する方法はありますか? 明示的に定義せずに接続することさえ可能でしょうか?
(追伸 - Hive への ODBC/JDBC インターフェースもありますが、これらのモジュールのインストールは頭痛の種であり、最後の手段となります)
ありがとう!
hive - ハイブのパーティション列
hive
テーブルの一部でもある列でテーブルを分割する必要があります。
例:
表:従業員
列: employeeId、employeeName、employeeSalary
employeeSalary を使用してテーブルを分割する必要があります。そこで、次のクエリを書きます。
同じ名前を付けることができなかったので、ここでは「ds」という名前を使用しましたemployeeSalary
。
これは私がしていることですか?また、テーブルに値を挿入するときは、カンマ区切りのファイルを使用する必要があります。これで、ファイルは次のような行で構成されます: 2019,John,2000
1行として。給与を使用してパーティション分割する必要がある場合、最初のパーティションは給与 2000 のすべての人になります。したがって、クエリは次のようになります。
ここでも、給与が 2000 の 100 エントリの後、給与が 4000 の次の 500 エントリがあります。したがって、クエリを再度実行します。
私が正しいかどうか教えてください...
java - .txtファイルをHadoopのシーケンスファイル形式に変換する方法
Hadoopでmap-reduceジョブを効果的に利用するには、データをHadoopのシーケンスファイル形式で保存する必要があります。ただし、現在、データはフラットな.txt形式のみです。.txtファイルをシーケンスファイルに変換する方法を誰かが提案できますか?
hadoop - Hiveで一時テーブルを作成しますか?
Hiveは一時テーブルをサポートしていますか?apacheドキュメントで見つかりません。