MacOS10.10.4でmlcpを使用して160,000のXMLドキュメントをMarkLogic8.0-2にロードしようとすると、mlcp-Hadoop2-1.3-1/bin/mlcp.sh: line 16: /usr/bin/java: Argument list too long
エラーがスローされます。
私が発行しているコマンド:
mlcp import -database FO -username sss4r -password ******* -host localhost -port 8003 -mode local -input_file_pattern '*\.xml' -output_uri_replace "/Users/sss4r/Documents/FOPOC,''" -input_file_path .
これはおそらくUnixシェルの問題であり、mlcpは名前のリストを返すためにファイルシステム機能を使用しています。コマンドで処理できるファイル名の数には、システムベースの制限があります。
この問題を解決するためにMarkLogicianが推奨するベストプラクティスは何ですか?より小さなチャンクでバルクロードを試みますか?システムの制限を変更してみませんか?
ありがとう。
MLCPは、ファイルをロードできるようにするためにシェル拡張に依存しません。シェルの拡張がmlcp.sh内で発生しているのではないかと思いますが、意図せずに発生しています。入力ファイルパターンパラメータを削除すると、すべてのファイルが読み込まれることがわかります。簡単な修正方法は、ファイルをサブディレクトリに配置し、ファイルパターンを使用せず、単にinput_file_pathとしてサブディレクトリを指すことです。
Rob S.は、これを防ぐ別のソリューションを提供しています。パラメータをファイルに入れ、各パラメータを別々の行に置き-options_file
、コマンドラインのパラメータでそれをポイントします。また、引用符やその他の特殊文字がシェル環境によって意図せずに解釈される問題からも保護されます。
詳細はこちら:https://docs.marklogic.com/guide/ingestion/content-pump#id_36150
HTH!
PS:MLCPを改善するためにバグを報告しました(#33670)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加