(コンテナのUbuntuに記事を作成し、コンパイルするドッキングウィンドウ環境)に住ん天池FLINK TPC-DSパフォーマンスの最適化のコンテストに参加

  独自のプログラムレベルを向上させたい、我々は参加するLinux環境をいじるようになったアリ・天池FLINKの競争を

  ただ、cygwinの内側の窓を開始したいcompileTpcds.sh実行中/自宅で見つかった結果/ Hadoopの/ FLINK-コミュニティ/リソース/のTPCD gccを見つけて作るように求めた後、データ生成をコンパイルし、インストールCygwinのgccのインストールインタフェースインストールが完了した後、ディレクトリは、実行するエラーの結果を急ぎます。

  エラー次のように:

= 64 -D_LARGEFILE_SOURCE -DYYDEBUG -D_FILE_OFFSET_BITS GCC -DLINUX -C -g -Wall -o mkheader.o mkheader.c 
mkheader.cからファイルに含ま:37:0:
porting.h:46である:10:致命的なエラー:値。 H:そのようなファイルやディレクトリ
 の#include <values.h> 
          ^ ~~~~~~~~~ 
コンパイル中断。
作る:*** [<建て>:mkheader.o]エラー1。
compileTpcds.sh:行40:./dsdgen:いいえファイルまたはディレクトリSUCH 
compileTpcds.sh:41行目です:./dsqgen:いいえファイルまたはディレクトリSUCH 
CP: '/ cygdriveの/ D / javaProgram /取得できませんホーム/ Hadoopの/ FLINK-コミュニティPERF /リソース/のTPCD /のTPCD-ツール/ツール/ dsdgen' ノーファイルまたはディレクトリSUCH:ファイルのステータス(STAT)
CP:取得することができません「/cygdrive/d/javaProgram/home/hadoop/flink-community-perf/resource/tpcds/tpc-ds-tool/tools/tpcds.idx」ファイルのステータス(STAT):そのようなファイルまたはディレクトリ 
CP:取得することができません'/ cygdriveの/ D / javaProgram /ホーム/ Hadoopの/ FLINK-コミュニティPERF /リソース/のTPCD /のTPCD-ツール/ツール/ dsqgen' ファイルのステータス(STAT):そのようなファイルまたはディレクトリ
CP:「/cygdrive/d/javaProgram/home/hadoop/flink-community-perf/resource/tpcds/tpc-ds-tool/tools/tpcds.idx」ファイルのステータス(STAT)を取得することはできません:そのようなファイルないか、またはディレクトリ
chmodコマンド: '/ cygdriveの/ D / javaProgram /ホーム/ Hadoopの/ FLINKコミュニティコミュニティパーフォレーション/リソース/のTPCD / querygen / dsqgen'にアクセスすることはできません:そのようなファイルのディレクトリや
コンパイルSUCCESSを...
エラーログ

  唯一の彼らのWindowsマシンドッキングウィンドウのツールボックスをインストールするには、ドッキングウィンドウを実行するとUbuntuの仮想環境へ。

  ダウンロードはありません、以下のコマンドを実行し、仮想ドッキングウィンドウにsshを、その後、スピードアップするために、環境に言及または仮想マシン内の窓にし、通常の遅いドッキングウィンドウのコンテナではありません

