問題タブ [writable]
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.
null - Hadoop 0.20.205.0 WritableComparator が構成可能なキーを尊重しない
あらゆる種類の奇妙で予期しない動作を示している Hadoop 0.20.205.0 MapReduce ジョブ (シングルスレッド、ローカル) を実行しようとしました。やっと理由がわかりました。これは Hadoop のバグのように見えますが、理解できないことがあるかもしれません。誰かアドバイスをくれませんか?私の setMapOutputKeyClass クラスは Configurable を実装しています。setConf が最初に呼び出されない限り、readFields メソッドは適切に読み取られません (これが Configurable インターフェースのポイントだと思います)。
そして newKey() は null Configuration を使用してキーを構築します。
実際、デバッガーで実行すると、次の場所にあることがわかります
key1 内の conf が null であるため、setConf は呼び出されていません。
これは Hadoop のバグですか、それとも Configurable 以外のものを使用してキーを構成することになっているのでしょうか? これがバグである場合、回避策を知っている人はいますか?
EDIT:これは、この理由で失敗するジョブの短い(やや不自然な)例です:
java - HadoopFSでバイナリツリーを作成する
乾燥ツリーを表すために使用するバイナリツリーをHDFSに書き込む必要があります。しかし、それを行うには、最初にBinaryTreeNodeクラスを作成する必要があります。これがツリーノードになります。これらは私のクラス属性です:
したがって、これらのノードを読み書きするためのwriteメソッドとreadFieldsメソッドを実装する必要があります。これらは私がしたことです:
私が思いつかないのは、2つの子ノードの書き込みと読み取りの方法です。ツリーは再帰的に構築され、すべてのノードに0〜2の子があることに注意してください。したがって、後の目的は、属性BinaryTreeNoderootを持つBinaryTreeクラスを作成することです。ありがとう
ruby - Rubyでディレクトリが書き込み可能かどうかを検出するにはどうすればよいですか
Ruby を使用していますが、新しいファイルを作成する前に、ディレクトリが書き込み可能かどうかを検出する必要があります。
@path がディレクトリかどうかに応じて true/false を正しく返す次のコードを試しました。ただし、@path フォルダーへの書き込み権限がない場合は true を返します。
File クラスと Dir クラスのヘルプを見ましたが、ディレクトリの書き込み権限を確認できるメソッドが見つかりません。方法はありますか?
Ruby 1.9.3を使用して、Windowsでのみ動作する必要があります。
php - ファイルがアップロードされた時点(PHP)でchmod値0777を割り当てるにはどうすればよいですか?
私のシステムは、.txtファイルに書き込みおよび.txtファイルから描画する会話領域を備えています。FTPクライアントを介してアクセス許可を設定できることは明らかですが、PHP内のシステムを介してアップロードされるすべてのファイルに書き込み可能な機能を適用したいと考えています。セキュリティは問題ではないことを付け加えておきます。
コードのレイアウトと一般的な構文についてお詫びします
java - プロキシを使用してサードパーティ クラスを Hadoop Writable として拡張する
Hadoop で使用しようとしているサードパーティ クラスがあるため、それを実装する必要がありますWritable
。問題は、Hadoop が使用する方法Writable
が object を作成しo = SomeObject()
、次に de-serialize を呼び出すo.readFields(in)
ことであり、私の状況では空のオブジェクトを作成できないことです。
注意事項size
ですfinal
。
ここRealCube
では、呼び出すスーパー コンストラクターが 1 つだけあり、そのコンストラクターがfinal
抽象スーパー クラスに変数を設定します。
を実装しようとするとRealCubeWritable
、コンストラクターを持つことができず、ストリームを調べるまでRealCubeWritable()
実際のことを知ることができません。size
DataInput
したがって、Hadoop でこれを行う唯一の方法はラッパーを使用することです。私が疑問に思っているのは、ラッパーを使用する方法があるかどうかですが、RealCubeWritable
それでも動作しRealCube
ますか? 動的プロキシ クラスの使用を検討しましたが、これが機能するかどうか (または実際にどのように行うか) はわかりません。
ありがとう!
hadoop - 複数のカスタム書き込み可能フォーマット
複数の入力ソースがあり、Sqoop の codegen ツールを使用して各入力ソースのカスタム クラスを生成しました。
Map 側では、入力ソースに基づいて、上記の 2 つのクラスのオブジェクトを適宜作成します。
キーは「テキスト」タイプで、2 つの異なるタイプの値があるため、値の出力タイプを「書き込み可能」のままにしました。
reduce 側では、値の型を Writable として受け入れます。
私も設定しました
実行中はreduce関数には一切入りません。
これが可能かどうか誰かに教えてもらえますか?もしそうなら、私は何を間違っていますか?
java - SequenceFileでMapWritableを使用する方法は?Hadoop
SequenceFileを使用して2つのmapReduceプログラム間でデータを渡そうとしています。渡したいデータの形式は>です。何らかの理由で、マップ内の一部のエントリが1つのプログラムから別のプログラムに渡されないようです。これが私のコードです。最初にdeSequenceFileOutputを生成するレデューサー、次にそれから読み取るマッパーです。
public static class IntSumReducer extends Reducer {
とマッパー:
public static class TokenizerMapper extends Mapper {
}
apache - 同時に apache に書き込み可能なホーム ディレクトリを構成する方法
public_html
各ユーザー内のフォルダーを提供するようにApacheを構成しました。次に、それらのフォルダーにアクセスする仮想ホストを構成しました。
したがって、現在のステータスを次の例に示します。仮想ホストによって提供され、フォルダーfoo-bar.com
を指すドメイン ( ) があります。/home/foo-bar/public_html
これは、いくつかのドメイン <-> ユーザー ペアで発生しています。
私の問題は、サイトがいくつかのファイルをアップロードする必要がある場合です/home/foo-bar/public_html/contents
。これまでの私の解決策は、そのフォルダーの所有権を apache ユーザーとグループに変更することでしたが、これにより、ユーザーはとりわけ FTP 経由でそのフォルダーにファイルをアップロードできなくなります。
そのような場合のベストプラクティスは何ですか? これを解決するには?
ありがとうございました。
さらなる開発
/home/foo-bar/public_html/contents
のグループをapacheユーザーに変更し、グループに書き込み権限を追加することで、なんとかそれを行うことができました。このようにして、フォルダーは apache ユーザーとその所有者に書き込み可能になります。
考えられる解決策 (まだ実装もテストもされていません)
この質問に対するこれまでの最良の解決策と思われる回答を誰かがくれました。
私はvsftpを使用しているので、誰かに役立つかもしれないこのリンクを見つけました:
http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/
java - 日付/カレンダー用に書き込み可能なHadoop
フィールドの1つがタイムスタンプであるカスタムhadoopWritableクラスを実装しようとしています。これを簡単にするクラス(たとえば、Writable for DateまたはCalendar)をhadoopライブラリーで見つけることができないようです。カレンダーでget/setTimeInMillisを使用してカスタム書き込み可能ファイルを作成することを考えていますが、この問題に対するより良い/組み込みのソリューションがあるかどうか疑問に思っています。
java - Hadoopシリアル化のネストされたオブジェクト
私はクラスを持っています:
Class1を出力値として使用すると、Hadoopはレデューサー側でこのエラーをスローします。
私の直感によると、問題はClass1に関連している、またはSerializableとWritableの両方を実装するClass2に関連している可能性が高いとのことです。
何か案は ?
アップデート:
問題をローカライズしました。問題はClass1ですが、これはWritableのみを実装するように変更されました(Serializableも実装されていません)。また、Class2への参照が含まれなくなったという意味で変更しました。それでも同じエラーが発生します。Class1を出力値として別の書き込み可能な実装に置き換えると、機能します。なぜ ??