sudoのSED -i "S | EXTRA_ARGS = '| EXTRA_ARGS ='  - レジストリ・ミラー=のhttp://f1361db2.m.daocloud.io | G" は/ var / libに/ boot2docker /プロフィール

  (Http://f1361db2.m.daocloud.ioもアリ雲アドレスに自分自身を取得するために変更されます)

  (また、タイプ{「レジストリミラー」:[「https://registry.docker-cn.com」]}、ドッカー/etc/docker/daemon.jsonにおける新しい環境前に述べた後、サービスは、画像を変更することができ、再起動しますアドレス。私が試した、物理マシンを仮想マシンドッキングウィンドウデーモンサービス内で開くことができない、理由はツールボックスではありません知っているし、このメソッドを使用しないでください。)

  ミラーへのアドレス設定後、ドッキングウィンドウマシンの再起動のデフォルトを実行している物理マシンには、設定を有効にすることができます。コンテナを実行するために、ドッキングウィンドウの実行-itd -P rikorose / GCC-cmakeのはgccを実行し、その後、ドッキングウィンドウプルrikorose / GCC-cmakeの:gccのドッキングウィンドウは、このイメージを引っ張る使用して、ドッキングウィンドウの検索gccがrikorose / GCC-cmakeのミラーリング見つける使用した後。

  実行は、コンテナにドッキングウィンドウ<コンテナ名> execが-it / binに/ bashの後の入力指示ドッキングウィンドウの開始<コンテナ名>の後に、コンテナを閉じる必要とする場合

  これは、ファイルを転送するため、psの実行指示をドッキングウィンドウべきです(コンテナがドッキングウィンドウは、ps -aを使用するように閉じられている場合)

ドッキングウィンドウの@デフォルト:〜$]ドッキングウィンドウのPS 
CONTAINER ID画像COMMAND CREATED STATUSポートの名称
c6b71328afa8 rikorose / GCC-cmakeの"bashの" 7日前まで5時間serene_noyce

  次の命令があるので、ここでコンテナの名前が知られているserene_noyce、ドッカー「は{{.ID}}」serene_noyceを-f検査(図3に示すように、第四のパラメータの操作は、フィルタパラメータ、又は演算結果のパラメータスタックです)

ドッキングウィンドウの@デフォルト:〜$]ドッキングウィンドウが-f検査'{{.ID}}' serene_noyce 
c6b71328afa828c9e4c62ac37dd9dede538c3999355189e44218290a2ae885d3

  次のステップは、ドッキングウィンドウのcpコマンドを使用して、プロジェクト内の「マイフォト」は、物理マシンに置くことです。

ドッキングウィンドウのcp / C /ユーザー/管理者/写真/ホームc6b71328afa828c9e4c62ac37dd9dede538c3999355189e44218290a2ae885d3:/ルート

  ここではコマンドのフォーマットは次のとおりですドッカーのCPローカルIDファイルのパス名:コンテナー・パスは、必要に応じて、コンテナファイルを破って送信順番に第3、第4のパラメータ交換フォーマット、それを命令します。

  容器内部へのプロジェクトの後、容器の中に、ディレクトリ内のFLINK-コミュニティ/リソース/のTPCDをジャンプ、compileTpcds.shを実行し、コマンドを示唆すると、パスを見つけることができません。YACC

作る:YACC:コマンドが見つかりません

  ののapt-getコマンドを使用しているようです。しかし、このインストーラはイメージアドレスを変更することができ、最初はアドレスを変更します

  ドッキングウィンドウミラーなしviコマンド以来、私たちは、内部の仮想良いドッキングウィンドウのpackage.jsonでファイルを編集する必要があります。

DEBは偉大メイン制限宇宙マルチバースhttp://mirrors.ustc.edu.cn/ubuntu/ 
DEBは偉大なセキュリティのメイン制限宇宙マルチバースhttp://mirrors.ustc.edu.cn/ubuntu/ 
のdebにhttp://mirrors.ustcを.edu.cn / Ubuntuの/偉大-アップデートのメイン制限宇宙マルチバース
DEBは偉大-提案メイン制限宇宙マルチバースhttp://mirrors.ustc.edu.cn/ubuntu/ 
DEBをhttp://mirrors.ustc.edu.cn/ubuntu /偉大-backportsのメイン制限宇宙マルチバース
のdeb-srcのhttp://mirrors.ustc.edu.cn/ubuntu/大きなメイン制限宇宙マルチバース
のdeb-srcのhttp://mirrors.ustc.edu.cn/ubuntu/偉大なセキュリティメイン制限宇宙マルチバース 
のdeb-srcのhttp://mirrors.ustc.edu.cn/ubuntu/偉大-アップデートのメイン制限宇宙の多元
のdeb-srcのhttp://mirrors.ustc.edu.cn/ubuntu/偉大-提案メイン制限宇宙の多元
DEB-SRC http://mirrors.ustc.edu.cn/ubuntu/偉大-backportsのメイン制限宇宙の多元

  ファイルを編集した後、容器のMVの/etc/apt/sources.listの/etc/apt/sources.list.bak、仮想ドッキングウィンドウの実行を実行します

ドッキングウィンドウのcp package.jsonのc6b71328afa828c9e4c62ac37dd9dede538c3999355189e44218290a2ae885d3:の/ etc / aptの

  apt-getを更新した後、ダウンロード画像は、新しいアドレスを指します。

  (さまざまな理由のためのコマンド名とパッケージ名、参照バイソンをインストールapt-getを実行し、ここで、結果が返されるパッケージは一切インストール候補エラーを持たない)、何のapt-getの更新理由がないかもしれないと思うし、次のコマンドを入力します。

apt-getの更新
アップグレードapt-getを
フレックスバイソンBCをインストールapt-getを

  compileTpcds.sh内FLINK-コミュニティ/リソース/のTPCDを実行した後、[OK]を、コンパイル!(感動しませんでした、あまりにも長いログをコンパイルします)

  「(」予期しないが、このプログラムの96行は、通常のAです:96行、構文エラー:datagenのgenerateTpcdsData.sh実行ディレクトリ、実際に与えられたを入力します。

#!/ binに/ bashの
############################################ ################################## 
#TPC-DSデータ生成
########## ################################################## ################## 

輸出JAVA_HOME = /ホーム/ Hadoopの/ Javaの

#セットデータは、パスを保存
TARGETPATH =。/データ/ 

#セット作業スレッド、初期値は0である
workThreads = 0 

#セットデータの規模
であれば[$#-lt 1]; その後、
	"[ERROR]のparamsの不足#"エコー
	エコー"使用:` dirnameが$ 0` / $ 0 <scaleFactorを>" 
	の出口127 
Fi回線
scaleFactorを= $ 1 

のデータを構築する#ランダムシードは、デフォルト値は0です
rngSeed = 0 
であれば[$# - GE 2]。その後、
    rngSeedは$ = 2 
Fiを提供して


###ターゲットパスをチェックし
、[-z $ TARGETPATH]場合。次に
	エコー「[ERROR] HDFSのターゲットパスが設定されていない」
	出口127 
のfi 

###の初期化を
workload.lstに###、ディメンションテーブルは平行値1に設定された、およびファクトテーブルが設定された大きな平行
WORKFILE =ワークロード/ tpcds.workload 。$ {scaleFactorを}の.lst 

[あれば!-e $ WORKFILE]。その後、

	エコー"[INFO]生成するワークロードファイル:" $ WORKFILE 
	エコー"call_center $((scaleFactorを))" >> $ WORKFILEが
	エコー"のb catalog_page $((scaleFactorを))" >> $ WORKFILE 
	「D catalog_sales $を((エコーscaleFactorを)) ">> $ WORKFILEが
	エコー"のE CUSTOMER_ADDRESSの$((scaleFactorを))" >> $ WORKFILE 
	エコー"
    エコー"グラムcustomer_demographics $((scaleFactorを))" >> $ WORKFILER store_sales $((scaleFactorを))」>> $ WORKFILE 
    エコー"のTIME_DIM $((scaleFactorを))" >> $ WORKFILE
	エコー"時間date_dim $((scaleFactorを))" >> $ WORKFILEは
    エコー"私はhousehold_demographics $((scaleFactorを))" >> $ WORKFILEは
    エコー"jはincome_band $((scaleFactorを))" >> $ WORKFILE 
    「k個の在庫$エコー((scaleFactorを)) ">> $ワークファイルは
    エコー"L項目$((scaleFactorを))" >> $ワークファイルは
    エコー"Mプロモーション$((scaleFactorを))" >> $ワークファイルは
    エコー" N理由$((scaleFactorを)) ">> $作業ファイルは、
    エコー"O ship_mode $((scaleFactorを))" $ワークファイルは>> 
    Pストア$((scaleFactorを)) ">> $ WORKFILEエコー" 
    エコー"R store_sales $((scaleFactorを))" >> $作業ファイルを
    エコー "トンの倉庫$((scaleFactorを))」>> $ WORKFILE 
    エコー"U web_page $((scaleFactorを))" >> $ WORKFILE
    >> $ WORKFILE "web_sales $((scaleFactorを))は、W"エコー
    "エコーX web_site $((scaleFactorを))" >> $ WORKFILE 
Fiの

###基本PARAMS 
エコー「[INFO]データで各ノードでローカルに生成されます名前付きパイプ./ <。tblName.tbl <チャンク#> " 
エコー" [INFO]は、データがstreamingly "$ targetHSDFPathでクラスタにコピーされます生成された
エコー" [INFO]例えばlineitem.tbl.10 - > /ディスク/ 1 /のTPCD /データ/ SF100 /のLineItem / lineitem.10.tbl」

#Clear既存のワークロード
RM -rf writeData.sh 

#Checkディレクトリディスク上
TARGETPATH = $ {TARGETPATH} / SF $ {scaleFactorを} 

RM -rf $ {} TARGETPATH 
MKDIR -p $ {TARGETPATH} 

###初期ワークロードshの
エコー"#!/ binに/ bashの" >> $ファイル名

fileNameに= writeData.sh 
エコー"" >> $ fileNameに
エコー"PS -efww |グレップのdsdgen |はgrep -v grepの| 9-15 -cカット| xargsのは殺す-9" >> $ fileNameに
エコー「PS -efww | grepをFsShell |はgrep -v grepの|カット-c 9-15 | xargsの殺す-9" >> $ fileNameに
エコー"のPS -efww |グレップのwait4process.sh |はgrep -v grepの|カット-c 9-15 | xargsが殺す-9" >> $ファイル名が
エコー"RM -rf * .DAT" >> $ fileNameに
エコー"" >> $ fileNameに

ます。mkdir -p $ {TARGETPATH} / catalog_returns 
ます。mkdir -p $ {TARGETPATH} / store_returns 
ます。mkdir -p $ {TARGETPATH} / web_returns 

ワークロードを生成する### 
読み取りラインながら、行う
	のparams =($ライン)
	#Extractingパラメータ
	#echo $ {paramsは[*]} 
	tblCode = $ {paramsは[0]} 
	tblName = $ {paramsは[1]}
	tblParts = $ {paramsは[2]} 
            もし[ "$ tblName" = "store_sales"]。それから 
	エコー"==== $のtblNameを==="
	MKDIR -p $ {TARGETPATH} / $ tblName 
	ラウンドロビン方式で割り当てる#ワークロード
	partsDone = 1 
	一方、[$ partsDone -le $ tblParts]。行う
		;場合は、[$ tblParts -gt 1] その後、
			"RM -rf ./${tblName}_${partsDone}_${tblParts}.dat" >> writeData.shエコー
			}」はmkfifo ./${tblName}_${partsDone}_${tblPartsをエコー。 DAT」>> writeData.sh 
            であれば[ "$ tblName" = "catalog_sales"]; その後、
                >> "RM -rf ./catalog_returns_${partsDone}_${tblParts}.dat"エコーwriteData.sh 
                "はmkfifo ./catalog_returns_${partsDone}_${tblParts}.dat" >> writeData.shエコー
            Fiの
                writeData.sh >> "RM -rf ./store_returns_${partsDone}_${tblParts}.dat"エコー
                >> writeData.sh "./store_returns_${partsDone}_${tblParts}.datはmkfifo"エコー
            Fiの
            場合[ "$ tblName" = "web_sales"]; その後、
                >> "RM -rf ./web_returns_${partsDone}_${tblParts}.dat"エコーwriteData.sh 
                "はmkfifo ./web_returns_${partsDone}_${tblParts}.dat" >> writeData.shエコー
            Fiの
			"./dsdgen -scale $ scaleFactorを-table $ tblName -child $ partsDone -parallel $ tblParts -force Y -RNGSEED $ rngSeed&"を>> writeData.shエコー
			./copyAndDelete.sh ./${tblName}_$「エコー{partsDone} _ $ {tblParts}。
            [ "$ tblName" = "catalog_sales"]であれば、その後、 
                「./copyAndDelete.sh ./catalog_returns_${partsDone}_${tblPartsを}エコー。
            [ "$ tblName" = "store_sales"]であれば、次に
                エコー"./copyAndDelete.sh ./store_returns_${partsDone}_${tblParts}.dat $ {TARGETPATH} / store_returns&" >> writeData.sh 
            Fiの
            [ "$ tblName" = "web_sales"]もし。その後、
                エコー"./copyAndDelete.sh ./web_returns_${partsDone}_${tblParts}.dat $ {TARGETPATH} / web_returns&" >> writeData.sh 
            Fiの
		他の
			エコー「のrm -rf ./${tblName}.dat 「>> writeData.sh 
			エコー"./${tblName}.datはmkfifo" writeData.sh >> 

			もし[ "$ tblName" = "catalog_sales"]; その後、
                「はmkfifo ./catalog_returns.dat」エコー 
            >> writeData.sh Fiの
            [ "$ tblName" = "store_sales"]であれば、それから
                エコー"RM -rf ./store_returns.dat" >> writeData.sh 
                "はmkfifo ./store_returns.dat" >> writeData.shエコー
            Fiを提供して
            いる場合、[ "$ tblName" = "web_sales"]; その後、
                >> "RM -rf ./web_returns.dat"エコーwriteData.sh 
                "はmkfifo ./web_returns.dat" >> writeData.shエコー
            Fiの

			エコー」./dsdgen -scale $ scaleFactorを-table $ tblName -force Y -RNGSEED $ rngSeed& ">> writeData.sh 
			エコー" ./copyAndDelete.sh ./${tblName}.dat $ {TARGETPATH} / $ tblName& ">> writeData.sh 

			SH であれば[ "$ tblName" = "catalog_sales"]; それから
                エコー" ./copyAndDelete.sh ./catalog_returnsを。
            [ "$ tblName" = "store_sales"]であれば、次に
                エコー"./copyAndDelete.sh ./store_returns.dat $ {TARGETPATH} / store_returns&" >> writeData.sh 
            Fiの
            場合は[ "$ tblName" = "web_sales"]。次に
                エコー"./copyAndDelete.sh ./web_returns.dat $ {TARGETPATH} / web_returns&" >> writeData.sh 
            のfi 

		Fiが

		partsDone = 1 + $ partsDoneせ
		workThreads = 1 + workThreadsせ
	行う
<$作業ファイル完了。
「エコー\」エコー
"エコー\" [INFO]が">> writeData.sh "\ ...完了するまで待機エコー
エコー" ./wait4process.sh dsdgen 0 ">> writeData.sh 
エコー"">


 
エコー"にwriteData.shを実行する[INFO]を"$ {ワーカー} 
ます。chmod 755 writeData.sh 
SH writeData.sh 


S`たendTime = `日付+%
エコー" [INFO]完了世代@ "`日付+%のH:%のM:%S` 
エコー"[INFO]生成され、SFをロード" $ {scaleFactorを}"で"`ますecho $ endTimeの- $のstartTime | bc`"秒」
generateTpcdsData.sh

  しかし、この問題は、我々は、全体ではない、単純なスペルミスを歩んでいるようです。これは、プログラムのls -l / binに/ * SHが知っているの実装に関連しているを実行するshコマンドに対応して、私の船はこれです:

-rwxr-XR-xの1ルートルート1099016 2017年5月15日/ binに/ bashの
-rwxr-XR-xの1つのルートルート117208 2017年1月24日/ binに/ダッシュ
lrwxrwxrwx 1つのルート根元部4 2017年5月15日/ binに/ rbash - >のbash 
lrwxrwxrwx 1つのルート根元部4 2017年1月24日/ binに/ SH - >ダッシュ

  プログラムがエラーをコンパイルさせる代わりにbashののダッシュにシステムのshプログラムは、その後のbashを使用し、実行SHを使用していないことが表示されます。

おすすめ

転載: www.cnblogs.com/dgutfly/p/11634714.html