diff --git a/.gitignore b/.gitignore index 364ba2fb6..0ca33c638 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ report/ .classpath .project .settings/ +conf/hadoop.conf +conf/spark.conf diff --git a/Base_SCSReportforHiBench.html b/Base_SCSReportforHiBench.html deleted file mode 100644 index 79e4623d4..000000000 --- a/Base_SCSReportforHiBench.html +++ /dev/null @@ -1,96 +0,0 @@ -Base_SCS Report for HiBench - - -
ConfidentialFor Internal Use Only
DISCLAIMERThis report was created using Black Duck(TM) Protex software compliance management products and services. The results contained in the report reflect the user's analysis and decision making. Recipient of the results bears all of the risks relating to use of, or reliance upon, such results or any other content contained in this report. Black Duck Software makes no representation or warranty to any party regarding the contents of this report, its accuracy, completeness or correctness, and Black Duck Software hereby disclaims any and all warranties (both express and implied) with respect thereto.
-

Base_SCS Report for HiBench

-

2015年9月25日 下午3:56

-
-

HiBench 5.0

- -
Table Of Contents
 
Summary
Analysis Summary
Bill of Materials
Licenses in Effect
License Conflicts
IP Architecture
Obligations
Identified Files
Excluded Components
Work History - Bill of Materials
Work History - File Inventory
Potential Bill of Materials
Searches
-


-
- -
Summary
Name:spark-bench
Project Creator:Mingfei Shi
License:Apache License 2.0
Description:
Number of Files:376
Files Pending Identification:0 (0%)
Files with Violations:0 (0%)
Server:sils0028.sh.intel.com
-


-
- -
Analysis Summary
Last Updated:2015年9月25日 下午3:55
Scan Started:2015年9月25日 下午3:54
Scan Finished:2015年9月25日 下午3:55
Files Analyzed:376 Files
Bytes Analyzed:1.426 MB (1,494,912 B)
Files Skipped:0 Files
Bytes Skipped:0 B
Analysis Release Description:Product version 7.0.3 KB update 125, custom codeprints modified September 22, 2015 11:24 PM
Analyzed From Host:mshi4-MOBL1.ccr.corp.intel.com
Analyzed By:Mingfei Shi (mingfei.shi@intel.com)
Analyzed With OS:Windows 8.1
Analyzed With Locale:en-US
Analyzed With Options:
File Matches -Yes
Snippet Matches -Yes
Snippet Match Sensitivity -8 - Default
Java Import Statements -No
Java Package Statements -No
Binary Dependencies -No
String Searches -Yes
Allow wild cards (*) in string search queries -Yes
Allow regular expression search queries -No
Decompress Compressed Files -Yes
Discard Rejected Code Matches -No
Keep Only To Discoveries To Codeprinted Components -No
Keep Only Discoveries To Components With Best Matching Source Path -No
Keep Only Discoveries To Components Released On Or After -No
Keep Only Discoveries To Top Component Matches -No
Keep Only Discoveries To Maven Artifacts -No
Expand Archive Files -No
Enable Multi-User File Comparison -Yes
Store non-precision matches -No
Enable Rapid Identification -No
-


-
- -
Bill of Materials
Approval StatusLicense ConflictComponentVersionHome PageComponent CommentLicenseUsageShip Status# Manual Code Match# Rapid ID Code Match# Depends# SearchUsed By
Pending ApprovalNo ConflictsApache SparkUnspecifiedhttps://spark.apache.org/Apache License 2.0SnippetShip1000
Pending ApprovalNo ConflictsApache Spark1.1.0https://spark.apache.org/Apache License 2.0SnippetShip1000
Pending ApprovalNo ConflictsEclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippetShip100000
Pending ApprovalNo ConflictsHiBench3.0.0http://github.com/intel-hadoop/HiBench/Apache License 2.0FileShip2000
Pending ApprovalNo ConflictsHiBenchUnspecifiedhttp://github.com/intel-hadoop/HiBench/Apache License 2.0FileShip67000
Pending ApprovalNo Conflictsread-hadoop-ddc4966trunk-20121208-svnhttp://code.google.com/p/read-hadoop-ddc4966/Apache License 2.0SnippetShip1000
Pending ApprovalNo Conflictssalt-debUnspecifiedhttp://github.com/mika/salt-deb/Creative Commons Attribution Share Alike 3.0SnippetShip1000
Pending ApprovalNo ConflictssparkUnspecifiedhttp://github.com/mesos/spark/UnspecifiedSnippetShip5000
N/AN/Aspark-benchUnspecifiedApache License 2.0Original CodeShip198000
Pending ApprovalNo Conflictsspark-cluster-deploymentmaster-20140819http://github.com/adobe-research/spark-cluster-deployment/Apache License 2.0SnippetShip3000
-


-
- -
Licenses in Effect
License NameShip StatusCustom Fields
Apache License 2.0Ship
Creative Commons Attribution Share Alike 3.0Ship
UnspecifiedShip
-


-
- -
License Conflicts
ComponentComponent VersionLicenseConflicting ComponentConflicting Component VersionConflicting Component LicenseComponent ObligationConflicting Component ObligationDeprecated Component
There are no license conflicts in this project.
-


-
- -
IP Architecture
Full HierarchyComponentVersionLicenseUsageComponent Comment
/Apache SparkApache Spark1.1.0Apache License 2.0Snippet
/Apache SparkApache SparkApache License 2.0Snippet
/Eclipse Software Development Kit (SDK)Eclipse Software Development Kit (SDK)UnspecifiedSnippet
/HiBenchHiBench3.0.0Apache License 2.0Snippet
/HiBenchHiBench3.0.0Apache License 2.0File
/HiBenchHiBenchApache License 2.0File
/HiBenchHiBenchApache License 2.0Snippet
/read-hadoop-ddc4966read-hadoop-ddc4966trunk-20121208-svnApache License 2.0Snippet
/salt-debsalt-debCreative Commons Attribution Share Alike 3.0Snippet
/sparksparkUnspecifiedSnippet
/spark-cluster-deploymentspark-cluster-deploymentmaster-20140819Apache License 2.0Snippet
-


-
- -
Obligations
ComponentLicenseFulfilledObligationCategoryTypeDescriptionUsed By
Apache SparkNoYou are required to include a copy of the license in distributions that you make.Software ReleaseLicense
Apache SparkApache License 2.0NoYou must retain all copyright, warranty, patent, trademark, and attribution notices and any NOTICE text files.Software ProgrammerLicense
Apache SparkNoYou are required to make notes of changes you made.Software ProgrammerLicense
Apache SparkNoYou must retain all copyright, warranty, patent, trademark, and attribution notices and any NOTICE text files.Software ProgrammerLicense
Apache SparkApache License 2.0NoYou are required to make notes of changes you made.Software ProgrammerLicense
Apache SparkApache License 2.0NoYou are required to include a copy of the license in distributions that you make.Software ReleaseLicense
HiBenchApache License 2.0NoYou are required to include a copy of the license in distributions that you make.Software ReleaseLicense
HiBenchApache License 2.0NoYou are required to make notes of changes you made.Software ProgrammerLicense
HiBenchNoYou must retain all copyright, warranty, patent, trademark, and attribution notices and any NOTICE text files.Software ProgrammerLicense
HiBenchApache License 2.0NoYou must retain all copyright, warranty, patent, trademark, and attribution notices and any NOTICE text files.Software ProgrammerLicense
HiBenchNoYou are required to make notes of changes you made.Software ProgrammerLicense
HiBenchNoYou are required to include a copy of the license in distributions that you make.Software ReleaseLicense
read-hadoop-ddc4966Apache License 2.0NoYou are required to make notes of changes you made.Software ProgrammerLicense
read-hadoop-ddc4966Apache License 2.0NoYou must retain all copyright, warranty, patent, trademark, and attribution notices and any NOTICE text files.Software ProgrammerLicense
read-hadoop-ddc4966Apache License 2.0NoYou are required to include a copy of the license in distributions that you make.Software ReleaseLicense
salt-debCreative Commons Attribution Share Alike 3.0NoYou are not entitled to place additional restrictions on what Recipient may do with the code.LegalLicense
salt-debCreative Commons Attribution Share Alike 3.0NoYou are required to grant the right to modify the Standard Implementation.LegalLicense
salt-debCreative Commons Attribution Share Alike 3.0NoYou are required to ensure that the software displays a particular notice at runtime.LegalLicense
salt-debCreative Commons Attribution Share Alike 3.0NoThis license contains anti-DRM provisions.LegalLicense
salt-debCreative Commons Attribution Share Alike 3.0NoYou are required to distribute the source code of the Standard Implementation.LegalLicense
salt-debCreative Commons Attribution Share Alike 3.0NoYou are required to make notes of changes You made.LegalLicense
salt-debCreative Commons Attribution Share Alike 3.0NoYou are required to include a copy of the license in distributions that you make.LegalLicense
salt-debCreative Commons Attribution Share Alike 3.0NoYou are required to grant the right to copy the Standard Implementation.LegalLicense
spark-benchApache License 2.0NoYou are required to make notes of changes you made.Software ProgrammerLicense
spark-benchApache License 2.0NoYou are required to include a copy of the license in distributions that you make.Software ReleaseLicense
spark-benchApache License 2.0NoYou must retain all copyright, warranty, patent, trademark, and attribution notices and any NOTICE text files.Software ProgrammerLicense
spark-cluster-deploymentApache License 2.0NoYou are required to include a copy of the license in distributions that you make.Software ReleaseLicense
spark-cluster-deploymentApache License 2.0NoYou are required to make notes of changes you made.Software ProgrammerLicense
spark-cluster-deploymentApache License 2.0NoYou must retain all copyright, warranty, patent, trademark, and attribution notices and any NOTICE text files.Software ProgrammerLicense
-


-
- -
Identified Files
Resolution TypeDiscovery TypeFile/FolderSizeFile LineTotal LinesComponentVersionLicenseUsage%Matched FileMatched File LineFile/Folder CommentSearchDeprecated Component
IdentifiedCode Matchbin/build-all.sh1,569212spark-benchUnspecifiedApache License 2.0Original Code51%httpd-2.4.6/build/make_exports.awk1This is apache license 2 headerNo
IdentifiedCode Matchbin/functions/assert.sh959212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet62%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/color.disabled.sh2,507212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet30%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/color.enabled.sh2,988212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet24%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/color.sh1,138212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet55%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/execute_with_log.py4,943311Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet14%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl4apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/hibench_prop_env_mapping.py7,204311Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet7%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl4apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/load-bench-config.sh1,033212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet62%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/load-config.py31,584311Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet2%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl4apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/monitor.py37,396311Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet2%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl4apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/monitor_replot.py1,101311Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet54%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl4apache 2.0 license headerNo
IdentifiedCode Matchbin/functions/terminalsize.py2,8451875salt-debCreative Commons Attribution Share Alike 3.0Snippet82%0answer from stackoverflow, with Creative Commons Attribution share 3.0, no license conflict.No
IdentifiedCode Matchbin/functions/workload-functions.sh18,414212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet4%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3a successor project of hibenchNo
IdentifiedCode Matchbin/functions/workload-functions.sh18,41418429HiBench3.0.0Apache License 2.0File5%HiBench-HiBench-3.0.0.tar.gz/HiBench-HiBench-3.0.0/conf/funcs.sh84a successor project of hibenchNo
IdentifiedCode Matchbin/run-all.sh1,925212spark-benchUnspecifiedApache License 2.0Original Code31%httpd-2.4.6/build/make_exports.awk1This is apache license 2 headerNo
IdentifiedCode MatchLICENSE.txt11,927HiBenchApache License 2.0File100%0License fileNo
IdentifiedCode MatchREADME.md11,406731HiBenchApache License 2.0File17%0This is description for the same module. And no license conflicts.No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/BayesData.java4,895HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/Counters.java70HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/DataGen.java1,088HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/DataOptions.java5,383HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/Dummy.java1,211HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/HiveData.java18,756HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/HtmlCore.java9,299HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/IndexedMapFile.java1,176HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/JoinBytesInt.java1,456HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/NutchData.java16,975HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/NutchOutputFormat.java5,525HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/NutchParse.java778HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/PagerankData.java9,780HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/RawData.java7,600HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/References.java760HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/Utils.java10,171HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/Visit.java3,809HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/ZipfCore.java1,549HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/HiBench/Zipfian.java8,374HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/AccumulatingReducer.java3,516HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/Analyzer.java4,751HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/IOMapperBase.java4,630HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIO.java15,370HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIOEnh.java43,916HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/mahout/clustering/kmeans/GenKMeansDataset.java28,70949569HiBenchApache License 2.0File93%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/crawl/CrawlDatum.java17,556HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/crawl/Inlink.java2,465HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/crawl/Inlinks.java3,326HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/crawl/SignatureComparator.java1,745HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/metadata/Metadata.java6,917HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/metadata/Nutch.java2,598HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/parse/Outlink.java2,414HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/parse/Parse.java1,278HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/parse/ParseData.java2,979HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/parse/ParseStatus.java8,560HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/parse/ParseText.java2,126HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/autogen/src/main/java/org/apache/nutch/util/StringUtil.java4,871HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/hivebench/hive_template/conf/hive-site.xml438HiBench3.0.0Apache License 2.0File100%HiBench-HiBench-3.0.0.tar.gz/HiBench-HiBench-3.0.0/hivebench/hive/conf/hive-site.xml0No
IdentifiedCode Matchsrc/nutchindexing/nutch/conf/nutch-site-mr1.xml601HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/nutchindexing/nutch/conf/nutch-site-mr2.xml609HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/column_joiner/JoinTablePegasus.java7,140HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/con_cmpth/ConCmpt.java21,403HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/con_cmpth/ConCmptBlock.java22,053HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/con_cmpth/ConCmptIVGen.java6,679HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/degdist/DegDist.java8,561HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/hadi/Hadi.java39,711HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/hadi/HadiBlock.java25,045HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/hadi/HadiIVGen.java8,297HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/heigen/L1norm.java4,073HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/heigen/L1normBlock.java4,308HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/heigen/NormalizeVector.java3,506HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/heigen/Saxpy.java6,419HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/heigen/SaxpyBlock.java7,721HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/heigen/SaxpyTextoutput.java6,572HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/heigen/ScalarMult.java5,707HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/matvec/MatvecNaive.java11,055HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/matvec/MatvecPrep.java9,388HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/matvec/MatvecUtils.java1,953HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/pagerank/PagerankBlock.java19,010HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/pagerank/PagerankInitVector.java6,771HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/pagerank/PagerankNaive.java20,748HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/pagerank/PagerankPrep.java5,884HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/pegasus/GIMV.java19,658HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/pegasus/PegasusUtils.java17,946HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/rwr/RWRBlock.java20,898HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/pegasus/src/main/java/pegasus/rwr/RWRNaive.java22,342HiBenchApache License 2.0File100%0No
IdentifiedCode Matchsrc/sparkbench/src/main/java/org/apache/spark/examples/JavaPageRank.java5,1914179spark-cluster-deploymentmaster-20140819Apache License 2.0Snippet63%spark-cluster-deployment-master-20140819.tgz/adobe-research-spark-cluster-deployment-3097ae1/initial-deployment-puppet/modules/spark/files/spark/examples/src/main/java/org/apache/spark/examples/JavaPageRank.java42No
IdentifiedCode Matchsrc/sparkbench/src/main/java/org/apache/spark/examples/JavaWordCount.java2,9433638spark-cluster-deploymentmaster-20140819Apache License 2.0Snippet38%spark-cluster-deployment-master-20140819.tgz/adobe-research-spark-cluster-deployment-3097ae1/initial-deployment-puppet/modules/spark/files/spark/examples/src/main/java/org/apache/spark/examples/JavaWordCount.java33No
IdentifiedCode Matchsrc/sparkbench/src/main/java/org/apache/spark/examples/mllib/JavaKMeans.java3,5624029spark-cluster-deploymentmaster-20140819Apache License 2.0Snippet27%spark-cluster-deployment-master-20140819.tgz/adobe-research-spark-cluster-deployment-3097ae1/initial-deployment-puppet/modules/spark/files/spark/examples/src/main/java/org/apache/spark/examples/mllib/JavaKMeans.java37No
IdentifiedCode Matchsrc/sparkbench/src/main/python/bayes.py4,046212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet20%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchsrc/sparkbench/src/main/python/IOCommon/IOCommon.py3,338112Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet29%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3apache 2.0 license headerNo
IdentifiedCode Matchsrc/sparkbench/src/main/python/kmeans.py1,841212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet43%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchsrc/sparkbench/src/main/python/pagerank.py2,970212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet29%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3example codes copied from spark, no license conflict.No
IdentifiedCode Matchsrc/sparkbench/src/main/python/pagerank.py2,9702648Apache SparkApache License 2.0Snippet51%0example codes copied from spark, no license conflict.No
IdentifiedCode Matchsrc/sparkbench/src/main/python/python_spark_sql_bench.py1,450212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet46%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchsrc/sparkbench/src/main/python/sleep.py1,291212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet57%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchsrc/sparkbench/src/main/python/sort.py3,2642825Apache Spark1.1.0Apache License 2.0Snippet34%spark-1.1.0-bin-hadoop2.3.tgz/spark-1.1.0-bin-hadoop2.3/lib/spark-assembly-1.1.0-hadoop2.3.0.jar.---/pyspark/rdd.py572backport features from spark, no license conflict.No
IdentifiedCode Matchsrc/sparkbench/src/main/python/sort.py3,264212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet24%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3backport features from spark, no license conflict.No
IdentifiedCode Matchsrc/sparkbench/src/main/python/terasort.py2,094212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet38%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchsrc/sparkbench/src/main/python/wordcount.py1,387212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet57%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchsrc/sparkbench/src/main/scala/com/intel/sparkbench/datagen/RandomTextWriter.scala19,40187498read-hadoop-ddc4966trunk-20121208-svnApache License 2.0Snippet80%trunk-20121208-svn.tgz/trunk-20121208-svn/read-hadoop-1.0.1-ddc4966/hadoop/examples/org/apache/hadoop/examples/RandomTextWriter.java258Adopted from Hadoop example, no license exception.No
IdentifiedCode Matchsrc/sparkbench/src/main/scala/org/apache/spark/BaseRangePartitioner.scala6,97137138sparkUnspecifiedSnippet66%0Adopted from Spark example, no license exception.No
IdentifiedCode Matchsrc/sparkbench/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scala3,9255527sparkUnspecifiedSnippet29%0Adopted from Spark example, no license exception.No
IdentifiedCode Matchsrc/sparkbench/src/main/scala/org/apache/spark/examples/mllib/DenseKMeans.scala4,09727195sparkUnspecifiedSnippet50%0Adopted from Spark example, no license exception.No
IdentifiedCode Matchsrc/sparkbench/src/main/scala/org/apache/spark/examples/mllib/SparseNaiveBayes.scala5,15827199sparkUnspecifiedSnippet37%0Adopted from Spark example, no license exception.No
IdentifiedCode Matchsrc/sparkbench/src/main/scala/org/apache/spark/examples/SparkPageRank.scala2,7952842sparkUnspecifiedSnippet42%0Adopted from Spark example, no license exception.No
IdentifiedCode Matchsrc/streambench/samzabench/scripts/distinctcount.sh900212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet72%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3Apache License headerNo
IdentifiedCode Matchsrc/streambench/samzabench/scripts/grep.sh849212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet72%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3Apache License headerNo
IdentifiedCode Matchsrc/streambench/samzabench/scripts/identity.sh853212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet72%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3Apache License headerNo
IdentifiedCode Matchsrc/streambench/samzabench/scripts/project.sh852212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet72%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3Apache License headerNo
IdentifiedCode Matchsrc/streambench/samzabench/scripts/sample.sh851212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet72%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3Apache License headerNo
IdentifiedCode Matchsrc/streambench/samzabench/scripts/statistics.sh890212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet72%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3Apache License headerNo
IdentifiedCode Matchsrc/streambench/samzabench/scripts/wordcount.sh856212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet72%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3Apache License headerNo
IdentifiedCode Matchworkloads/aggregation/mapreduce/bin/run.sh1,647212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet36%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/aggregation/prepare/prepare.sh1,573212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet40%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/aggregation/spark/java/bin/run.sh1,509212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/aggregation/spark/python/bin/run.sh1,519212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet37%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/aggregation/spark/scala/bin/run.sh1,512212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet38%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/bayes/mapreduce/bin/run.sh2,207212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet32%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/bayes/prepare/prepare.sh1,483212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/bayes/spark/java/bin/run.sh1,610212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/bayes/spark/python/bin/run.sh1,624212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/bayes/spark/scala/bin/run.sh1,690212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet36%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/dfsioe/mapreduce/bin/run-read.sh2,280212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet26%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/dfsioe/mapreduce/bin/run-write.sh2,148212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet28%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/dfsioe/mapreduce/bin/run.sh955212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet57%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/dfsioe/prepare/prepare.sh1,704212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet37%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/dfsioe/spark/java/bin/run.sh1,197212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet47%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/dfsioe/spark/python/bin/run.sh1,199212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet47%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/dfsioe/spark/scala/bin/run.sh1,198212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet49%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/join/mapreduce/bin/run.sh1,643212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/join/prepare/prepare.sh1,566212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/join/spark/java/bin/run.sh1,508212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/join/spark/python/bin/run.sh1,509212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/join/spark/scala/bin/run.sh1,500212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet43%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/kmeans/mapreduce/bin/run.sh1,701212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet37%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/kmeans/prepare/prepare.sh2,373212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet23%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/kmeans/spark/java/bin/run.sh1,650212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet40%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/kmeans/spark/python/bin/run.sh1,592212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet40%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/kmeans/spark/scala/bin/run.sh1,705212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet38%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/nutchindexing/mapreduce/bin/run.sh2,062212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet31%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/nutchindexing/prepare/prepare.sh1,583212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/nutchindexing/spark/java/bin/run.sh1,212212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet47%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/nutchindexing/spark/python/bin/run.sh1,214212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet47%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/nutchindexing/spark/scala/bin/run.sh1,213212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet47%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/pagerank/mapreduce/bin/run.sh2,662212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet24%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/pagerank/prepare/prepare.sh1,610212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/pagerank/spark/java/bin/run.sh1,376212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet46%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/pagerank/spark/python/bin/run.sh1,374212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/pagerank/spark/scala/bin/run.sh1,376212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/scan/mapreduce/bin/run.sh1,642212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/scan/prepare/prepare.sh1,568212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/scan/spark/java/bin/run.sh1,495212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/scan/spark/python/bin/run.sh1,505212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/scan/spark/scala/bin/run.sh1,499212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet43%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sleep/mapreduce/bin/run.sh1,320212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sleep/prepare/prepare.sh1,176212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet46%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sleep/spark/java/bin/run.sh1,284212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sleep/spark/python/bin/run.sh1,283212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sleep/spark/scala/bin/run.sh1,290212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet46%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sort/mapreduce/bin/run.sh1,444212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sort/prepare/prepare.sh1,592212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet37%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sort/spark/java/bin/run.sh1,344212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sort/spark/python/bin/run.sh1,342212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet46%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/sort/spark/scala/bin/run.sh1,352212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet46%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/prepare/gendata.sh2,557212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet27%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/prepare/genSeedDataset.sh2,370212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet29%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/prepare/initTopic.sh2,605212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet28%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/prepare/zkUtils.sh1,881212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet32%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/samza/bin/run-one-workload.sh2,565212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet22%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/samza/bin/run.sh1,458212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet42%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/spark/bin/run.sh1,335212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet43%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/storm/bin/run.sh1,384212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet40%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/storm/bin/stop.sh1,466212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet40%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/trident/bin/run.sh1,394212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/streamingbench/trident/bin/stop.sh1,468212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/terasort/mapreduce/bin/run.sh1,513212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/terasort/prepare/prepare.sh1,365212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet43%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/terasort/spark/java/bin/run.sh1,358212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet46%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/terasort/spark/python/bin/run.sh1,352212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/terasort/spark/scala/bin/run.sh1,360212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet44%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/wordcount/mapreduce/bin/run.sh2,502212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet25%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/wordcount/prepare/prepare.sh1,475212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet39%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/wordcount/spark/java/bin/run.sh1,598212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet37%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/wordcount/spark/python/bin/run.sh1,356212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet43%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
IdentifiedCode Matchworkloads/wordcount/spark/scala/bin/run.sh1,363212Eclipse Software Development Kit (SDK)UnspecifiedUnspecifiedSnippet43%eclipse/plugins/org.apache.ant_1.8.4.v201303080030/bin/antRun.pl3No
-


-
- -
Excluded Components
ComponentLicenseComponent Comment
There are no excluded components in this project.
-


-
- -
Work History - Bill of Materials
ComponentVersionLast ContributionDeprecated Component
Apache SparkUnspecifiedMingfei Shi on 2015年4月28日 下午4:29No
Apache Spark1.1.0Mingfei Shi on 2015年4月28日 下午4:31No
Eclipse Software Development Kit (SDK)UnspecifiedMingfei Shi on 2015年9月25日 下午3:52No
HiBench3.0.0Mingfei Shi on 2015年4月28日 下午4:26No
HiBenchUnspecifiedMingfei Shi on 2015年9月25日 下午3:52No
read-hadoop-ddc4966trunk-20121208-svnMingfei Shi on 2015年9月25日 下午3:47No
salt-debUnspecifiedMingfei Shi on 2015年4月28日 下午4:23No
sparkUnspecifiedMingfei Shi on 2015年9月25日 下午3:49No
spark-benchUnspecifiedMingfei Shi on 2014年11月21日 下午2:26No
spark-cluster-deploymentmaster-20140819Mingfei Shi on 2015年4月28日 下午4:28No
-


-
- -
Work History - File Inventory
Full PathTypeLast ContributionFile Comment
.gitignoreFile
LICENSE.txtFileMingfei Shi on 2015年9月25日 下午3:52License file
README.mdFileMingfei Shi on 2014年11月21日 下午2:50This is description for the same module. And no license conflicts.
binFolder
bin/build-all.shFileMingfei Shi on 2014年11月21日 下午2:25This is apache license 2 header
bin/functionsFolder
bin/functions/assert.shFileMingfei Shi on 2015年4月28日 下午4:18apache 2.0 license header
bin/functions/chart-template.htmlFile
bin/functions/color.disabled.shFileMingfei Shi on 2015年4月28日 下午4:18apache 2.0 license header
bin/functions/color.enabled.shFileMingfei Shi on 2015年4月28日 下午4:18apache 2.0 license header
bin/functions/color.shFileMingfei Shi on 2015年4月28日 下午4:18apache 2.0 license header
bin/functions/execute_with_log.pyFileMingfei Shi on 2015年4月28日 下午4:19apache 2.0 license header
bin/functions/hibench_prop_env_mapping.pyFileMingfei Shi on 2015年4月28日 下午4:19apache 2.0 license header
bin/functions/load-bench-config.shFileMingfei Shi on 2015年4月28日 下午4:19apache 2.0 license header
bin/functions/load-config.pyFileMingfei Shi on 2015年4月28日 下午4:19apache 2.0 license header
bin/functions/monitor.pyFileMingfei Shi on 2015年4月28日 下午4:19apache 2.0 license header
bin/functions/monitor_replot.pyFileMingfei Shi on 2015年4月28日 下午4:20apache 2.0 license header
bin/functions/terminalsize.pyFileMingfei Shi on 2015年4月28日 下午4:23answer from stackoverflow, with Creative Commons Attribution share 3.0, no license conflict.
bin/functions/workload-functions.shFileMingfei Shi on 2015年4月28日 下午4:24a successor project of hibench
bin/report_gen_plot.pyFile
bin/run-all.shFileMingfei Shi on 2014年11月21日 下午2:26This is apache license 2 header
confFolder
conf/.gitignoreFile
conf/00-default-properties.confFile
conf/01-default-streamingbench.confFile
conf/10-data-scale-profile.confFile
conf/20-samza-common.confFile
conf/30-samza-workloads.confFile
conf/99-user_defined_properties.confFile
conf/99-user_defined_properties.conf.templateFile
conf/benchmarks.lstFile
conf/languages.lstFile
srcFolder
src/autogenFolder
src/autogen/pom.xmlFile
src/autogen/srcFolder
src/autogen/src/mainFolder
src/autogen/src/main/javaFolder
src/autogen/src/main/java/HiBenchFolderMingfei Shi on 2015年4月28日 下午4:25A successor project of HiBench
src/autogen/src/main/java/HiBench/BayesData.javaFile
src/autogen/src/main/java/HiBench/Counters.javaFile
src/autogen/src/main/java/HiBench/DataGen.javaFile
src/autogen/src/main/java/HiBench/DataOptions.javaFile
src/autogen/src/main/java/HiBench/Dummy.javaFile
src/autogen/src/main/java/HiBench/HiveData.javaFile
src/autogen/src/main/java/HiBench/HtmlCore.javaFile
src/autogen/src/main/java/HiBench/IndexedMapFile.javaFile
src/autogen/src/main/java/HiBench/JoinBytesInt.javaFile
src/autogen/src/main/java/HiBench/NutchData.javaFile
src/autogen/src/main/java/HiBench/NutchOutputFormat.javaFile
src/autogen/src/main/java/HiBench/NutchParse.javaFile
src/autogen/src/main/java/HiBench/PagerankData.javaFile
src/autogen/src/main/java/HiBench/RawData.javaFile
src/autogen/src/main/java/HiBench/References.javaFile
src/autogen/src/main/java/HiBench/Utils.javaFile
src/autogen/src/main/java/HiBench/Visit.javaFile
src/autogen/src/main/java/HiBench/ZipfCore.javaFile
src/autogen/src/main/java/HiBench/Zipfian.javaFile
src/autogen/src/main/java/orgFolderMingfei Shi on 2015年4月28日 下午4:26A successor project of HiBench
src/autogen/src/main/java/org/apacheFolder
src/autogen/src/main/java/org/apache/hadoopFolder
src/autogen/src/main/java/org/apache/hadoop/fsFolder
src/autogen/src/main/java/org/apache/hadoop/fs/dfsioeFolder
src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/AccumulatingReducer.javaFile
src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/Analyzer.javaFile
src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/IOMapperBase.javaFile
src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIO.javaFile
src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIOEnh.javaFile
src/autogen/src/main/java/org/apache/mahoutFolder
src/autogen/src/main/java/org/apache/mahout/clusteringFolder
src/autogen/src/main/java/org/apache/mahout/clustering/kmeansFolder
src/autogen/src/main/java/org/apache/mahout/clustering/kmeans/GenKMeansDataset.javaFile
src/autogen/src/main/java/org/apache/nutchFolder
src/autogen/src/main/java/org/apache/nutch/crawlFolder
src/autogen/src/main/java/org/apache/nutch/crawl/CrawlDatum.javaFile
src/autogen/src/main/java/org/apache/nutch/crawl/Inlink.javaFile
src/autogen/src/main/java/org/apache/nutch/crawl/Inlinks.javaFile
src/autogen/src/main/java/org/apache/nutch/crawl/SignatureComparator.javaFile
src/autogen/src/main/java/org/apache/nutch/metadataFolder
src/autogen/src/main/java/org/apache/nutch/metadata/Metadata.javaFile
src/autogen/src/main/java/org/apache/nutch/metadata/Nutch.javaFile
src/autogen/src/main/java/org/apache/nutch/parseFolder
src/autogen/src/main/java/org/apache/nutch/parse/Outlink.javaFile
src/autogen/src/main/java/org/apache/nutch/parse/Parse.javaFile
src/autogen/src/main/java/org/apache/nutch/parse/ParseData.javaFile
src/autogen/src/main/java/org/apache/nutch/parse/ParseStatus.javaFile
src/autogen/src/main/java/org/apache/nutch/parse/ParseText.javaFile
src/autogen/src/main/java/org/apache/nutch/utilFolder
src/autogen/src/main/java/org/apache/nutch/util/StringUtil.javaFile
src/hivebenchFolderMingfei Shi on 2015年4月28日 下午4:26A successor project of HiBench
src/hivebench/hive_templateFolder
src/hivebench/hive_template/binFolder
src/hivebench/hive_template/bin/hiveFile
src/hivebench/hive_template/confFolder
src/hivebench/hive_template/conf/hive-site.xmlFile
src/hivebench/pom.xmlFile
src/mahoutFolder
src/mahout/pom.xmlFile
src/nutchindexingFolderMingfei Shi on 2015年4月28日 下午4:26A successor project of HiBench
src/nutchindexing/nutchFolder
src/nutchindexing/nutch/binFolder
src/nutchindexing/nutch/bin/nutchFile
src/nutchindexing/nutch/confFolder
src/nutchindexing/nutch/conf/nutch-site-mr1.xmlFile
src/nutchindexing/nutch/conf/nutch-site-mr2.xmlFile
src/nutchindexing/pom.xmlFile
src/pegasusFolderMingfei Shi on 2015年4月28日 下午4:27A successor project of HiBench
src/pegasus/pom.xmlFile
src/pegasus/srcFolder
src/pegasus/src/mainFolder
src/pegasus/src/main/javaFolder
src/pegasus/src/main/java/pegasusFolder
src/pegasus/src/main/java/pegasus/column_joinerFolder
src/pegasus/src/main/java/pegasus/column_joiner/JoinTablePegasus.javaFile
src/pegasus/src/main/java/pegasus/con_cmpthFolder
src/pegasus/src/main/java/pegasus/con_cmpth/ConCmpt.javaFile
src/pegasus/src/main/java/pegasus/con_cmpth/ConCmptBlock.javaFile
src/pegasus/src/main/java/pegasus/con_cmpth/ConCmptIVGen.javaFile
src/pegasus/src/main/java/pegasus/degdistFolder
src/pegasus/src/main/java/pegasus/degdist/DegDist.javaFile
src/pegasus/src/main/java/pegasus/hadiFolder
src/pegasus/src/main/java/pegasus/hadi/Hadi.javaFile
src/pegasus/src/main/java/pegasus/hadi/HadiBlock.javaFile
src/pegasus/src/main/java/pegasus/hadi/HadiIVGen.javaFile
src/pegasus/src/main/java/pegasus/heigenFolder
src/pegasus/src/main/java/pegasus/heigen/L1norm.javaFile
src/pegasus/src/main/java/pegasus/heigen/L1normBlock.javaFile
src/pegasus/src/main/java/pegasus/heigen/NormalizeVector.javaFile
src/pegasus/src/main/java/pegasus/heigen/Saxpy.javaFile
src/pegasus/src/main/java/pegasus/heigen/SaxpyBlock.javaFile
src/pegasus/src/main/java/pegasus/heigen/SaxpyTextoutput.javaFile
src/pegasus/src/main/java/pegasus/heigen/ScalarMult.javaFile
src/pegasus/src/main/java/pegasus/matvecFolder
src/pegasus/src/main/java/pegasus/matvec/MatvecNaive.javaFile
src/pegasus/src/main/java/pegasus/matvec/MatvecPrep.javaFile
src/pegasus/src/main/java/pegasus/matvec/MatvecUtils.javaFile
src/pegasus/src/main/java/pegasus/pagerankFolder
src/pegasus/src/main/java/pegasus/pagerank/PagerankBlock.javaFile
src/pegasus/src/main/java/pegasus/pagerank/PagerankInitVector.javaFile
src/pegasus/src/main/java/pegasus/pagerank/PagerankNaive.javaFile
src/pegasus/src/main/java/pegasus/pagerank/PagerankPrep.javaFile
src/pegasus/src/main/java/pegasus/pegasusFolder
src/pegasus/src/main/java/pegasus/pegasus/GIMV.javaFile
src/pegasus/src/main/java/pegasus/pegasus/PegasusUtils.javaFile
src/pegasus/src/main/java/pegasus/rwrFolder
src/pegasus/src/main/java/pegasus/rwr/RWRBlock.javaFile
src/pegasus/src/main/java/pegasus/rwr/RWRNaive.javaFile
src/pom.xmlFile
src/sparkbenchFolder
src/sparkbench/pom.xmlFile
src/sparkbench/srcFolder
src/sparkbench/src/mainFolder
src/sparkbench/src/main/javaFolder
src/sparkbench/src/main/java/comFolder
src/sparkbench/src/main/java/com/intelFolder
src/sparkbench/src/main/java/com/intel/sparkbenchFolder
src/sparkbench/src/main/java/com/intel/sparkbench/IOCommonWrap.javaFile
src/sparkbench/src/main/java/com/intel/sparkbench/JavaBayes.javaFile
src/sparkbench/src/main/java/com/intel/sparkbench/JavaSleep.javaFile
src/sparkbench/src/main/java/com/intel/sparkbench/JavaSort.javaFile
src/sparkbench/src/main/java/orgFolder
src/sparkbench/src/main/java/org/apacheFolder
src/sparkbench/src/main/java/org/apache/sparkFolder
src/sparkbench/src/main/java/org/apache/spark/examplesFolderMingfei Shi on 2015年4月28日 下午4:28example codes copied from spark, no license conflict.
src/sparkbench/src/main/java/org/apache/spark/examples/JavaPageRank.javaFile
src/sparkbench/src/main/java/org/apache/spark/examples/JavaWordCount.javaFile
src/sparkbench/src/main/java/org/apache/spark/examples/mllibFolder
src/sparkbench/src/main/java/org/apache/spark/examples/mllib/JavaKMeans.javaFile
src/sparkbench/src/main/pythonFolderMingfei Shi on 2015年4月28日 下午4:29apache 2.0 license header
src/sparkbench/src/main/python/IOCommonFolder
src/sparkbench/src/main/python/IOCommon/IOCommon.pyFileMingfei Shi on 2015年4月28日 下午4:28apache 2.0 license header
src/sparkbench/src/main/python/IOCommon/__init__.pyFile
src/sparkbench/src/main/python/bayes.pyFile
src/sparkbench/src/main/python/kmeans.pyFile
src/sparkbench/src/main/python/pagerank.pyFileMingfei Shi on 2015年4月28日 下午4:29example codes copied from spark, no license conflict.
src/sparkbench/src/main/python/python_spark_sql_bench.pyFile
src/sparkbench/src/main/python/sleep.pyFile
src/sparkbench/src/main/python/sort.pyFileMingfei Shi on 2015年4月28日 下午4:31backport features from spark, no license conflict.
src/sparkbench/src/main/python/terasort.pyFile
src/sparkbench/src/main/python/wordcount.pyFile
src/sparkbench/src/main/scalaFolder
src/sparkbench/src/main/scala/comFolder
src/sparkbench/src/main/scala/com/intelFolder
src/sparkbench/src/main/scala/com/intel/sparkbenchFolder
src/sparkbench/src/main/scala/com/intel/sparkbench/IOCommon.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSleep.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSort.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSparkSQLBench.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaWordCount.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/datagenFolder
src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/RandomTextWriter.scalaFileMingfei Shi on 2015年9月25日 下午3:47Adopted from Hadoop example, no license exception.
src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convertFolder
src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/BayesConvert.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/KmeansConvert.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/PagerankConvert.scalaFile
src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/pythonconverterFolder
src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/pythonconverter/MahoutVectorToStringConverter.scalaFile
src/sparkbench/src/main/scala/orgFolder
src/sparkbench/src/main/scala/org/apacheFolder
src/sparkbench/src/main/scala/org/apache/sparkFolder
src/sparkbench/src/main/scala/org/apache/spark/BaseRangePartitioner.scalaFileMingfei Shi on 2015年9月25日 下午3:49Adopted from Spark example, no license exception.
src/sparkbench/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scalaFileMingfei Shi on 2015年9月25日 下午3:49Adopted from Spark example, no license exception.
src/sparkbench/src/main/scala/org/apache/spark/examplesFolder
src/sparkbench/src/main/scala/org/apache/spark/examples/SparkPageRank.scalaFileMingfei Shi on 2015年9月25日 下午3:49Adopted from Spark example, no license exception.
src/sparkbench/src/main/scala/org/apache/spark/examples/mllibFolder
src/sparkbench/src/main/scala/org/apache/spark/examples/mllib/DenseKMeans.scalaFileMingfei Shi on 2015年9月25日 下午3:48Adopted from Spark example, no license exception.
src/sparkbench/src/main/scala/org/apache/spark/examples/mllib/SparseNaiveBayes.scalaFileMingfei Shi on 2015年9月25日 下午3:48Adopted from Spark example, no license exception.
src/sparkbench/src/multiapiFolder
src/sparkbench/src/multiapi/javaFolder
src/sparkbench/src/multiapi/java/comFolder
src/sparkbench/src/multiapi/java/com/intelFolder
src/sparkbench/src/multiapi/java/com/intel/sparkbenchFolder
src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR1Folder
src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR1/JavaTeraSort.javaFile
src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR2Folder
src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR2/JavaTeraSort.javaFile
src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.2Folder
src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.2/JavaSparkSQLBench.javaFile
src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.3Folder
src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.3/JavaSparkSQLBench.javaFile
src/sparkbench/src/multiapi/scalaFolder
src/sparkbench/src/multiapi/scala/comFolder
src/sparkbench/src/multiapi/scala/com/intelFolder
src/sparkbench/src/multiapi/scala/com/intel/sparkbenchFolder
src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR1Folder
src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR1/ScalaTeraSort.scalaFile
src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR2Folder
src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR2/ScalaTeraSort.scalaFile
src/streambenchFolder
src/streambench/datagenFolder
src/streambench/datagen/libFolder
src/streambench/datagen/lib/kafka-clients-0.8.1.jarFile
src/streambench/datagen/pom.xmlFile
src/streambench/datagen/srcFolder
src/streambench/datagen/src/mainFolder
src/streambench/datagen/src/main/javaFolder
src/streambench/datagen/src/main/java/comFolder
src/streambench/datagen/src/main/java/com/intelFolder
src/streambench/datagen/src/main/java/com/intel/hibenchFolder
src/streambench/datagen/src/main/java/com/intel/hibench/streambenchFolder
src/streambench/datagen/src/main/java/com/intel/hibench/streambench/FileDataGenNew.javaFile
src/streambench/datagen/src/main/java/com/intel/hibench/streambench/NewKafkaConnector.javaFile
src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartNew.javaFile
src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartPeriodic.javaFile
src/streambench/datagen/src/main/java/com/intel/hibench/streambench/utilsFolder
src/streambench/datagen/src/main/java/com/intel/hibench/streambench/utils/ConfigLoader.javaFile
src/streambench/datagen/src/main/resourcesFolder
src/streambench/datagen/src/main/resources/.gitignoreFile
src/streambench/pom.xmlFile
src/streambench/samzabenchFolder
src/streambench/samzabench/pom.xmlFile
src/streambench/samzabench/scriptsFolder
src/streambench/samzabench/scripts/distinctcount.shFileMingfei Shi on 2015年9月25日 下午3:50Apache License header
src/streambench/samzabench/scripts/grep.shFileMingfei Shi on 2015年9月25日 下午3:51Apache License header
src/streambench/samzabench/scripts/identity.shFileMingfei Shi on 2015年9月25日 下午3:51Apache License header
src/streambench/samzabench/scripts/project.shFileMingfei Shi on 2015年9月25日 下午3:51Apache License header
src/streambench/samzabench/scripts/sample.shFileMingfei Shi on 2015年9月25日 下午3:51Apache License header
src/streambench/samzabench/scripts/statistics.shFileMingfei Shi on 2015年9月25日 下午3:52Apache License header
src/streambench/samzabench/scripts/wordcount.shFileMingfei Shi on 2015年9月25日 下午3:52Apache License header
src/streambench/samzabench/srcFolder
src/streambench/samzabench/src/assemblyFolder
src/streambench/samzabench/src/assembly/src.xmlFile
src/streambench/samzabench/src/mainFolder
src/streambench/samzabench/src/main/javaFolder
src/streambench/samzabench/src/main/java/comFolder
src/streambench/samzabench/src/main/java/com/intelFolder
src/streambench/samzabench/src/main/java/com/intel/hibenchFolder
src/streambench/samzabench/src/main/java/com/intel/hibench/streambenchFolder
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samzaFolder
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/metricsFolder
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/metrics/CountMetrics.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/microFolder
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/CommonArg.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/DistinctCount.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForDistinctcount.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForStatistics.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Grep.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Identity.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Projection.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Sample.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Split.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Statistics.javaFile
src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/WordCount.javaFile
src/streambench/samzabench/src/resourcesFolder
src/streambench/samzabench/src/resources/log4j.xmlFile
src/streambench/sparkbenchFolder
src/streambench/sparkbench/pom.xmlFile
src/streambench/sparkbench/srcFolder
src/streambench/sparkbench/src/mainFolder
src/streambench/sparkbench/src/main/javaFolder
src/streambench/sparkbench/src/main/java/comFolder
src/streambench/sparkbench/src/main/java/com/intelFolder
src/streambench/sparkbench/src/main/java/com/intel/hibenchFolder
src/streambench/sparkbench/src/main/java/com/intel/hibench/streambenchFolder
src/streambench/sparkbench/src/main/java/com/intel/hibench/streambench/sparkFolder
src/streambench/sparkbench/src/main/java/com/intel/hibench/streambench/spark/ConfigLoader.javaFile
src/streambench/sparkbench/src/main/resourceFolder
src/streambench/sparkbench/src/main/resource/config.propertiesFile
src/streambench/sparkbench/src/main/scalaFolder
src/streambench/sparkbench/src/main/scala/comFolder
src/streambench/sparkbench/src/main/scala/com/intelFolder
src/streambench/sparkbench/src/main/scala/com/intel/hibenchFolder
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambenchFolder
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/sparkFolder
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/RunBench.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/TestKafka.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/TestKafka2.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/entityFolder
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/entity/ParamEntity.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbenchFolder
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/DistinctCountJob.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/GrepStreamJob.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/IdentityJob.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/NumericCalcJob.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/RunBenchWithInit.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SampleStreamJob.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SpoutTops.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/StreamProjectionJob.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/Wordcount.scalaFile
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/utilFolder
src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/util/LogUtil.scalaFile
src/streambench/sparkbench/src/multiapiFolder
src/streambench/sparkbench/src/multiapi/scalaFolder
src/streambench/sparkbench/src/multiapi/scala/spark1.3Folder
src/streambench/sparkbench/src/multiapi/scala/spark1.3/LatencyCollector.scalaFile
src/streambench/sparkbench/src/multiapi/scala/spark1.4Folder
src/streambench/sparkbench/src/multiapi/scala/spark1.4/LatencyCollector.scalaFile
src/streambench/stormbenchFolder
src/streambench/stormbench/pom.xmlFile
src/streambench/stormbench/srcFolder
src/streambench/stormbench/src/mainFolder
src/streambench/stormbench/src/main/javaFolder
src/streambench/stormbench/src/main/java/comFolder
src/streambench/stormbench/src/main/java/com/intelFolder
src/streambench/stormbench/src/main/java/com/intel/hibenchFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambenchFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/stormFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/RunBench.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metricsFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/Reporter.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/StatFacade.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/microFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/DistinctCount.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/GrepStream.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Identity.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/NumericCalc.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/NumericCalcSep.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/ProjectStream.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/ProjectStreamBolt.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SampleStream.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SplitStreamBolt.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Wordcount.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spoutFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/ConstructSpoutUtil.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/KafkaSpoutFactory.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologiesFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractStormSpoutTops.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractTridentSpoutTops.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleSpoutTops.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleTridentSpoutTops.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/tridentFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/Sketch.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentDistinctCount.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentGrep.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentIdentity.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentNumericCalc.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentProject.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentSample.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentWordcount.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/utilFolder
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/BenchLogUtil.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/ConfigLoader.javaFile
src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/StormBenchConfig.javaFile
src/streambench/stormbench/src/main/thriftFolder
src/streambench/stormbench/src/main/thrift/storm.thriftFile
src/streambench/zkHelperFolder
src/streambench/zkHelper/pom.xmlFile
src/streambench/zkHelper/srcFolder
src/streambench/zkHelper/src/mainFolder
src/streambench/zkHelper/src/main/comFolder
src/streambench/zkHelper/src/main/com/intelFolder
src/streambench/zkHelper/src/main/com/intel/hibenchFolder
src/streambench/zkHelper/src/main/com/intel/hibench/streambenchFolder
src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelperFolder
src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/OffsetResetUpdater.javaFile
src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKStringSerializer.javaFile
src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKUtil.javaFile
workloadsFolderMingfei Shi on 2015年4月28日 下午4:32apache 2.0 license header
workloads/aggregationFolder
workloads/aggregation/confFolder
workloads/aggregation/conf/00-aggregation-default.confFile
workloads/aggregation/conf/10-aggregation-userdefine.confFile
workloads/aggregation/mapreduceFolder
workloads/aggregation/mapreduce/binFolder
workloads/aggregation/mapreduce/bin/run.shFile
workloads/aggregation/mapreduce/hadoop.confFile
workloads/aggregation/prepareFolder
workloads/aggregation/prepare/prepare.shFile
workloads/aggregation/sparkFolder
workloads/aggregation/spark/javaFolder
workloads/aggregation/spark/java/binFolder
workloads/aggregation/spark/java/bin/run.shFile
workloads/aggregation/spark/java/java.confFile
workloads/aggregation/spark/pythonFolder
workloads/aggregation/spark/python/binFolder
workloads/aggregation/spark/python/bin/run.shFile
workloads/aggregation/spark/python/python.confFile
workloads/aggregation/spark/scalaFolder
workloads/aggregation/spark/scala/binFolder
workloads/aggregation/spark/scala/bin/run.shFile
workloads/aggregation/spark/scala/scala.confFile
workloads/bayesFolder
workloads/bayes/confFolder
workloads/bayes/conf/00-bayes-default.confFile
workloads/bayes/conf/10-bayes-userdefine.confFile
workloads/bayes/mapreduceFolder
workloads/bayes/mapreduce/binFolder
workloads/bayes/mapreduce/bin/run.shFile
workloads/bayes/mapreduce/hadoop.confFile
workloads/bayes/prepareFolder
workloads/bayes/prepare/prepare.shFile
workloads/bayes/sparkFolder
workloads/bayes/spark/javaFolder
workloads/bayes/spark/java/binFolder
workloads/bayes/spark/java/bin/run.shFile
workloads/bayes/spark/java/java.confFile
workloads/bayes/spark/pythonFolder
workloads/bayes/spark/python/binFolder
workloads/bayes/spark/python/bin/run.shFile
workloads/bayes/spark/python/python.confFile
workloads/bayes/spark/scalaFolder
workloads/bayes/spark/scala/binFolder
workloads/bayes/spark/scala/bin/run.shFile
workloads/bayes/spark/scala/scala.confFile
workloads/dfsioeFolder
workloads/dfsioe/confFolder
workloads/dfsioe/conf/00-dfsioe-default.confFile
workloads/dfsioe/conf/10-dfsioe-userdefine.confFile
workloads/dfsioe/mapreduceFolder
workloads/dfsioe/mapreduce/binFolder
workloads/dfsioe/mapreduce/bin/run-read.shFile
workloads/dfsioe/mapreduce/bin/run-write.shFile
workloads/dfsioe/mapreduce/bin/run.shFile
workloads/dfsioe/mapreduce/hadoop.confFile
workloads/dfsioe/prepareFolder
workloads/dfsioe/prepare/prepare.shFile
workloads/dfsioe/sparkFolder
workloads/dfsioe/spark/javaFolder
workloads/dfsioe/spark/java/binFolder
workloads/dfsioe/spark/java/bin/run.shFile
workloads/dfsioe/spark/java/java.confFile
workloads/dfsioe/spark/pythonFolder
workloads/dfsioe/spark/python/binFolder
workloads/dfsioe/spark/python/bin/run.shFile
workloads/dfsioe/spark/python/python.confFile
workloads/dfsioe/spark/scalaFolder
workloads/dfsioe/spark/scala/binFolder
workloads/dfsioe/spark/scala/bin/run.shFile
workloads/dfsioe/spark/scala/scala.confFile
workloads/joinFolder
workloads/join/confFolder
workloads/join/conf/00-join-default.confFile
workloads/join/conf/10-join-userdefine.confFile
workloads/join/mapreduceFolder
workloads/join/mapreduce/binFolder
workloads/join/mapreduce/bin/run.shFile
workloads/join/mapreduce/hadoop.confFile
workloads/join/prepareFolder
workloads/join/prepare/prepare.shFile
workloads/join/sparkFolder
workloads/join/spark/javaFolder
workloads/join/spark/java/binFolder
workloads/join/spark/java/bin/run.shFile
workloads/join/spark/java/java.confFile
workloads/join/spark/pythonFolder
workloads/join/spark/python/binFolder
workloads/join/spark/python/bin/run.shFile
workloads/join/spark/python/python.confFile
workloads/join/spark/scalaFolder
workloads/join/spark/scala/binFolder
workloads/join/spark/scala/bin/run.shFile
workloads/join/spark/scala/scala.confFile
workloads/kmeansFolder
workloads/kmeans/confFolder
workloads/kmeans/conf/00-kmeans-default.confFile
workloads/kmeans/conf/10-kmeans-userdefine.confFile
workloads/kmeans/mapreduceFolder
workloads/kmeans/mapreduce/binFolder
workloads/kmeans/mapreduce/bin/run.shFile
workloads/kmeans/mapreduce/hadoop.confFile
workloads/kmeans/prepareFolder
workloads/kmeans/prepare/prepare.shFile
workloads/kmeans/sparkFolder
workloads/kmeans/spark/javaFolder
workloads/kmeans/spark/java/binFolder
workloads/kmeans/spark/java/bin/run.shFile
workloads/kmeans/spark/java/java.confFile
workloads/kmeans/spark/pythonFolder
workloads/kmeans/spark/python/binFolder
workloads/kmeans/spark/python/bin/run.shFile
workloads/kmeans/spark/python/python.confFile
workloads/kmeans/spark/scalaFolder
workloads/kmeans/spark/scala/binFolder
workloads/kmeans/spark/scala/bin/run.shFile
workloads/kmeans/spark/scala/scala.confFile
workloads/nutchindexingFolder
workloads/nutchindexing/confFolder
workloads/nutchindexing/conf/00-nutchindexing-default.confFile
workloads/nutchindexing/conf/10-nutchindexing-userdefine.confFile
workloads/nutchindexing/mapreduceFolder
workloads/nutchindexing/mapreduce/binFolder
workloads/nutchindexing/mapreduce/bin/run.shFile
workloads/nutchindexing/mapreduce/hadoop.confFile
workloads/nutchindexing/prepareFolder
workloads/nutchindexing/prepare/prepare.shFile
workloads/nutchindexing/sparkFolder
workloads/nutchindexing/spark/javaFolder
workloads/nutchindexing/spark/java/binFolder
workloads/nutchindexing/spark/java/bin/run.shFile
workloads/nutchindexing/spark/java/java.confFile
workloads/nutchindexing/spark/pythonFolder
workloads/nutchindexing/spark/python/binFolder
workloads/nutchindexing/spark/python/bin/run.shFile
workloads/nutchindexing/spark/python/python.confFile
workloads/nutchindexing/spark/scalaFolder
workloads/nutchindexing/spark/scala/binFolder
workloads/nutchindexing/spark/scala/bin/run.shFile
workloads/nutchindexing/spark/scala/scala.confFile
workloads/pagerankFolder
workloads/pagerank/confFolder
workloads/pagerank/conf/00-pagerank-default.confFile
workloads/pagerank/conf/10-pagerank-userdefine.confFile
workloads/pagerank/conf/properties.confFile
workloads/pagerank/mapreduceFolder
workloads/pagerank/mapreduce/binFolder
workloads/pagerank/mapreduce/bin/run.shFile
workloads/pagerank/mapreduce/hadoop.confFile
workloads/pagerank/prepareFolder
workloads/pagerank/prepare/prepare.shFile
workloads/pagerank/sparkFolder
workloads/pagerank/spark/javaFolder
workloads/pagerank/spark/java/binFolder
workloads/pagerank/spark/java/bin/run.shFile
workloads/pagerank/spark/java/java.confFile
workloads/pagerank/spark/pythonFolder
workloads/pagerank/spark/python/binFolder
workloads/pagerank/spark/python/bin/run.shFile
workloads/pagerank/spark/python/python.confFile
workloads/pagerank/spark/scalaFolder
workloads/pagerank/spark/scala/binFolder
workloads/pagerank/spark/scala/bin/run.shFile
workloads/pagerank/spark/scala/scala.confFile
workloads/scanFolder
workloads/scan/confFolder
workloads/scan/conf/00-scan-default.confFile
workloads/scan/conf/10-scan-userdefine.confFile
workloads/scan/mapreduceFolder
workloads/scan/mapreduce/binFolder
workloads/scan/mapreduce/bin/run.shFile
workloads/scan/mapreduce/hadoop.confFile
workloads/scan/prepareFolder
workloads/scan/prepare/prepare.shFile
workloads/scan/sparkFolder
workloads/scan/spark/javaFolder
workloads/scan/spark/java/binFolder
workloads/scan/spark/java/bin/run.shFile
workloads/scan/spark/java/java.confFile
workloads/scan/spark/pythonFolder
workloads/scan/spark/python/binFolder
workloads/scan/spark/python/bin/run.shFile
workloads/scan/spark/python/python.confFile
workloads/scan/spark/scalaFolder
workloads/scan/spark/scala/binFolder
workloads/scan/spark/scala/bin/run.shFile
workloads/scan/spark/scala/scala.confFile
workloads/sleepFolder
workloads/sleep/confFolder
workloads/sleep/conf/00-sleep-default.confFile
workloads/sleep/conf/10-sleep-userdefine.confFile
workloads/sleep/mapreduceFolder
workloads/sleep/mapreduce/binFolder
workloads/sleep/mapreduce/bin/run.shFile
workloads/sleep/mapreduce/hadoop.confFile
workloads/sleep/prepareFolder
workloads/sleep/prepare/prepare.shFile
workloads/sleep/sparkFolder
workloads/sleep/spark/javaFolder
workloads/sleep/spark/java/binFolder
workloads/sleep/spark/java/bin/run.shFile
workloads/sleep/spark/java/java.confFile
workloads/sleep/spark/pythonFolder
workloads/sleep/spark/python/binFolder
workloads/sleep/spark/python/bin/run.shFile
workloads/sleep/spark/python/python.confFile
workloads/sleep/spark/scalaFolder
workloads/sleep/spark/scala/binFolder
workloads/sleep/spark/scala/bin/run.shFile
workloads/sleep/spark/scala/scala.confFile
workloads/sortFolder
workloads/sort/confFolder
workloads/sort/conf/00-sort-default.confFile
workloads/sort/conf/10-sort-userdefine.confFile
workloads/sort/mapreduceFolder
workloads/sort/mapreduce/binFolder
workloads/sort/mapreduce/bin/run.shFile
workloads/sort/mapreduce/hadoop.confFile
workloads/sort/prepareFolder
workloads/sort/prepare/prepare.shFile
workloads/sort/sparkFolder
workloads/sort/spark/javaFolder
workloads/sort/spark/java/binFolder
workloads/sort/spark/java/bin/run.shFile
workloads/sort/spark/java/java.confFile
workloads/sort/spark/pythonFolder
workloads/sort/spark/python/binFolder
workloads/sort/spark/python/bin/run.shFile
workloads/sort/spark/python/python.confFile
workloads/sort/spark/scalaFolder
workloads/sort/spark/scala/binFolder
workloads/sort/spark/scala/bin/run.shFile
workloads/sort/spark/scala/scala.confFile
workloads/streamingbenchFolder
workloads/streamingbench/confFolder
workloads/streamingbench/conf/00-streamingbench.confFile
workloads/streamingbench/conf/10-streamingbench-userdefine.confFile
workloads/streamingbench/prepareFolder
workloads/streamingbench/prepare/genSeedDataset.shFile
workloads/streamingbench/prepare/gendata.shFile
workloads/streamingbench/prepare/initTopic.shFile
workloads/streamingbench/prepare/zkUtils.shFile
workloads/streamingbench/samzaFolder
workloads/streamingbench/samza/binFolder
workloads/streamingbench/samza/bin/run-one-workload.shFile
workloads/streamingbench/samza/bin/run.shFile
workloads/streamingbench/sparkFolder
workloads/streamingbench/spark/binFolder
workloads/streamingbench/spark/bin/run.shFile
workloads/streamingbench/stormFolder
workloads/streamingbench/storm/binFolder
workloads/streamingbench/storm/bin/run.shFile
workloads/streamingbench/storm/bin/stop.shFile
workloads/streamingbench/tridentFolder
workloads/streamingbench/trident/binFolder
workloads/streamingbench/trident/bin/run.shFile
workloads/streamingbench/trident/bin/stop.shFile
workloads/terasortFolder
workloads/terasort/confFolder
workloads/terasort/conf/00-terasort-default.confFile
workloads/terasort/conf/10-terasort-userdefine.confFile
workloads/terasort/mapreduceFolder
workloads/terasort/mapreduce/binFolder
workloads/terasort/mapreduce/bin/run.shFile
workloads/terasort/mapreduce/hadoop.confFile
workloads/terasort/prepareFolder
workloads/terasort/prepare/prepare.shFile
workloads/terasort/sparkFolder
workloads/terasort/spark/javaFolder
workloads/terasort/spark/java/binFolder
workloads/terasort/spark/java/bin/run.shFile
workloads/terasort/spark/java/java.confFile
workloads/terasort/spark/pythonFolder
workloads/terasort/spark/python/binFolder
workloads/terasort/spark/python/bin/run.shFile
workloads/terasort/spark/python/python.confFile
workloads/terasort/spark/scalaFolder
workloads/terasort/spark/scala/binFolder
workloads/terasort/spark/scala/bin/run.shFile
workloads/terasort/spark/scala/scala.confFile
workloads/wordcountFolder
workloads/wordcount/confFolder
workloads/wordcount/conf/00-wordcount-default.confFile
workloads/wordcount/conf/10-wordcount-userdefine.confFile
workloads/wordcount/mapreduceFolder
workloads/wordcount/mapreduce/binFolder
workloads/wordcount/mapreduce/bin/run.shFile
workloads/wordcount/mapreduce/hadoop.confFile
workloads/wordcount/prepareFolder
workloads/wordcount/prepare/prepare.shFile
workloads/wordcount/sparkFolder
workloads/wordcount/spark/javaFolder
workloads/wordcount/spark/java/binFolder
workloads/wordcount/spark/java/bin/run.shFile
workloads/wordcount/spark/java/java.confFile
workloads/wordcount/spark/pythonFolder
workloads/wordcount/spark/python/binFolder
workloads/wordcount/spark/python/bin/run.shFile
workloads/wordcount/spark/python/python.confFile
workloads/wordcount/spark/scalaFolder
workloads/wordcount/spark/scala/binFolder
workloads/wordcount/spark/scala/bin/run.shFile
workloads/wordcount/spark/scala/scala.confFile
-


-
- -
Potential Bill of Materials
Approval StatusComponentVersionLicenseUsageComponent CommentDeprecated Component
There is no potential bill of materials for this project.
-


-
- -
Searches
SearchID RequiredFileSizeLineMatch
There are no searches in this project.
-
ConfidentialFor Internal Use Only
DISCLAIMERThis report was created using Black Duck(TM) Protex software compliance management products and services. The results contained in the report reflect the user's analysis and decision making. Recipient of the results bears all of the risks relating to use of, or reliance upon, such results or any other content contained in this report. Black Duck Software makes no representation or warranty to any party regarding the contents of this report, its accuracy, completeness or correctness, and Black Duck Software hereby disclaims any and all warranties (both express and implied) with respect thereto.
- \ No newline at end of file diff --git a/WISS10_conf_full_011.pdf b/WISS10_conf_full_011.pdf deleted file mode 100644 index ebdb9f0b1..000000000 Binary files a/WISS10_conf_full_011.pdf and /dev/null differ diff --git a/autogen/pom.xml b/autogen/pom.xml new file mode 100644 index 000000000..259812908 --- /dev/null +++ b/autogen/pom.xml @@ -0,0 +1,83 @@ + + 4.0.0 + + + com.intel.hibench + hibench + 6.0-SNAPSHOT + + + autogen + jar + com.intel.hibench + HiBench data generation tools + + + + com.intel.hibench + hibench-common + ${project.version} + + + org.apache.mahout + mahout-core + ${mahout.version} + + + org.apache.hadoop + hadoop-core + + + + + org.apache.mahout + mahout-math + ${mahout.version} + + + org.uncommons.maths + uncommons-maths + ${uncommons-maths.version} + + + org.apache.kafka + kafka-clients + 0.8.2.2 + + + org.apache.hadoop + hadoop-hdfs + ${hadoop.mr2.version} + + + org.apache.hadoop + hadoop-client + ${hadoop.mr2.version} + + + + + + + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + + diff --git a/src/autogen/src/main/java/HiBench/BayesData.java b/autogen/src/main/java/HiBench/BayesData.java similarity index 100% rename from src/autogen/src/main/java/HiBench/BayesData.java rename to autogen/src/main/java/HiBench/BayesData.java diff --git a/src/autogen/src/main/java/HiBench/Counters.java b/autogen/src/main/java/HiBench/Counters.java similarity index 100% rename from src/autogen/src/main/java/HiBench/Counters.java rename to autogen/src/main/java/HiBench/Counters.java diff --git a/src/autogen/src/main/java/HiBench/DataGen.java b/autogen/src/main/java/HiBench/DataGen.java similarity index 100% rename from src/autogen/src/main/java/HiBench/DataGen.java rename to autogen/src/main/java/HiBench/DataGen.java diff --git a/src/autogen/src/main/java/HiBench/DataOptions.java b/autogen/src/main/java/HiBench/DataOptions.java similarity index 100% rename from src/autogen/src/main/java/HiBench/DataOptions.java rename to autogen/src/main/java/HiBench/DataOptions.java diff --git a/src/autogen/src/main/java/HiBench/Dummy.java b/autogen/src/main/java/HiBench/Dummy.java similarity index 100% rename from src/autogen/src/main/java/HiBench/Dummy.java rename to autogen/src/main/java/HiBench/Dummy.java diff --git a/src/autogen/src/main/java/HiBench/HiveData.java b/autogen/src/main/java/HiBench/HiveData.java similarity index 98% rename from src/autogen/src/main/java/HiBench/HiveData.java rename to autogen/src/main/java/HiBench/HiveData.java index 69d68325d..4c522319e 100644 --- a/src/autogen/src/main/java/HiBench/HiveData.java +++ b/autogen/src/main/java/HiBench/HiveData.java @@ -331,11 +331,11 @@ private void createRankingsTableDirectly() throws IOException, URISyntaxExceptio job.setInputFormat(NLineInputFormat.class); FileInputFormat.setInputPaths(job, dummy.getPath()); - job.set("mapred.map.output.compression.type", "BLOCK"); - job.set("mapreduce.output.fileoutputformat.compress.type","BLOCK"); - MapFileOutputFormat.setCompressOutput(job, true); + // job.set("mapred.map.output.compression.type", "BLOCK"); + // job.set("mapreduce.output.fileoutputformat.compress.type","BLOCK"); + // MapFileOutputFormat.setCompressOutput(job, true); // MapFileOutputFormat.setOutputCompressorClass(job, org.apache.hadoop.io.compress.LzoCodec.class); - MapFileOutputFormat.setOutputCompressorClass(job, org.apache.hadoop.io.compress.DefaultCodec.class); + // MapFileOutputFormat.setOutputCompressorClass(job, org.apache.hadoop.io.compress.DefaultCodec.class); if (options.isSequenceOut()) { job.setOutputFormat(SequenceFileOutputFormat.class); diff --git a/src/autogen/src/main/java/HiBench/HtmlCore.java b/autogen/src/main/java/HiBench/HtmlCore.java similarity index 100% rename from src/autogen/src/main/java/HiBench/HtmlCore.java rename to autogen/src/main/java/HiBench/HtmlCore.java diff --git a/src/autogen/src/main/java/HiBench/IndexedMapFile.java b/autogen/src/main/java/HiBench/IndexedMapFile.java similarity index 100% rename from src/autogen/src/main/java/HiBench/IndexedMapFile.java rename to autogen/src/main/java/HiBench/IndexedMapFile.java diff --git a/src/autogen/src/main/java/HiBench/JoinBytesInt.java b/autogen/src/main/java/HiBench/JoinBytesInt.java similarity index 100% rename from src/autogen/src/main/java/HiBench/JoinBytesInt.java rename to autogen/src/main/java/HiBench/JoinBytesInt.java diff --git a/src/autogen/src/main/java/HiBench/NutchData.java b/autogen/src/main/java/HiBench/NutchData.java similarity index 100% rename from src/autogen/src/main/java/HiBench/NutchData.java rename to autogen/src/main/java/HiBench/NutchData.java diff --git a/src/autogen/src/main/java/HiBench/NutchOutputFormat.java b/autogen/src/main/java/HiBench/NutchOutputFormat.java similarity index 100% rename from src/autogen/src/main/java/HiBench/NutchOutputFormat.java rename to autogen/src/main/java/HiBench/NutchOutputFormat.java diff --git a/src/autogen/src/main/java/HiBench/NutchParse.java b/autogen/src/main/java/HiBench/NutchParse.java similarity index 100% rename from src/autogen/src/main/java/HiBench/NutchParse.java rename to autogen/src/main/java/HiBench/NutchParse.java diff --git a/src/autogen/src/main/java/HiBench/PagerankData.java b/autogen/src/main/java/HiBench/PagerankData.java similarity index 100% rename from src/autogen/src/main/java/HiBench/PagerankData.java rename to autogen/src/main/java/HiBench/PagerankData.java diff --git a/src/autogen/src/main/java/HiBench/RawData.java b/autogen/src/main/java/HiBench/RawData.java similarity index 90% rename from src/autogen/src/main/java/HiBench/RawData.java rename to autogen/src/main/java/HiBench/RawData.java index f67fec4e9..77aa90e21 100644 --- a/src/autogen/src/main/java/HiBench/RawData.java +++ b/autogen/src/main/java/HiBench/RawData.java @@ -4,6 +4,8 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.Arrays; import java.util.Locale; import java.util.Random; @@ -17,7 +19,7 @@ public class RawData { private static Random rand = new Random(11); - private static String dict = "/usr/share/dict/words"; + private static String dict = "/words"; private static int numSourceWords = 1000; private static int numSourceUAgents = 2000; @@ -116,18 +118,16 @@ public static void createSearchKeys(Path hdfs_searchkeys) throws IOException { FileSystem fs = hdfs_searchkeys.getFileSystem(new Configuration()); FSDataOutputStream fout = fs.create(hdfs_searchkeys); - - File fdict = new File(dict); + + InputStream is=new RawData().getClass().getResourceAsStream(dict); int len = 0; - if (fdict.exists()) { - - FileReader fr = new FileReader(fdict); - BufferedReader br = new BufferedReader(fr); + if (is!=null) { + InputStreamReader isr=new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); while (null != br.readLine()) { len++; } br.close(); - fr.close(); int[] wids = new int[numSourceWords]; for (int i=0; i need to be specified!"); + System.exit(1); + } + + // initialize variable from configuration and input parameters. + ConfigLoader configLoader = new ConfigLoader(args[0]); + + String userVisitsFile = args[1]; + long userVisitsFileOffset = Long.parseLong(args[2]); + String kMeansFile = args[3]; + long kMeansFileOffset = Long.parseLong(args[4]); + + // load properties from config file + String testCase = configLoader.getProperty(StreamBenchConfig.TESTCASE).toLowerCase(); + String topic = configLoader.getProperty(StreamBenchConfig.KAFKA_TOPIC); + String brokerList = configLoader.getProperty(StreamBenchConfig.KAFKA_BROKER_LIST); + int intervalSpan = Integer.parseInt(configLoader.getProperty(StreamBenchConfig.DATAGEN_INTERVAL_SPAN)); + long recordsPerInterval = Long.parseLong(configLoader.getProperty(StreamBenchConfig.DATAGEN_RECORDS_PRE_INTERVAL)); + long totalRecords = Long.parseLong(configLoader.getProperty(StreamBenchConfig.DATAGEN_TOTAL_RECORDS)); + int totalRounds = Integer.parseInt(configLoader.getProperty(StreamBenchConfig.DATAGEN_TOTAL_ROUNDS)); + int recordLength = Integer.parseInt(configLoader.getProperty(StreamBenchConfig.DATAGEN_RECORD_LENGTH)); + String dfsMaster = configLoader.getProperty(HiBenchConfig.DFS_MASTER); + boolean debugMode = Boolean.getBoolean(configLoader.getProperty(StreamBenchConfig.DEBUG_MODE)); + + DataGeneratorConfig dataGeneratorConf = new DataGeneratorConfig(testCase, brokerList, kMeansFile, kMeansFileOffset, + userVisitsFile, userVisitsFileOffset, dfsMaster, recordLength, intervalSpan, topic, recordsPerInterval, + totalRounds, totalRecords, debugMode); + + // Create thread pool and submit producer task + int producerNumber = Integer.parseInt(configLoader.getProperty(StreamBenchConfig.DATAGEN_PRODUCER_NUMBER)); + ExecutorService pool = Executors.newFixedThreadPool(producerNumber); + for(int i = 0; i < producerNumber; i++) { + pool.execute(new DataGeneratorJob(dataGeneratorConf)); + } + + // Print out some basic information + System.out.println("============ StreamBench Data Generator ============"); + System.out.println(" Interval Span : " + intervalSpan + " ms"); + System.out.println(" Record Per Interval : " + recordsPerInterval); + System.out.println(" Record Length : " + recordLength + " bytes"); + System.out.println(" Producer Number : " + producerNumber); + if(totalRecords == -1) { + System.out.println(" Total Records : -1 [Infinity]"); + } else { + System.out.println(" Total Records : " + totalRecords); + } + + if (totalRounds == -1) { + System.out.println(" Total Rounds : -1 [Infinity]"); + } else { + System.out.println(" Total Rounds : " + totalRounds); + } + System.out.println(" Kafka Topic : " + topic); + System.out.println("===================================================="); + System.out.println("Estimated Speed : "); + long recordsPreSecond = recordsPerInterval * 1000 * producerNumber / intervalSpan ; + System.out.println(" " + recordsPreSecond + " records/second"); + double mbPreSecond = (double)recordsPreSecond * recordLength / 1000000; + System.out.println(" " + mbPreSecond + " Mb/second"); + System.out.println("===================================================="); + + pool.shutdown(); + } + + static class DataGeneratorJob implements Runnable { + DataGeneratorConfig conf; + + // Constructor + public DataGeneratorJob(DataGeneratorConfig conf) { + this.conf = conf; + } + + @Override + public void run() { + // instantiate KafkaSender + KafkaSender sender; + if(conf.getTestCase().contains("statistics")) { + sender = new KafkaSender(conf.getBrokerList(), conf.getkMeansFile(), conf.getkMeansFileOffset(), + conf.getDfsMaster(), conf.getRecordLength(), conf.getIntervalSpan()); + } else { + sender = new KafkaSender(conf.getBrokerList(), conf.getUserVisitsFile(), conf.getUserVisitsFileOffset(), + conf.getDfsMaster(), conf.getRecordLength(), conf.getIntervalSpan()); + } + + // Schedule timer task + Timer timer = new Timer(); + timer.scheduleAtFixedRate( + new RecordSendTask(sender, conf.getTopic(), conf.getRecordsPerInterval(), + conf.getTotalRounds(), conf.getTotalRecords(), conf.getDebugMode(), timer), 0, conf.getIntervalSpan()); + } + } +} diff --git a/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/CachedData.java b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/CachedData.java new file mode 100644 index 000000000..49d612711 --- /dev/null +++ b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/CachedData.java @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.datagen.streaming.util; + +import org.apache.hadoop.conf.Configuration; + +import java.io.BufferedReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * Cache the total records in memory. + */ +public class CachedData { + + private volatile static CachedData cachedData; + + private List data; + + private int next; + private int totalRecords; + + public static CachedData getInstance(String seedFile, long fileOffset, String dfsMaster) { + if(cachedData == null) { + synchronized (CachedData.class) { + if (cachedData == null) { + cachedData = new CachedData(seedFile, fileOffset, dfsMaster); + } + } + } + return cachedData; + } + + private CachedData(String seedFile, long fileOffset, String dfsMaster){ + Configuration dfsConf = new Configuration(); + dfsConf.set("fs.default.name", dfsMaster); + + // read records from seedFile and cache into "data" + data = new ArrayList(); + BufferedReader reader = SourceFileReader.getReader(dfsConf, seedFile, fileOffset); + String line = null; + try { + while ((line = reader.readLine()) != null) { + data.add(line); + } + } catch (IOException e) { + System.err.println("Failed read records from Path: " + seedFile); + e.printStackTrace(); + } + + this.next = 0; + this.totalRecords = data.size(); + } + + /** + * Loop get record. + * @return the record. + */ + public String getRecord() { + int current = next; + next = (next + 1) % totalRecords; + return data.get(current); + } +} diff --git a/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/DataGeneratorConfig.java b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/DataGeneratorConfig.java new file mode 100644 index 000000000..d68e486d0 --- /dev/null +++ b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/DataGeneratorConfig.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.datagen.streaming.util; + +// A POJO class to contain necessary configuration +public class DataGeneratorConfig { + String testCase; + String brokerList; + String kMeansFile; + long kMeansFileOffset; + String userVisitsFile; + long userVisitsFileOffset; + String dfsMaster; + int recordLength; + int intervalSpan; + String topic; + long recordsPerInterval; + int totalRounds; + long totalRecords; + boolean debugMode; + + public DataGeneratorConfig(String testCase, String brokerList, String kMeansFile, long kMeansFileOffset, + String userVisitsFile, long userVisitsFileOffset, String dfsMaster, int recordLength, int intervalSpan, + String topic, long recordsPerInterval, int totalRounds, long totalRecords, boolean debugMode) { + this.testCase = testCase; + this.brokerList = brokerList; + this.kMeansFile = kMeansFile; + this.kMeansFileOffset = kMeansFileOffset; + this.userVisitsFile = userVisitsFile; + this.userVisitsFileOffset = userVisitsFileOffset; + this.dfsMaster = dfsMaster; + this.recordLength = recordLength; + this.intervalSpan = intervalSpan; + this.topic = topic; + this.recordsPerInterval = recordsPerInterval; + this.totalRounds = totalRounds; + this.totalRecords = totalRecords; + this.debugMode = debugMode; + } + + public String getTestCase() { + return testCase; + } + + public String getBrokerList() { + return brokerList; + } + + public String getkMeansFile() { + return kMeansFile; + } + + public long getkMeansFileOffset() { + return kMeansFileOffset; + } + + public String getUserVisitsFile() { + return userVisitsFile; + } + + public long getUserVisitsFileOffset() { + return userVisitsFileOffset; + } + + public String getDfsMaster() { + return dfsMaster; + } + + public int getRecordLength() { + return recordLength; + } + + public int getIntervalSpan() { return intervalSpan; } + + public String getTopic() { + return topic; + } + + public long getRecordsPerInterval() { + return recordsPerInterval; + } + + public int getTotalRounds() { + return totalRounds; + } + + public long getTotalRecords() { + return totalRecords; + } + + public boolean getDebugMode() { return debugMode; } +} diff --git a/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/KafkaSender.java b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/KafkaSender.java new file mode 100644 index 000000000..371e16879 --- /dev/null +++ b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/KafkaSender.java @@ -0,0 +1,121 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.datagen.streaming.util; + +import java.util.Arrays; +import java.util.Properties; + +import org.apache.kafka.clients.producer.*; +import org.apache.kafka.common.serialization.StringSerializer; + +/** + * KafkaSender hold an kafka producer. It gets content from input parameter, generates records and + * sends records to kafka. + */ +public class KafkaSender { + + KafkaProducer kafkaProducer; + CachedData cachedData; + int recordLength; + int intervalSpan; + + StringSerializer serializer = new StringSerializer(); + + // Constructor + public KafkaSender(String brokerList, String seedFile, + long fileOffset, String dfsMaster, int recordLength, int intervalSpan) { + + // Details of KafkaProducerConfig could be find from: + // http://kafka.apache.org/documentation.html#producerconfigs + Properties props = new Properties(); + props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, brokerList); + props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, + "org.apache.kafka.common.serialization.ByteArraySerializer"); + props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, + "org.apache.kafka.common.serialization.ByteArraySerializer"); + props.setProperty(ProducerConfig.ACKS_CONFIG, "1"); + props.getProperty(ProducerConfig.CLIENT_ID_CONFIG, "DataGenerator"); + this.kafkaProducer = new KafkaProducer(props); + + this.cachedData = CachedData.getInstance(seedFile, fileOffset, dfsMaster); + this.recordLength = recordLength; + this.intervalSpan = intervalSpan; + } + + // The callback function will be triggered when receive ack from kafka. + // Print error message if exception exist. + Callback callback = new Callback() { + public void onCompletion(RecordMetadata metadata, Exception e) { + if (e != null) + e.printStackTrace(); + } + }; + + // send content to Kafka + public long send (String topic, long targetRecords, boolean debugMode) { + + long sentRecords = 0L; + long sentBytes = 0L; + + while (sentRecords < targetRecords) { + String line = cachedData.getRecord(); + String currentTime = Long.toString(System.currentTimeMillis()); + + // Key and Value will be serialized twice. + // 1. in producer.send method + // 2. explicitly serialize here to count byte size. + byte[] keyByte = serializer.serialize(topic, currentTime); + byte[] valueByte = fillArray(keyByte, serializer.serialize(topic, line)); + + ProducerRecord serializedRecord = new ProducerRecord(topic, keyByte, valueByte); + kafkaProducer.send(serializedRecord, callback); + + //update counter + sentRecords++; + sentBytes = sentBytes + keyByte.length + valueByte.length; + } + + return sentRecords; + } + + // Get byte array with fixed length (value length + key length = recordLength) + private byte[] fillArray(byte[] key, byte[] line) { + + int valueLength = recordLength - key.length; + byte[] valueByte; + if (valueLength > 0) { + valueByte = new byte[valueLength]; + if (line.length < valueLength) { + // There is no enough content in line, fill rest space with 0 + System.arraycopy(line, 0, valueByte, 0, line.length); + Arrays.fill(valueByte, line.length, valueLength, (byte)0); + } else { + System.arraycopy(line, 0, valueByte, 0, valueLength); + } + } else { + // recordLength is smaller than the length of key, return empty array. + valueByte = new byte[0]; + } + return valueByte; + } + + // close kafka producer + public void close() { + kafkaProducer.close(); + } +} diff --git a/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/RecordSendTask.java b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/RecordSendTask.java new file mode 100644 index 000000000..322faf63d --- /dev/null +++ b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/RecordSendTask.java @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.datagen.streaming.util; + +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.atomic.AtomicLong; + +public class RecordSendTask extends TimerTask { + KafkaSender sender; + private String topic; + private boolean debugMode; + + private long recordsPerInterval; // Define how many records will be sent on each round + private int totalRounds; // Total times this task plan to run. -1 means run infinity + private long totalRecords; // Total records this task plan to sent. -1 means no limit. + + // Count how many rounds has run pre producer + private int roundCounter = 0; + + // Count how many records has sent globally + private static AtomicLong recordsCounter = new AtomicLong(0L); + private Timer timer; // The timer which executor this task + + private Boolean stopped = false; + + // Constructors + public RecordSendTask(KafkaSender sender, String topic, + long recordsPerInterval, int totalRounds, long totalRecords, boolean debugMode, Timer timer) { + + this.sender = sender; + this.topic = topic; + this.recordsPerInterval = recordsPerInterval; + this.totalRounds = totalRounds; + this.totalRecords = totalRecords; + this.debugMode = debugMode; + this.timer = timer; + System.out.println(Thread.currentThread().getName() + " - starting generate data ... "); + } + + @Override + public void run() { + synchronized(this) { + if (debugMode) { + String threadName = Thread.currentThread().getName(); + System.out.println( threadName + " - RecordSendTask run, " + + roundCounter + " round, " + recordsCounter + " records sent"); + } + + if (isRecordValid() && isRoundValid()) { + // Send records to Kafka + long sentRecords = sender.send(topic, recordsPerInterval, debugMode); + + // Update counter + roundCounter++; + recordsCounter.getAndAdd(sentRecords); + } else { + if(!stopped) { + sender.close(); + timer.cancel(); + timer.purge(); + stopped = true; + // exit timer thread + System.out.println("DataGenerator stop, " + + roundCounter + " round, " + recordsCounter + " records sent"); + } + } + } + } + + // Check round times, if it's bigger than total rounds, terminate data generator + private boolean isRoundValid() { + return (-1 == totalRounds) || (roundCounter < totalRounds); + } + + // Check sent record number, if it's bigger than total records, terminate data generator + private boolean isRecordValid() { + return (-1 == totalRecords) || (recordsCounter.get() < totalRecords); + } +} diff --git a/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/SourceFileReader.java b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/SourceFileReader.java new file mode 100644 index 000000000..752c25824 --- /dev/null +++ b/autogen/src/main/java/com/intel/hibench/datagen/streaming/util/SourceFileReader.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.datagen.streaming.util; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.*; + +import java.io.*; +import java.util.Vector; + +public class SourceFileReader { + + // get file reader according to given path and offset. + static public BufferedReader getReader (Configuration dfsConf, String path, long offset) { + BufferedReader reader = null; + try { + Path pt = new Path(path); + FileSystem fs = FileSystem.get(dfsConf); + InputStreamReader isr; + if (fs.isDirectory(pt)) { + //give path is an directory + isr = new InputStreamReader(openMultipleParts(fs, pt, offset)); + } else { + //give path is an file + FSDataInputStream inputStream = fs.open(pt); + if (offset > 0) { + inputStream.seek(offset); + } + isr = new InputStreamReader(inputStream); + } + + reader = new BufferedReader(isr); + } catch (IOException e) { + System.err.println("Fail to get reader from path: " + path); + e.printStackTrace(); + } + return reader; + } + + // Open all files start with "part-", those files are generated by genSeedDataset.sh + static private InputStream openMultipleParts ( + FileSystem fs, Path pt, long offset) throws IOException { + + System.out.println("opening all parts in path: " + pt + ", from offset: " + offset ); + // list all files in given path + RemoteIterator rit = fs.listFiles(pt, false); + Vector fileHandleList = new Vector(); + while (rit.hasNext()) { + Path path = rit.next().getPath(); + + // Only read those files start with "part-" + if (path.getName().startsWith("part-")) { + long fileSize = fs.getFileStatus(path).getLen(); + if (offset < fileSize) { + FSDataInputStream inputStream = fs.open(path); + if (offset > 0) { + inputStream.seek(offset); + } + fileHandleList.add(inputStream); + } + offset -= fileSize; + } + } + + if (!fileHandleList.isEmpty()) { + return new SequenceInputStream(fileHandleList.elements()); + } else { + System.err.println("Error, no source file loaded. run genSeedDataset.sh first!"); + return null; + } + + } +} diff --git a/src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/AccumulatingReducer.java b/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/AccumulatingReducer.java similarity index 100% rename from src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/AccumulatingReducer.java rename to autogen/src/main/java/org/apache/hadoop/fs/dfsioe/AccumulatingReducer.java diff --git a/src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/Analyzer.java b/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/Analyzer.java similarity index 100% rename from src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/Analyzer.java rename to autogen/src/main/java/org/apache/hadoop/fs/dfsioe/Analyzer.java diff --git a/src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/DfsioeConfig.java b/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/DfsioeConfig.java similarity index 100% rename from src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/DfsioeConfig.java rename to autogen/src/main/java/org/apache/hadoop/fs/dfsioe/DfsioeConfig.java diff --git a/src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/IOMapperBase.java b/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/IOMapperBase.java similarity index 100% rename from src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/IOMapperBase.java rename to autogen/src/main/java/org/apache/hadoop/fs/dfsioe/IOMapperBase.java diff --git a/src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIO.java b/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIO.java similarity index 100% rename from src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIO.java rename to autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIO.java diff --git a/src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIOEnh.java b/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIOEnh.java similarity index 100% rename from src/autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIOEnh.java rename to autogen/src/main/java/org/apache/hadoop/fs/dfsioe/TestDFSIOEnh.java diff --git a/src/autogen/src/main/java/org/apache/mahout/clustering/kmeans/GenKMeansDataset.java b/autogen/src/main/java/org/apache/mahout/clustering/kmeans/GenKMeansDataset.java similarity index 100% rename from src/autogen/src/main/java/org/apache/mahout/clustering/kmeans/GenKMeansDataset.java rename to autogen/src/main/java/org/apache/mahout/clustering/kmeans/GenKMeansDataset.java diff --git a/src/autogen/src/main/java/org/apache/nutch/crawl/CrawlDatum.java b/autogen/src/main/java/org/apache/nutch/crawl/CrawlDatum.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/crawl/CrawlDatum.java rename to autogen/src/main/java/org/apache/nutch/crawl/CrawlDatum.java diff --git a/src/autogen/src/main/java/org/apache/nutch/crawl/Inlink.java b/autogen/src/main/java/org/apache/nutch/crawl/Inlink.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/crawl/Inlink.java rename to autogen/src/main/java/org/apache/nutch/crawl/Inlink.java diff --git a/src/autogen/src/main/java/org/apache/nutch/crawl/Inlinks.java b/autogen/src/main/java/org/apache/nutch/crawl/Inlinks.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/crawl/Inlinks.java rename to autogen/src/main/java/org/apache/nutch/crawl/Inlinks.java diff --git a/src/autogen/src/main/java/org/apache/nutch/crawl/SignatureComparator.java b/autogen/src/main/java/org/apache/nutch/crawl/SignatureComparator.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/crawl/SignatureComparator.java rename to autogen/src/main/java/org/apache/nutch/crawl/SignatureComparator.java diff --git a/src/autogen/src/main/java/org/apache/nutch/metadata/Metadata.java b/autogen/src/main/java/org/apache/nutch/metadata/Metadata.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/metadata/Metadata.java rename to autogen/src/main/java/org/apache/nutch/metadata/Metadata.java diff --git a/src/autogen/src/main/java/org/apache/nutch/metadata/Nutch.java b/autogen/src/main/java/org/apache/nutch/metadata/Nutch.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/metadata/Nutch.java rename to autogen/src/main/java/org/apache/nutch/metadata/Nutch.java diff --git a/src/autogen/src/main/java/org/apache/nutch/parse/Outlink.java b/autogen/src/main/java/org/apache/nutch/parse/Outlink.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/parse/Outlink.java rename to autogen/src/main/java/org/apache/nutch/parse/Outlink.java diff --git a/src/autogen/src/main/java/org/apache/nutch/parse/Parse.java b/autogen/src/main/java/org/apache/nutch/parse/Parse.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/parse/Parse.java rename to autogen/src/main/java/org/apache/nutch/parse/Parse.java diff --git a/src/autogen/src/main/java/org/apache/nutch/parse/ParseData.java b/autogen/src/main/java/org/apache/nutch/parse/ParseData.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/parse/ParseData.java rename to autogen/src/main/java/org/apache/nutch/parse/ParseData.java diff --git a/src/autogen/src/main/java/org/apache/nutch/parse/ParseStatus.java b/autogen/src/main/java/org/apache/nutch/parse/ParseStatus.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/parse/ParseStatus.java rename to autogen/src/main/java/org/apache/nutch/parse/ParseStatus.java diff --git a/src/autogen/src/main/java/org/apache/nutch/parse/ParseText.java b/autogen/src/main/java/org/apache/nutch/parse/ParseText.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/parse/ParseText.java rename to autogen/src/main/java/org/apache/nutch/parse/ParseText.java diff --git a/src/autogen/src/main/java/org/apache/nutch/util/StringUtil.java b/autogen/src/main/java/org/apache/nutch/util/StringUtil.java similarity index 100% rename from src/autogen/src/main/java/org/apache/nutch/util/StringUtil.java rename to autogen/src/main/java/org/apache/nutch/util/StringUtil.java diff --git a/autogen/src/main/resources/words b/autogen/src/main/resources/words new file mode 100644 index 000000000..3f9b27fe0 --- /dev/null +++ b/autogen/src/main/resources/words @@ -0,0 +1,99171 @@ +A +A's +AA's +AB's +ABM's +AC's +ACTH's +AI's +AIDS's +AM's +AOL +AOL's +ASCII's +ASL's +ATM's +ATP's +AWOL's +AZ's +AZT's +Aachen +Aaliyah +Aaliyah's +Aaron +Abbas +Abbasid +Abbott +Abbott's +Abby +Abby's +Abdul +Abdul's +Abe +Abe's +Abel +Abel's +Abelard +Abelson +Abelson's +Aberdeen +Aberdeen's +Abernathy +Abernathy's +Abidjan +Abidjan's +Abigail +Abilene +Abner +Abner's +Abraham +Abraham's +Abram +Abram's +Abrams +Absalom +Abuja +Abyssinia +Abyssinia's +Abyssinian +Abyssinian's +Ac +Ac's +Acadia +Acadia's +Acapulco +Acapulco's +Accenture +Accenture's +Accra +Accra's +Acevedo +Acevedo's +Achaean +Achaean's +Achebe +Achebe's +Achernar +Acheson +Acheson's +Achilles +Achilles's +Aconcagua +Aconcagua's +Acosta +Acosta's +Acropolis +Acrux +Acrux's +Actaeon +Acton +Acts +Acuff +Acuff's +Ada +Ada's +Adam +Adam's +Adams +Adan +Adan's +Adana +Adar +Adar's +Addams +Adderley +Adderley's +Addie +Addie's +Addison +Adela +Adela's +Adelaide +Adelaide's +Adele +Adele's +Adeline +Adeline's +Aden +Aden's +Adenauer +Adhara +Adhara's +Adidas +Adidas's +Adirondack +Adirondack's +Adirondacks +Adirondacks's +Adkins +Adkins's +Adler +Adolf +Adolf's +Adolfo +Adolfo's +Adolph +Adolph's +Adonis +Adonis's +Adonises +Adrian +Adriana +Adriana's +Adriatic +Adriatic's +Adrienne +Adrienne's +Advent +Advent's +Adventist +Adventist's +Advents +Advil +Advil's +Aegean +Aegean's +Aelfric +Aelfric's +Aeneas +Aeneas's +Aeneid +Aeneid's +Aeolus +Aeolus's +Aeroflot +Aeroflot's +Aeschylus +Aeschylus's +Aesculapius +Aesculapius's +Aesop +Aesop's +Afghan +Afghan's +Afghanistan +Afghanistan's +Afghans +Africa +Africa's +African +African's +Africans +Afrikaans +Afrikaans's +Afrikaner +Afrikaner's +Afrikaners +Afro +Afro's +Afrocentrism +Afros +Ag +Ag's +Agamemnon +Agamemnon's +Agassi +Agassi's +Agassiz +Agassiz's +Agatha +Agatha's +Aggie +Aglaia +Agnes +Agnew +Agnew's +Agni +Agni's +Agra +Agricola +Agrippa +Agrippa's +Agrippina +Agrippina's +Aguilar +Aguilar's +Aguinaldo +Aguinaldo's +Aguirre +Aguirre's +Agustin +Agustin's +Ahab +Ahab's +Ahmad +Ahmad's +Ahmadabad +Ahmadinejad +Ahmadinejad's +Ahmed +Ahmed's +Ahriman +Ahriman's +Aida +Aida's +Aiken +Aileen +Aileen's +Aimee +Aimee's +Ainu +Airedale +Airedale's +Airedales +Aisha +Ajax +Ajax's +Akbar +Akhmatova +Akhmatova's +Akihito +Akita +Akiva +Akiva's +Akkad +Akron +Akron's +Al +Al's +Ala +Alabama +Alabama's +Alabaman +Alabaman's +Alabamans +Alabamian +Alabamian's +Alabamians +Aladdin +Aladdin's +Alamo +Alamo's +Alamogordo +Alamogordo's +Alan +Alan's +Alana +Alana's +Alar +Alar's +Alaric +Alaska +Alaska's +Alaskan +Alaskan's +Alaskans +Alba +Albania +Albania's +Albanian +Albanian's +Albanians +Albany +Albany's +Albee +Alberio +Alberio's +Albert +Alberta +Alberta's +Alberto +Alberto's +Albigensian +Albion +Albireo +Albireo's +Albuquerque +Albuquerque's +Alcatraz +Alcestis +Alcibiades +Alcindor +Alcindor's +Alcmena +Alcmena's +Alcoa +Alcoa's +Alcott +Alcuin +Alcyone +Aldan +Aldebaran +Aldebaran's +Alden +Alderamin +Alderamin's +Aldo +Aldo's +Aldrin +Aldrin's +Alec +Alec's +Aleichem +Aleichem's +Alejandra +Alejandra's +Alejandro +Alejandro's +Alembert +Alembert's +Aleppo +Aleppo's +Aleut +Aleut's +Aleutian +Aleutian's +Alex +Alex's +Alexander +Alexander's +Alexandra +Alexandria +Alexandria's +Alexei +Alexei's +Alexis +Alfonso +Alfonso's +Alfonzo +Alfonzo's +Alford +Alford's +Alfred +Alfreda +Alfreda's +Alfredo +Algenib +Algenib's +Alger +Algeria +Algeria's +Algerian +Algerian's +Algerians +Algieba +Algieba's +Algiers +Algiers's +Algol +Algol's +Algonquian +Algonquian's +Algonquians +Algonquin +Algonquin's +Alhambra +Alhena +Alhena's +Ali +Alice +Alice's +Alicia +Alicia's +Alighieri +Alighieri's +Aline +Aline's +Alioth +Alioth's +Alisa +Alisa's +Alisha +Alisha's +Alison +Alison's +Alissa +Alissa's +Alistair +Alistair's +Alkaid +Alkaid's +Allah +Allah's +Allahabad +Allan +Allan's +Alleghenies +Alleghenies's +Allegheny +Allegra +Allegra's +Allen +Allende +Allende's +Allentown +Allie +Allie's +Allison +Allison's +Allstate +Allstate's +Allyson +Allyson's +Alma +Alma's +Almach +Almach's +Almaty +Almaty's +Almighty +Almighty's +Almohad +Almohad's +Almoravid +Almoravid's +Alnilam +Alnilam's +Alnitak +Alnitak's +Alonzo +Alonzo's +Alpert +Alpert's +Alphard +Alphard's +Alphecca +Alphecca's +Alpheratz +Alpheratz's +Alphonse +Alphonse's +Alphonso +Alphonso's +Alpine +Alpo +Alpo's +Alps +Alps's +Alsace +Alsace's +Alsatian +Alsatian's +Alsop +Alsop's +Alston +Alston's +Alta +Altai +Altai's +Altaic +Altaic's +Altair +Altamira +Althea +Althea's +Altiplano +Altiplano's +Altman +Altman's +Altoids +Altoids's +Alton +Alton's +Aludra +Aludra's +Alva +Alvarado +Alvarado's +Alvarez +Alvarez's +Alvaro +Alvaro's +Alvin +Alvin's +Alyce +Alyce's +Alyson +Alyson's +Alyssa +Alyssa's +Alzheimer +Alzheimer's +Am +Am's +Amadeus +Amadeus's +Amado +Amado's +Amalia +Amalia's +Amanda +Amanda's +Amarillo +Amaru +Amaru's +Amaterasu +Amaterasu's +Amati +Amazon +Amazon's +Amazons +Amber +Amber's +Amelia +Amelia's +Amenhotep +Amenhotep's +Amerasian +America +America's +American +American's +Americana +Americana's +Americanism +Americanism's +Americanisms +Americanization +Americanization's +Americanizations +Americanize +Americanized +Americanizes +Americanizing +Americans +Americas +Amerind +Amerind's +Amerindian +Amerindian's +Amerindians +Amerinds +Ameslan +Ameslan's +Amharic +Amharic's +Amherst +Amie +Amie's +Amiga +Amiga's +Amish +Amish's +Amman +Amman's +Amoco +Amoco's +Amos +Amparo +Amparo's +Ampere +Ampere's +Amritsar +Amsterdam +Amsterdam's +Amtrak +Amundsen +Amur +Amur's +Amway +Amway's +Amy +Amy's +Ana +Ana's +Anabaptist +Anabaptist's +Anabel +Anabel's +Anacin +Anacin's +Anacreon +Anaheim +Analects +Analects's +Ananias +Ananias's +Anasazi +Anastasia +Anatole +Anatole's +Anatolia +Anatolia's +Anatolian +Anatolian's +Anaxagoras +Anchorage +Anchorage's +Andalusia +Andalusia's +Andalusian +Andaman +Andean +Andersen +Andersen's +Anderson +Andes +Andes's +Andorra +Andorra's +Andre +Andre's +Andrea +Andrea's +Andrei +Andrei's +Andres +Andretti +Andretti's +Andrew +Andrew's +Andrews +Andrianampoinimerina +Andrianampoinimerina's +Android +Android's +Andromache +Andromeda +Andromeda's +Andropov +Andy +Andy's +Angara +Angel +Angel's +Angela +Angela's +Angelia +Angelia's +Angelica +Angelico +Angelina +Angelina's +Angeline +Angeline's +Angelique +Angelique's +Angelita +Angelita's +Angelo +Angelo's +Angelou +Angevin +Angevin's +Angie +Angie's +Angkor +Anglia +Anglican +Anglican's +Anglicanism +Anglicanism's +Anglicanisms +Anglicans +Anglicize +Anglo +Anglophile +Angola +Angola's +Angolan +Angolan's +Angolans +Angora +Angora's +Angoras +Anguilla +Anguilla's +Angus +Angus's +Aniakchak +Aniakchak's +Anibal +Anibal's +Anita +Anita's +Ankara +Ankara's +Ann +Ann's +Anna +Annabel +Annabel's +Annabelle +Annabelle's +Annam +Annam's +Annapolis +Annapolis's +Annapurna +Annapurna's +Anne +Annette +Annette's +Annie +Annie's +Annmarie +Annmarie's +Anouilh +Anselm +Anselmo +Anselmo's +Anshan +Anshan's +Antaeus +Antananarivo +Antananarivo's +Antarctic +Antarctic's +Antarctica +Antarctica's +Antares +Antares's +Anthony +Antichrist +Antichrist's +Antichrists +Antietam +Antigone +Antigone's +Antigua +Antigua's +Antilles +Antilles's +Antioch +Antipas +Antipas's +Antofagasta +Antofagasta's +Antoine +Antoine's +Antoinette +Anton +Anton's +Antone +Antone's +Antonia +Antonia's +Antoninus +Antonio +Antonio's +Antonius +Antony +Antony's +Antwan +Antwan's +Antwerp +Antwerp's +Anubis +Anubis's +Anzac +Apache +Apache's +Apaches +Apalachicola +Apalachicola's +Apennines +Aphrodite +Aphrodite's +Apia +Apocrypha +Apocrypha's +Apollinaire +Apollo +Apollo's +Apollonian +Apollos +Appalachia +Appalachia's +Appalachian +Appalachians +Appaloosa +Appaloosa's +Apple +Apple's +Appleseed +Appleton +Appomattox +Apr +Apr's +April +April's +Aprils +Apuleius +Aquafresh +Aquafresh's +Aquarius +Aquarius's +Aquariuses +Aquila +Aquinas +Aquinas's +Aquino +Aquino's +Aquitaine +Aquitaine's +Ar +Ar's +Ara +Ara's +Arab +Arab's +Arabia +Arabia's +Arabian +Arabian's +Arabians +Arabic +Arabic's +Arabs +Araby +Araceli +Araceli's +Arafat +Arafat's +Araguaya +Araguaya's +Aral +Aral's +Aramaic +Aramaic's +Aramco +Aramco's +Arapaho +Arapaho's +Ararat +Ararat's +Araucanian +Arawak +Arawak's +Arawakan +Arawakan's +Arbitron +Arbitron's +Arcadia +Arcadia's +Arcadian +Arcadian's +Archean +Archibald +Archibald's +Archie +Archie's +Archimedes +Arctic +Arctic's +Arcturus +Arcturus's +Arden +Arequipa +Ares +Argentina +Argentina's +Argentine +Argentinian +Argentinian's +Argentinians +Argo +Argonaut +Argonaut's +Argonne +Argonne's +Argos +Argus +Argus's +Ariadne +Ariadne's +Arianism +Arianism's +Ariel +Aries +Aries's +Arieses +Ariosto +Aristarchus +Aristarchus's +Aristides +Aristophanes +Aristophanes's +Aristotelian +Aristotelian's +Aristotle +Aristotle's +Arius +Arius's +Ariz +Arizona +Arizona's +Arizonan +Arizonan's +Arizonans +Arizonian +Arizonian's +Arizonians +Arjuna +Ark +Arkansan +Arkansan's +Arkansas +Arkansas's +Arkhangelsk +Arkwright +Arlene +Arlene's +Arline +Arline's +Arlington +Armageddon +Armageddon's +Armageddons +Armagnac +Armagnac's +Armand +Armand's +Armando +Armando's +Armani +Armani's +Armenia +Armenia's +Armenian +Armenian's +Armenians +Arminius +Arminius's +Armonk +Armonk's +Armour +Armour's +Armstrong +Armstrong's +Arneb +Arneb's +Arnhem +Arno +Arno's +Arnold +Arnulfo +Arnulfo's +Aron +Aron's +Arrhenius +Arron +Arron's +Art +Art's +Artaxerxes +Artaxerxes's +Artemis +Artemis's +Arthur +Arthur's +Arthurian +Artie +Artie's +Arturo +Arturo's +Aruba +Aruba's +Aryan +Aryan's +Aryans +As +Asama +Asama's +Ascella +Ascella's +Asgard +Ashanti +Ashcroft +Ashe +Ashikaga +Ashikaga's +Ashkenazim +Ashkhabad +Ashkhabad's +Ashlee +Ashlee's +Ashley +Ashley's +Ashmolean +Ashmolean's +Ashurbanipal +Asia +Asia's +Asian +Asian's +Asians +Asiatic +Asiatic's +Asiatics +Asimov +Asmara +Asoka +Aspell +Aspell's +Aspen +Aspen's +Aspidiske +Aspidiske's +Asquith +Assad +Assad's +Assam +Assam's +Assamese +Assamese's +Assisi +Assyria +Assyria's +Assyrian +Assyrian's +Assyrians +Astaire +Astana +Astana's +Astarte +Astarte's +Aston +Astor +Astoria +Astrakhan +AstroTurf +Asturias +Asunción +Asunción's +Aswan +Aswan's +At +At's +Atacama +Atacama's +Atahualpa +Atalanta +Atari +Atari's +Atatürk +Atatürk's +Athabasca +Athabasca's +Athabascan +Athabascan's +Athena +Athena's +Athenian +Athenian's +Athenians +Athens +Athens's +Atkins +Atkins's +Atkinson +Atlanta +Atlanta's +Atlantes +Atlantic +Atlantic's +Atlantis +Atlantis's +Atlas +Atlas's +Atlases +Atman +Atreus +Atria +Atria's +Atropos +Atropos's +Ats +Attic +Attic's +Attica +Attica's +Attila +Attila's +Attlee +Attucks +Atwood +Atwood's +Au +Au's +Aubrey +Auckland +Auden +Auden's +Audi +Audi's +Audion +Audion's +Audra +Audra's +Audrey +Audrey's +Audubon +Aug +Aug's +Augean +Augsburg +August +August's +Augusta +Augusta's +Augustan +Augustine +Augustine's +Augusts +Augustus +Augustus's +Aurangzeb +Aurelia +Aurelia's +Aurelio +Aurelio's +Aurelius +Aureomycin +Aureomycin's +Auriga +Auriga's +Aurora +Aurora's +Auschwitz +Aussie +Aussie's +Aussies +Austen +Austerlitz +Austerlitz's +Austin +Austin's +Austins +Australasia +Australasia's +Australia +Australia's +Australian +Australian's +Australians +Australoid +Australopithecus +Australopithecus's +Austria +Austria's +Austrian +Austrian's +Austrians +Austronesian +Austronesian's +Autumn +Autumn's +Av +Av's +Ava +Ava's +Avalon +Ave +Aventine +Avernus +Averroes +Avery +Avery's +Avesta +Avesta's +Avicenna +Avignon +Avila +Avila's +Avior +Avior's +Avis +Avogadro +Avon +Axum +Ayala +Ayala's +Ayers +Aymara +Ayrshire +Ayrshire's +Ayurveda +Ayyubid +Ayyubid's +Azana +Azana's +Azania +Azania's +Azazel +Azerbaijan +Azerbaijan's +Azerbaijani +Azerbaijani's +Azores +Azores's +Azov +Aztec +Aztec's +Aztecan +Aztecan's +Aztecs +Aztlan +Aztlan's +B +B's +BA's +BASIC's +BB's +BC's +BLT's +BM's +BMW +BMW's +BS's +Ba +Ba's +Baal +Baal's +Baath +Baath's +Baathist +Babar +Babar's +Babbage +Babbitt +Babel +Babel's +Babels +Babur +Babylon +Babylon's +Babylonian +Babylonian's +Babylons +Bacall +Bacall's +Bacardi +Bacchanalia +Bacchanalia's +Bacchus +Bacchus's +Bach +Bach's +Backus +Backus's +Bacon +Bacon's +Bactria +Baden +Badlands +Badlands's +Baedeker +Baedeker's +Baez +Baffin +Baffin's +Baggies +Baghdad +Baghdad's +Baguio +Baha'i +Baha'ullah +Bahama +Bahama's +Bahamas +Bahamas's +Bahamian +Bahamian's +Bahamians +Bahia +Bahrain +Bahrain's +Baikal +Bailey +Bailey's +Baird +Bakelite +Bakelite's +Baker +Bakersfield +Baku +Baku's +Bakunin +Balanchine +Balaton +Balboa +Balder +Balder's +Baldwin +Baldwin's +Balearic +Balearic's +Balfour +Bali +Bali's +Balinese +Balinese's +Balkan +Balkans +Balkhash +Ball +Ballard +Ballard's +Balthazar +Baltic +Baltic's +Baltimore +Baltimore's +Baluchistan +Balzac +Balzac's +Bamako +Bamako's +Bambi +Bambi's +Banach +Banach's +Bancroft +Bancroft's +Bandung +Bandung's +Bangalore +Bangkok +Bangkok's +Bangladesh +Bangladesh's +Bangladeshi +Bangladeshi's +Bangladeshis +Bangor +Bangui +Bangui's +Banjarmasin +Banjarmasin's +Banjul +Banks +Banneker +Banneker's +Bannister +Banting +Bantu +Bantu's +Bantus +Baotou +Baotou's +Baptist +Baptist's +Baptiste +Baptiste's +Baptists +Barabbas +Barack +Barack's +Barbadian +Barbadian's +Barbadians +Barbados +Barbados's +Barbara +Barbara's +Barbarella +Barbarella's +Barbarossa +Barbarossa's +Barbary +Barbary's +Barber +Barbie +Barbour +Barbour's +Barbra +Barbra's +Barbuda +Barbuda's +Barcelona +Barcelona's +Barclay +Barclay's +Bardeen +Bardeen's +Barents +Barents's +Barker +Barker's +Barkley +Barkley's +Barlow +Barlow's +Barnabas +Barnaby +Barnaby's +Barnard +Barnaul +Barnes +Barnett +Barnett's +Barney +Barney's +Barnum +Baroda +Barquisimeto +Barr +Barr's +Barranquilla +Barrera +Barrera's +Barrett +Barrett's +Barrie +Barrie's +Barron +Barron's +Barry +Barrymore +Bart +Barth +Bartholdi +Bartholdi's +Bartholomew +Bartlett +Barton +Bartók +Baruch +Baryshnikov +Basel +Basel's +Basho +Basho's +Basie +Basil +Basque +Basque's +Basques +Basra +Bass +Bass's +Basseterre +Basseterre's +Bastille +Bastille's +Bataan +Bataan's +Bates +Bathsheba +Batista +Batman +Batman's +Battle +Battle's +Batu +Batu's +Baudelaire +Baudelaire's +Baudouin +Baudouin's +Bauer +Bauhaus +Bauhaus's +Baum +Bavaria +Bavaria's +Bavarian +Baxter +Baxter's +Bayer +Bayer's +Bayes +Bayesian +Bayeux +Bayeux's +Baylor +Baylor's +Bayonne +Bayonne's +Bayreuth +Baywatch +Baywatch's +Be +Be's +Beach +Beach's +Beadle +Bean +Bean's +Beard +Beard's +Beardmore +Beardmore's +Beardsley +Bearnaise +Bearnaise's +Beasley +Beasley's +Beatlemania +Beatlemania's +Beatles +Beatles's +Beatrice +Beatrice's +Beatrix +Beatrix's +Beatriz +Beatriz's +Beau +Beau's +Beaufort +Beaujolais +Beaujolais's +Beaumarchais +Beaumont +Beauregard +Beauregard's +Beauvoir +Bechtel +Bechtel's +Beck +Beck's +Becker +Becker's +Becket +Becket's +Beckett +Beckett's +Becky +Becky's +Becquerel +Bede +Bedouin +Bedouin's +Bedouins +Beebe +Beebe's +Beecher +Beefaroni +Beefaroni's +Beelzebub +Beelzebub's +Beerbohm +Beethoven +Beethoven's +Beeton +Beeton's +Begin +Behan +Behring +Beiderbecke +Beijing +Beijing's +Beirut +Beirut's +Bekesy +Bekesy's +Bela +Bela's +Belarus +Belarus's +Belau +Belau's +Belem +Belem's +Belfast +Belfast's +Belgian +Belgian's +Belgians +Belgium +Belgium's +Belgrade +Belgrade's +Belinda +Belinda's +Belize +Belize's +Bell +Bell's +Bella +Bella's +Bellamy +Bellamy's +Bellatrix +Bellatrix's +Belleek +Bellini +Bellow +Belmont +Belmont's +Belmopan +Belshazzar +Belshazzar's +Beltane +Belushi +Belushi's +Ben +Ben's +Benacerraf +Benacerraf's +Benares +Benchley +Benchley's +Bender +Bender's +Bendix +Bendix's +Benedict +Benedict's +Benedictine +Benedictine's +Benelux +Benelux's +Benet +Benetton +Benetton's +Bengal +Bengal's +Bengali +Bengali's +Benghazi +Benghazi's +Benin +Benin's +Benita +Benita's +Benito +Benito's +Benjamin +Bennett +Bennie +Bennie's +Benny +Benny's +Benson +Benson's +Bentham +Bentley +Benton +Benz +Benzedrine +Benzedrine's +Beowulf +Berber +Berber's +Berbers +Berenice +Berenice's +Beretta +Beretta's +Berg +Bergen +Bergen's +Berger +Berger's +Bergerac +Bergman +Bergson +Beria +Bering +Berkeley +Berkeley's +Berkshire +Berkshire's +Berkshires +Berle +Berle's +Berlin +Berlin's +Berliner +Berliner's +Berlins +Berlioz +Berlitz +Berlitz's +Bermuda +Bermuda's +Bermudas +Bern +Bern's +Bernadette +Bernadine +Bernadine's +Bernanke +Bernanke's +Bernard +Bernardo +Bernardo's +Bernays +Bernays's +Bernbach +Bernbach's +Berne +Berne's +Bernhardt +Bernice +Bernice's +Bernie +Bernie's +Bernini +Bernoulli +Bernstein +Berra +Berra's +Berry +Bert +Bert's +Berta +Berta's +Bertelsmann +Bertelsmann's +Bertha +Bertha's +Bertie +Bertie's +Bertillon +Bertillon's +Bertram +Bertram's +Bertrand +Bertrand's +Beryl +Beryl's +Berzelius +Bess +Bessel +Bessemer +Bessemer's +Bessie +Best +Best's +Betelgeuse +Betelgeuse's +Beth +Beth's +Bethany +Bethe +Bethesda +Bethlehem +Bethune +Betsy +Betsy's +Bette +Bette's +Bettie +Bettie's +Betty +Betty's +Bettye +Bettye's +Beulah +Beverley +Beverley's +Beverly +Beverly's +Beyer +Bhopal +Bhutan +Bhutan's +Bhutto +Bhutto's +Bi +Bi's +Bialystok +Bianca +Bianca's +Bib +Bible +Bible's +Bibles +Biblical +Bic +Bic's +Biddle +Biden +Biden's +Bierce +Bigfoot +Bigfoot's +Biggles +Biggles's +Biko +Biko's +Bilbao +Bilbo +Bilbo's +Bill +Bill's +Billie +Billie's +Billings +Billings's +Billy +Billy's +Bimini +Bimini's +Bioko +Bioko's +Bird +Birdseye +Birdseye's +Birkenstock +Birmingham +Birmingham's +Biro +Biro's +Biscay +Biscayne +Biscayne's +Bishkek +Bishop +Bishop's +Bismarck +Bismarck's +Bismark +Bismark's +Bisquick +Bisquick's +Bissau +Bissau's +Bizet +Bjerknes +Bjerknes's +Bjork +Bjork's +Bk +Bk's +Black +Black's +Blackbeard +Blackbeard's +Blackburn +Blackburn's +Blackfoot +Blackfoot's +Blacks +Blackshirt +Blackshirt's +Blackstone +Blackwell +Blaine +Blaine's +Blair +Blair's +Blake +Blanca +Blanca's +Blanchard +Blanchard's +Blanche +Blanche's +Blankenship +Blankenship's +Blantyre +Blantyre's +Blatz +Blatz's +Blavatsky +Blenheim +Blenheim's +Blevins +Blevins's +Bligh +Bligh's +Bloch +Blockbuster +Blockbuster's +Bloemfontein +Bloemfontein's +Blondel +Blondel's +Blondie +Blondie's +Bloom +Bloom's +Bloomer +Bloomfield +Bloomingdale +Bloomingdale's +Bloomsbury +Blu +Blucher +Blucher's +Bluebeard +Bluebeard's +Bluetooth +Bluetooth's +Blvd +Blythe +Blythe's +Boas +Boas's +Bob +Bob's +Bobbi +Bobbi's +Bobbie +Bobbie's +Bobbitt +Bobbitt's +Bobby +Bobby's +Boccaccio +Bodhidharma +Bodhidharma's +Bodhisattva +Bodhisattva's +Boeing +Boeing's +Boeotia +Boeotia's +Boeotian +Boer +Boer's +Boers +Boethius +Bogart +Bogart's +Bogotá +Bogotá's +Bohemia +Bohemian +Bohemian's +Bohemians +Bohr +Boise +Boise's +Bojangles +Bojangles's +Boleyn +Boleyn's +Bolivar +Bolivar's +Bolivia +Bolivia's +Bolivian +Bolivian's +Bolivians +Bollywood +Bollywood's +Bologna +Bologna's +Bolshevik +Bolshevik's +Bolsheviks +Bolshevism +Bolshevist +Bolshoi +Bolshoi's +Bolton +Boltzmann +Bombay +Bombay's +Bonaparte +Bonaventure +Bond +Bond's +Bonhoeffer +Bonhoeffer's +Boniface +Bonita +Bonita's +Bonn +Bonn's +Bonner +Bonner's +Bonneville +Bonneville's +Bonnie +Bonnie's +Bono +Bono's +Booker +Booker's +Boole +Boole's +Boolean +Boone +Boone's +Booth +Bordeaux +Bordeaux's +Borden +Borden's +Bordon +Bordon's +Boreas +Boreas's +Borg +Borg's +Borges +Borgia +Borglum +Boris +Bork +Bork's +Borlaug +Borlaug's +Born +Borneo +Borneo's +Borobudur +Borobudur's +Borodin +Boru +Boru's +Bosch +Bose +Bosnia +Bosnia's +Bosporus +Bosporus's +Boston +Boston's +Bostonian +Bostons +Boswell +Botswana +Botswana's +Botticelli +Boulder +Boulez +Boulez's +Bourbaki +Bourbaki's +Bourbon +Bourbon's +Bournemouth +Bovary +Bovary's +Bowditch +Bowditch's +Bowell +Bowell's +Bowen +Bowen's +Bowers +Bowery +Bowery's +Bowie +Bowman +Bowman's +Boyd +Boyer +Boyer's +Boyle +Boötes +Boötes's +Br +Br's +Brad +Brad's +Bradbury +Braddock +Braddock's +Bradford +Bradley +Bradly +Bradly's +Bradshaw +Bradshaw's +Bradstreet +Bradstreet's +Brady +Bragg +Bragg's +Brahe +Brahma +Brahma's +Brahmagupta +Brahmagupta's +Brahman +Brahman's +Brahmanism +Brahmanism's +Brahmanisms +Brahmans +Brahmaputra +Brahmaputra's +Brahmas +Brahmin +Brahmin's +Brahmins +Brahms +Brahms's +Braille +Braille's +Brailles +Brain +Brain's +Brampton +Brampton's +Bran +Bran's +Branch +Branch's +Brandeis +Branden +Branden's +Brandenburg +Brandi +Brandi's +Brandie +Brandie's +Brando +Brandon +Brandon's +Brandt +Brandy +Brandy's +Brant +Brant's +Braque +Brasilia +Brasilia's +Bratislava +Brattain +Brattain's +Bray +Bray's +Brazil +Brazil's +Brazilian +Brazilian's +Brazilians +Brazos +Brazos's +Brazzaville +Brazzaville's +Breakspear +Breakspear's +Brecht +Breckenridge +Breckenridge's +Bremen +Brenda +Brenda's +Brendan +Brendan's +Brennan +Brennan's +Brenner +Brenner's +Brent +Brent's +Brenton +Brenton's +Brest +Bret +Bret's +Breton +Breton's +Brett +Brett's +Brewer +Brewer's +Brewster +Brezhnev +Brian +Brian's +Briana +Briana's +Brianna +Brianna's +Brice +Brice's +Bridalveil +Bridalveil's +Bridgeport +Bridgeport's +Bridger +Bridger's +Bridges +Bridget +Bridget's +Bridgetown +Bridgett +Bridgett's +Bridgette +Bridgette's +Bridgman +Brie +Brie's +Brigadoon +Briggs +Brigham +Brigham's +Bright +Brighton +Brighton's +Brigid +Brigid's +Brigitte +Brigitte's +Brillo +Brinkley +Brinkley's +Brisbane +Brisbane's +Bristol +Bristol's +Brit +Brit's +Britain +Britain's +Britannia +Britannic +Britannica +Britannica's +British +British's +Britisher +Britney +Britney's +Briton +Briton's +Britons +Brits +Britt +Britt's +Brittany +Brittany's +Britten +Brittney +Brittney's +Brno +Broadway +Broadway's +Broadways +Brobdingnag +Brobdingnag's +Brobdingnagian +Brock +Brock's +Brokaw +Brokaw's +Bronson +Bronson's +Bronte +Bronx +Bronx's +Brooke +Brooklyn +Brooklyn's +Brooks +Brown +Browne +Brownian +Brownian's +Brownie +Brownies +Browning +Brownshirt +Brownsville +Brubeck +Bruce +Bruce's +Bruckner +Brueghel +Brummel +Brummel's +Brunei +Brunei's +Brunelleschi +Brunhilde +Brunhilde's +Bruno +Brunswick +Brunswick's +Brussels +Brussels's +Brut +Brut's +Brutus +Brutus's +Bryan +Bryant +Bryce +Bryce's +Brynner +Brynner's +Bryon +Bryon's +Brzezinski +Brzezinski's +Btu +Btu's +Buber +Buchanan +Buchanan's +Bucharest +Bucharest's +Buchenwald +Buchwald +Buchwald's +Buck +Buckingham +Buckley +Buckley's +Buckner +Buckner's +Bud +Bud's +Budapest +Budapest's +Buddha +Buddha's +Buddhas +Buddhism +Buddhism's +Buddhisms +Buddhist +Buddhist's +Buddhists +Buddy +Buddy's +Budweiser +Budweiser's +Buffalo +Buffalo's +Buffy +Buffy's +Buford +Buford's +Bugatti +Bugatti's +Bugzilla +Bugzilla's +Buick +Buick's +Bujumbura +Bujumbura's +Bukhara +Bukharin +Bulawayo +Bulfinch +Bulganin +Bulgar +Bulgari +Bulgari's +Bulgaria +Bulgaria's +Bulgarian +Bulgarian's +Bulgarians +Bullock +Bullock's +Bullwinkle +Bullwinkle's +Bultmann +Bultmann's +Bumppo +Bumppo's +Bunche +Bundesbank +Bundesbank's +Bundestag +Bunin +Bunker +Bunker's +Bunsen +Bunyan +Bunyan's +Burbank +Burberry +Burberry's +Burch +Burch's +Burger +Burger's +Burgess +Burgoyne +Burgoyne's +Burgundian +Burgundies +Burgundy +Burgundy's +Burke +Burks +Burl +Burl's +Burma +Burma's +Burmese +Burmese's +Burnett +Burns +Burnside +Burr +Burris +Burris's +Burroughs +Bursa +Burt +Burt's +Burton +Burton's +Burundi +Burundi's +Busch +Busch's +Bush +Bush's +Bushido +Bushnell +Bushnell's +Butler +Butterfingers +Butterfingers's +Buxtehude +Buñuel +Buñuel's +Byblos +Byblos's +Byelorussia +Byelorussia's +Byers +Byers's +Byrd +Byron +Byronic +Byzantine +Byzantine's +Byzantines +Byzantium +Byzantium's +C +C's +CD's +CEO's +CFC's +CIA's +CO's +COBOL's +CPA's +CPI's +CPR's +CPU's +CRT's +CST's +CT's +Ca +Ca's +Cabernet +Cabernet's +Cabinet +Cabot +Cabral +Cabrera +Cabrera's +Cabrini +Cadillac +Cadiz +Cadiz's +Caedmon +Caedmon's +Caerphilly +Caesar +Caesar's +Caesarean +Caesars +Cage +Cagney +Cagney's +Cahokia +Cahokia's +Caiaphas +Cain +Cain's +Cains +Cairo +Cairo's +Caitlin +Caitlin's +Cajun +Cajun's +Cajuns +Cal +Calais +Calcutta +Calcutta's +Calder +Calderon +Calderon's +Caldwell +Caleb +Caleb's +Caledonia +Calgary +Calgary's +Calhoun +Cali +Caliban +California +California's +Californian +Californian's +Californians +Caligula +Callaghan +Callahan +Callahan's +Callao +Callas +Callie +Callie's +Calliope +Calliope's +Callisto +Callisto's +Caloocan +Caloocan's +Calvary +Calvary's +Calvert +Calvin +Calvin's +Calvinism +Calvinism's +Calvinisms +Calvinist +Calvinist's +Calvinistic +Calvinists +Camacho +Camacho's +Cambodia +Cambodia's +Cambodian +Cambodian's +Cambodians +Cambrian +Cambrian's +Cambridge +Cambridge's +Camel +Camel's +Camelopardalis +Camelot +Camelot's +Camembert +Camembert's +Camemberts +Cameron +Cameron's +Cameroon +Cameroon's +Cameroons +Camilla +Camilla's +Camille +Camille's +Camoens +Camoens's +Campanella +Campanella's +Campbell +Campinas +Campos +Camry +Camry's +Camus +Canaan +Canaan's +Canada +Canada's +Canadian +Canadian's +Canadians +Canaletto +Canaries +Canaries's +Canaveral +Canberra +Canberra's +Cancer +Cancer's +Cancers +Cancun +Cancun's +Candace +Candace's +Candice +Candice's +Candide +Candide's +Candy +Candy's +Cannes +Cannes's +Cannon +Cannon's +Canon +Canon's +Canopus +Cantabrigian +Cantabrigian's +Canterbury +Canton +Canton's +Cantonese +Cantonese's +Cantor +Cantor's +Cantrell +Cantrell's +Cantu +Cantu's +Canute +Capablanca +Capek +Capek's +Capella +Capella's +Capet +Capetian +Capetown +Capetown's +Caph +Caph's +Capistrano +Capistrano's +Capitol +Capitol's +Capitoline +Capitols +Capone +Capote +Capra +Capra's +Capri +Capri's +Capricorn +Capricorn's +Capricorns +Capt +Capuchin +Capulet +Capulet's +Cara +Cara's +Caracalla +Caracas +Caracas's +Caravaggio +Carboloy +Carboloy's +Carboniferous +Carboniferous's +Carborundum +Cardenas +Cardenas's +Cardiff +Cardiff's +Cardin +Cardin's +Cardozo +Cardozo's +Carey +Carib +Carib's +Caribbean +Caribbean's +Caribbeans +Carina +Carissa +Carissa's +Carl +Carl's +Carla +Carla's +Carlene +Carlene's +Carlin +Carlin's +Carlo +Carlo's +Carlos +Carlsbad +Carlson +Carlson's +Carlton +Carly +Carly's +Carlyle +Carmela +Carmela's +Carmella +Carmella's +Carmelo +Carmelo's +Carmen +Carmen's +Carmichael +Carmichael's +Carmine +Carmine's +Carnap +Carnation +Carnation's +Carnegie +Carnegie's +Carney +Carney's +Carnot +Carol +Carol's +Carole +Carole's +Carolina +Caroline +Carolingian +Carolinian +Carolinian's +Carolyn +Carolyn's +Carpathian +Carpathian's +Carpathians +Carpenter +Carr +Carr's +Carranza +Carranza's +Carrie +Carrie's +Carrier +Carrier's +Carrillo +Carrillo's +Carroll +Carroll's +Carson +Carter +Carter's +Cartesian +Carthage +Carthage's +Carthaginian +Carthaginian's +Cartier +Cartwright +Caruso +Carver +Cary +Casablanca +Casablanca's +Casals +Casandra +Casandra's +Casanova +Casanova's +Casanovas +Cascades +Cascades's +Case +Case's +Casey +Casey's +Cash +Casio +Casio's +Caspar +Caspian +Cassandra +Cassandra's +Cassatt +Cassie +Cassie's +Cassiopeia +Cassiopeia's +Cassius +Cassius's +Castaneda +Castaneda's +Castillo +Castillo's +Castlereagh +Castor +Castor's +Castries +Castries's +Castro +Catalan +Catalan's +Catalina +Catalina's +Catalonia +Catalonia's +Catawba +Catawba's +Caterpillar +Caterpillar's +Cathay +Cathay's +Cather +Catherine +Catherine's +Cathleen +Cathleen's +Catholic +Catholic's +Catholicism +Catholicism's +Catholicisms +Catholics +Cathryn +Cathryn's +Cathy +Cathy's +Catiline +Cato +Catskill +Catskill's +Catskills +Catskills's +Catt +Catullus +Caucasian +Caucasian's +Caucasians +Caucasoid +Caucasus +Caucasus's +Cauchy +Cavendish +Cavour +Caxton +Cayenne +Cayman +Cayman's +Cayuga +Cayuga's +Cd +Cd's +Ceausescu +Ceausescu's +Cebu +Cebu's +Cebuano +Cebuano's +Cecelia +Cecelia's +Cecil +Cecile +Cecile's +Cecilia +Cecily +Cecily's +Cedric +Cedric's +Celebes +Celebes's +Celeste +Celeste's +Celia +Celia's +Celina +Celina's +Cellini +Celsius +Celt +Celt's +Celtic +Celtic's +Celtics +Celts +Cenozoic +Cenozoic's +Centaurus +Centaurus's +Centigrade +Cepheid +Cepheus +Cepheus's +Cerberus +Cerberus's +Cerenkov +Ceres +Ceres's +Cerf +Cerf's +Cervantes +Cervantes's +Cesar +Cesar's +Cesarean +Cessna +Cessna's +Cetus +Ceylon +Ceylon's +Cezanne +Cf +Cf's +Ch'in +Chablis +Chablis's +Chad +Chad's +Chadwick +Chagall +Chaitanya +Chaitanya's +Chaitin +Chaitin's +Chaldean +Challenger +Challenger's +Chamberlain +Chambers +Champlain +Champollion +Chan +Chan's +Chance +Chance's +Chancellorsville +Chancellorsville's +Chandigarh +Chandler +Chandon +Chandon's +Chandra +Chandra's +Chandragupta +Chandrasekhar +Chandrasekhar's +Chanel +Chaney +Chaney's +Chang +Chang's +Changchun +Changsha +Chantilly +Chanukah +Chanukah's +Chanukahs +Chaplin +Chapman +Chappaquiddick +Chappaquiddick's +Chapultepec +Chapultepec's +Charbray +Charbray's +Chardonnay +Chardonnay's +Charity +Charity's +Charlemagne +Charlemagne's +Charlene +Charlene's +Charles +Charles's +Charleston +Charleston's +Charlestons +Charley +Charlie +Charlotte +Charlotte's +Charlottetown +Charlottetown's +Charmaine +Charmaine's +Charmin +Charmin's +Charolais +Charolais's +Charon +Charon's +Chartism +Chartism's +Chartres +Charybdis +Charybdis's +Chase +Chasity +Chasity's +Chateaubriand +Chateaubriand's +Chattahoochee +Chattahoochee's +Chattanooga +Chattanooga's +Chatterley +Chatterley's +Chatterton +Chaucer +Chaucer's +Chauncey +Chauncey's +Chautauqua +Chavez +Chavez's +Chayefsky +Chayefsky's +Che +Che's +Chechen +Chechnya +Chechnya's +Cheddar +Cheer +Cheer's +Cheerios +Cheerios's +Cheetos +Cheetos's +Cheever +Chekhov +Chekhov's +Chelsea +Chelyabinsk +Chelyabinsk's +Chen +Chen's +Cheney +Cheney's +Chengdu +Chennai +Chennai's +Cheops +Cheri +Cheri's +Cherie +Cherie's +Chernenko +Chernenko's +Chernobyl +Chernobyl's +Chernomyrdin +Chernomyrdin's +Cherokee +Cherokee's +Cherokees +Cherry +Cherry's +Cheryl +Cheryl's +Chesapeake +Cheshire +Chester +Chester's +Chesterfield +Chesterton +Chevalier +Cheviot +Cheviot's +Chevrolet +Chevrolet's +Chevron +Chevron's +Chevy +Chevy's +Cheyenne +Cheyenne's +Cheyennes +Chi +Chi's +Chianti +Chianti's +Chiantis +Chiba +Chibcha +Chicago +Chicago's +Chicagoan +Chicana +Chicano +Chickasaw +Chickasaw's +Chiclets +Chiclets's +Chihuahua +Chihuahua's +Chihuahuas +Chile +Chile's +Chilean +Chilean's +Chileans +Chimborazo +Chimborazo's +Chimera +Chimera's +Chimu +Chimu's +China +China's +Chinatown +Chinese +Chinese's +Chinook +Chinook's +Chinooks +Chipewyan +Chipewyan's +Chippendale +Chippendale's +Chippewa +Chippewa's +Chiquita +Chiquita's +Chirico +Chisholm +Chisholm's +Chisinau +Chisinau's +Chittagong +Chivas +Chivas's +Chloe +Choctaw +Choctaw's +Chomsky +Chongqing +Chopin +Chopin's +Chopra +Chopra's +Chou +Chretien +Chretien's +Chris +Chris's +Christ +Christ's +Christa +Christa's +Christchurch +Christendom +Christendom's +Christendoms +Christensen +Christensen's +Christi +Christi's +Christian +Christian's +Christianities +Christianity +Christianity's +Christians +Christie +Christina +Christine +Christine's +Christmas +Christmas's +Christmases +Christoper +Christoper's +Christopher +Christopher's +Christs +Christy +Chrysler +Chrysler's +Chrysostom +Chrystal +Chrystal's +Chuck +Chuck's +Chukchi +Chumash +Chung +Chung's +Chungking +Chungking's +Church +Churchill +Churchill's +Churriguera +Churriguera's +Chuvash +Chuvash's +Ci +Cicero +Cicero's +Cid +Cimabue +Cimabue's +Cincinnati +Cinderella +Cinderella's +Cinderellas +Cindy +Cindy's +CinemaScope +CinemaScope's +Cinerama +Cipro +Cipro's +Circe +Circe's +Cisco +Cisco's +Citibank +Citibank's +Citigroup +Citigroup's +Citroen +Citroen's +Cl +Cl's +Claiborne +Claiborne's +Clair +Clair's +Claire +Claire's +Clairol +Clairol's +Clancy +Clancy's +Clapeyron +Clapeyron's +Clapton +Clapton's +Clara +Clara's +Clare +Clarence +Clarence's +Clarendon +Clarice +Clarice's +Clarissa +Clarissa's +Clark +Clarke +Clarke's +Claude +Claude's +Claudette +Claudette's +Claudia +Claudia's +Claudine +Claudine's +Claudio +Claudio's +Claudius +Claudius's +Claus +Claus's +Clausewitz +Clausius +Clay +Clayton +Clayton's +Clearasil +Clearasil's +Clem +Clem's +Clemenceau +Clemens +Clement +Clement's +Clementine +Clementine's +Clements +Clemons +Clemson +Clemson's +Cleo +Cleo's +Cleopatra +Cleopatra's +Cleveland +Cleveland's +Cliburn +Cliburn's +Cliff +Cliff's +Clifford +Clifton +Clifton's +Cline +Cline's +Clint +Clint's +Clinton +Clinton's +Clio +Clio's +Clive +Clorets +Clorets's +Clorox +Clorox's +Clotho +Clotho's +Clouseau +Clouseau's +Clovis +Clovis's +Clyde +Clydesdale +Clydesdale's +Clytemnestra +Cm +Cm's +Co +Co's +Cobain +Cobain's +Cobb +Cochabamba +Cochin +Cochise +Cochran +Cochran's +Cockney +Cockney's +Cocteau +Cody +Coffey +Coffey's +Cognac +Cognac's +Cohan +Cohen +Coimbatore +Cointreau +Coke +Coke's +Cokes +Col +Colbert +Colbert's +Colby +Cole +Coleen +Coleen's +Coleman +Coleman's +Coleridge +Coleridge's +Colette +Colfax +Colfax's +Colgate +Colgate's +Colin +Colin's +Colleen +Colleen's +Collier +Collier's +Collin +Collin's +Collins +Colo +Cologne +Cologne's +Colombia +Colombia's +Colombian +Colombian's +Colombians +Colombo +Colombo's +Colon +Colon's +Colorado +Colorado's +Colosseum +Colt +Colt's +Coltrane +Columbia +Columbia's +Columbine +Columbus +Columbus's +Com +Comanche +Comanche's +Comanches +Combs +Combs's +Comintern +Commons +Commonwealth +Communion +Communion's +Communions +Communism +Communist +Communist's +Communists +Como +Comoros +Comoros's +Compaq +Compaq's +Compton +CompuServe +CompuServe's +Comte +Conakry +Conakry's +Conan +Conan's +Concepción +Concetta +Concetta's +Concord +Concord's +Concorde +Concords +Condillac +Condorcet +Conestoga +Conestoga's +Confederacy +Confederacy's +Confederate +Confederate's +Confederates +Confucian +Confucian's +Confucianism +Confucianism's +Confucianisms +Confucians +Confucius +Confucius's +Cong +Congo +Congo's +Congolese +Congolese's +Congregationalist +Congregationalist's +Congregationalists +Congress +Congress's +Congresses +Congreve +Conley +Conley's +Conn +Connecticut +Connecticut's +Connemara +Conner +Conner's +Connery +Connery's +Connie +Connie's +Connolly +Connolly's +Connors +Conrad +Conrail +Conrail's +Constable +Constance +Constantine +Constantinople +Constantinople's +Constitution +Consuelo +Consuelo's +Continent +Continent's +Continental +Contreras +Contreras's +Conway +Cook +Cooke +Cooke's +Cooley +Cooley's +Coolidge +Coolidge's +Cooper +Cooperstown +Cooperstown's +Coors +Coors's +Copacabana +Copacabana's +Copeland +Copeland's +Copenhagen +Copenhagen's +Copernican +Copernicus +Copernicus's +Copland +Copley +Copperfield +Copperfield's +Coppertone +Coppertone's +Coppola +Coppola's +Coptic +Coptic's +Cora +Cora's +Cordelia +Cordelia's +Cordilleras +Cordoba +Cordoba's +Corey +Corey's +Corfu +Corina +Corina's +Corine +Corine's +Corinne +Corinne's +Corinth +Corinth's +Corinthian +Corinthian's +Corinthians +Coriolanus +Coriolis +Coriolis's +Corleone +Corleone's +Cormack +Cormack's +Corneille +Cornelia +Cornelia's +Cornelius +Cornelius's +Cornell +Cornell's +Corning +Corning's +Cornish +Cornish's +Cornwall +Cornwall's +Cornwallis +Coronado +Corot +Correggio +Corrine +Corrine's +Corsica +Corsica's +Corsican +Cortes +Cortes's +Corteses +Cortez +Cortez's +Cortland +Cortland's +Corvallis +Corvallis's +Corvette +Corvette's +Corvus +Corvus's +Cory +Cory's +Cosby +Cosby's +Cossack +Costco +Costco's +Costello +Costello's +Costner +Costner's +Cote +Cote's +Cotonou +Cotopaxi +Cotopaxi's +Cotswold +Cotswold's +Cotton +Cotton's +Coulomb +Coulter +Coulter's +Couperin +Courbet +Courtney +Courtney's +Cousteau +Coventries +Coventry +Coventry's +Coward +Cowley +Cowper +Cox +Coy +Coy's +Cozumel +Cozumel's +Cr +Cr's +Crabbe +Craft +Craft's +Craig +Cranach +Crane +Cranmer +Crater +Crater's +Crawford +Crawford's +Cray +Cray's +Crayola +Crayola's +Creation +Creation's +Creator +Creator's +Crecy +Crecy's +Cree +Cree's +Creek +Creek's +Creighton +Creighton's +Creole +Creole's +Creoles +Creon +Crest +Crest's +Cretaceous +Cretaceous's +Cretan +Cretan's +Crete +Crete's +Crichton +Crick +Crimea +Crimea's +Crimean +Criollo +Crisco +Crisco's +Cristina +Cristina's +Croat +Croat's +Croatia +Croatia's +Croatian +Croatian's +Croatians +Croats +Croce +Crockett +Croesus +Cromwell +Cromwell's +Cromwellian +Cronin +Cronin's +Cronkite +Cronkite's +Cronus +Cronus's +Crookes +Crosby +Cross +Crowley +Crowley's +Cruikshank +Cruise +Cruise's +Crusades +Crusoe +Crusoe's +Crux +Crux's +Cruz +Cruz's +Cryptozoic +Cryptozoic's +Crystal +Crystal's +Cs +Csonka +Csonka's +Ctesiphon +Cthulhu +Cthulhu's +Cu +Cu's +Cuba +Cuba's +Cuban +Cuban's +Cubans +Cuchulain +Cuchulain's +Cuisinart +Culbertson +Cullen +Cullen's +Cumberland +Cumberland's +Cummings +Cunard +Cunard's +Cunningham +Cunningham's +Cupid +Cupid's +Curacao +Curacao's +Curie +Curitiba +Currier +Currier's +Curry +Curt +Curt's +Curtis +Curtis's +Custer +Cuvier +Cuvier's +Cuzco +Cybele +Cybele's +Cyclades +Cyclades's +Cyclops +Cyclops's +Cygnus +Cygnus's +Cymbeline +Cymbeline's +Cynthia +Cynthia's +Cyprian +Cyprian's +Cypriot +Cypriot's +Cypriots +Cyprus +Cyprus's +Cyrano +Cyrano's +Cyril +Cyrillic +Cyrillic's +Cyrus +Czech +Czech's +Czechoslovakia +Czechoslovakia's +Czechoslovakian +Czechoslovakian's +Czechoslovakians +Czechs +Czerny +D +D's +DA's +DAT's +DC's +DD's +DDS's +DNA's +DOS's +DP's +Dacca +Dacca's +Dachau +Dachau's +Dacron +Dacron's +Dacrons +Dada +Dada's +Dadaism +Dadaism's +Daedalus +Daedalus's +Daguerre +Dagwood +Dahomey +Dahomey's +Daimler +Daimler's +Daisy +Dakar +Dakar's +Dakota +Dakota's +Dakotan +Dakotas +Dale +Daley +Daley's +Dali +Dalian +Dalian's +Dallas +Dallas's +Dalmatian +Dalmatian's +Dalmatians +Dalton +Dalton's +Damascus +Damascus's +Damian +Damian's +Damien +Damion +Damion's +Damocles +Damon +Damon's +Dan +Dana +Dana's +Dane +Dane's +Danelaw +Danes +Dangerfield +Dangerfield's +Danial +Danial's +Daniel +Daniel's +Danielle +Danielle's +Daniels +Danish +Danish's +Dannie +Dannie's +Danny +Danny's +Danone +Danone's +Dante +Dante's +Danton +Danube +Danube's +Danubian +Daphne +Daphne's +Darby +Darby's +Darcy +Darcy's +Dardanelles +Dardanelles's +Dare +Daren +Daren's +Darfur +Darin +Darin's +Dario +Dario's +Darius +Darjeeling +Darla +Darla's +Darlene +Darlene's +Darling +Darling's +Darnell +Darnell's +Darrel +Darrel's +Darrell +Darrell's +Darren +Darren's +Darrin +Darrin's +Darrow +Darryl +Darryl's +Darth +Darth's +Dartmoor +Dartmouth +Darvon +Darvon's +Darwin +Darwin's +Darwinian +Darwinism +Darwinism's +Daryl +Daryl's +Daugherty +Daugherty's +Daumier +Davao +Dave +Dave's +Davenport +David +David's +Davids +Davidson +Davidson's +Davies +Davis +Davy +Dawes +Dawn +Dawn's +Dawson +Day +Dayton +DeGeneres +DeGeneres's +Deadhead +Deadhead's +Dean +Deana +Deana's +Deandre +Deandre's +Deann +Deann's +Deanna +Deanna's +Deanne +Deanne's +Debbie +Debbie's +Debby +Debby's +Debian +Debian's +Debora +Debora's +Deborah +Debouillet +Debouillet's +Debra +Debra's +Debs +Debussy +Dec +Dec's +Decalogue +Decalogue's +Decatur +Decca +Decca's +Deccan +December +December's +Decembers +Decker +Dedekind +Dedekind's +Dee +Deena +Deena's +Deere +Deere's +Defoe +Degas +Deidre +Deidre's +Deimos +Deirdre +Deity +Dejesus +Dejesus's +Del +Delacroix +Delacruz +Delacruz's +Delaney +Delaney's +Delano +Delano's +Delaware +Delaware's +Delawarean +Delawarean's +Delawareans +Delawares +Delbert +Delbert's +Deleon +Deleon's +Delgado +Delhi +Delhi's +Delia +Delia's +Delibes +Delicious +Delicious's +Delilah +Delilah's +Delius +Dell +Dell's +Della +Della's +Delmar +Delmar's +Delmarva +Delmarva's +Delmer +Delmer's +Delmonico +Delores +Delores's +Deloris +Deloris's +Delphi +Delphi's +Delphic +Delphinus +Delphinus's +Delta +Dem +Demavend +Demavend's +Demerol +Demerol's +Demeter +Demeter's +Demetrius +Demetrius's +Deming +Deming's +Democrat +Democrat's +Democratic +Democrats +Democritus +Demosthenes +Demosthenes's +Dempsey +Dena +Dena's +Deneb +Denebola +Denebola's +Deng +Deng's +Denis +Denise +Denise's +Denmark +Denmark's +Dennis +Denny +Denny's +Denver +Denver's +Deon +Deon's +Depp +Depp's +Derby +Derek +Derek's +Derick +Derick's +Derrick +Derrick's +Derrida +Derrida's +Descartes +Descartes's +Desdemona +Desdemona's +Desiree +Desiree's +Desmond +Desmond's +Detroit +Detroit's +Deuteronomy +Deuteronomy's +Devanagari +Devanagari's +Devi +Devi's +Devin +Devin's +Devon +Devon's +Devonian +Devonian's +Dewar +Dewar's +Dewayne +Dewayne's +Dewey +Dewey's +Dewitt +Dewitt's +Dexedrine +Dexedrine's +Dexter +Dhaka +Dhaka's +Dhaulagiri +Dhaulagiri's +Di +DiCaprio +DiCaprio's +DiMaggio +Diaghilev +Dial +Dial's +Diana +Diana's +Diane +Diane's +Diann +Diann's +Dianna +Dianna's +Dianne +Dianne's +Diaspora +Diaspora's +Diaz +Dick +Dickens +Dickerson +Dickerson's +Dickinson +Dickson +Dickson's +Dictaphone +Dictaphone's +Diderot +Dido +Dido's +Didrikson +Didrikson's +Diefenbaker +Diego +Diego's +Diem +Diem's +Diesel +Diesel's +Dietrich +Dijkstra +Dijkstra's +Dijon +Dilbert +Dilbert's +Dillard +Dillard's +Dillinger +Dillinger's +Dillon +Dillon's +Dina +Dina's +Dinah +Dino +Dino's +Diocletian +Diogenes +Dion +Dion's +Dionne +Dionne's +Dionysian +Dionysus +Dionysus's +Diophantine +Diophantine's +Dior +Dipper +Dipper's +Dirac +Dirichlet +Dirk +Dirk's +Dis +Dis's +Disney +Disneyland +Disraeli +Diwali +Diwali's +Dix +Dixie +Dixie's +Dixiecrat +Dixieland +Dixieland's +Dixielands +Dixon +Dixon's +Djakarta +Djakarta's +Djibouti +Djibouti's +Dmitri +Dmitri's +Dnepropetrovsk +Dnieper +Dniester +Dobbin +Dobbin's +Doberman +Doberman's +Dobro +Doctor +Doctorow +Doctorow's +Dodge +Dodge's +Dodgson +Dodgson's +Dodoma +Dodoma's +Dodson +Dodson's +Doe +Doha +Doha's +Dolby +Dole +Dole's +Dollie +Dollie's +Dolly +Dolly's +Dolores +Dolores's +Domesday +Domesday's +Domingo +Domingo's +Dominguez +Dominguez's +Dominic +Dominica +Dominica's +Dominican +Dominican's +Dominicans +Dominick +Dominick's +Dominique +Dominique's +Domitian +Don +Don's +Dona +Donahue +Donahue's +Donald +Donald's +Donaldson +Donaldson's +Donatello +Donetsk +Donetsk's +Donizetti +Donizetti's +Donn +Donn's +Donna +Donne +Donne's +Donnell +Donnell's +Donner +Donner's +Donnie +Donnie's +Donny +Donny's +Donovan +Donovan's +Dooley +Dooley's +Doolittle +Doonesbury +Doonesbury's +Doppler +Dora +Dora's +Dorcas +Doreen +Doreen's +Dorian +Dorian's +Doric +Doric's +Doris +Doris's +Doritos +Doritos's +Dorothea +Dorothea's +Dorothy +Dorothy's +Dorset +Dorsey +Dorsey's +Dorthy +Dorthy's +Dortmund +Dostoevsky +Dostoevsky's +Dot +Dot's +Dotson +Dotson's +Douala +Douala's +Douay +Douay's +Doubleday +Doubleday's +Doug +Doug's +Douglas +Douglass +Douro +Dover +Dover's +Dow +Downs +Downy +Downy's +Doyle +Dr +Draco +Draco's +Draconian +Dracula +Dracula's +Drake +Dramamine +Dramamine's +Drambuie +Drano +Drano's +Dravidian +Dravidian's +Dreiser +Dresden +Dresden's +Drew +Drew's +Dreyfus +Dreyfus's +Dristan +Dristan's +Drudge +Drudge's +Druid +Dryden +Dschubba +Dschubba's +DuPont +Duane +Duane's +Dubai +Dubcek +Dubcek's +Dubhe +Dubhe's +Dublin +Dublin's +Dubrovnik +Dubrovnik's +Duchamp +Dudley +Duffy +Duffy's +Duisburg +Duke +Duke's +Dulles +Duluth +Dumas +Dumbledore +Dumbledore's +Dumbo +Dumbo's +Dumpster +Dunant +Dunbar +Duncan +Dunedin +Dunkirk +Dunkirk's +Dunlap +Dunlap's +Dunn +Dunn's +Dunne +Dunne's +Duracell +Duracell's +Duran +Duran's +Durant +Durante +Durante's +Durban +Durex +Durex's +Durham +Durham's +Durhams +Durkheim +Duroc +Durocher +Durocher's +Duse +Duse's +Dushanbe +Dushanbe's +Dustbuster +Dustbuster's +Dustin +Dustin's +Dusty +Dusty's +Dutch +Dutch's +Dutchman +Dutchman's +Dutchmen +Duvalier +Dvina +Dvorák +Dwayne +Dwayne's +Dwight +Dwight's +Dyer +Dyer's +Dylan +Dylan's +Dyson +Dyson's +Dzerzhinsky +Dzerzhinsky's +Dzungaria +Dürer +Düsseldorf +Düsseldorf's +E +E's +ECG's +ECMAScript +ECMAScript's +EEC's +EEG's +EKG's +EPA's +ESP's +EST's +Eakins +Earhart +Earl +Earl's +Earle +Earle's +Earlene +Earlene's +Earline +Earline's +Earnest +Earnest's +Earnestine +Earnestine's +Earnhardt +Earnhardt's +Earp +Earp's +Earth +Earth's +East +East's +Easter +Easter's +Eastern +Easterner +Easters +Eastman +Easts +Eastwood +Eastwood's +Eaton +Eaton's +Eben +Eben's +Ebeneezer +Ebeneezer's +Ebert +Ebola +Ebonics +Ebonics's +Ebony +Ebony's +Ebro +Ebro's +Ecclesiastes +Eco +Eco's +Ecuador +Ecuador's +Ecuadoran +Ecuadoran's +Ecuadorans +Ecuadorian +Ecuadorian's +Ecuadorians +Ed +Ed's +Edam +Edam's +Edams +Edda +Eddie +Eddie's +Eddington +Eddington's +Eddy +Eddy's +Eden +Eden's +Edens +Edgar +Edgardo +Edgardo's +Edinburgh +Edinburgh's +Edison +Edison's +Edith +Edith's +Edmond +Edmond's +Edmonton +Edmonton's +Edmund +Edmund's +Edna +Edna's +Edsel +Eduardo +Eduardo's +Edward +Edward's +Edwardian +Edwardian's +Edwardo +Edwardo's +Edwards +Edwin +Edwina +Edwina's +Eeyore +Eeyore's +Effie +Effie's +Efrain +Efrain's +Efren +Efren's +Eggo +Eggo's +Egypt +Egypt's +Egyptian +Egyptian's +Egyptians +Egyptology +Egyptology's +Ehrenberg +Ehrenberg's +Ehrlich +Eichmann +Eiffel +Eileen +Eileen's +Einstein +Einstein's +Einsteins +Eire +Eire's +Eisenhower +Eisenhower's +Eisenstein +Eisner +Eisner's +Elaine +Elam +Elanor +Elanor's +Elastoplast +Elastoplast's +Elba +Elbe +Elbe's +Elbert +Elbrus +Eldon +Eldon's +Eleanor +Eleanor's +Eleazar +Eleazar's +Electra +Electra's +Elena +Elena's +Elgar +Eli +Elias +Elijah +Elijah's +Elinor +Elinor's +Eliot +Elisa +Elisa's +Elisabeth +Elise +Elise's +Eliseo +Eliseo's +Elisha +Eliza +Eliza's +Elizabeth +Elizabeth's +Elizabethan +Elizabethan's +Elizabethans +Ella +Ella's +Ellen +Ellen's +Ellesmere +Ellesmere's +Ellie +Ellie's +Ellington +Elliot +Elliot's +Elliott +Elliott's +Ellis +Ellison +Ellison's +Elma +Elma's +Elmer +Elmer's +Elmo +Elmo's +Elnath +Elnath's +Elnora +Elnora's +Elohim +Eloise +Eloise's +Eloy +Eloy's +Elroy +Elroy's +Elsa +Elsa's +Elsie +Elsie's +Elsinore +Eltanin +Eltanin's +Elton +Elton's +Elul +Elul's +Elva +Elva's +Elvia +Elvia's +Elvin +Elvin's +Elvira +Elvira's +Elvis +Elvis's +Elway +Elway's +Elwood +Elwood's +Elysian +Elysium +Elysium's +Elysiums +Elysée +Elysée's +Emacs +Emacs's +Emanuel +Emanuel's +Emerson +Emery +Emery's +Emil +Emil's +Emile +Emile's +Emilia +Emilia's +Emilio +Emilio's +Emily +Emily's +Eminem +Eminem's +Emma +Emma's +Emmanuel +Emmett +Emmett's +Emmy +Emory +Emory's +Encarta +Encarta's +Endymion +Eng +Engels +Engels's +England +England's +English +English's +Englisher +Englishes +Englishman +Englishman's +Englishmen +Englishwoman +Englishwoman's +Englishwomen +Enid +Enif +Enif's +Eniwetok +Eniwetok's +Enkidu +Enkidu's +Enoch +Enos +Enrico +Enrico's +Enrique +Enrique's +Enron +Enron's +Enterprise +Enterprise's +Eocene +Eocene's +Epcot +Epcot's +Ephesian +Ephesus +Ephraim +Epictetus +Epicurean +Epicurus +Epicurus's +Epimethius +Epimethius's +Epiphanies +Epiphany +Epiphany's +Episcopal +Episcopalian +Episcopalian's +Episcopalians +Epsom +Epson +Epson's +Epstein +Equuleus +Er +Er's +Erasmus +Erasmus's +Erato +Erato's +Eratosthenes +Eratosthenes's +Erebus +Erebus's +Erector +Erewhon +Erewhon's +Erhard +Eric +Eric's +Erica +Erica's +Erich +Erich's +Erick +Erick's +Ericka +Ericka's +Erickson +Erickson's +Ericson +Ericsson +Eridanus +Erie +Erik +Erik's +Erika +Erika's +Erin +Eris +Eris's +Eritrea +Eritrea's +Erlenmeyer +Erlenmeyer's +Erma +Erma's +Erna +Erna's +Ernest +Ernest's +Ernestine +Ernestine's +Ernesto +Ernesto's +Ernie +Ernie's +Ernst +Eros +Eros's +Eroses +Errol +Errol's +Erse +Erse's +ErvIn +ErvIn's +Erwin +Erwin's +Es +Esau +Esau's +Escher +Escher's +Escherichia +Escherichia's +Eskimo +Eskimo's +Eskimos +Esmeralda +Esmeralda's +Esperanto +Esperanto's +Esperanza +Esperanza's +Espinoza +Espinoza's +Esq +Esq's +Essen +Essen's +Essene +Essequibo +Essex +Essie +Essie's +Establishment +Esteban +Esteban's +Estela +Estela's +Estella +Estella's +Estelle +Estelle's +Ester +Ester's +Esterházy +Esterházy's +Estes +Esther +Esther's +Estonia +Estonia's +Estonian +Estonian's +Estonians +Estrada +Estrada's +Ethan +Ethan's +Ethel +Ethel's +Ethelred +Ethelred's +Ethernet +Ethiopia +Ethiopia's +Ethiopian +Ethiopian's +Ethiopians +Etna +Etna's +Eton +Etruria +Etruscan +Etta +Etta's +Eu +Eu's +Eucharist +Eucharist's +Eucharistic +Eucharists +Euclid +Euclid's +Euclidean +Eugene +Eugenia +Eugenia's +Eugenie +Eugenie's +Eugenio +Eugenio's +Eula +Eula's +Euler +Eumenides +Eumenides's +Eunice +Eunice's +Euphrates +Euphrates's +Eurasia +Eurasia's +Eurasian +Eurasian's +Eurasians +Euripides +Eurodollar +Eurodollar's +Eurodollars +Europa +Europa's +Europe +Europe's +European +European's +Europeans +Eurydice +Eurydice's +Eustachian +Eustachian's +Euterpe +Euterpe's +Eva +Eva's +Evan +Evan's +Evangelina +Evangelina's +Evangeline +Evangeline's +Evans +Evansville +Eve +Eve's +Evelyn +Evenki +Evenki's +EverReady +EverReady's +Everest +Everest's +Everett +Everett's +Everette +Everette's +Everglades +Everglades's +Evert +Evert's +Evian +Evian's +Evita +Evita's +Ewing +Ewing's +Excalibur +Excalibur's +Excedrin +Excedrin's +Excellencies +Excellency +Excellency's +Exercycle +Exocet +Exocet's +Exodus +Exodus's +Exxon +Exxon's +Eyck +Eyck's +Eyre +Eysenck +Eysenck's +Ezekiel +Ezra +F +F's +FBI's +FDIC's +FDR +FDR's +FHA's +FICA's +FM's +FNMA +FNMA's +FORTRAN's +Fabergé +Fabian +Fabian's +Facebook +Facebook's +Faeroe +Faeroe's +Fafnir +Fagin +Fagin's +Fahd +Fahd's +Fahrenheit +Fairbanks +Faisal +Faisal's +Faisalabad +Faith +Falasha +Falkland +Falkland's +Falklands +Fallopian +Fallopian's +Falstaff +Falstaff's +Falwell +Falwell's +Fannie +Fannie's +Fanny +Fanny's +Faraday +Faraday's +Fargo +Fargo's +Farley +Farley's +Farmer +Farragut +Farrakhan +Farrakhan's +Farrell +Farrell's +Farrow +Farrow's +Farsi +Farsi's +Fassbinder +Fassbinder's +Fatah +Fatah's +Fates +Father +Father's +Fathers +Fatima +Fatimid +Faulkner +Faulkner's +Faulknerian +Fauntleroy +Fauntleroy's +Faust +Faust's +Faustian +Faustino +Faustino's +Faustus +Faustus's +Fawkes +Fay +Fay's +Faye +Faye's +Fe +Fe's +Feb +Feb's +Februaries +February +February's +Fed +Fed's +FedEx +Federalist +Federalist's +Federico +Federico's +Feds +Felecia +Felecia's +Felice +Felice's +Felicia +Felicia's +Felicity +Felicity's +Felipe +Felipe's +Felix +Felix's +Fellini +Fenian +Ferber +Ferber's +Ferdinand +Fergus +Ferguson +Ferguson's +Ferlinghetti +Ferlinghetti's +Fermat +Fermat's +Fermi +Fern +Fern's +Fernandez +Fernandez's +Fernando +Fernando's +Ferrari +Ferrari's +Ferraro +Ferraro's +Ferrell +Ferrell's +Ferris +Feynman +Feynman's +Fez +Fiat +Fiat's +Fiberglas +Fibonacci +Fibonacci's +Fichte +Fidel +Fidel's +Fido +Fido's +Fielding +Fields +Figaro +Figaro's +Figueroa +Figueroa's +Fiji +Fiji's +Fijian +Fijian's +Fijians +Filipino +Filipino's +Filipinos +Fillmore +Fillmore's +Filofax +Finch +Finch's +Finland +Finland's +Finley +Finley's +Finn +Finn's +Finnbogadottir +Finnbogadottir's +Finnegan +Finnegan's +Finnish +Finnish's +Finns +Fiona +Fiona's +Firefox +Firefox's +Firestone +Firestone's +Fischer +Fisher +Fisk +Fisk's +Fitch +Fitch's +Fitzgerald +Fitzpatrick +Fitzpatrick's +Fitzroy +Fitzroy's +Fizeau +Fizeau's +Fla +Flanagan +Flanagan's +Flanders +Flanders's +Flatt +Flatt's +Flaubert +Fleischer +Fleischer's +Fleming +Flemish +Flemish's +Fletcher +Flint +Flintstones +Flo +Flo's +Flora +Florence +Florence's +Florentine +Flores +Florida +Florida's +Floridan +Florine +Florine's +Florsheim +Florsheim's +Flory +Flory's +Flossie +Flossie's +Flowers +Floyd +Flynn +Flynn's +Fm +Fm's +Foch +Fokker +Foley +Folgers +Folsom +Fomalhaut +Fonda +Foosball +Foosball's +Forbes +Ford +Ford's +Foreman +Foreman's +Forest +Forest's +Forester +Formica +Formica's +Formicas +Formosa +Formosa's +Formosan +Formosan's +Forrest +Forster +Fortaleza +Fosse +Fosse's +Foster +Fotomat +Fotomat's +Foucault +Fourier +Fourneyron +Fourneyron's +Fowler +Fox +Fox's +Fr +Fr's +Fragonard +Fran +Fran's +France +France's +Frances +Francesca +Francine +Francine's +Francis +Francisca +Francisca's +Franciscan +Franciscan's +Francisco +Francisco's +Franck +Franco +Francois +Francois's +Francoise +Francoise's +Franglais +Frank +Frank's +Frankel +Frankel's +Frankenstein +Frankfort +Frankfort's +Frankfurt +Frankfurt's +Frankfurter +Frankie +Frankie's +Franklin +Franks +Franny +Franny's +Franz +Franz's +Fraser +Frazier +Frazier's +Fred +Fred's +Freda +Freda's +Freddie +Freddie's +Freddy +Freddy's +Frederic +Frederic's +Frederick +Fredericton +Fredericton's +Fredric +Fredric's +Fredrick +Fredrick's +Freeman +Freeman's +Freemason +Freemason's +Freemasonries +Freemasonry +Freemasonry's +Freemasons +Freetown +Freetown's +Freida +Freida's +Fremont +French +French's +Frenches +Frenchman +Frenchman's +Frenchmen +Frenchwoman +Frenchwoman's +Frenchwomen +Freon +Fresnel +Fresnel's +Fresno +Fresno's +Freud +Freud's +Freudian +Frey +Frey's +Freya +Freya's +Fri +Fri's +Friday +Friday's +Fridays +Frieda +Frieda's +Friedan +Friedman +Frigga +Frigga's +Frigidaire +Frisbee +Frisco +Frisian +Frisian's +Frito +Frito's +Fritz +Fritz's +Frobisher +Froissart +Fromm +Fronde +Frontenac +Frontenac's +Frost +Frost's +Frostbelt +Fry +Frye +Frye's +Fuchs +Fuchs's +Fuentes +Fugger +Fuji +Fuji's +Fujitsu +Fujitsu's +Fujiwara +Fujiwara's +Fukuoka +Fukuoka's +Fulani +Fulani's +Fulbright +Fuller +Fulton +Fulton's +Funafuti +Fundy +Furtwängler +Furtwängler's +Fushun +Fuzhou +Fuzhou's +Fuzzbuster +G +G's +GE +GE's +GHQ's +GMT's +GNP's +GOP's +GP's +GTE +GTE's +Ga +Ga's +Gable +Gabon +Gabon's +Gaborone +Gaborone's +Gabriel +Gabriela +Gabriela's +Gabrielle +Gabrielle's +Gacrux +Gacrux's +Gadsden +Gadsden's +Gaea +Gaea's +Gael +Gael's +Gaelic +Gaelic's +Gagarin +Gage +Gail +Gail's +Gaiman +Gaiman's +Gaines +Gaines's +Gainsborough +Gainsborough's +Galahad +Galahad's +Galahads +Galapagos +Galapagos's +Galatea +Galatia +Galatians +Galbraith +Gale +Gale's +Galen +Galibi +Galilean +Galilean's +Galilee +Galileo +Galileo's +Gall +Gall's +Gallagher +Gallagher's +Gallegos +Gallegos's +Gallic +Gallo +Gallo's +Galloway +Galloway's +Gallup +Galois +Galois's +Galsworthy +Galvani +Galveston +Galveston's +Gamay +Gambia +Gambia's +Gamble +Gamble's +Gamow +Gamow's +Gandhi +Gandhi's +Gandhian +Ganesha +Ganesha's +Ganges +Ganges's +Gangtok +Gangtok's +Gantry +Gantry's +Ganymede +Ganymede's +Gap +Gap's +Garbo +Garcia +Garcia's +Gardner +Gardner's +Gareth +Gareth's +Garfield +Garfield's +Garfunkel +Garfunkel's +Gargantua +Garibaldi +Garibaldi's +Garland +Garner +Garrett +Garrett's +Garrick +Garrison +Garry +Garry's +Garth +Garth's +Garvey +Gary +Garza +Garza's +Gascony +Gascony's +Gasser +Gates +Gatling +Gatling's +Gatorade +Gatorade's +Gatsby +Gatsby's +Gatun +Gatun's +Gauguin +Gauguin's +Gaul +Gaul's +Gauls +Gauss +Gauss's +Gaussian +Gautama +Gautama's +Gautier +Gavin +Gavin's +Gawain +Gawain's +Gay +Gayle +Gayle's +Gaza +Gaziantep +Gd +Gd's +Gdansk +Gdansk's +Ge +Ge's +Geffen +Geffen's +Gehenna +Gehenna's +Gehrig +Geiger +Geiger's +Gelbvieh +Gelbvieh's +Geller +Geller's +Gemini +Gemini's +Geminis +Gen +Gena +Gena's +Genaro +Genaro's +Gene +Gene's +Genesis +Genesis's +Genet +Genet's +Geneva +Geneva's +Genevieve +Genevieve's +Genghis +Genghis's +Genoa +Genoa's +Genoas +Gentoo +Gentry +Gentry's +Geo +Geo's +Geoffrey +Geoffrey's +George +George's +Georges +Georgetown +Georgetown's +Georgette +Georgia +Georgia's +Georgian +Georgian's +Georgians +Georgina +Georgina's +Ger +Gerald +Gerald's +Geraldine +Geraldine's +Gerard +Gerard's +Gerardo +Gerardo's +Gerber +Gerber's +Gere +Gere's +Geritol +Geritol's +German +German's +Germanic +Germanic's +Germans +Germany +Germany's +Geronimo +Gerry +Gerry's +Gershwin +Gertrude +Gertrude's +Gestapo +Gestapo's +Gestapos +Gethsemane +Getty +Gettysburg +Gettysburg's +Gewürztraminer +Ghana +Ghana's +Ghanaian +Ghanian +Ghanian's +Ghanians +Ghats +Ghazvanid +Ghazvanid's +Ghent +Ghibelline +Giacometti +Giannini +Giannini's +Giauque +Giauque's +Gibbon +Gibbs +Gibraltar +Gibraltar's +Gibraltars +Gibson +Gide +Gideon +Gielgud +Gienah +Gienah's +Gil +Gil's +Gila +Gila's +Gilbert +Gilbert's +Gilberto +Gilberto's +Gilchrist +Gilchrist's +Gilda +Gilda's +Gilead +Giles +Gilgamesh +Gill +Gillespie +Gillette +Gillette's +Gilliam +Gilliam's +Gillian +Gillian's +Gilligan +Gilligan's +Gilmore +Gilmore's +Gina +Gina's +Ginger +Ginger's +Gingrich +Gingrich's +Ginny +Ginny's +Gino +Gino's +Ginsberg +Ginsburg +Ginsburg's +Ginsu +Ginsu's +Giorgione +Giotto +Giovanni +Giovanni's +Gipsies +Gipsy +Gipsy's +Giraudoux +Giselle +Giselle's +Gish +Giuliani +Giuliani's +Giuseppe +Giuseppe's +Giza +Giza's +Gladstone +Gladstone's +Gladstones +Gladys +Glaser +Glasgow +Glasgow's +Glass +Glass's +Glastonbury +Glastonbury's +Glaswegian +Glaswegian's +Glaxo +Glaxo's +Gleason +Gleason's +Glen +Glen's +Glenda +Glenda's +Glendale +Glenlivet +Glenlivet's +Glenn +Glenn's +Glenna +Glenna's +Gloria +Gloucester +Glover +Glover's +Gnostic +Gnosticism +Gnosticism's +Goa +Gobi +Gobi's +God +God's +Goddard +Godiva +Godiva's +Godot +Godot's +Godthaab +Godunov +Godzilla +Godzilla's +Goebbels +Goering +Goethals +Goethals's +Goethe +Goethe's +Goff +Goff's +Gog +Gogol +Goiania +Goiania's +Golan +Golan's +Golconda +Golda +Golda's +Goldberg +Goldberg's +Golden +Golden's +Goldie +Goldie's +Goldilocks +Goldilocks's +Golding +Goldman +Goldman's +Goldsmith +Goldwater +Goldwater's +Goldwyn +Golgi +Golgotha +Golgotha's +Goliath +Gomez +Gomez's +Gomorrah +Gomorrah's +Gompers +Gomulka +Gondwanaland +Gondwanaland's +Gonzales +Gonzalez +Gonzalez's +Gonzalo +Gonzalo's +Good +Good's +Goodall +Goodall's +Goodman +Goodrich +Goodrich's +Goodwill +Goodwill's +Goodwin +Goodwin's +Goodyear +Google +Google's +Goolagong +Goolagong's +Gopher +Gorbachev +Gordian +Gordian's +Gordimer +Gordon +Gore +Goren +Goren's +Gorey +Gorey's +Gorgas +Gorgonzola +Gorky +Gorky's +Gospel +Gospel's +Gospels +Goth +Goth's +Gotham +Gothic +Gothic's +Gothics +Goths +Gouda +Gouda's +Goudas +Gould +Gounod +Goya +Grable +Grable's +Gracchus +Grace +Graceland +Graceland's +Gracie +Gracie's +Graciela +Graciela's +Grady +Grady's +Graffias +Graffias's +Grafton +Grafton's +Graham +Grahame +Grail +Grammy +Grampians +Granada +Granada's +Grant +Grant's +Grass +Graves +Gray +Grecian +Greece +Greece's +Greek +Greek's +Greeks +Greeley +Green +Green's +Greene +Greenland +Greenland's +Greenpeace +Greenpeace's +Greensboro +Greensboro's +Greensleeves +Greensleeves's +Greenspan +Greenspan's +Greenwich +Greenwich's +Greer +Greer's +Greg +Greg's +Gregg +Gregg's +Gregorian +Gregorio +Gregorio's +Gregory +Gregory's +Grenada +Grenada's +Grenadines +Grendel +Grenoble +Gresham +Greta +Greta's +Gretchen +Gretchen's +Gretel +Gretel's +Gretzky +Gretzky's +Grey +Grieg +Griffin +Griffin's +Griffith +Grimes +Grimm +Grimm's +Grinch +Grinch's +Gris +Gromyko +Gropius +Gropius's +Gross +Grosz +Grotius +Grover +Grover's +Grumman +Grumman's +Grundy +Grus +Grus's +Gruyeres +Gruyère +Gruyère's +Grünewald +Grünewald's +Guadalajara +Guadalajara's +Guadalcanal +Guadalcanal's +Guadalquivir +Guadalupe +Guadalupe's +Guadeloupe +Guadeloupe's +Guallatiri +Guallatiri's +Guam +Guam's +Guangzhou +Guangzhou's +Guantanamo +Guantanamo's +Guarani +Guarani's +Guarnieri +Guarnieri's +Guatemala +Guatemala's +Guatemalan +Guatemalan's +Guatemalans +Guayaquil +Guayaquil's +Gucci +Gucci's +Guelph +Guernsey +Guernsey's +Guernseys +Guerra +Guerra's +Guerrero +Guevara +Guggenheim +Guiana +Guiana's +Guillermo +Guillermo's +Guinea +Guinea's +Guinean +Guinean's +Guineans +Guinevere +Guinevere's +Guinness +Guinness's +Guiyang +Guizot +Gujarat +Gujarat's +Gujarati +Gujarati's +Gujranwala +Gullah +Gulliver +Gulliver's +Gumbel +Gumbel's +Gunther +Guofeng +Guofeng's +Gupta +Gupta's +Gurkha +Gurkha's +Gus +Gus's +Gustav +Gustav's +Gustavo +Gustavo's +Gustavus +Gustavus's +Gutenberg +Guthrie +Gutierrez +Gutierrez's +Guy +Guy's +Guyana +Guyana's +Guyanese +Guyanese's +Guzman +Guzman's +Gwalior +Gwen +Gwen's +Gwendoline +Gwendoline's +Gwendolyn +Gwendolyn's +Gwyn +Gwyn's +Gypsies +Gypsy +Gypsy's +Gödel +Gödel's +Göteborg +Göteborg's +H +H's +HF's +HIV's +HMO's +HP's +HQ's +HSBC +HSBC's +HTML's +HUD's +Haas +Haas's +Habakkuk +Haber +Haber's +Hadar +Hadar's +Hades +Hades's +Hadrian +Hafiz +Hafiz's +Hagar +Haggai +Hagiographa +Hagiographa's +Hague +Hahn +Haifa +Haifa's +Haiphong +Haiti +Haiti's +Haitian +Haitian's +Haitians +Hakka +Hakka's +Hakluyt +Hal +Hal's +Haldane +Hale +Haleakala +Haley +Haley's +Halifax +Halifax's +Hall +Halley +Halliburton +Halliburton's +Hallie +Hallie's +Hallmark +Hallmark's +Hallowe'en +Halloween +Halloween's +Halloweens +Hallstatt +Halon +Halon's +Hals +Halsey +Ham +Ham's +Haman +Haman's +Hamburg +Hamburg's +Hamburgs +Hamhung +Hamilcar +Hamilcar's +Hamill +Hamill's +Hamilton +Hamilton's +Hamiltonian +Hamitic +Hamitic's +Hamlet +Hamlin +Hamlin's +Hammarskjold +Hammerstein +Hammett +Hammett's +Hammond +Hammurabi +Hampshire +Hampshire's +Hampton +Hamsun +Han +Hancock +Handel +Handel's +Handy +Haney +Haney's +Hangul +Hangul's +Hangzhou +Hangzhou's +Hank +Hank's +Hanna +Hanna's +Hannah +Hannibal +Hannibal's +Hanoi +Hanoi's +Hanover +Hanover's +Hanoverian +Hanoverian's +Hans +Hansel +Hansel's +Hansen +Hansen's +Hanson +Hanson's +Hanukkah +Hanukkah's +Hanukkahs +Hapsburg +Hapsburg's +Harare +Harare's +Harbin +Hardin +Hardin's +Harding +Harding's +Hardy +Hargreaves +Harlan +Harlan's +Harlem +Harlem's +Harlequin +Harley +Harlow +Harmon +Harmon's +Harold +Harold's +Harper +Harper's +Harrell +Harrell's +Harriet +Harriet's +Harriett +Harriett's +Harrington +Harrington's +Harris +Harrisburg +Harrisburg's +Harrison +Harrison's +Harrods +Harry +Harry's +Hart +Harte +Hartford +Hartford's +Hartline +Hartline's +Hartman +Hartman's +Harvard +Harvard's +Harvey +Hasbro +Hasbro's +Hasidim +Hastings +Hastings's +Hatfield +Hathaway +Hatsheput +Hatsheput's +Hatteras +Hattie +Hattie's +Hauptmann +Hausa +Hausa's +Hausdorff +Hausdorff's +Havana +Havana's +Havanas +Havarti +Havel +Havoline +Havoline's +Hawaii +Hawaii's +Hawaiian +Hawaiian's +Hawaiians +Hawking +Hawkins +Hawthorne +Hay +Hay's +Hayden +Hayden's +Haydn +Haydn's +Hayes +Hayes's +Haynes +Hays +Haywood +Haywood's +Hayworth +Hayworth's +Hazel +Hazel's +Hazlitt +He +He's +Head +Head's +Hearst +Heath +Heather +Heather's +Heaviside +Hebe +Hebert +Hebert's +Hebraic +Hebrew +Hebrew's +Hebrews +Hebrides +Hebrides's +Hecate +Hector +Hector's +Hecuba +Heep +Heep's +Hefner +Hefner's +Hegel +Hegel's +Hegelian +Hegira +Heidegger +Heidelberg +Heidi +Heidi's +Heifetz +Heimlich +Heimlich's +Heine +Heineken +Heineken's +Heinlein +Heinlein's +Heinrich +Heinrich's +Heinz +Heisenberg +Heisman +Heisman's +Helen +Helen's +Helena +Helena's +Helene +Helene's +Helga +Helga's +Helicon +Heliopolis +Helios +Helios's +Hell +Hell's +Hellenic +Hellenic's +Hellenism +Hellenism's +Hellenisms +Hellenistic +Hellenization +Hellenize +Heller +Hellespont +Hellespont's +Hellman +Hells +Helmholtz +Helmholtz's +Helsinki +Helsinki's +Helvetius +Helvetius's +Hemingway +Hemingway's +Hench +Hench's +Henderson +Henderson's +Hendricks +Hendrix +Henley +Hennessy +Hennessy's +Henri +Henri's +Henrietta +Henrietta's +Henry +Henry's +Hensley +Hensley's +Henson +Henson's +Hepburn +Hephaestus +Hephaestus's +Hepplewhite +Hera +Hera's +Heraclitus +Herbart +Herbert +Herculaneum +Herculaneum's +Hercules +Hercules's +Herder +Hereford +Hereford's +Herero +Heriberto +Heriberto's +Herman +Herman's +Hermaphroditus +Hermes +Hermes's +Herminia +Herminia's +Hermitage +Hermite +Hermite's +Hermosillo +Hermosillo's +Hernandez +Hernandez's +Herod +Herod's +Herodotus +Herodotus's +Herrera +Herrera's +Herrick +Herring +Herring's +Herschel +Hersey +Hersey's +Hershel +Hershel's +Hershey +Hershey's +Hertz +Hertz's +Hertzsprung +Hertzsprung's +Herzegovina +Herzl +Heshvan +Heshvan's +Hesiod +Hesperus +Hess +Hesse +Hessian +Hester +Hester's +Heston +Heston's +Hettie +Hettie's +Hewitt +Hewitt's +Hewlett +Hewlett's +Heyerdahl +Heywood +Hezbollah +Hezbollah's +Hezekiah +Hf +Hf's +Hg +Hg's +Hialeah +Hiawatha +Hiawatha's +Hibernia +Hibernia's +Hickman +Hickman's +Hickok +Hicks +Hicks's +Hieronymus +Higgins +Higgins's +Highlander +Highlander's +Highlanders +Highness +Highness's +Hilario +Hilario's +Hilary +Hilary's +Hilbert +Hilda +Hilda's +Hildebrand +Hilfiger +Hilfiger's +Hill +Hillary +Hillel +Hilton +Himalaya +Himalaya's +Himalayas +Himmler +Hinayana +Hinayana's +Hindemith +Hindenburg +Hindi +Hindu +Hindu's +Hinduism +Hinduism's +Hinduisms +Hindus +Hindustan +Hindustan's +Hindustani +Hindustani's +Hines +Hinton +Hinton's +Hipparchus +Hippocrates +Hippocrates's +Hippocratic +Hiram +Hirobumi +Hirobumi's +Hirohito +Hiroshima +Hiroshima's +Hispanic +Hispanic's +Hispanics +Hispaniola +Hispaniola's +Hiss +Hiss's +Hitachi +Hitachi's +Hitchcock +Hitler +Hitler's +Hitlers +Hittite +Hittite's +Hmong +Ho +Ho's +Hobart +Hobart's +Hobbes +Hobbs +Hockney +Hockney's +Hodge +Hodge's +Hodges +Hodgkin +Hoff +Hoff's +Hoffa +Hoffa's +Hoffman +Hoffman's +Hofstadter +Hofstadter's +Hogan +Hogan's +Hogarth +Hogwarts +Hogwarts's +Hohenlohe +Hohenstaufen +Hohenzollern +Hohenzollern's +Hohhot +Hohhot's +Hohokam +Hokkaido +Hokkaido's +Hokusai +Holbein +Holcomb +Holcomb's +Holden +Holden's +Holder +Holder's +Holiday +Holland +Holland's +Hollands +Hollerith +Hollerith's +Holley +Holley's +Hollie +Hollie's +Hollis +Holloway +Holloway's +Holly +Hollywood +Hollywood's +Holman +Holman's +Holmes +Holmes's +Holocaust +Holocene +Holocene's +Holst +Holstein +Holstein's +Holsteins +Holt +Homer +Homer's +Homeric +Hon +Honda +Honda's +Honduran +Honduran's +Hondurans +Honduras +Honduras's +Honecker +Honecker's +Honeywell +Honeywell's +Honiara +Honolulu +Honolulu's +Honshu +Honshu's +Hood +Hooke +Hooker +Hooper +Hooper's +Hoosier +Hoosier's +Hooters +Hooters's +Hoover +Hoover's +Hoovers +Hope +Hopewell +Hopewell's +Hopi +Hopi's +Hopkins +Hopper +Horace +Horacio +Horacio's +Horatio +Horatio's +Hormel +Hormel's +Hormuz +Horn +Hornblower +Hornblower's +Horne +Horne's +Horowitz +Horthy +Horton +Horton's +Horus +Horus's +Hosea +Hosea's +Hotpoint +Hotpoint's +Hottentot +Hottentot's +Houdini +House +Housman +Houston +Houston's +Houyhnhnm +Houyhnhnm's +Hovhaness +Hovhaness's +Howard +Howe +Howell +Howell's +Howells +Hoyle +Hrothgar +Hrothgar's +Huang +Hubbard +Hubble +Hubble's +Huber +Huber's +Hubert +Hubert's +Huck +Huck's +Hudson +Hudson's +Huerta +Huerta's +Huey +Huey's +Huff +Huff's +Huffman +Huffman's +Huggins +Hugh +Hugh's +Hughes +Hugo +Hugo's +Huguenot +Huguenot's +Huguenots +Hui +Huitzilopotchli +Huitzilopotchli's +Hull +Hull's +Humberto +Humberto's +Humboldt +Hume +Hummer +Hummer's +Humphrey +Humvee +Hun +Hun's +Hung +Hungarian +Hungarian's +Hungarians +Hungary +Hungary's +Huns +Hunspell +Hunspell's +Hunt +Hunter +Hunter's +Huntington +Huntington's +Huntley +Huntley's +Huntsville +Hurley +Hurley's +Huron +Hurst +Hurst's +Hus +Hussein +Husserl +Hussite +Huston +Hutchinson +Hutton +Hutton's +Hutu +Huxley +Huxley's +Huygens +Hyades +Hyades's +Hyde +Hyderabad +Hydra +Hydra's +Hymen +Hymen's +Hyperion +Hyperion's +Hyundai +Hyundai's +Hz +Hz's +Héloise +Héloise's +I +I'd +I'll +I'm +I's +I've +IBM +IBM's +ICBM's +ID's +IMF's +ING +ING's +IOU's +IQ's +IRA's +IRS's +IV's +Iaccoca +Iaccoca's +Iago +Iago's +Ian +Ian's +Iapetus +Iapetus's +Ibadan +Iberia +Iberia's +Iberian +Ibiza +Iblis +Iblis's +Ibo +Ibsen +Ibsen's +Icahn +Icahn's +Icarus +Icarus's +Iceland +Iceland's +Icelander +Icelander's +Icelanders +Icelandic +Icelandic's +Ida +Idaho +Idaho's +Idahoan +Idahoan's +Idahoans +Idahoes +Idahos +Ieyasu +Ignacio +Ignacio's +Ignatius +Igor +Igor's +Iguassu +Iguassu's +Ijssel +Ijsselmeer +Ijsselmeer's +Ike +Ike's +Ikea +Ikea's +Ikhnaton +Ila +Ilene +Ilene's +Iliad +Iliad's +Ill +Illinois +Illinois's +Illuminati +Ilyushin +Ilyushin's +Imelda +Imelda's +Imhotep +Imhotep's +Imodium +Imodium's +Imogene +Imogene's +Imus +Imus's +In +In's +Ina +Ina's +Inc +Inca +Inca's +Incas +Inchon +Inchon's +Ind +Independence +Independence's +India +India's +Indian +Indian's +Indiana +Indiana's +Indianan +Indianan's +Indianans +Indianapolis +Indianapolis's +Indians +Indies +Indira +Indira's +Indochina +Indochina's +Indochinese +Indonesia +Indonesia's +Indonesian +Indonesian's +Indonesians +Indore +Indra +Indra's +Indus +Indus's +Indy +Indy's +Ines +Inez +Inez's +Inge +Inglewood +Ingram +Ingram's +Ingres +Ingrid +Ingrid's +Innocent +Innocent's +Inonu +Inonu's +Inquisition +Instamatic +Instamatic's +Intel +Intel's +Intelsat +Internationale +Internationale's +Internet +Interpol +Inuit +Inuit's +Inuits +Inuktitut +Inuktitut's +Invar +Invar's +Io +Io's +Ionesco +Ionian +Ionian's +Ionic +Ionic's +Ionics +Iowa +Iowa's +Iowan +Iowan's +Iowans +Iowas +Iphigenia +Iqaluit +Iqaluit's +Iqbal +Iquitos +Ir +Ir's +Ira +Ira's +Iran +Iran's +Iranian +Iranian's +Iranians +Iraq +Iraq's +Iraqi +Iraqi's +Iraqis +Ireland +Ireland's +Irene +Iris +Irish +Irish's +Irisher +Irishman +Irishman's +Irishmen +Irishwoman +Irishwoman's +Irishwomen +Irkutsk +Irma +Irma's +Iroquoian +Iroquoian's +Iroquois +Iroquois's +Irrawaddy +Irtish +Irtish's +Irvin +Irvin's +Irving +Irwin +Irwin's +Isaac +Isaac's +Isabel +Isabel's +Isabella +Isabelle +Isabelle's +Isaiah +Iscariot +Isfahan +Isherwood +Ishim +Ishim's +Ishmael +Ishtar +Ishtar's +Isiah +Isiah's +Isidro +Isidro's +Isis +Isis's +Islam +Islam's +Islamabad +Islamabad's +Islamic +Islamism +Islamism's +Islamist +Islams +Ismael +Ismael's +Ismail +Ismail's +Isolde +Ispell +Ispell's +Israel +Israel's +Israeli +Israeli's +Israelis +Israelite +Israels +Issac +Issac's +Issachar +Istanbul +Istanbul's +Isuzu +Isuzu's +It +Itaipu +Itaipu's +Italian +Italian's +Italians +Italy +Italy's +Itasca +Itasca's +Ithaca +Ithacan +Ito +Iva +Iva's +Ivan +Ivanhoe +Ivanhoe's +Ives +Ivory +Ivory's +Ivy +Iyar +Iyar's +Izaak +Izaak's +Izanagi +Izanagi's +Izanami +Izanami's +Izhevsk +Izmir +Izod +Izod's +Izvestia +Izvestia's +J +J's +JFK +JFK's +Jack +Jackie +Jackie's +Jacklyn +Jacklyn's +Jackson +Jackson's +Jacksonian +Jacksonville +Jacksonville's +Jacky +Jacky's +Jaclyn +Jaclyn's +Jacob +Jacob's +Jacobean +Jacobean's +Jacobi +Jacobin +Jacobin's +Jacobite +Jacobite's +Jacobs +Jacobson +Jacobson's +Jacquard +Jacqueline +Jacqueline's +Jacquelyn +Jacquelyn's +Jacques +Jacuzzi +Jagger +Jagger's +Jagiellon +Jagiellon's +Jaguar +Jaguar's +Jahangir +Jahangir's +Jaime +Jaime's +Jain +Jainism +Jainism's +Jaipur +Jakarta +Jakarta's +Jake +Jake's +Jamaal +Jamaal's +Jamaica +Jamaica's +Jamaican +Jamaican's +Jamaicans +Jamal +Jamal's +Jamar +Jamar's +Jame +Jame's +Jamel +Jamel's +James +James's +Jamestown +Jami +Jami's +Jamie +Jamie's +Jan +Jan's +Jana +Jana's +Janacek +Janacek's +Jane +Janell +Janell's +Janelle +Janelle's +Janet +Janette +Janette's +Janice +Janice's +Janie +Janie's +Janine +Janine's +Janis +Janis's +Janissary +Janissary's +Janjaweed +Janjaweed's +Janna +Janna's +Jannie +Jannie's +Jansen +Jansen's +Jansenist +Jansenist's +Januaries +January +January's +Janus +Janus's +Japan +Japan's +Japanese +Japanese's +Japaneses +Japura +Japura's +Jared +Jared's +Jarlsberg +Jarred +Jarred's +Jarrett +Jarrett's +Jarrod +Jarrod's +Jarvis +Jarvis's +Jasmine +Jasmine's +Jason +Jason's +Jasper +Jasper's +Jataka +Java +Java's +JavaScript +JavaScript's +Javanese +Javanese's +Javas +Javier +Javier's +Jaxartes +Jay +Jayapura +Jayapura's +Jayawardene +Jayawardene's +Jaycee +Jaycees +Jayne +Jayne's +Jayson +Jayson's +Jean +Jean's +Jeanette +Jeanette's +Jeanie +Jeanie's +Jeanine +Jeanine's +Jeanne +Jeanne's +Jeannette +Jeannette's +Jeannie +Jeannie's +Jeannine +Jeannine's +Jed +Jed's +Jedi +Jedi's +Jeep +Jeeves +Jeeves's +Jeff +Jeff's +Jefferey +Jefferey's +Jefferson +Jefferson's +Jeffersonian +Jeffery +Jeffery's +Jeffrey +Jeffry +Jeffry's +Jehoshaphat +Jehovah +Jehovah's +Jekyll +Jekyll's +Jenifer +Jenifer's +Jenkins +Jenna +Jenna's +Jenner +Jennie +Jennie's +Jennifer +Jennifer's +Jennings +Jennings's +Jenny +Jenny's +Jensen +Jensen's +Jephthah +Jerald +Jerald's +Jeremiah +Jeremiah's +Jeremiahs +Jeremy +Jeremy's +Jeri +Jeri's +Jericho +Jericho's +Jermaine +Jermaine's +Jeroboam +Jerold +Jerold's +Jerome +Jerri +Jerri's +Jerrod +Jerrod's +Jerrold +Jerrold's +Jerry +Jerry's +Jersey +Jersey's +Jerseys +Jerusalem +Jerusalem's +Jess +Jess's +Jesse +Jessica +Jessica's +Jessie +Jessie's +Jesuit +Jesuit's +Jesuits +Jesus +Jetway +Jew +Jew's +Jewel +Jewel's +Jewell +Jewell's +Jewish +Jewishness +Jewry +Jews +Jezebel +Jezebel's +Jezebels +Jidda +Jilin +Jill +Jillian +Jillian's +Jim +Jim's +Jimenez +Jimenez's +Jimmie +Jimmie's +Jimmy +Jimmy's +Jinan +Jinnah +Jinny +Jinny's +Jivaro +Jo +Jo's +Joan +Joann +Joann's +Joanna +Joanna's +Joanne +Joanne's +Joaquin +Joaquin's +Job +Job's +Jobs +Jocasta +Jocelyn +Jocelyn's +Jock +Jockey +Jodi +Jodi's +Jodie +Jodie's +Jody +Jody's +Joe +Joel +Joesph +Joesph's +Joey +Joey's +Jogjakarta +Jogjakarta's +Johann +Johann's +Johanna +Johanna's +Johannes +Johannesburg +Johannesburg's +John +John's +Johnathan +Johnathan's +Johnathon +Johnathon's +Johnie +Johnie's +Johnnie +Johnny +Johnny's +Johns +Johnson +Johnson's +Johnston +Johnston's +Jolene +Jolene's +Joliet +Jolson +Jon +Jon's +Jonah +Jonah's +Jonahs +Jonas +Jonathan +Jonathan's +Jonathon +Jonathon's +Jones +Joni +Joni's +Jonson +Joplin +Jordan +Jordan's +Jordanian +Jordanian's +Jordanians +Jorge +Jorge's +Jose +Jose's +Josef +Josef's +Josefa +Josefa's +Josefina +Josefina's +Joseph +Joseph's +Josephine +Josephs +Josephson +Josephson's +Josephus +Josh +Joshua +Joshua's +Josiah +Josie +Josie's +Josue +Josue's +Joule +Jove +Jove's +Jovian +Joy +Joy's +Joyce +Joycean +Joyner +Joyner's +Jr +Jr's +Juan +Juan's +Juana +Juana's +Juanita +Juanita's +Juarez +Juarez's +Jubal +Judah +Judaic +Judaism +Judaism's +Judaisms +Judas +Judas's +Judases +Judd +Judd's +Jude +Judea +Judith +Judith's +Judson +Judson's +Judy +Juggernaut +Juggernaut's +Jul +Jules +Julia +Julia's +Julian +Juliana +Julianne +Julianne's +Julie +Julie's +Julies +Juliet +Juliette +Juliette's +Julio +Julio's +Julius +Julius's +Julliard +Julliard's +July +July's +Jun +June +June's +Juneau +Juneau's +Junes +Jung +Jung's +Jungfrau +Jungian +Junior +Junior's +Juniors +Juno +Juno's +Jupiter +Jupiter's +Jurassic +Jurassic's +Jurua +Jurua's +Justice +Justice's +Justin +Justin's +Justine +Justine's +Justinian +Justinian's +Jutland +Jutland's +Juvenal +K +K's +KFC +KFC's +KKK's +Kaaba +Kabul +Kabul's +Kafka +Kafka's +Kafkaesque +Kagoshima +Kahlua +Kahlua's +Kaifeng +Kaiser +Kaiser's +Kaitlin +Kaitlin's +Kalahari +Kalahari's +Kalamazoo +Kalashnikov +Kalb +Kalb's +Kalevala +Kalgoorlie +Kali +Kali's +Kalmyk +Kama +Kama's +Kamchatka +Kamehameha +Kamehameha's +Kampala +Kampala's +Kampuchea +Kampuchea's +Kanchenjunga +Kanchenjunga's +Kandahar +Kandinsky +Kane +Kane's +Kannada +Kannada's +Kano +Kanpur +Kans +Kansan +Kansan's +Kansans +Kansas +Kant +Kant's +Kantian +Kaohsiung +Kaposi +Kaposi's +Kara +Kara's +Karachi +Karachi's +Karaganda +Karakorum +Karamazov +Karamazov's +Kareem +Kareem's +Karen +Karen's +Karenina +Karenina's +Kari +Kari's +Karin +Karin's +Karina +Karina's +Karl +Karl's +Karla +Karla's +Karloff +Karloff's +Karo +Karo's +Karol +Karol's +Karroo +Karroo's +Karyn +Karyn's +Kasai +Kasai's +Kasey +Kasey's +Kashmir +Kashmir's +Kasparov +Kasparov's +Kate +Kate's +Katelyn +Katelyn's +Katharine +Katharine's +Katherine +Katherine's +Katheryn +Katheryn's +Kathiawar +Kathie +Kathie's +Kathleen +Kathleen's +Kathrine +Kathrine's +Kathryn +Kathryn's +Kathy +Kathy's +Katie +Katie's +Katina +Katina's +Katmai +Katmandu +Katmandu's +Katowice +Katrina +Katrina's +Katy +Katy's +Kauai +Kauai's +Kaufman +Kaufman's +Kaunas +Kaunas's +Kaunda +Kaunda's +Kawabata +Kawabata's +Kawasaki +Kay +Kaye +Kaye's +Kayla +Kayla's +Kazakh +Kazakh's +Kazakhstan +Kazakhstan's +Kazan +Kazan's +Kazantzakis +Keaton +Keaton's +Keats +Keck +Keck's +Keenan +Keenan's +Keewatin +Keillor +Keillor's +Keisha +Keisha's +Keith +Keith's +Keller +Kelley +Kelley's +Kelli +Kelli's +Kellie +Kellie's +Kellogg +Kelly +Kelsey +Kelsey's +Kelvin +Kemerovo +Kemp +Kemp's +Kempis +Ken +Kendall +Kendall's +Kendra +Kendra's +Kendrick +Kendrick's +Kenmore +Kenmore's +Kennan +Kennan's +Kennedy +Kennedy's +Kenneth +Kenneth's +Kennith +Kennith's +Kenny +Kenny's +Kent +Kent's +Kenton +Kenton's +Kentuckian +Kentuckian's +Kentuckians +Kentucky +Kentucky's +Kenya +Kenya's +Kenyan +Kenyan's +Kenyans +Kenyatta +Kenyon +Kenyon's +Keogh +Keogh's +Keokuk +Keokuk's +Kepler +Kepler's +Kerensky +Kerensky's +Keri +Keri's +Kermit +Kermit's +Kern +Kerouac +Kerr +Kerri +Kerri's +Kerry +Kettering +Keven +Keven's +Kevin +Kevin's +Kevlar +Kevorkian +Kevorkian's +Kewpie +Key +Keynes +Keynes's +Keynesian +Khabarovsk +Khachaturian +Khalid +Khalid's +Khan +Khan's +Kharkov +Kharkov's +Khartoum +Khartoum's +Khayyam +Khayyam's +Khazar +Khazar's +Khmer +Khmer's +Khoikhoi +Khoikhoi's +Khoisan +Khoisan's +Khomeini +Khomeini's +Khorana +Khorana's +Khrushchev +Khufu +Khulna +Khulna's +Khwarizmi +Khwarizmi's +Khyber +Khyber's +Kickapoo +Kidd +Kidd's +Kiel +Kierkegaard +Kieth +Kieth's +Kiev +Kiev's +Kigali +Kigali's +Kikuyu +Kilauea +Kilimanjaro +Kilimanjaro's +Kilroy +Kilroy's +Kim +Kim's +Kimberley +Kimberly +Kimberly's +King +King's +Kingston +Kingston's +Kingstown +Kingstown's +Kinko's +Kinney +Kinney's +Kinsey +Kinshasa +Kinshasa's +Kiowa +Kiowa's +Kip +Kip's +Kipling +Kipling's +Kirby +Kirby's +Kirchhoff +Kirchner +Kirchner's +Kirghistan +Kirghistan's +Kirghiz +Kirghiz's +Kiribati +Kiribati's +Kirinyaga +Kirinyaga's +Kirk +Kirkland +Kirkland's +Kirkpatrick +Kirkpatrick's +Kirov +Kirsten +Kirsten's +Kisangani +Kishinev +Kishinev's +Kislev +Kislev's +Kissinger +Kit +Kit's +Kitakyushu +Kitakyushu's +Kitchener +Kitty +Kitty's +Kiwanis +Klan +Klan's +Klansman +Klansman's +Klaus +Klaus's +Klee +Kleenex +Kleenex's +Kleenexes +Klein +Klein's +Klimt +Kline +Klingon +Klingon's +Klondike +Klondike's +Klondikes +Kmart +Kmart's +Knapp +Knapp's +Knesset +Knesset's +Kngwarreye +Kngwarreye's +Knickerbocker +Knievel +Knievel's +Knight +Knopf +Knopf's +Knossos +Knowles +Knox +Knoxville +Knudsen +Knudsen's +Knuth +Knuth's +Kobe +Koch +Kochab +Kochab's +Kodachrome +Kodachrome's +Kodak +Kodaly +Kodaly's +Kodiak +Kodiak's +Koestler +Kohinoor +Kohl +Koizumi +Koizumi's +Kojak +Kojak's +Kolyma +Kommunizma +Kommunizma's +Kong +Kong's +Kongo +Kongo's +Konrad +Konrad's +Koontz +Koontz's +Koppel +Koppel's +Koran +Koran's +Korans +Korea +Korea's +Korean +Korean's +Koreans +Kornberg +Kornberg's +Kory +Kory's +Korzybski +Kosciusko +Kossuth +Kosygin +Koufax +Koufax's +Kowloon +Kr +Kr's +Kraft +Kraft's +Krakatoa +Krakatoa's +Krakow +Krakow's +Kramer +Kramer's +Krasnodar +Krasnoyarsk +Krebs +Kremlin +Kremlinologist +Kresge +Kresge's +Kringle +Kringle's +Kris +Kris's +Krishna +Krishna's +Krishnamurti +Krishnamurti's +Krista +Krista's +Kristen +Kristen's +Kristi +Kristi's +Kristie +Kristie's +Kristin +Kristin's +Kristina +Kristina's +Kristine +Kristine's +Kristopher +Kristopher's +Kristy +Kristy's +Kroc +Kroc's +Kroger +Kroger's +Kronecker +Kronecker's +Kropotkin +Kruger +Krugerrand +Krupp +Krystal +Krystal's +Kshatriya +Kshatriya's +Kublai +Kublai's +Kubrick +Kuhn +Kuhn's +Kuibyshev +Kulthumm +Kulthumm's +Kunming +Kuomintang +Kurd +Kurdish +Kurdish's +Kurdistan +Kurile +Kurosawa +Kurt +Kurt's +Kurtis +Kurtis's +Kusch +Kusch's +Kutuzov +Kuwait +Kuwait's +Kuwaiti +Kuwaiti's +Kuwaitis +Kuznets +Kuznets's +Kuznetsk +Kuznetsk's +Kwakiutl +Kwakiutl's +Kwan +Kwan's +Kwangju +Kwanzaa +Kwanzaa's +Kwanzaas +Kyle +Kyle's +Kyoto +Kyoto's +Kyrgyzstan +Kyushu +Kyushu's +Köln +Köln's +L +L'Amour +L'Oreal +L'Ouverture +L's +LBJ +LBJ's +LCD's +LED's +LPN's +LSD's +La +La's +Laban +Labrador +Labrador's +Labradors +Lacey +Lacey's +Lachesis +Lachesis's +Lacy +Lacy's +Ladoga +Ladonna +Ladonna's +Lafayette +Lafitte +Lafitte's +Lagos +Lagos's +Lagrange +Lagrangian +Lahore +Laius +Lajos +Lajos's +Lakeisha +Lakeisha's +Lakewood +Lakisha +Lakisha's +Lakota +Lakshmi +Lakshmi's +Lamar +Lamar's +Lamarck +Lamarck's +Lamaze +Lamb +Lambert +Lamborghini +Lamborghini's +Lambrusco +Lamont +Lamont's +Lana +Lana's +Lanai +Lanai's +Lancashire +Lancaster +Lancaster's +Lance +Lance's +Lancelot +Lancelot's +Land +Landon +Landon's +Landry +Landry's +Landsat +Landsteiner +Landsteiner's +Lane +Lane's +Lang +Langerhans +Langerhans's +Langland +Langley +Langmuir +Lanny +Lanny's +Lansing +Lansing's +Lanzhou +Lanzhou's +Lao +Lao's +Laocoon +Laocoon's +Laos +Laotian +Laotian's +Laotians +Laplace +Lapland +Lapland's +Lapp +Lapp's +Lapps +Lara +Lara's +Laramie +Laramie's +Lardner +Lardner's +Laredo +Larousse +Larry +Larry's +Lars +Larsen +Larsen's +Larson +Larson's +Lascaux +Lascaux's +Lassa +Lassa's +Lassen +Lassen's +Lassie +Lassie's +Latasha +Latasha's +Lateran +Lateran's +Latin +Latin's +Latina +Latiner +Latino +Latino's +Latinos +Latins +Latisha +Latisha's +Latonya +Latonya's +Latoya +Latoya's +Latrobe +Latrobe's +Latvia +Latvia's +Latvian +Latvian's +Latvians +Laud +Lauder +Laue +Laundromat +Laura +Laura's +Laurasia +Laurasia's +Laurel +Laurel's +Lauren +Lauren's +Laurence +Laurence's +Laurent +Laurent's +Lauri +Lauri's +Laurie +Laurie's +Laval +Lavern +Lavern's +Laverne +Laverne's +Lavoisier +Lavonne +Lavonne's +Lawanda +Lawanda's +Lawrence +Lawson +Layamon +Layla +Layla's +Lazaro +Lazaro's +Lazarus +Lazarus's +Le +Le's +Lea +Lea's +Leach +Leach's +Leadbelly +Leah +Leakey +Leakey's +Lean +Lean's +Leander +Leann +Leann's +Leanna +Leanna's +Leanne +Leanne's +Lear +Lear's +Learjet +Learjet's +Leary +Leary's +Leavenworth +Lebanese +Lebanese's +Lebanon +Lebanon's +Lebesgue +Lebesgue's +Leblanc +Leblanc's +Leda +Lederberg +Lederberg's +Lee +Lee's +Leeds +Leeds's +Leeuwenhoek +Leeward +Leeward's +Left +Legendre +Leger +Leger's +Leghorn +Lego +Lego's +Legree +Legree's +Lehman +Lehman's +Leibniz +Leibniz's +Leicester +Leicester's +Leiden +Leiden's +Leif +Leif's +Leigh +Leila +Leila's +Leipzig +Leipzig's +Lela +Lela's +Leland +Leland's +Lelia +Lelia's +Lemaitre +Lemaitre's +Lemuel +Lemuel's +Lemuria +Lemuria's +Len +Len's +Lena +Lena's +Lenard +Lenard's +Lenin +Lenin's +Leningrad +Leningrad's +Leninism +Leninism's +Leninist +Lennon +Lennon's +Lenny +Lenny's +Leno +Leno's +Lenoir +Lenoir's +Lenora +Lenora's +Lenore +Lenore's +Lent +Lent's +Lenten +Lents +Leo +Leo's +Leola +Leola's +Leon +Leona +Leona's +Leonard +Leonard's +Leonardo +Leonardo's +Leoncavallo +Leonel +Leonel's +Leonid +Leonidas +Leonidas's +Leonor +Leonor's +Leopold +Leopold's +Leopoldo +Leopoldo's +Leos +Lepidus +Lepke +Lepke's +Lepus +Lepus's +Lerner +Leroy +Leroy's +Les +Lesa +Lesa's +Lesley +Lesley's +Leslie +Leslie's +Lesotho +Lesotho's +Lesseps +Lessie +Lessie's +Lester +Lester's +Lestrade +Lestrade's +Leta +Leta's +Letha +Letha's +Lethe +Lethe's +Leticia +Leticia's +Letitia +Letitia's +Letterman +Letterman's +Levant +Levant's +Levesque +Levesque's +Levi +Levi's +Leviathan +Levine +Levine's +Leviticus +Leviticus's +Levitt +Levitt's +Levy +Levy's +Lew +Lew's +Lewinsky +Lewinsky's +Lewis +Lexington +Lexington's +Lexus +Lexus's +Lhasa +Lhasa's +Lhotse +Lhotse's +Li +Li's +Libby +Liberace +Liberace's +Liberia +Liberia's +Liberian +Liberian's +Liberians +Libra +Libra's +Libras +Libreville +Libreville's +Librium +Librium's +Libya +Libya's +Libyan +Libyan's +Libyans +Lichtenstein +Lidia +Lidia's +Lie +Lieberman +Lieberman's +Liebfraumilch +Liechtenstein +Liechtenstein's +Liege +Liege's +Lila +Lila's +Lilia +Lilia's +Lilian +Lilian's +Liliana +Liliana's +Lilith +Lilith's +Liliuokalani +Lille +Lillian +Lillian's +Lillie +Lillie's +Lilliput +Lilliput's +Lilliputian +Lilliputian's +Lilliputians +Lilly +Lilly's +Lilongwe +Lilongwe's +Lily +Lily's +Lima +Lima's +Limbaugh +Limbaugh's +Limburger +Limoges +Limousin +Limousin's +Limpopo +Limpopo's +Lin +Lin's +Lina +Lina's +Lincoln +Lincoln's +Lincolns +Lind +Linda +Linda's +Lindbergh +Lindsay +Lindsey +Lindy +Linnaeus +Linnaeus's +Linotype +Linton +Linton's +Linus +Linus's +Linux +Linwood +Linwood's +Lionel +Lionel's +Lipizzaner +Lippi +Lippmann +Lipscomb +Lipscomb's +Lipton +Lipton's +Lisa +Lisa's +Lisbon +Lisbon's +Lissajous +Lissajous's +Lister +Lister's +Listerine +Listerine's +Liston +Liston's +Liszt +Lithuania +Lithuania's +Lithuanian +Lithuanian's +Lithuanians +Little +Little's +Litton +Litton's +Liverpool +Liverpool's +Liverpudlian +Liverpudlian's +Livia +Livia's +Livingston +Livingstone +Livonia +Livonia's +Livy +Liz +Liz's +Liza +Liza's +Lizzie +Lizzie's +Lizzy +Lizzy's +Ljubljana +Ljubljana's +Llewellyn +Lloyd +Ln +Loafer +Loafer's +Loafers +Lobachevsky +Lochinvar +Locke +Locke's +Lockean +Lockheed +Lockheed's +Lockwood +Lockwood's +Lodge +Lodz +Lodz's +Loewe +Loewi +Loews +Loews's +Logan +Logan's +Lohengrin +Loire +Loire's +Lois +Lois's +Loki +Loki's +Lola +Lola's +Lolita +Lollard +Lollobrigida +Lollobrigida's +Lombard +Lombard's +Lombardi +Lombardi's +Lombardy +Lombardy's +Lome +Lome's +Lon +Lon's +London +London's +Londoner +Londoner's +Long +Longfellow +Longfellow's +Longstreet +Longstreet's +Lonnie +Lonnie's +Lopez +Lopez's +Lora +Lora's +Loraine +Loraine's +Lord +Lord's +Lords +Lorelei +Lorelei's +Loren +Lorena +Lorena's +Lorene +Lorene's +Lorentz +Lorenz +Lorenzo +Lorenzo's +Loretta +Loretta's +Lori +Lori's +Lorie +Lorie's +Lorna +Lorna's +Lorraine +Lorraine's +Lorre +Lorre's +Lorrie +Lorrie's +Lot +Lot's +Lothario +Lothario's +Lott +Lott's +Lottie +Lottie's +Lou +Lou's +Louella +Louella's +Louie +Louie's +Louis +Louisa +Louisa's +Louise +Louise's +Louisiana +Louisiana's +Louisianan +Louisianan's +Louisianans +Louisianian +Louisianian's +Louisianians +Louisville +Louisville's +Lourdes +Louvre +Louvre's +Love +Love's +Lovecraft +Lovecraft's +Lovelace +Lowe +Lowe's +Lowell +Lowenbrau +Lowenbrau's +Lowery +Lowery's +Loyang +Loyang's +Loyd +Loyd's +Loyola +Lr +Lt +Ltd +Lu +Lu's +Luanda +Luanda's +Luann +Luann's +Lubavitcher +Lubbock +Lubumbashi +Lucas +Luce +Luce's +Lucia +Lucia's +Lucian +Luciano +Luciano's +Lucien +Lucien's +Lucifer +Lucifer's +Lucile +Lucile's +Lucille +Lucille's +Lucinda +Lucinda's +Lucio +Lucio's +Lucite +Lucite's +Lucius +Lucius's +Lucknow +Lucknow's +Lucretia +Lucretius +Lucy +Lucy's +Luddite +Luddite's +Ludhiana +Ludwig +Ludwig's +Luella +Luella's +Lufthansa +Lufthansa's +Luftwaffe +Luger +Luger's +Lugosi +Lugosi's +Luigi +Luigi's +Luis +Luis's +Luisa +Luisa's +Luke +Luke's +Lula +Lula's +Lully +Lulu +Lulu's +Lumière +Lumière's +Luna +Luna's +Lupe +Lupe's +Lupercalia +Lupus +Lupus's +Luria +Luria's +Lusaka +Lusaka's +Lusitania +Lusitania's +Luther +Luther's +Lutheran +Lutheran's +Lutheranism +Lutheranism's +Lutherans +Luvs +Luvs's +Luxembourg +Luxembourg's +Luxembourger +Luxembourger's +Luxembourgers +Luz +Luz's +Luzon +Luzon's +Lvov +LyX +LyX's +Lycra +Lycurgus +Lydia +Lyell +Lyle +Lyle's +Lyly +Lyman +Lyman's +Lyme +Lyme's +Lynch +Lynda +Lynda's +Lyndon +Lyndon's +Lynette +Lynette's +Lynn +Lynne +Lynne's +Lynnette +Lynnette's +Lyon +Lyon's +Lyons +Lyra +Lyra's +Lysenko +Lysistrata +Lysistrata's +Lysol +Lysol's +M +M's +MA's +MB's +MBA's +MCI +MCI's +MD's +MGM +MGM's +MHz +MI's +MIT +MIT's +MP's +MRI's +MS's +MSG's +MST's +MT's +MVP's +Maalox +Maalox's +Mabel +Mabel's +Mable +Mable's +Mac +MacArthur +MacBride +MacBride's +MacDonald +MacLeish +MacLeish's +Macao +Macao's +Macaulay +Macbeth +Maccabeus +Maccabeus's +Mace +Macedon +Macedon's +Macedonia +Macedonia's +Macedonian +Macedonian's +Macedonians +Mach +Machiavelli +Machiavelli's +Machiavellian +Macias +Macias's +Macintosh +Macintosh's +Mack +Mack's +Mackenzie +Mackenzie's +Mackinac +Mackinac's +Mackinaw +Macmillan +Macon +Macumba +Macumba's +Macy +Macy's +Madagascan +Madagascan's +Madagascans +Madagascar +Madagascar's +Madden +Madden's +Maddox +Maddox's +Madeira +Madeira's +Madeiras +Madeleine +Madeleine's +Madeline +Madeline's +Madelyn +Madelyn's +Madge +Madge's +Madison +Madison's +Madonna +Madonna's +Madonnas +Madras +Madras's +Madrid +Madrid's +Madurai +Madurai's +Mae +Mae's +Maeterlinck +Maeterlinck's +Mafia +Mafia's +Mafias +Mafioso +Magdalena +Magdalene +Magdalene's +Magellan +Magellan's +Magellanic +Maggie +Maggie's +Maghreb +Maghreb's +Magi +Maginot +Maginot's +Magnitogorsk +Magog +Magoo +Magoo's +Magritte +Magsaysay +Magsaysay's +Magyar +Magyar's +Magyars +Mahabharata +Mahabharata's +Maharashtra +Maharashtra's +Mahavira +Mahavira's +Mahayana +Mahayana's +Mahayanist +Mahayanist's +Mahdi +Mahfouz +Mahfouz's +Mahican +Mahican's +Mahicans +Mahler +Mai +Mai's +Maidenform +Maidenform's +Maigret +Maigret's +Mailer +Maillol +Maiman +Maiman's +Maimonides +Maine +Maine's +Maisie +Maisie's +Maitreya +Maitreya's +Maj +Major +Majorca +Majorca's +Majuro +Makarios +Makarios's +Malabar +Malabar's +Malabo +Malabo's +Malacca +Malachi +Malagasy +Malamud +Malaprop +Malaprop's +Malawi +Malawi's +Malay +Malay's +Malayalam +Malayalam's +Malayan +Malayan's +Malays +Malaysia +Malaysia's +Malaysian +Malaysian's +Malaysians +Malcolm +Maldive +Maldive's +Maldives +Maldives's +Maldivian +Maldivian's +Maldivians +Maldonado +Maldonado's +Male +Male's +Mali +Malian +Malian's +Malians +Malibu +Malibu's +Malinda +Malinda's +Malinowski +Mallarmé +Mallomars +Mallomars's +Mallory +Mallory's +Malone +Malone's +Malory +Malory's +Malplaquet +Malplaquet's +Malraux +Malta +Malta's +Maltese +Maltese's +Malthus +Malthus's +Malthusian +Malthusian's +Mameluke +Mamet +Mamie +Mamie's +Mammon +Mammon's +Mamore +Mamore's +Man +Man's +Managua +Managua's +Manama +Manama's +Manasseh +Manaus +Manchester +Manchester's +Manchu +Manchu's +Manchuria +Manchuria's +Manchurian +Mancini +Mancini's +Mandalay +Mandalay's +Mandarin +Mandarin's +Mandela +Mandelbrot +Mandingo +Mandrell +Mandrell's +Mandy +Mandy's +Manet +Manfred +Manfred's +Manhattan +Manhattan's +Manhattans +Mani +Manichean +Manila +Manila's +Manilas +Manilla +Manilla's +Manitoba +Manitoba's +Manitoulin +Manitoulin's +Manley +Manley's +Mann +Mannheim +Mannheim's +Manning +Mansfield +Manson +Manson's +Mantegna +Mantle +Mantle's +Manuel +Manuel's +Manuela +Manuela's +Manx +Manx's +Mao +Mao's +Maoism +Maoism's +Maoisms +Maoist +Maoist's +Maoists +Maori +Maori's +Maoris +Mapplethorpe +Mapplethorpe's +Maputo +Maputo's +Mar +Mar's +Mara +Mara's +Maracaibo +Marat +Maratha +Maratha's +Marathi +Marathi's +Marathon +Marathon's +Marc +Marceau +Marcel +Marcel's +Marcelino +Marcelino's +Marcella +Marcella's +Marcelo +Marcelo's +March +March's +Marches +Marci +Marci's +Marcia +Marcia's +Marciano +Marcie +Marcie's +Marco +Marco's +Marconi +Marcos +Marcus +Marcus's +Marcy +Marcy's +Marduk +Marduk's +Margaret +Margarita +Margarito +Margarito's +Marge +Marge's +Margery +Margery's +Margie +Margie's +Margo +Margo's +Margret +Margret's +Margrethe +Margrethe's +Marguerite +Marguerite's +Mari +Mari's +Maria +Maria's +Marian +Mariana +Mariana's +Marianas +Marianne +Mariano +Mariano's +Maribel +Maribel's +Maricela +Maricela's +Marie +Marie's +Marietta +Marietta's +Marilyn +Marilyn's +Marin +Marina +Marina's +Marine +Marine's +Marines +Mario +Mario's +Marion +Marion's +Maris +Marisa +Marisa's +Marisol +Marisol's +Marissa +Marissa's +Maritain +Maritza +Maritza's +Marius +Marjorie +Marjorie's +Marjory +Marjory's +Mark +Mark's +Markab +Markab's +Markham +Markov +Marks +Marla +Marla's +Marlboro +Marlboro's +Marlborough +Marlene +Marlene's +Marley +Marley's +Marlin +Marlon +Marlon's +Marlowe +Marmara +Marmara's +Marne +Maronite +Marple +Marple's +Marquesas +Marquesas's +Marquette +Marquez +Marquez's +Marquis +Marquita +Marquita's +Marrakesh +Marrakesh's +Marriott +Marriott's +Mars +Mars's +Marsala +Marsala's +Marseillaise +Marseillaise's +Marseilles +Marsh +Marsh's +Marsha +Marsha's +Marshall +Marshall's +Marta +Marta's +Martel +Martha +Martial +Martian +Martian's +Martians +Martin +Martina +Martina's +Martinez +Martinez's +Martinique +Martinique's +Marty +Marty's +Marva +Marva's +Marvell +Marvell's +Marvin +Marx +Marx's +Marxism +Marxism's +Marxisms +Marxist +Marxist's +Marxists +Mary +Mary's +Maryann +Maryann's +Maryanne +Maryanne's +Maryellen +Maryellen's +Maryland +Maryland's +Marylander +Marylou +Marylou's +Masada +Masada's +Masai +Masai's +Masaryk +Mascagni +Masefield +Maserati +Maserati's +Maseru +Maseru's +Mashhad +Mashhad's +Mason +Mason's +Masonic +Masonite +Masonite's +Masons +Mass +Mass's +Massachusetts +Massasoit +Massenet +Masses +Massey +MasterCard +MasterCard's +Masters +Mather +Mathew +Mathew's +Mathews +Mathewson +Mathewson's +Mathias +Mathis +Matilda +Matisse +Matt +Mattel +Mattel's +Matterhorn +Matterhorn's +Matthew +Matthew's +Matthews +Matthias +Mattie +Mattie's +Maud +Maud's +Maude +Maude's +Maugham +Maui +Maui's +Maupassant +Maura +Maura's +Maureen +Maureen's +Mauriac +Maurice +Mauricio +Mauricio's +Maurine +Maurine's +Mauritania +Mauritania's +Mauritius +Mauritius's +Mauro +Mauro's +Maurois +Mauryan +Mauryan's +Mauser +Mavis +Mavis's +Max +Max's +Maximilian +Maxine +Maxine's +Maxwell +May +May's +Maya +Maya's +Mayan +Mayan's +Mayans +Mayas +Mayer +Mayfair +Mayflower +Mayflower's +Maynard +Maynard's +Mayo +Mayra +Mayra's +Mays +Maytag +Maytag's +Mazama +Mazama's +Mazarin +Mazatlan +Mazatlan's +Mazda +Mazola +Mazola's +Mazzini +Mazzini's +Mb +Mbabane +Mbabane's +Mbini +Mbini's +McAdam +McAdam's +McBride +McBride's +McCain +McCain's +McCall +McCall's +McCarthy +McCarthyism +McCarthyism's +McCartney +McCartney's +McCarty +McCarty's +McClain +McClain's +McClellan +McClure +McClure's +McConnell +McConnell's +McCormick +McCoy +McCray +McCray's +McCullough +McCullough's +McDaniel +McDaniel's +McDonald +McDonald's +McDonnell +McDonnell's +McDowell +McDowell's +McEnroe +McEnroe's +McFadden +McFadden's +McFarland +McFarland's +McGee +McGee's +McGovern +McGovern's +McGowan +McGowan's +McGuffey +McGuffey's +McGuire +McGuire's +McIntosh +McIntosh's +McIntyre +McIntyre's +McKay +McKay's +McKee +McKee's +McKenzie +McKenzie's +McKinley +McKinley's +McKinney +McKinney's +McKnight +McKnight's +McLaughlin +McLaughlin's +McLean +McLean's +McLeod +McLeod's +McLuhan +McLuhan's +McMahon +McMahon's +McMillan +McMillan's +McNamara +McNamara's +McNaughton +McNaughton's +McNeil +McNeil's +McPherson +McPherson's +McQueen +McQueen's +McVeigh +McVeigh's +Md +Md's +Mead +Meade +Meadows +Meagan +Meagan's +Meany +Meany's +Mecca +Mecca's +Meccas +Medan +Medea +Medea's +Medellin +Media +Medicaid +Medicaid's +Medicaids +Medicare +Medicare's +Medicares +Medici +Medina +Mediterranean +Mediterranean's +Mediterraneans +Medusa +Medusa's +Meg +Meg's +Megan +Megan's +Meghan +Meghan's +Meier +Meier's +Meighen +Meighen's +Meiji +Meiji's +Meir +Mejia +Mejia's +Mekong +Mekong's +Mel +Mel's +Melanesia +Melanesia's +Melanesian +Melanie +Melanie's +Melba +Melbourne +Melbourne's +Melchior +Melchizedek +Melendez +Melendez's +Melinda +Melinda's +Melisa +Melisa's +Melisande +Melisande's +Melissa +Melissa's +Mellon +Melody +Melody's +Melpomene +Melpomene's +Melton +Melton's +Melva +Melva's +Melville +Melville's +Melvin +Melvin's +Memling +Memphis +Memphis's +Menander +Mencius +Mencken +Mendel +Mendel's +Mendeleev +Mendeleev's +Mendelian +Mendelssohn +Mendez +Mendez's +Mendocino +Mendocino's +Mendoza +Menelaus +Menelaus's +Menelik +Menelik's +Menes +Menkalinan +Menkalinan's +Menkar +Menkar's +Menkent +Menkent's +Mennen +Mennen's +Mennonite +Mennonite's +Mennonites +Menominee +Menominee's +Menotti +Mensa +Mentholatum +Mentholatum's +Menuhin +Menuhin's +Menzies +Mephistopheles +Merak +Merak's +Mercado +Mercado's +Mercator +Mercedes +Mercer +Mercer's +Mercia +Merck +Merck's +Mercuries +Mercurochrome +Mercurochrome's +Mercury +Mercury's +Meredith +Merino +Merle +Merle's +Merlin +Merlin's +Merlot +Merovingian +Merriam +Merriam's +Merrick +Merrick's +Merrill +Merrill's +Merrimack +Merrimack's +Merritt +Merritt's +Merthiolate +Merthiolate's +Merton +Mervin +Mervin's +Mesa +Mesabi +Mesabi's +Mesmer +Mesmer's +Mesolithic +Mesopotamia +Mesopotamia's +Mesozoic +Mesozoic's +Messerschmidt +Messerschmidt's +Messiaen +Messiah +Messiah's +Messiahs +Messianic +Metallica +Metallica's +Metamucil +Metamucil's +Methodism +Methodism's +Methodisms +Methodist +Methodist's +Methodists +Methuselah +Metternich +Meuse +Meuse's +Mexicali +Mexican +Mexican's +Mexicans +Mexico +Mexico's +Meyer +Meyer's +Meyerbeer +Meyers +Mfume +Mfume's +Mg +Mg's +MiG +Mia +Mia's +Miami +Miami's +Miamis +Miaplacidus +Miaplacidus's +Micah +Micawber +Mich +Michael +Micheal +Micheal's +Michel +Michel's +Michelangelo +Michelangelo's +Michele +Michele's +Michelin +Michelin's +Michelle +Michelle's +Michelob +Michelob's +Michelson +Michigan +Michigan's +Michigander +Michigander's +Michiganders +Mick +Mick's +Mickey +Mickey's +Mickie +Mickie's +Micky +Micky's +Micmac +Micmac's +Micronesia +Micronesia's +Micronesian +Microsoft +Microsoft's +Midas +Midas's +Middleton +Midland +Midway +Midway's +Midwest +Midwest's +Midwestern +Miguel +Miguel's +Mike +Mike's +Mikhail +Mikhail's +Mikoyan +Mikoyan's +Milagros +Milagros's +Milan +Milan's +Mildred +Mildred's +Miles +Milford +Milford's +Milken +Milken's +Mill +Millard +Millard's +Millay +Miller +Millet +Millicent +Millicent's +Millie +Millie's +Millikan +Mills +Milne +Milo +Milo's +Milosevic +Milosevic's +Milquetoast +Milquetoast's +Miltiades +Milton +Miltonic +Miltown +Miltown's +Milwaukee +Milwaukee's +Mimi +Mimi's +Mimosa +Mimosa's +Min +Min's +Minamoto +Minamoto's +Mindanao +Mindoro +Mindoro's +Mindy +Mindy's +Minerva +Minerva's +Ming +Mingus +Mingus's +Minn +Minneapolis +Minneapolis's +Minnelli +Minnelli's +Minnesota +Minnesota's +Minnesotan +Minnesotan's +Minnesotans +Minnie +Minnie's +Minoan +Minoan's +Minoans +Minolta +Minolta's +Minos +Minos's +Minot +Minot's +Minotaur +Minotaur's +Minsk +Minsk's +Minsky +Minsky's +Mintaka +Mintaka's +Minuit +Miocene +Miocene's +Mir +Mir's +Mira +Mira's +Mirabeau +Mirach +Mirach's +Miranda +Mirfak +Mirfak's +Miriam +Miriam's +Miro +Mirzam +Mirzam's +Miskito +Miss +Mississauga +Mississippi +Mississippi's +Mississippian +Mississippian's +Mississippians +Missouri +Missouri's +Missourian +Missourian's +Missourians +Missy +Missy's +Mistassini +Mister +Misty +Misty's +Mitch +Mitch's +Mitchel +Mitchel's +Mitchell +Mitford +Mitford's +Mithra +Mithra's +Mithridates +Mithridates's +Mitsubishi +Mitsubishi's +Mitterrand +Mitterrand's +Mitty +Mitty's +Mitzi +Mitzi's +Mixtec +Mizar +Mn +Mn's +Mnemosyne +Mnemosyne's +Mo +Mo's +Mobil +Mobil's +Mobile +Mobile's +Mobutu +Mobutu's +Modesto +Modigliani +Moe +Moe's +Moet +Moet's +Mogadishu +Mohacs +Mohacs's +Mohamed +Mohamed's +Mohammad +Mohammad's +Mohammed +Mohammed's +Mohammedan +Mohammedan's +Mohammedanism +Mohammedanism's +Mohammedanisms +Mohammedans +Mohawk +Mohawk's +Mohawks +Mohican +Mohican's +Mohicans +Moho +Moho's +Mohorovicic +Mohorovicic's +Moira +Moises +Moiseyev +Moiseyev's +Mojave +Mojave's +Moldavia +Moldavia's +Moldova +Moldova's +Moliere +Moliere's +Molina +Moll +Moll's +Mollie +Mollie's +Molly +Molly's +Molnar +Molnar's +Moloch +Moloch's +Molokai +Molokai's +Molotov +Molotov's +Moluccas +Mombasa +Mombasa's +Mon +Mon's +Mona +Mona's +Monaco +Monaco's +Mondale +Mondale's +Monday +Monday's +Mondays +Mondrian +Monera +Monera's +Monet +Mongol +Mongol's +Mongolia +Mongolia's +Mongolian +Mongolian's +Mongolians +Mongoloid +Mongols +Monica +Monica's +Monique +Monique's +Monk +Monk's +Monmouth +Monongahela +Monroe +Monroe's +Monrovia +Monrovia's +Mons +Monsanto +Monsanto's +Mont +Montague +Montaigne +Montana +Montana's +Montanan +Montanan's +Montanans +Montcalm +Monte +Monte's +Montenegrin +Montenegro +Montenegro's +Monterrey +Montesquieu +Montessori +Monteverdi +Montevideo +Montevideo's +Montezuma +Montezuma's +Montgolfier +Montgomery +Montgomery's +Monticello +Montoya +Montoya's +Montpelier +Montpelier's +Montrachet +Montreal +Montreal's +Montserrat +Montserrat's +Monty +Monty's +Moody +Moog +Moon +Moon's +Mooney +Mooney's +Moor +Moor's +Moore +Moorish +Moorish's +Moors +Morales +Morales's +Moran +Moran's +Moravia +Moravian +Mordred +More +Moreno +Moreno's +Morgan +Morgan's +Moriarty +Moriarty's +Morin +Morin's +Morison +Morison's +Morita +Morita's +Morley +Mormon +Mormon's +Mormonism +Mormonism's +Mormonisms +Mormons +Moro +Moroccan +Moroccan's +Moroccans +Morocco +Morocco's +Moroni +Morpheus +Morpheus's +Morphy +Morphy's +Morris +Morrison +Morrow +Morrow's +Morse +Morse's +Mort +Mort's +Mortimer +Morton +Morton's +Mosaic +Mosaic's +Moscow +Moscow's +Moseley +Moselle +Moselle's +Moses +Moses's +Moslem +Moslem's +Moslems +Mosley +Mosley's +Moss +Moss's +Mosul +Motorola +Motorola's +Motown +Motown's +Motrin +Motrin's +Mott +Mount +Mountbatten +Mountie +Mountie's +Mounties +Moussorgsky +Mouthe +Mouthe's +Mouton +Mouton's +Mowgli +Mowgli's +Mozambican +Mozambican's +Mozambicans +Mozambique +Mozambique's +Mozart +Mozart's +Mozilla +Mozilla's +Mr +Mr's +Mrs +Ms +Mt +Muawiya +Muawiya's +Mubarak +Mubarak's +Mueller +Mueller's +Muenster +Muenster's +Mugabe +Mugabe's +Muhammad +Muhammad's +Muhammadan +Muhammadan's +Muhammadanism +Muhammadanism's +Muhammadanisms +Muhammadans +Muir +Mujib +Mujib's +Mulder +Mulder's +Mullen +Mullen's +Muller +Muller's +Mulligan +Mulligan's +Mullikan +Mullikan's +Mullins +Mulroney +Mulroney's +Multan +Mumbai +Mumbai's +Mumford +Munch +Munich +Munich's +Munoz +Munoz's +Munro +Muppet +Muppet's +Murasaki +Murasaki's +Murat +Murchison +Murchison's +Murdoch +Muriel +Muriel's +Murillo +Murine +Murine's +Murmansk +Murphy +Murray +Murray's +Murrow +Murrow's +Murrumbidgee +Muscat +Muscat's +Muscovite +Muscovite's +Muscovy +Muscovy's +Muse +Muse's +Musharraf +Musharraf's +Musial +Musial's +Muskogee +Muskogee's +Muslim +Muslim's +Muslims +Mussolini +Mussolini's +Mussorgsky +Mutsuhito +Mutsuhito's +Muzak +MySpace +MySpace's +Myanmar +Myanmar's +Mycenae +Mycenae's +Mycenaean +Myers +Mylar +Mylar's +Mylars +Myles +Myles's +Myra +Myra's +Myrdal +Myrdal's +Myrna +Myrna's +Myron +Myrtle +Myrtle's +Mysore +Myst +Myst's +Münchhausen +Münchhausen's +N +N's +NASA's +NASCAR +NASCAR's +NASDAQ's +NATO's +NE's +NORAD +NORAD's +NW's +Na +Na's +Nabisco +Nabisco's +Nabokov +Nader +Nadia +Nadia's +Nadine +Nadine's +Nagasaki +Nagasaki's +Nagoya +Nagpur +Nagy +Nahuatl +Nahuatl's +Nahum +Naipaul +Naipaul's +Nair +Nair's +Nairobi +Nairobi's +Naismith +Naismith's +Nam +Nam's +Namath +Namath's +Namibia +Namibia's +Namibian +Namibian's +Namibians +Nan +Nan's +Nanak +Nanchang +Nancy +Nanette +Nanette's +Nanjing +Nanjing's +Nanking +Nanking's +Nankings +Nannie +Nannie's +Nanook +Nanook's +Nansen +Nantes +Nantes's +Nantucket +Nantucket's +Naomi +Naomi's +Naphtali +Naphtali's +Napier +Napier's +Naples +Naples's +Napoleon +Napoleon's +Napoleonic +Napster +Napster's +Narcissus +Narcissus's +Narmada +Narmada's +Narnia +Narnia's +Narragansett +Nash +Nashua +Nashville +Nashville's +Nassau +Nassau's +Nasser +Nasser's +Nat +Nat's +Natalia +Natalia's +Natalie +Natalie's +Natasha +Natasha's +Natchez +Nate +Nate's +Nathan +Nathaniel +Nathaniel's +Nathans +Nation +Nationwide +Nationwide's +Naugahyde +Nauru +Nauru's +Nautilus +Navaho +Navaho's +Navahoes +Navahos +Navajo +Navajo's +Navajoes +Navajos +Navarre +Navarro +Navarro's +Navratilova +Navratilova's +Nazarene +Nazareth +Nazca +Nazi +Nazi's +Naziism +Naziism's +Naziisms +Nazis +Nazism +Nazism's +Nazisms +Nb +Nb's +Nd +Nd's +Ndjamena +Ndjamena's +Ne +Ne's +Neal +Neal's +Neanderthal +Neanderthal's +Neanderthals +Neapolitan +Nebraska +Nebraska's +Nebraskan +Nebraskan's +Nebraskans +Nebuchadnezzar +Ned +Ned's +Nefertiti +Negev +Negev's +Negro +Negro's +Negroes +Negroid +Negroid's +Negroids +Negros +Nehemiah +Nehru +Nehru's +Neil +Neil's +Nelda +Nelda's +Nell +Nell's +Nellie +Nellie's +Nelly +Nelly's +Nelsen +Nelsen's +Nelson +Nembutal +Nembutal's +Nemesis +Nemesis's +Neogene +Neolithic +Nepal +Nepal's +Nepalese +Nepalese's +Nepali +Nepali's +Neptune +Neptune's +Nereid +Nereid's +Nerf +Nero +Neruda +Nescafe +Nescafe's +Nesselrode +Nestle +Nestle's +Nestor +Nestor's +Nestorius +Netflix +Netflix's +Netherlander +Netherlander's +Netherlanders +Netherlands +Netscape +Netscape's +Nettie +Nettie's +Netzahualcoyotl +Netzahualcoyotl's +Nev +Neva +Nevada +Nevada's +Nevadan +Nevadan's +Nevadans +Nevis +Nevis's +Nevsky +Nevsky's +Newark +Newark's +Newcastle +Newcastle's +Newfoundland +Newfoundland's +Newfoundlands +Newman +Newport +Newport's +Newsweek +Newsweek's +Newton +Newton's +Newtonian +Newtonian's +Nexis +Ngaliema +Ngaliema's +Nguyen +Nguyen's +Ni +Niagara +Niagara's +Niamey +Niamey's +Nibelung +Nicaea +Nicaragua +Nicaragua's +Nicaraguan +Nicaraguan's +Nicaraguans +Niccolo +Niccolo's +Nice +Nice's +Nicene +Nichiren +Nichiren's +Nicholas +Nichole +Nichole's +Nichols +Nicholson +Nick +Nick's +Nickelodeon +Nickelodeon's +Nicklaus +Nickolas +Nicobar +Nicobar's +Nicodemus +Nicola +Nicola's +Nicolas +Nicole +Nicole's +Nicosia +Nicosia's +Niebuhr +Niebuhr's +Nielsen +Nietzsche +Nieves +Nieves's +Nigel +Nigel's +Niger +Niger's +Nigeria +Nigeria's +Nigerian +Nigerian's +Nigerians +Nightingale +Nightingale's +Nijinsky +Nike +Nike's +Nikita +Nikita's +Nikkei +Nikki +Nikki's +Nikolai +Nikolai's +Nikolayev +Nikon +Nikon's +Nile +Nile's +Nimitz +Nimrod +Nina +Nina's +Nineveh +Nineveh's +Nintendo +Niobe +Nippon +Nippon's +Nirenberg +Nirenberg's +Nirvana +Nisan +Nisan's +Nisei +Nissan +Nissan's +Nita +Nita's +Nivea +Nivea's +Nixon +Nixon's +Nkrumah +NoDoz +NoDoz's +Noah +Noah's +Nobel +Nobelist +Nobelist's +Nobelists +Noble +Noble's +Noe +Noe's +Noel +Noel's +Noelle +Noelle's +Noels +Noemi +Noemi's +Noh +Nokia +Nokia's +Nola +Nola's +Nolan +Nolan's +Nome +Nona +Nona's +Nootka +Nootka's +Nora +Nora's +Norbert +Norbert's +Norberto +Norberto's +Nordic +Nordic's +Nordics +Noreen +Noreen's +Norfolk +Norfolk's +Noriega +Noriega's +Norma +Norman +Norman's +Normand +Normand's +Normandy +Normandy's +Normans +Norplant +Norris +Norse +Norse's +Norseman +Norseman's +Norsemen +North +North's +Northampton +Northeast +Northeast's +Northeasts +Northerner +Northerner's +Northrop +Northrop's +Northrup +Northrup's +Norths +Northwest +Northwest's +Northwests +Norton +Norton's +Norway +Norway's +Norwegian +Norwegian's +Norwegians +Norwich +Nosferatu +Nosferatu's +Nostradamus +Nottingham +Nouakchott +Nouakchott's +Noumea +Noumea's +Nov +Nov's +Nova +Novartis +Novartis's +November +November's +Novembers +Novgorod +Novocain +Novocain's +Novocaine +Novokuznetsk +Novosibirsk +Novosibirsk's +Noxzema +Noxzema's +Noyce +Noyce's +Noyes +Noyes's +Np +Np's +Nubia +Nubian +Nukualofa +Numbers +Numbers's +Nunavut +Nunavut's +Nunez +Nunez's +Nunki +Nunki's +Nuremberg +Nureyev +NutraSweet +NutraSweet's +NyQuil +NyQuil's +Nyasa +Nyasa's +Nyerere +Nyerere's +O +O'Brien +O'Casey +O'Connell +O'Connor +O'Donnell +O'Hara +O'Higgins +O'Keeffe +O'Neil +O'Neill +O'Rourke +O'Toole +O's +OAS's +OD's +OHSA +OHSA's +OK +OK's +OKs +OPEC's +OSHA's +Oahu +Oahu's +Oakland +Oakland's +Oakley +Oates +Oaxaca +Oaxaca's +Ob +Ob's +Obadiah +Obama +Obama's +Oberlin +Oberlin's +Oberon +Occam +Occident +Occidental +Occidental's +Occidentals +Oceania +Oceania's +Oceanus +Oceanus's +Ochoa +Ochoa's +Oct +Oct's +Octavia +Octavio +Octavio's +October +October's +Octobers +Odell +Odell's +Oder +Oder's +Odessa +Odessa's +Odets +Odin +Odin's +Odis +Odis's +Odom +Odom's +Odysseus +Odysseus's +Odyssey +Odyssey's +Oedipal +Oedipus +Oedipus's +Oersted +Oersted's +Ofelia +Ofelia's +Offenbach +OfficeMax +OfficeMax's +Ogbomosho +Ogden +Ogden's +Ogilvy +Ogilvy's +Oglethorpe +Ohio +Ohio's +Ohioan +Ohioan's +Ohioans +Oise +Oise's +Ojibwa +Ojibwa's +Ojibwas +Okeechobee +Okefenokee +Okhotsk +Okinawa +Okinawa's +Okla +Oklahoma +Oklahoma's +Oklahoman +Oktoberfest +Ola +Ola's +Olaf +Olaf's +Olajuwon +Olajuwon's +Olav +Olav's +Oldenburg +Oldfield +Oldfield's +Oldsmobile +Oldsmobile's +Olduvai +Olduvai's +Olen +Olen's +Olenek +Olenek's +Olga +Olga's +Oligocene +Oligocene's +Olin +Olin's +Olive +Olive's +Oliver +Olivetti +Olivetti's +Olivia +Olivia's +Olivier +Ollie +Ollie's +Olmec +Olmsted +Olmsted's +Olsen +Olsen's +Olson +Olson's +Olympia +Olympia's +Olympiad +Olympiad's +Olympiads +Olympian +Olympian's +Olympians +Olympias +Olympic +Olympics +Olympus +Olympus's +Omaha +Omaha's +Omahas +Oman +Oman's +Omar +Omar's +Omayyad +Omdurman +Omdurman's +Omsk +Omsk's +Onassis +Oneal +Oneal's +Onega +Onegin +Onegin's +Oneida +Oneida's +Onion +Onion's +Ono +Ono's +Onondaga +Onondaga's +Onsager +Onsager's +Ontario +Ontario's +Oort +Oort's +Opal +Opal's +Opel +Opel's +Ophelia +Ophelia's +Ophiuchus +Oppenheimer +Oppenheimer's +Oprah +Oprah's +Ora +Ora's +Oracle +Oracle's +Oran +Oran's +Orange +Oranjestad +Oranjestad's +Orbison +Orbison's +Ordovician +Ordovician's +Oregon +Oregon's +Oregonian +Oregonian's +Oregonians +Oreo +Orestes +Orient +Oriental +Oriental's +Orientals +Orin +Orin's +Orinoco +Orinoco's +Orion +Orion's +Oriya +Oriya's +Orizaba +Orizaba's +Orkney +Orkney's +Orlando +Orlando's +Orleans +Orleans's +Orlon +Orlon's +Orlons +Orly +Orly's +Orpheus +Orpheus's +Orphic +Orr +Orr's +Ortega +Ortega's +Ortiz +Ortiz's +Orval +Orval's +Orville +Orville's +Orwell +Orwellian +Os +Osage +Osage's +Osaka +Osaka's +Osbert +Osbert's +Osborn +Osborn's +Osborne +Oscar +Oscar's +Oscars +Osceola +Osgood +Osgood's +Oshawa +Oshkosh +Oshkosh's +Osiris +Osiris's +Oslo +Oslo's +Osman +Osman's +Ostrogoth +Ostrogoth's +Ostwald +Osvaldo +Osvaldo's +Oswald +Othello +Othello's +Otis +Otis's +Ottawa +Ottawa's +Ottawas +Otto +Ottoman +Ouagadougou +Ouija +Ouija's +Ovid +Owen +Owens +Oxford +Oxford's +Oxfords +Oxnard +Oxonian +Oxonian's +Oxus +Oxycontin +Oxycontin's +Oz +Ozark +Ozark's +Ozarks +Ozarks's +Ozymandias +Ozymandias's +Ozzie +Ozzie's +P +P's +PA's +PAC's +PBS's +PC's +PM's +PMS's +POW's +PS's +PST's +PVC's +Pa +Pa's +Paar +Paar's +Pablo +Pablo's +Pablum +Pablum's +Pabst +Pabst's +Pace +Pace's +Pacheco +Pacheco's +Pacific +Pacific's +Pacino +Pacino's +Packard +Packard's +Paderewski +Padilla +Padilla's +Paganini +Page +Paglia +Paglia's +Pahlavi +Paige +Paige's +Paine +Pakistan +Pakistan's +Pakistani +Pakistani's +Pakistanis +Palau +Palembang +Paleocene +Paleocene's +Paleogene +Paleolithic +Paleozoic +Paleozoic's +Palermo +Palermo's +Palestine +Palestine's +Palestinian +Palestinian's +Palestinians +Palestrina +Paley +Palikir +Palikir's +Palisades +Palisades's +Palladio +Palmer +Palmerston +Palmolive +Palmolive's +Palmyra +Palmyra's +Palomar +Palomar's +Pam +Pam's +Pamela +Pamela's +Pamirs +Pampers +Pan +Pan's +Panama +Panama's +Panamanian +Panamanian's +Panamanians +Panamas +Panasonic +Panasonic's +Pandora +Pandora's +Pangaea +Pangaea's +Pankhurst +Panmunjom +Panmunjom's +Pansy +Pansy's +Pantagruel +Pantaloon +Pantaloon's +Pantheon +Panza +Panza's +Paracelsus +Paraclete +Paradise +Paraguay +Paraguay's +Paraguayan +Paraguayan's +Paraguayans +Paramaribo +Paramaribo's +Paramount +Paramount's +Paraná +Paraná's +Parcheesi +Parcheesi's +Pareto +Paris +Paris's +Parisian +Parisian's +Parisians +Park +Parker +Parkinson +Parkinson's +Parkman +Parks +Parliament +Parmesan +Parmesan's +Parmesans +Parnassus +Parnassus's +Parnell +Parr +Parrish +Parsi +Parsi's +Parsifal +Parsifal's +Parsons +Parthenon +Parthenon's +Parthia +Parthia's +Pasadena +Pasadena's +Pascal +Pascal's +Pasquale +Pasquale's +Passion +Passion's +Passions +Passover +Passover's +Passovers +Pasternak +Pasteur +Pasteur's +Pat +Patagonia +Patagonia's +Patagonian +Pate +Pate's +Patel +Patel's +Paterson +Patna +Patrica +Patrica's +Patrice +Patrice's +Patricia +Patricia's +Patrick +Patrick's +Patsy +Patsy's +Patterson +Patterson's +Patti +Patton +Patty +Patty's +Paul +Paul's +Paula +Paula's +Paulette +Paulette's +Pauli +Pauline +Pauling +Pavarotti +Pavlov +Pavlov's +Pavlova +Pavlovian +Pawnee +Pawnee's +PayPal +PayPal's +Payne +Payne's +Paypal +Paypal's +Pb +Pb's +Pd +Pd's +Peabody +Peabody's +Peace +Peace's +Peale +Pearl +Pearl's +Pearlie +Pearlie's +Pearson +Pearson's +Peary +Pechora +Peck +Peck's +Peckinpah +Peckinpah's +Pecos +Pecos's +Pedro +Pedro's +Peel +Peel's +Peg +Peg's +Pegasus +Pegasus's +Pegasuses +Peggy +Peggy's +Pei +Peiping +Peiping's +Pekinese +Pekinese's +Pekineses +Peking +Peking's +Pekingese +Pekingese's +Pekingeses +Pekings +Pele +Pele's +Pelee +Pelee's +Peloponnese +Peloponnese's +Pembroke +Pembroke's +Pena +Pena's +Penderecki +Penderecki's +Penelope +Penelope's +Penn +Penney +Penney's +Pennington +Pennington's +Pennsylvania +Pennsylvania's +Pennsylvanian +Pennsylvanian's +Pennsylvanians +Penny +Penny's +Pennzoil +Pennzoil's +Pensacola +Pensacola's +Pentagon +Pentagon's +Pentateuch +Pentateuch's +Pentax +Pentax's +Pentecost +Pentecost's +Pentecostal +Pentecostal's +Pentecostals +Pentecosts +Pentium +Pentium's +Peoria +Pepin +Pepin's +Pepsi +Pepsi's +Pepys +Pequot +Percheron +Percival +Percy +Perelman +Perelman's +Perez +Perez's +Periclean +Pericles +Perkins +Perl +Perl's +Perm +Perm's +Permalloy +Permalloy's +Permian +Permian's +Pernod +Pernod's +Peron +Perot +Perot's +Perrier +Perry +Perseid +Persephone +Persephone's +Persepolis +Persepolis's +Perseus +Perseus's +Pershing +Persia +Persia's +Persian +Persian's +Persians +Perth +Perth's +Peru +Peru's +Peruvian +Peruvian's +Peruvians +Peshawar +Pete +Pete's +Peter +Peter's +Peters +Petersen +Petersen's +Peterson +Peterson's +Petra +Petrarch +Petrarch's +Petty +Petty's +Peugeot +Peugeot's +Pfizer +Pfizer's +PhD +PhD's +Phaedra +Phaethon +Phaethon's +Phanerozoic +Pharaoh +Pharaoh's +Pharaohs +Pharisee +Pharisee's +Pharisees +Phekda +Phekda's +Phelps +Phelps's +Phidias +Phil +Philadelphia +Philadelphia's +Philby +Philby's +Philip +Philippe +Philippe's +Philippians +Philippine +Philippine's +Philippines +Philips +Philistine +Phillip +Phillipa +Phillipa's +Phillips +Philly +Philly's +Phipps +Phipps's +Phobos +Phoebe +Phoebe's +Phoenicia +Phoenicia's +Phoenix +Phoenix's +Photostat +Photostat's +Photostats +Photostatted +Photostatting +Phrygia +Phrygia's +Phyllis +Phyllis's +Piaf +Piaf's +Piaget +Piaget's +Pianola +Pianola's +Picasso +Picasso's +Piccadilly +Pickering +Pickering's +Pickett +Pickford +Pickford's +Pickwick +Pickwick's +Pict +Piedmont +Piedmont's +Pierce +Pierce's +Pierre +Pierre's +Pierrot +Pierrot's +Pigmies +Pigmy +Pigmy's +Pike +Pike's +Pilate +Pilates +Pilcomayo +Pilgrim +Pillsbury +Pillsbury's +Pinatubo +Pinatubo's +Pincus +Pincus's +Pindar +Pindar's +Pinkerton +Pinocchio +Pinocchio's +Pinochet +Pinochet's +Pinter +Pippin +Pippin's +Piraeus +Pirandello +Pisa +Pisces +Pisces's +Pisistratus +Pissaro +Pissaro's +Pitcairn +Pitcairn's +Pitt +Pittman +Pittman's +Pitts +Pittsburgh +Pittsburgh's +Pius +Pius's +Pizarro +Pkwy +Pl +Planck +Plantagenet +Plantagenet's +Plasticine +Plasticine's +Plataea +Plataea's +Plath +Plato +Plato's +Platonic +Platonism +Platonism's +Platonist +Platonist's +Platte +Platte's +Plautus +Plautus's +PlayStation +PlayStation's +Playboy +Playboy's +Playtex +Playtex's +Pleiades +Pleiades's +Pleistocene +Pleistocene's +Plexiglas +Plexiglas's +Plexiglases +Pliny +Pliocene +Pliocene's +Plutarch +Plutarch's +Pluto +Pluto's +Plymouth +Plymouth's +Pm +Pm's +Po +Po's +Pocahontas +Pocahontas's +Pocono +Pocono's +Poconos +Podgorica +Podhoretz +Podhoretz's +Podunk +Poe +Pogo +Pogo's +Poincaré +Poincaré's +Poiret +Poiret's +Poirot +Poirot's +Poisson +Poisson's +Poitier +Poitier's +Pokémon +Pokémon's +Poland +Poland's +Polanski +Polanski's +Polaris +Polaris's +Polaroid +Polaroid's +Polaroids +Pole +Pole's +Poles +Polish +Polish's +Politburo +Polk +Polk's +Pollard +Pollard's +Pollock +Pollux +Pollux's +Polly +Polly's +Pollyanna +Polo +Polo's +Poltava +Poltava's +Polyhymnia +Polyhymnia's +Polynesia +Polynesia's +Polynesian +Polynesian's +Polynesians +Polyphemus +Pomerania +Pomeranian +Pomeranian's +Pomona +Pompadour +Pompeii +Pompeii's +Pompey +Pompey's +Ponce +Pontchartrain +Pontiac +Pontiac's +Pontianak +Pooh +Pooh's +Poole +Poole's +Poona +Pope +Popeye +Popeye's +Popocatepetl +Popper +Popper's +Poppins +Poppins's +Popsicle +Porfirio +Porfirio's +Porrima +Porrima's +Porsche +Porsche's +Porter +Portia +Portia's +Portland +Portland's +Portsmouth +Portugal +Portugal's +Portuguese +Portuguese's +Poseidon +Poseidon's +Post +Post's +Potemkin +Potomac +Potomac's +Potsdam +Pottawatomie +Pottawatomie's +Potter +Potts +Potts's +Pound +Poussin +Powell +Powell's +PowerPoint +PowerPoint's +Powers +Powhatan +Powhatan's +Poznan +Poznan's +Prada +Prada's +Prado +Prado's +Praetorian +Prague +Prague's +Praia +Praia's +Prakrit +Pratchett +Pratchett's +Pratt +Pratt's +Pravda +Pravda's +Praxiteles +Preakness +Preakness's +Precambrian +Precambrian's +Preminger +Preminger's +Premyslid +Premyslid's +Prensa +Prensa's +Prentice +Prentice's +Pres +Presbyterian +Presbyterian's +Presbyterianism +Presbyterianism's +Presbyterians +Prescott +Prescott's +President +President's +Presidents +Presley +Preston +Pretoria +Pretoria's +Priam +Priam's +Pribilof +Pribilof's +Price +Priestley +Prince +Prince's +Princeton +Princeton's +Principe +Principe's +Priscilla +Priscilla's +Prius +Prius's +Procrustean +Procrustes +Procrustes's +Procter +Procter's +Procyon +Procyon's +Prof +Prohibition +Prokofiev +Promethean +Prometheus +Prometheus's +Proserpine +Proserpine's +Protagoras +Proterozoic +Proterozoic's +Protestant +Protestant's +Protestantism +Protestantism's +Protestantisms +Protestants +Proteus +Proteus's +Proudhon +Proust +Proust's +Provencals +Provence +Provence's +Provençal +Provençal's +Proverbs +Providence +Providence's +Providences +Provo +Prozac +Prozac's +Prudence +Prudence's +Prudential +Prudential's +Pruitt +Pruitt's +Prussia +Prussia's +Prussian +Prussian's +Prut +Pryor +Pryor's +Psalms +Psalter +Psalter's +Psalters +Psyche +Psyche's +Pt +Pt's +Ptah +Ptah's +Ptolemaic +Ptolemies +Ptolemy +Ptolemy's +Pu +Pu's +Puccini +Puck +Puckett +Puckett's +Puebla +Pueblo +Puget +Puget's +Pugh +Pugh's +Pulaski +Pulitzer +Pullman +Pullman's +Pullmans +Punch +Punic +Punic's +Punjab +Punjab's +Punjabi +Punjabi's +Purana +Purcell +Purdue +Purdue's +Purim +Purim's +Purims +Purina +Purina's +Puritan +Puritanism +Puritanism's +Puritanisms +Purus +Purus's +Pusan +Pusan's +Pusey +Pushkin +Pushtu +Pushtu's +Putin +Putin's +Putnam +Puzo +Puzo's +Pygmalion +Pygmalion's +Pygmies +Pygmy +Pygmy's +Pyle +Pyle's +Pym +Pynchon +Pynchon's +Pyongyang +Pyongyang's +Pyotr +Pyotr's +Pyrenees +Pyrenees's +Pyrex +Pyrex's +Pyrexes +Pyrrhic +Pythagoras +Pythagoras's +Pythagorean +Pythias +Python +Python's +Pétain +Pétain's +Pôrto +Pôrto's +Q +Qaddafi +Qaddafi's +Qantas +Qantas's +Qatar +Qatar's +Qingdao +Qiqihar +Qiqihar's +Qom +Qom's +Quaalude +Quaalude's +Quaker +Quaker's +Quakers +Quaoar +Quaoar's +Quasimodo +Quaternary +Quaternary's +Quayle +Quayle's +Quebec +Quebec's +Quechua +Quechua's +Queen +Queens +Queens's +Queensland +Queensland's +Quentin +Quentin's +Quetzalcoatl +Quetzalcoatl's +Quezon +Quezon's +Quincy +Quincy's +Quinn +Quintilian +Quintilian's +Quinton +Quinton's +Quirinal +Quisling +Quisling's +Quito +Quito's +Quixote +Quixotism +Quixotism's +Qumran +Quonset +Québecois +R +R's +RAF's +RAM's +RCA +RCA's +REM's +RN's +RNA's +ROM's +ROTC's +RV's +Ra +Ra's +Rabat +Rabat's +Rabelais +Rabelais's +Rabelaisian +Rabin +Rabin's +Rachael +Rachael's +Rachel +Rachel's +Rachelle +Rachelle's +Rachmaninoff +Racine +Racine's +Radcliffe +Radcliffe's +Rae +Rae's +Rafael +Rafael's +Raffles +Raffles's +Ragnarök +Ragnarök's +Rainier +Raleigh +Raleigh's +Ralph +Ralph's +Rama +Rama's +Ramada +Ramada's +Ramadan +Ramadan's +Ramadans +Ramakrishna +Ramanujan +Ramanujan's +Ramayana +Rambo +Rambo's +Ramirez +Ramirez's +Ramiro +Ramiro's +Ramon +Ramon's +Ramona +Ramona's +Ramos +Ramsay +Ramses +Ramsey +Ramsey's +Rand +Randal +Randal's +Randall +Randall's +Randell +Randell's +Randi +Randi's +Randolph +Randolph's +Randy +Randy's +Rangoon +Rangoon's +Rankin +Rankine +Rankine's +Raoul +Raoul's +Raphael +Rapunzel +Rapunzel's +Raquel +Raquel's +Rasalgethi +Rasalgethi's +Rasalhague +Rasalhague's +Rasmussen +Rasmussen's +Rasputin +Rastaban +Rastaban's +Rastafarian +Rastafarian's +Rather +Rather's +Ratliff +Ratliff's +Raul +Raul's +Ravel +Rawalpindi +Ray +RayBan +RayBan's +Rayburn +Rayburn's +Rayleigh +Raymond +Raymond's +Raymundo +Raymundo's +Rb +Rb's +Rd +Re +Re's +Reagan +Reagan's +Reaganomics +Reaganomics's +Realtor +Reasoner +Reasoner's +Reba +Reba's +Rebecca +Rebekah +Recife +Recife's +Red +Red's +Redford +Redford's +Redgrave +Redgrave's +Redmond +Reebok +Reebok's +Reed +Reed's +Reese +Reese's +Reeves +Refugio +Refugio's +Reggie +Reggie's +Regina +Regina's +Reginae +Reginald +Reginald's +Regor +Regor's +Regulus +Regulus's +Rehnquist +Reich +Reich's +Reichstag +Reid +Reilly +Reilly's +Reinaldo +Reinaldo's +Reinhardt +Reinhold +Reinhold's +Remarque +Rembrandt +Rembrandt's +Remington +Remus +Remus's +Rena +Rena's +Renaissance +Renaissance's +Renaissances +Renault +Renault's +Rene +Rene's +Renee +Renee's +Reno +Reno's +Renoir +Rep +Representative +Republican +Republican's +Republicans +Resurrection +Reuben +Reunion +Reuters +Reuther +Reuther's +Rev +Reva +Reva's +Revelations +Revere +Reverend +Reverend's +Revlon +Revlon's +Rex +Reyes +Reykjavik +Reykjavik's +Reyna +Reyna's +Reynaldo +Reynaldo's +Reynolds +Rh +Rh's +Rhea +Rhee +Rheingau +Rheingau's +Rhenish +Rhiannon +Rhiannon's +Rhine +Rhine's +Rhineland +Rhineland's +Rhoda +Rhoda's +Rhode +Rhodes +Rhodesia +Rhodesia's +Rhonda +Rhonda's +Rhone +Rhone's +Ribbentrop +Ricardo +Rice +Rich +Rich's +Richard +Richards +Richardson +Richelieu +Richelieu's +Richie +Richie's +Richmond +Richmond's +Richter +Richthofen +Rick +Rick's +Rickenbacker +Rickenbacker's +Rickey +Rickey's +Rickie +Rickie's +Rickover +Ricky +Ricky's +Rico +Rico's +Riddle +Riddle's +Ride +Riefenstahl +Riefenstahl's +Riel +Riel's +Riemann +Riemann's +Riesling +Riesling's +Riga +Riga's +Rigel +Rigel's +Riggs +Riggs's +Rigoberto +Rigoberto's +Rigoletto +Rigoletto's +Riley +Rilke +Rimbaud +Ringling +Ringling's +Ringo +Ringo's +Rio +Rio's +Rios +Ripley +Risorgimento +Rita +Rita's +Ritalin +Ritalin's +Ritz +Ritz's +Rivas +Rivera +Rivers +Riverside +Riviera +Riviera's +Rivieras +Riyadh +Riyadh's +Rizal +Rn +Rn's +Roach +Roach's +Rob +Rob's +Robbie +Robbie's +Robbin +Robbin's +Robbins +Robby +Robby's +Roberson +Roberson's +Robert +Robert's +Roberta +Roberta's +Roberto +Roberto's +Roberts +Robertson +Robertson's +Robeson +Robespierre +Robin +Robin's +Robinson +Robitussin +Robitussin's +Robles +Robles's +Robson +Robt +Robt's +Robyn +Robyn's +Rocco +Rocco's +Rocha +Rocha's +Rochambeau +Rochambeau's +Roche +Roche's +Rochelle +Rochelle's +Rochester +Rochester's +Rock +Rockefeller +Rockford +Rockies +Rockies's +Rockne +Rockne's +Rockwell +Rocky +Rocky's +Rod +Rod's +Roddenberry +Roddenberry's +Roderick +Roderick's +Rodger +Rodger's +Rodgers +Rodin +Rodney +Rodolfo +Rodolfo's +Rodrick +Rodrick's +Rodrigo +Rodrigo's +Rodriguez +Rodriguez's +Rodriquez +Rodriquez's +Roeg +Roeg's +Roentgen +Rogelio +Rogelio's +Roger +Rogers +Roget +Roget's +Rojas +Rojas's +Roku +Roku's +Rolaids +Rolaids's +Roland +Rolando +Rolando's +Rolex +Rolex's +Rolland +Rollerblade +Rollins +Rolodex +Rolvaag +Rolvaag's +Roman +Roman's +Romanesque +Romanesque's +Romania +Romania's +Romanian +Romanian's +Romanians +Romanies +Romano +Romanov +Romanov's +Romans +Romansh +Romanticism +Romany +Romany's +Rome +Rome's +Romeo +Romero +Romero's +Romes +Rommel +Rommel's +Romney +Romulus +Romulus's +Ron +Ron's +Ronald +Ronald's +Ronda +Ronda's +Ronnie +Ronnie's +Ronny +Ronny's +Ronstadt +Ronstadt's +Rooney +Rooney's +Roosevelt +Roosevelt's +Root +Root's +Roquefort +Roquefort's +Roqueforts +Rorschach +Rory +Rory's +Rosa +Rosa's +Rosales +Rosales's +Rosalie +Rosalie's +Rosalind +Rosalind's +Rosalinda +Rosalinda's +Rosalyn +Rosalyn's +Rosanna +Rosanna's +Rosanne +Rosanne's +Rosario +Roscoe +Roscoe's +Rose +Rose's +Roseann +Roseann's +Roseau +Roseau's +Rosecrans +Rosecrans's +Rosella +Rosella's +Rosemarie +Rosemarie's +Rosemary +Rosemary's +Rosenberg +Rosenberg's +Rosendo +Rosendo's +Rosenzweig +Rosenzweig's +Rosetta +Rosicrucian +Rosie +Rosie's +Roslyn +Roslyn's +Ross +Ross's +Rossetti +Rossetti's +Rossini +Rossini's +Rostand +Rostov +Rostov's +Rostropovich +Rostropovich's +Roswell +Roswell's +Rotarian +Rotarian's +Roth +Roth's +Rothko +Rothschild +Rotterdam +Rotterdam's +Rottweiler +Rottweiler's +Rouault +Roumania +Roumania's +Rourke +Rourke's +Rousseau +Rousseau's +Rove +Rove's +Rover +Rowe +Rowena +Rowena's +Rowland +Rowland's +Rowling +Rowling's +Roxanne +Roxanne's +Roxie +Roxie's +Roxy +Roxy's +Roy +Roy's +Royal +Royce +Rozelle +Rozelle's +Rte +Ru +Ru's +Rubaiyat +Rubaiyat's +Rubbermaid +Rubbermaid's +Ruben +Ruben's +Rubens +Rubicon +Rubicon's +Rubik +Rubik's +Rubin +Rubin's +Rubinstein +Ruby +Ruby's +Ruchbah +Ruchbah's +Rudolf +Rudolph +Rudolph's +Rudy +Rudy's +Rudyard +Rudyard's +Rufus +Rufus's +Ruhr +Ruhr's +Ruiz +Ruiz's +Rukeyser +Rukeyser's +Rumania +Rumania's +Rumpelstiltskin +Rumpelstiltskin's +Rumsfeld +Rumsfeld's +Runnymede +Runyon +Rupert +Rupert's +Rush +Rush's +Rushdie +Rushdie's +Rushmore +Rushmore's +Ruskin +Russ +Russel +Russel's +Russell +Russell's +Russia +Russia's +Russian +Russian's +Russians +Russo +Russo's +Rustbelt +Rustbelt's +Rusty +Rusty's +Rutan +Rutan's +Rutgers +Ruth +Ruth's +Rutherford +Ruthie +Ruthie's +Rutledge +Rutledge's +Rwanda +Rwanda's +Rwandan +Rwandan's +Rwandans +Rwandas +Rx +Ryan +Ryan's +Rydberg +Rydberg's +Ryder +Ryukyu +Ryukyu's +S +S's +SALT's +SAM's +SAP +SAP's +SARS +SARS's +SC's +SE's +SIDS's +SOP's +SOS's +SW's +Saab +Saab's +Saar +Saarinen +Saatchi +Saatchi's +Sabbath +Sabbath's +Sabbaths +Sabik +Sabik's +Sabin +Sabina +Sabina's +Sabine +Sabine's +Sabre +Sabre's +Sabrina +Sabrina's +Sacajawea +Sacco +Sacco's +Sachs +Sachs's +Sacramento +Sacramento's +Sadat +Saddam +Saddam's +Sadducee +Sade +Sade's +Sadie +Sadie's +Sadr +Sadr's +Safavid +Safeway +Safeway's +Sagan +Sagan's +Saginaw +Saginaw's +Sagittarius +Sagittarius's +Sagittariuses +Sahara +Sahara's +Sahel +Saigon +Saigon's +Saiph +Saiph's +Sakai +Sakha +Sakha's +Sakhalin +Sakhalin's +Sakharov +Saki +Saki's +Saks +Sal +Saladin +Salado +Salamis +Salas +Salas's +Salazar +Salazar's +Salem +Salem's +Salerno +Salerno's +Salinas +Salinger +Salisbury +Salisbury's +Salish +Salish's +Salk +Sallie +Sallie's +Sallust +Sally +Sally's +Salome +Salome's +Salton +Salton's +Salvador +Salvador's +Salvadoran +Salvadoran's +Salvadorans +Salvadorian +Salvadorian's +Salvadorians +Salvatore +Salvatore's +Salween +Salween's +Salyut +Salyut's +Sam +Samantha +Samantha's +Samar +Samar's +Samara +Samaritan +Samaritan's +Samaritans +Samarkand +Samarkand's +Sammie +Sammie's +Sammy +Sammy's +Samoa +Samoa's +Samoan +Samoan's +Samoset +Samoset's +Samoyed +Samoyed's +Sampson +Sampson's +Samson +Samsonite +Samsonite's +Samsung +Samsung's +Samuel +Samuelson +Samuelson's +San +Sana +Sana's +Sanchez +Sanchez's +Sancho +Sancho's +Sand +Sandburg +Sanders +Sandinista +Sandoval +Sandoval's +Sandra +Sandra's +Sandy +Sandy's +Sanford +Sanford's +Sanforized +Sang +Sang's +Sanger +Sanhedrin +Sanka +Sanka's +Sankara +Sankara's +Sanskrit +Sanskrit's +Santa +Santana +Santana's +Santayana +Santeria +Santiago +Santiago's +Santos +Sappho +Sappho's +Sapporo +Sapporo's +Sara +Sara's +Saracen +Saracen's +Saracens +Saragossa +Saragossa's +Sarah +Sarajevo +Sarajevo's +Saran +Saran's +Sarasota +Sarasota's +Saratov +Saratov's +Sarawak +Sarawak's +Sardinia +Sardinia's +Sargasso +Sargasso's +Sargent +Sargon +Sargon's +Sarnoff +Sarnoff's +Saroyan +Saroyan's +Sarto +Sartre +Sasha +Sasha's +Saskatchewan +Saskatchewan's +Saskatoon +Saskatoon's +Sasquatch +Sasquatch's +Sassanian +Sassoon +Sat +Sat's +Satan +Satan's +Satanism +Satanism's +Satanist +Satanist's +Saturday +Saturday's +Saturdays +Saturn +Saturn's +Saturnalia +Saturnalia's +Saudi +Saudi's +Saudis +Saul +Saul's +Saunders +Saundra +Saundra's +Saussure +Sauterne +Sauterne's +Savage +Savannah +Savannah's +Savior +Savior's +Savonarola +Savoy +Savoyard +Savoyard's +Sawyer +Sawyer's +Saxon +Saxon's +Saxons +Saxony +Saxony's +Sayers +Sb +Sb's +Sc +Sc's +Scandinavia +Scandinavia's +Scandinavian +Scandinavian's +Scandinavians +Scaramouch +Scarborough +Scarlatti +Scheat +Scheat's +Schedar +Schedar's +Scheherazade +Scheherazade's +Schelling +Schenectady +Schenectady's +Schiaparelli +Schiaparelli's +Schick +Schick's +Schiller +Schindler +Schindler's +Schlesinger +Schlesinger's +Schliemann +Schlitz +Schlitz's +Schmidt +Schnabel +Schnauzer +Schnauzer's +Schneider +Schneider's +Schoenberg +Schoenberg's +Schopenhauer +Schrieffer +Schrieffer's +Schroeder +Schroeder's +Schrödinger +Schrödinger's +Schubert +Schultz +Schultz's +Schulz +Schulz's +Schumann +Schumpeter +Schumpeter's +Schuyler +Schuyler's +Schuylkill +Schuylkill's +Schwartz +Schwartz's +Schwarzenegger +Schwarzenegger's +Schwarzkopf +Schwarzkopf's +Schweitzer +Schweppes +Schweppes's +Schwinger +Schwinger's +Schwinn +Schwinn's +Scientology +Scientology's +Scipio +Scipio's +Scopes +Scopes's +Scorpio +Scorpio's +Scorpios +Scorpius +Scorpius's +Scorsese +Scorsese's +Scot +Scot's +Scotch +Scotch's +Scotches +Scotchman +Scotchman's +Scotchmen +Scotland +Scotland's +Scots +Scotsman +Scotsman's +Scotsmen +Scotswoman +Scotswoman's +Scotswomen +Scott +Scottie +Scottie's +Scottish +Scottish's +Scottsdale +Scotty +Scrabble +Scrabble's +Scranton +Scriabin +Scribner +Scribner's +Scripture +Scripture's +Scriptures +Scrooge +Scruggs +Scruggs's +Scud +Sculley +Sculley's +Scylla +Scylla's +Scythia +Scythian +Se +Se's +Seaborg +Seagram +Seagram's +Sean +Sean's +Sears +Sears's +Seattle +Seattle's +Sebastian +Sebastian's +Sec +Seconal +Seconal's +Secretariat +Secretariat's +Secretary +Seder +Seder's +Seders +Sedna +Sedna's +Seebeck +Seebeck's +Sega +Sega's +Segovia +Segovia's +Segre +Segre's +Segundo +Segundo's +Seiko +Seiko's +Seine +Seine's +Seinfeld +Seinfeld's +Sejong +Sejong's +Selassie +Selassie's +Selectric +Selectric's +Selena +Selena's +Seleucid +Seleucus +Seleucus's +Selim +Selim's +Seljuk +Selkirk +Selkirk's +Sellers +Sellers's +Selma +Selma's +Selznick +Selznick's +Semarang +Seminole +Seminole's +Seminoles +Semiramis +Semite +Semite's +Semites +Semitic +Semitic's +Semitics +Semtex +Sen +Senate +Senate's +Senates +Senator +Sendai +Seneca +Seneca's +Senecas +Senegal +Senegal's +Senegalese +Senegalese's +Senghor +Senior +Sennacherib +Sennett +Sennett's +Sensurround +Sensurround's +Seoul +Seoul's +Sephardi +Sepoy +Sepoy's +Sept +Sept's +September +September's +Septembers +Septuagint +Septuagint's +Septuagints +Sequoya +Serb +Serb's +Serbia +Serbia's +Serbian +Serbian's +Serbians +Serbs +Serena +Serena's +Serengeti +Serengeti's +Sergei +Sergei's +Sergio +Sergio's +Serpens +Serra +Serra's +Serrano +Serrano's +Set +Set's +Seth +Seth's +Seton +Seurat +Seuss +Sevastopol +Sevastopol's +Severn +Severus +Seville +Seville's +Seward +Sextans +Sexton +Sexton's +Seychelles +Seychelles's +Seyfert +Seymour +Seymour's +Sgt +Shackleton +Shaffer +Shaffer's +Shaka +Shaka's +Shakespeare +Shakespeare's +Shakespearean +Shana +Shana's +Shane +Shane's +Shanghai +Shanghai's +Shankara +Shankara's +Shanna +Shanna's +Shannon +Shantung +Shapiro +Shapiro's +Shari +Shari'a +Sharif +Sharif's +Sharlene +Sharlene's +Sharon +Sharp +Sharp's +Sharpe +Sharpe's +Sharron +Sharron's +Shasta +Shasta's +Shaula +Shaula's +Shaun +Shaun's +Shauna +Shauna's +Shavian +Shavian's +Shavuot +Shavuot's +Shaw +Shaw's +Shawn +Shawn's +Shawna +Shawna's +Shawnee +Shawnee's +Shcharansky +Shcharansky's +Shea +Shea's +Sheba +Shebeli +Shebeli's +Sheena +Sheena's +Sheetrock +Sheetrock's +Sheffield +Sheffield's +Sheila +Sheila's +Shelby +Shelby's +Sheldon +Sheldon's +Shelia +Shelia's +Shell +Shell's +Shelley +Shelly +Shelly's +Shelton +Shelton's +Shenandoah +Shenyang +Shenyang's +Sheol +Shepard +Shepard's +Shepherd +Shepherd's +Sheppard +Sheppard's +Sheratan +Sheratan's +Sheraton +Sheraton's +Sheree +Sheree's +Sheri +Sheri's +Sheridan +Sherlock +Sherman +Sherpa +Sherri +Sherri's +Sherrie +Sherrie's +Sherry +Sherry's +Sherwood +Sheryl +Sheryl's +Shetland +Shetland's +Shetlands +Shevardnadze +Shevardnadze's +Shevat +Shevat's +Shi'ite +Shields +Shields's +Shijiazhuang +Shikoku +Shikoku's +Shillong +Shiloh +Shiloh's +Shinto +Shinto's +Shintoism +Shintoism's +Shintoisms +Shintos +Shiraz +Shiraz's +Shirley +Shirley's +Shiva +Shiva's +Shockley +Shockley's +Short +Short's +Shorthorn +Shoshone +Shoshone's +Shostakovitch +Shostakovitch's +Shrek +Shrek's +Shreveport +Shriner +Shropshire +Shula +Shula's +Shylock +Shylockian +Shylockian's +Si +Siam +Siam's +Siamese +Siamese's +Sian +Sian's +Sibelius +Siberia +Siberia's +Siberian +Siberian's +Sibyl +Sicilian +Sicilian's +Sicilians +Sicily +Sicily's +Sid +Sid's +Siddhartha +Siddhartha's +Sidney +Siegfried +Siemens +Sierpinski +Sierpinski's +Sigismund +Sigmund +Sigurd +Sihanouk +Sihanouk's +Sikh +Sikh's +Sikhism +Sikhs +Sikkim +Sikkimese +Sikorsky +Silas +Silas's +Silurian +Silurian's +Silva +Silva's +Silvia +Silvia's +Simenon +Simenon's +Simmental +Simmons +Simmons's +Simon +Simone +Simone's +Simpson +Simpson's +Simpsons +Sims +Sinai +Sinai's +Sinatra +Sinclair +Sindbad +Sindbad's +Sindhi +Sindhi's +Singapore +Singapore's +Singer +Singh +Singh's +Singleton +Singleton's +Sinhalese +Sinhalese's +Sinkiang +Sinkiang's +Sioux +Sioux's +Sirius +Sirius's +Sister +Sister's +Sisters +Sistine +Sisyphean +Sisyphus +Sisyphus's +Siva +Siva's +Sivan +Sivan's +Sjaelland +Sjaelland's +Skinner +Skinner's +Skippy +Skippy's +Skopje +Skye +Skylab +Skylab's +Skype +Skype's +Slackware +Slackware's +Slashdot +Slashdot's +Slater +Slater's +Slav +Slav's +Slavic +Slavic's +Slavonic +Slavonic's +Slavs +Slinky +Slinky's +Sloan +Sloane +Sloane's +Slocum +Slocum's +Slovak +Slovak's +Slovakia +Slovakian +Slovaks +Slovenia +Slovenia's +Slovenian +Slovenian's +Slovenians +Slurpee +Slurpee's +Sm +Sm's +Small +Small's +Smetana +Smirnoff +Smirnoff's +Smith +Smithson +Smithsonian +Smithsonian's +Smokey +Smokey's +Smolensk +Smollett +Smuts +Sn +Sn's +Snake +Snake's +Snapple +Snapple's +Snead +Snead's +Snell +Snell's +Snickers +Snickers's +Snider +Snider's +Snoopy +Snoopy's +Snow +Snowbelt +Snyder +Snyder's +Soave +Soave's +Socorro +Socorro's +Socrates +Socrates's +Socratic +Soddy +Sodom +Sodom's +Sofia +Sofia's +Soho +Sol +Sol's +Solis +Solis's +Solomon +Solon +Solzhenitsyn +Somali +Somali's +Somalia +Somalia's +Somalian +Somalian's +Somalians +Somalis +Somme +Somme's +Somoza +Somoza's +Son +Son's +Sondheim +Sondra +Sondra's +Songhai +Songhai's +Songhua +Songhua's +Sonia +Sonia's +Sonja +Sonja's +Sonny +Sonny's +Sontag +Sontag's +Sony +Sony's +Sonya +Sonya's +Sophia +Sophie +Sophie's +Sophoclean +Sophocles +Sopwith +Sopwith's +Sorbonne +Sorbonne's +Sosa +Sosa's +Soto +Soto's +Souphanouvong +Souphanouvong's +Sousa +Sousa's +South +South's +Southampton +Southeast +Southeast's +Southeasts +Southerner +Southerner's +Southerners +Southey +Souths +Southwest +Southwest's +Southwests +Soviet +Soweto +Soweto's +Soyinka +Soyinka's +Soyuz +Spaatz +Spaatz's +Spackle +Spahn +Spahn's +Spain +Spain's +Spam +Spam's +Spaniard +Spaniard's +Spaniards +Spanish +Spanish's +Sparks +Sparta +Sparta's +Spartacus +Spartan +Spartan's +Spartans +Spears +Speer +Speer's +Spence +Spencer +Spencerian +Spengler +Spengler's +Spenglerian +Spenser +Spenser's +Spenserian +Sperry +Sperry's +Sphinx +Sphinx's +Spica +Spica's +Spielberg +Spielberg's +Spillane +Spillane's +Spinoza +Spinx +Spinx's +Spiro +Spiro's +Spirograph +Spirograph's +Spitsbergen +Spitsbergen's +Spitz +Spitz's +Spock +Spokane +Springfield +Springfield's +Springsteen +Springsteen's +Sprint +Sprint's +Sprite +Sprite's +Sputnik +Sq +Squanto +Squibb +Squibb's +Sr +Sr's +Srinagar +Srivijaya +Srivijaya's +St +Stacey +Stacey's +Staci +Staci's +Stacie +Stacie's +Stacy +Stacy's +Stael +Stael's +Stafford +StairMaster +Stalin +Stalin's +Stalingrad +Stalingrad's +Stalinist +Stallone +Stallone's +Stamford +Stan +Stan's +Standish +Stanford +Stanford's +Stanislavsky +Stanley +Stanton +Staples +Staples's +Starbucks +Stark +Starkey +Starkey's +Starr +Starr's +Staten +Staten's +Staubach +Staubach's +Steadicam +Steele +Stefan +Stefan's +Stefanie +Stefanie's +Stein +Steinbeck +Steinem +Steinem's +Steiner +Steinmetz +Steinmetz's +Steinway +Steinway's +Stella +Stendhal +Stengel +Stengel's +Stephan +Stephan's +Stephanie +Stephanie's +Stephen +Stephens +Stephenson +Sterling +Sterling's +Stern +Sterne +Sterne's +Sterno +Stetson +Stetson's +Steuben +Steuben's +Steve +Steve's +Steven +Steven's +Stevens +Stevenson +Stevie +Stevie's +Stewart +Stewart's +Stieglitz +Stieglitz's +Stilton +Stilton's +Stimson +Stimson's +Stine +Stine's +Stirling +Stockhausen +Stockhausen's +Stockholm +Stockholm's +Stockton +Stoic +Stoic's +Stoicism +Stoicism's +Stokes +Stokes's +Stolichnaya +Stolichnaya's +Stolypin +Stolypin's +Stone +Stonehenge +Stoppard +Stoppard's +Stout +Stowe +Strabo +Strabo's +Stradivarius +Strasbourg +Strauss +Stravinsky +Stravinsky's +Streisand +Streisand's +Strickland +Strickland's +Strindberg +Stromboli +Strong +Strong's +Stu +Stu's +Stuart +Stuart's +Stuarts +Studebaker +Studebaker's +Stuttgart +Stuttgart's +Stuyvesant +Stygian +Styrofoam +Styrofoam's +Styrofoams +Styron +Styron's +Styx +Styx's +Suarez +Suarez's +Subaru +Subaru's +Sucre +Sucrets +Sucrets's +Sudan +Sudan's +Sudanese +Sudanese's +Sudetenland +Sudetenland's +Sudoku +Sudoku's +Sudra +Sudra's +Sue +Suetonius +Suez +Suffolk +Sufi +Sufism +Suharto +Suharto's +Sui +Sui's +Sukarno +Sukkot +Sukkoth +Sukkoth's +Sukkoths +Sulawesi +Sulawesi's +Suleiman +Suleiman's +Sulla +Sulla's +Sullivan +Sullivan's +Sumatra +Sumatra's +Sumeria +Sumeria's +Sumerian +Sumerian's +Summer +Summer's +Summers +Sumner +Sumner's +Sumter +Sun +Sun's +Sunbeam +Sunbeam's +Sunbelt +Sunbelt's +Sundanese +Sundanese's +Sundas +Sunday +Sunday's +Sundays +Sung +Sunkist +Sunkist's +Sunni +Sunni's +Sunnyvale +Superbowl +Superbowl's +Superfund +Superfund's +Superglue +Superglue's +Superior +Superman +Superman's +Surabaya +Surat +Surinam +Surinam's +Suriname +Suriname's +Surya +Surya's +Susan +Susan's +Susana +Susana's +Susanna +Susanne +Susanne's +Susie +Susie's +Susquehanna +Susquehanna's +Sussex +Sutherland +Sutherland's +Sutton +Sutton's +Suva +Suva's +Suwanee +Suwanee's +Suzanne +Suzanne's +Suzette +Suzette's +Suzhou +Suzhou's +Suzuki +Suzuki's +Suzy +Suzy's +Svalbard +Svalbard's +Sven +Sven's +Svengali +Swahili +Swahili's +Swahilis +Swammerdam +Swammerdam's +Swanee +Swansea +Swansea's +Swanson +Swanson's +Swazi +Swazi's +Swaziland +Swaziland's +Swede +Swede's +Sweden +Sweden's +Swedenborg +Swedenborg's +Swedes +Swedish +Swedish's +Sweeney +Sweeney's +Sweet +Swift +Swift's +Swinburne +Swinburne's +Swiss +Swiss's +Swissair +Swissair's +Swisses +Switzerland +Switzerland's +Sybil +Sybil's +Sydney +Sydney's +Sykes +Sykes's +Sylvester +Sylvester's +Sylvia +Sylvia's +Sylvie +Sylvie's +Synge +Syracuse +Syracuse's +Syria +Syria's +Syriac +Syrian +Syrian's +Syrians +Szechuan +Szechuan's +Szilard +Szilard's +Szymborska +Szymborska's +Sèvres +T +T'ang +T's +TB's +TKO's +TLC's +TNT's +TV's +TWA +TWA's +Ta +Ta's +Tabasco +Tabasco's +Tabatha +Tabatha's +Tabitha +Tabitha's +Tabriz +Tabriz's +Tacitus +Tacoma +Tacoma's +Tad +Tad's +Tadzhik +Tadzhik's +Tadzhikistan +Tadzhikistan's +Taegu +Taegu's +Taejon +Taft +Taft's +Tagalog +Tagalog's +Tagore +Tagus +Tagus's +Tahiti +Tahiti's +Tahitian +Tahitian's +Tahitians +Tahoe +Taichung +Taichung's +Taine +Taine's +Taipei +Taipei's +Taiping +Taiwan +Taiwan's +Taiwanese +Taiwanese's +Taiyuan +Tajikistan +Tajikistan's +Taklamakan +Taklamakan's +Talbot +Taliban +Taliban's +Taliesin +Tallahassee +Tallahassee's +Tallchief +Tallchief's +Talley +Talley's +Talleyrand +Talleyrand's +Tallinn +Tallinn's +Talmud +Talmud's +Talmudic +Talmuds +Tamara +Tamara's +Tameka +Tameka's +Tamera +Tamera's +Tamerlane +Tamerlane's +Tami +Tami's +Tamika +Tamika's +Tamil +Tamil's +Tammany +Tammany's +Tammi +Tammi's +Tammie +Tammie's +Tammuz +Tammuz's +Tammy +Tammy's +Tampa +Tampa's +Tampax +Tampax's +Tamra +Tamra's +Tamworth +Tancred +Taney +Tanganyika +Tanganyika's +Tangiers +Tangshan +Tania +Tania's +Tanisha +Tanisha's +Tanner +Tanner's +Tannhäuser +Tannhäuser's +Tantalus +Tantalus's +Tanya +Tanya's +Tanzania +Tanzania's +Tanzanian +Tanzanian's +Tanzanians +Tao +Tao's +Taoism +Taoism's +Taoisms +Taoist +Taoist's +Taoists +Tara +Tara's +Tarantino +Tarantino's +Tarawa +Tarawa's +Tarazed +Tarazed's +Tarbell +Tarbell's +Target +Target's +Tarim +Tarkenton +Tarkenton's +Tarkington +Tartar +Tartar's +Tartars +Tartary +Tartuffe +Tarzan +Tarzan's +Tasha +Tasha's +Tashkent +Tashkent's +Tasman +Tasmania +Tasmania's +Tasmanian +Tass +Tatar +Tatar's +Tatars +Tate +Tatum +Taurus +Taurus's +Tauruses +Tawney +Taylor +Taylor's +Tb +Tb's +Tbilisi +Tbilisi's +Tc +Tc's +Tchaikovsky +Teasdale +Teasdale's +Technicolor +Tecumseh +Tecumseh's +Ted +Ted's +Teddy +Teddy's +Teflon +Teflon's +Teflons +Tegucigalpa +Tegucigalpa's +Teheran +Teheran's +Tehran +TelePrompter +Telemachus +Telemann +Teletype +Tell +Tell's +Teller +Telugu +Telugu's +Tempe +Templar +Templar's +Tennessee +Tennessee's +Tennyson +Tenochtitlan +Tenochtitlan's +Teotihuacan +Teotihuacan's +Terence +Teresa +Teresa's +Tereshkova +Teri +Teri's +Terkel +Terkel's +Terpsichore +Terpsichore's +Terr +Terr's +Terra +Terra's +Terran +Terran's +Terrance +Terrance's +Terrell +Terrell's +Terrence +Terrence's +Terri +Terri's +Terrie +Terrie's +Terry +Tertiary +Tertiary's +Tesla +Tess +Tessa +Tessa's +Tessie +Tessie's +Tet +Tet's +Tethys +Tethys's +Tetons +Teutonic +Tevet +Tevet's +Tex +Texaco +Texaco's +Texan +Texan's +Texans +Texas +Texas's +Th +Th's +Thackeray +Thad +Thad's +Thaddeus +Thai +Thai's +Thailand +Thailand's +Thais +Thales +Thalia +Thalia's +Thames +Thames's +Thanh +Thanh's +Thanksgiving +Thanksgiving's +Thanksgivings +Thant +Thar +Thar's +Tharp +Tharp's +Thatcher +Thea +Thea's +Thebes +Thebes's +Theiler +Theiler's +Thelma +Thelma's +Themistocles +Theocritus +Theodora +Theodore +Theodore's +Theodoric +Theodoric's +Theodosius +Theodosius's +Theosophy +Theravada +Theresa +Therese +Therese's +Thermopylae +Thermopylae's +Thermos +Theron +Theron's +Theseus +Theseus's +Thespian +Thespis +Thespis's +Thessalonian +Thessaloníki +Thessaloníki's +Thessaly +Thessaly's +Thieu +Thieu's +Thimbu +Thomas +Thomas's +Thomism +Thomism's +Thomistic +Thompson +Thomson +Thor +Thor's +Thorazine +Thorazine's +Thoreau +Thoreau's +Thornton +Thornton's +Thoroughbred +Thorpe +Thoth +Thoth's +Thrace +Thrace's +Thracian +Thracian's +Thucydides +Thucydides's +Thule +Thule's +Thunderbird +Thunderbird's +Thur +Thurber +Thurman +Thurman's +Thurmond +Thurmond's +Thurs +Thursday +Thursday's +Thursdays +Thutmose +Thutmose's +Ti +Ti's +Tia +Tia's +Tianjin +Tianjin's +Tiber +Tiber's +Tiberius +Tibet +Tibet's +Tibetan +Tibetan's +Tibetans +Ticketmaster +Ticketmaster's +Ticonderoga +Tide +Tide's +Tienanmen +Tienanmen's +Tientsin +Tientsin's +Tiffany +Tigris +Tigris's +Tijuana +Tijuana's +Tillich +Tillman +Tillman's +Tilsit +Tim +Tim's +Timbuktu +Timbuktu's +Timex +Timex's +Timmy +Timmy's +Timon +Timon's +Timor +Timothy +Timur +Timur's +Timurid +Timurid's +Tina +Tina's +Ting +Ting's +Tinkerbell +Tinkerbell's +Tinkertoy +Tinseltown +Tinseltown's +Tintoretto +Tippecanoe +Tippecanoe's +Tipperary +Tirana +Tirana's +Tiresias +Tiresias's +Tisha +Tisha's +Tishri +Tishri's +Titan +Titan's +Titania +Titanic +Titian +Titian's +Titicaca +Tito +Tito's +Titus +Tl +Tl's +Tlaloc +Tlaloc's +Tlingit +Tlingit's +Tm +Tm's +Tobago +Tobago's +Toby +Tocantins +Tocqueville +Tod +Tod's +Todd +Togo +Togo's +Tojo +Tokay +Tokay's +Tokugawa +Tokyo +Tokyo's +Toledo +Toledo's +Toledos +Tolkien +Tolstoy +Tolstoy's +Toltec +Tolyatti +Tolyatti's +Tom +Tom's +Tomas +Tombaugh +Tombaugh's +Tomlin +Tomlin's +Tommie +Tommie's +Tommy +Tompkins +Tompkins's +Tomsk +Tonga +Tonga's +Tongan +Tongan's +Tongans +Toni +Toni's +Tonia +Tonia's +Tonto +Tonto's +Tony +Tonya +Tonya's +Topeka +Topeka's +Topsy +Topsy's +Torah +Torah's +Torahs +Tories +Toronto +Toronto's +Torquemada +Torrance +Torrens +Torres +Torricelli +Torricelli's +Tortola +Tortuga +Torvalds +Torvalds's +Tory +Tory's +Tosca +Tosca's +Toscanini +Toshiba +Toshiba's +Toto +Toto's +Toulouse +Townes +Townsend +Townsend's +Toynbee +Toynbee's +Toyoda +Toyoda's +Toyota +Toyota's +Tracey +Tracey's +Traci +Traci's +Tracie +Tracie's +Tracy +Tracy's +Trafalgar +Trafalgar's +Trailways +Trailways's +Trajan +Tran +Tran's +Transcaucasia +Transvaal +Transvaal's +Transylvania +Trappist +Trappist's +Travis +Travis's +Travolta +Travolta's +Treblinka +Trekkie +Trekkie's +Trent +Trent's +Trenton +Trenton's +Trevelyan +Trevino +Trevino's +Trevor +Trevor's +Trey +Trey's +Triangulum +Triangulum's +Triassic +Triassic's +Tricia +Tricia's +Trident +Trident's +Trieste +Trimurti +Trimurti's +Trina +Trina's +Trinidad +Trinidad's +Trinities +Trinity +Trinity's +Tripitaka +Tripoli +Tripoli's +Trippe +Trippe's +Trisha +Trisha's +Tristan +Tristan's +Triton +Triton's +Trobriand +Trobriand's +Trojan +Trojan's +Trojans +Trollope +Trondheim +Trondheim's +Tropicana +Tropicana's +Trotsky +Troy +Troy's +Troyes +Truckee +Truckee's +Trudeau +Trudy +Trudy's +Truffaut +Truffaut's +Trujillo +Truman +Truman's +Trumbull +Trumbull's +Trump +Trump's +Truth +Tsimshian +Tsimshian's +Tsingtao +Tsiolkovsky +Tsiolkovsky's +Tsitsihar +Tsitsihar's +Tsongkhapa +Tsongkhapa's +Tswana +Tswana's +Tuamotu +Tuamotu's +Tuareg +Tuareg's +Tubman +Tucker +Tucker's +Tucson +Tucson's +Tucuman +Tucuman's +Tudor +Tudor's +Tues +Tues's +Tuesday +Tuesday's +Tuesdays +Tulane +Tulane's +Tull +Tull's +Tulsa +Tulsa's +Tulsidas +Tulsidas's +Tums +Tums's +Tungus +Tungus's +Tunguska +Tunguska's +Tunis +Tunis's +Tunisia +Tunisia's +Tunisian +Tunisian's +Tunisians +Tunney +Tunney's +Tupi +Tupi's +Tupperware +Tupungato +Tupungato's +Turgenev +Turin +Turin's +Turing +Turing's +Turk +Turk's +Turkestan +Turkestan's +Turkey +Turkey's +Turkish +Turkish's +Turkmenistan +Turkmenistan's +Turks +Turner +Turpin +Tuscaloosa +Tuscaloosa's +Tuscan +Tuscan's +Tuscany +Tuscany's +Tuscarora +Tuscarora's +Tuscon +Tuscon's +Tuskegee +Tuskegee's +Tussaud +Tussaud's +Tut +Tut's +Tutankhamen +Tutsi +Tutu +Tutu's +Tuvalu +Tuvalu's +Twain +Tweed +Tweedledee +Tweedledee's +Tweedledum +Tweedledum's +Twila +Twila's +Twinkies +Twitter +Twitter's +Twizzlers +Twizzlers's +Ty +Ty's +Tycho +Tylenol +Tylenol's +Tyler +Tyler's +Tyndale +Tyndall +Tyre +Tyree +Tyree's +Tyrone +Tyson +Tyson's +U +U's +UBS +UBS's +UCLA +UCLA's +UFO's +UHF's +UK's +UN's +UNESCO's +UNICEF's +UNIX's +US's +USA's +USSR's +UT's +UV's +Ubangi +Ubuntu +Ubuntu's +Ucayali +Uccello +Uccello's +Udall +Ufa +Ufa's +Uganda +Uganda's +Ugandan +Ugandan's +Ugandans +Uighur +Uighur's +Ujungpandang +Ujungpandang's +Ukraine +Ukraine's +Ukrainian +Ukrainian's +Ukrainians +Ulster +Ulster's +Ultrasuede +Ultrasuede's +Ulyanovsk +Ulysses +Ulysses's +Umbriel +Umbriel's +Underwood +Underwood's +Ungava +Unicode +Unicode's +Unilever +Unilever's +Union +Union's +Unions +Uniroyal +Uniroyal's +Unitarian +Unitarian's +Unitarianism +Unitarianism's +Unitarianisms +Unitarians +Unitas +Unitas's +Unukalhai +Unukalhai's +Upanishads +Updike +Upjohn +Upjohn's +Upton +Upton's +Ur +Ural +Urals +Urania +Urania's +Uranus +Uranus's +Urban +Urban's +Urdu +Urdu's +Urey +Uriah +Uriel +Uris +Urquhart +Ursa +Ursa's +Ursula +Ursuline +Uruguay +Uruguay's +Uruguayan +Uruguayan's +Uruguayans +Urumqi +Usenet +Usenet's +Ustinov +Utah +Utah's +Ute +Ute's +Utopia +Utopia's +Utopian +Utopian's +Utopians +Utopias +Utrecht +Utrecht's +Utrillo +Utrillo's +Uzbek +Uzbek's +Uzbekistan +Uzbekistan's +Uzi +Uzi's +V +V's +VAT's +VCR's +VD's +VHF's +VI's +VIP's +VLF's +Va +Vader +Vader's +Vaduz +Vaduz's +Val +Val's +Valarie +Valarie's +Valdez +Valdez's +Valencia +Valencia's +Valenti +Valenti's +Valentin +Valentin's +Valentine +Valentine's +Valentino +Valenzuela +Valenzuela's +Valeria +Valeria's +Valerian +Valerian's +Valerie +Valerie's +Valhalla +Valhalla's +Valium +Valium's +Valiums +Valkyrie +Valkyrie's +Valkyries +Valletta +Valletta's +Valois +Valparaiso +Valparaiso's +Valvoline +Valvoline's +Valéry +Van +Vance +Vancouver +Vancouver's +Vandal +Vandal's +Vanderbilt +Vandyke +Vanessa +Vanessa's +Vang +Vang's +Vanuatu +Vanuatu's +Vanzetti +Vanzetti's +Varanasi +Varese +Vargas +Vaseline +Vaseline's +Vaselines +Vasquez +Vasquez's +Vassar +Vassar's +Vatican +Vatican's +Vauban +Vaughan +Vaughn +Vaughn's +Vazquez +Vazquez's +Veblen +Veblen's +Veda +Veda's +Vedanta +Vedas +Vega +Vega's +Vegas +Vegemite +Vegemite's +Vela +Velcro +Velcro's +Velcros +Velez +Velez's +Velma +Velma's +Velveeta +Velveeta's +Velásquez +Velásquez's +Velázquez +Venetian +Venetian's +Venetians +Venezuela +Venezuela's +Venezuelan +Venezuelan's +Venezuelans +Venice +Venice's +Venn +Venn's +Ventolin +Ventolin's +Venus +Venus's +Venuses +Venusian +Vera +Vera's +Veracruz +Veracruz's +Verde +Verdi +Verdun +Verdun's +Vergil +Vergil's +Verizon +Verizon's +Verlaine +Verlaine's +Vermeer +Vermont +Vermont's +Vermonter +Vermonter's +Vern +Vern's +Verna +Verna's +Verne +Vernon +Vernon's +Verona +Verona's +Veronese +Veronica +Versailles +Versailles's +Vesalius +Vesalius's +Vespasian +Vespucci +Vespucci's +Vesta +Vesta's +Vesuvius +Vesuvius's +Viacom +Viacom's +Viagra +Vic +Vicente +Vicente's +Vichy +Vicki +Vicki's +Vickie +Vickie's +Vicksburg +Vicksburg's +Vicky +Victor +Victor's +Victoria +Victoria's +Victorian +Victorian's +Victorians +Victrola +Victrola's +Vidal +Vidal's +Vienna +Vienna's +Viennese +Vientiane +Vientiane's +Vietcong +Vietminh +Vietnam +Vietnam's +Vietnamese +Vietnamese's +Vijayanagar +Vijayanagar's +Vijayawada +Vijayawada's +Viking +Viking's +Vikings +Vila +Vila's +Villa +Villarreal +Villarreal's +Villon +Vilma +Vilma's +Vilnius +Vilnius's +Vilyui +Vilyui's +Vince +Vince's +Vincent +Vincent's +Vindemiatrix +Vindemiatrix's +Vinson +Vinson's +Viola +Viola's +Violet +Violet's +Virgie +Virgie's +Virgil +Virgil's +Virginia +Virginia's +Virginian +Virginian's +Virginians +Virgo +Virgo's +Virgos +Visa +Visa's +Visakhapatnam +Visayans +Vishnu +Vishnu's +Visigoth +Visigoth's +Vistula +Vistula's +Vitim +Vitim's +Vito +Vito's +Vitus +Vitus's +Vivaldi +Vivekananda +Vivekananda's +Vivian +Vivienne +Vivienne's +Vlad +Vlad's +Vladimir +Vladivostok +Vladivostok's +Vlaminck +Vlasic +Vlasic's +Vogue +Vogue's +Volcker +Volcker's +Voldemort +Voldemort's +Volga +Volga's +Volgograd +Volgograd's +Volkswagen +Volkswagen's +Volstead +Volstead's +Volta +Voltaire +Voltaire's +Volvo +Volvo's +Vonda +Vonda's +Vonnegut +Vonnegut's +Voronezh +Vorster +Vorster's +Voyager +Voyager's +Vuitton +Vuitton's +Vulcan +Vulcan's +Vulgate +Vulgate's +Vulgates +W +W's +WASP's +WATS's +WHO's +WWW's +Wabash +Wabash's +Wac +Waco +Wade +Wagner +Wagner's +Wagnerian +Wahhabi +Waikiki +Waite +Waite's +Wake +Wake's +Waksman +Wald +Wald's +Waldemar +Waldemar's +Walden +Walden's +Waldensian +Waldheim +Waldo +Waldo's +Waldorf +Waldorf's +Wales +Wales's +Walesa +Walgreen +Walgreen's +Walker +Walker's +Walkman +Wall +Wall's +Wallace +Wallenstein +Waller +Wallis +Walloon +Walls +Walmart +Walmart's +Walpole +Walpole's +Walpurgisnacht +Walsh +Walsh's +Walt +Walt's +Walter +Walters +Walton +Walton's +Wanamaker +Wanamaker's +Wanda +Wanda's +Wang +Wang's +Wankel +Wankel's +Ward +Ware +Ware's +Warhol +Waring +Waring's +Warner +Warner's +Warren +Warsaw +Warsaw's +Warwick +Wasatch +Wasatch's +Wash +Washington +Washington's +Washingtonian +Washingtonian's +Washingtonians +Wasp +Wassermann +Waterbury +Waterford +Watergate +Waterloo +Waterloo's +Waterloos +Waters +Waters's +Watkins +Watson +Watt +Watteau +Watts +Watusi +Waugh +Wayne +Weaver +Weaver's +Webb +Weber +Webern +Webern's +Webster +Webster's +Websters +Wed +Wed's +Weddell +Weddell's +Wedgwood +Wednesday +Wednesday's +Wednesdays +Weeks +Weeks's +Wehrmacht +Wei +Wei's +Weierstrass +Weierstrass's +Weill +Weill's +Weinberg +Weinberg's +Weiss +Weiss's +Weissmuller +Weissmuller's +Weizmann +Welch +Weldon +Weldon's +Welland +Welland's +Weller +Weller's +Welles +Wellington +Wellington's +Wellingtons +Wells +Welsh +Welsh's +Welshman +Welshman's +Welshmen +Wendell +Wendell's +Wendi +Wendi's +Wendy +Wendy's +Wesak +Wesak's +Wesley +Wesley's +Wesleyan +Wesleyan's +Wessex +Wesson +Wesson's +West +West's +Western +Western's +Westerner +Westerns +Westinghouse +Westminster +Weston +Weston's +Westphalia +Wests +Weyden +Weyden's +Wezen +Wezen's +Wharton +Wheaties +Wheaties's +Wheatstone +Wheatstone's +Wheeler +Wheeler's +Wheeling +Wheeling's +Whig +Whig's +Whigs +Whipple +Whipple's +Whirlpool +Whirlpool's +Whistler +Whitaker +White +White's +Whitefield +Whitefield's +Whitehall +Whitehead +Whitehorse +Whitehorse's +Whiteley +Whiteley's +Whites +Whitfield +Whitfield's +Whitley +Whitley's +Whitman +Whitney +Whitney's +Whitsunday +Whitsunday's +Whitsundays +Whittier +Wicca +Wichita +Wichita's +Wiemar +Wiemar's +Wiesel +Wiesel's +Wiesenthal +Wiesenthal's +Wiggins +Wigner +Wigner's +Wii +Wii's +Wikipedia +Wikipedia's +Wilberforce +Wilbert +Wilbert's +Wilbur +Wilbur's +Wilburn +Wilburn's +Wilcox +Wilcox's +Wilda +Wilda's +Wilde +Wilder +Wiles +Wiley +Wiley's +Wilford +Wilford's +Wilfred +Wilfred's +Wilfredo +Wilfredo's +Wilhelm +Wilhelm's +Wilhelmina +Wilhelmina's +Wilkerson +Wilkerson's +Wilkes +Wilkins +Wilkinson +Wilkinson's +Will +Will's +Willa +Willa's +Willamette +Willamette's +Willard +Willemstad +William +Williams +Williamson +Willie +Willie's +Willis +Willy +Willy's +Wilma +Wilma's +Wilmer +Wilmer's +Wilmington +Wilmington's +Wilson +Wilson's +Wilsonian +Wilton +Wilton's +Wimbledon +Wimbledon's +Wimsey +Wimsey's +Winchell +Winchell's +Winchester +Windbreaker +Windex +Windex's +Windhoek +Windows +Windsor +Windsor's +Windsors +Windward +Windward's +Winesap +Winesap's +Winfred +Winfred's +Winfrey +Winfrey's +Winifred +Winifred's +Winkle +Winkle's +Winnebago +Winnebago's +Winnie +Winnipeg +Winnipeg's +Winston +Winston's +Winters +Winthrop +Winthrop's +Wis +Wisconsin +Wisconsin's +Wisconsinite +Wisconsinite's +Wisconsinites +Wise +Wise's +Witt +Witt's +Wittgenstein +Wittgenstein's +Witwatersrand +Wm +Wm's +Wobegon +Wobegon's +Wodehouse +Wodehouse's +Wolf +Wolfe +Wolff +Wolfgang +Wolfgang's +Wollongong +Wollstonecraft +Wollstonecraft's +Wolsey +Wonder +Wonderbra +Wonderbra's +Wong +Wong's +Wood +Woodard +Woodard's +Woodhull +Woodhull's +Woodrow +Woodrow's +Woods +Woodstock +Woodstock's +Woodward +Woodward's +Woolf +Woolite +Woolite's +Woolongong +Woolongong's +Woolworth +Wooster +Wooster's +Wooten +Wooten's +Worcester +Worcester's +Worcesters +Worcestershire +Wordsworth +Wordsworth's +Workman +Workman's +Worms +Wotan +Wotan's +Wovoka +Wovoka's +Wozniak +Wozniak's +Wozzeck +Wozzeck's +Wrangell +Wrangell's +Wren +Wright +Wrigley +Wrigley's +Wroclaw +Wroclaw's +Wu +Wu's +Wuhan +Wurlitzer +Wurlitzer's +Wyatt +Wycherley +Wycherley's +Wycliffe +Wycliffe's +Wyeth +Wylie +Wylie's +Wynn +Wynn's +Wyo +Wyoming +Wyoming's +Wyomingite +Wyomingite's +Wyomingites +X +X's +XEmacs +XEmacs's +XL's +Xanadu +Xanthippe +Xavier +Xe +Xe's +Xenakis +Xenakis's +Xenia +Xenia's +Xenophon +Xerox +Xerox's +Xeroxes +Xerxes +Xhosa +Xhosa's +Xi'an +Xiaoping +Xiaoping's +Ximenes +Xingu +Xingu's +Xiongnu +Xiongnu's +Xmas +Xmas's +Xmases +Xochipilli +Xochipilli's +Xuzhou +Xuzhou's +Y +Y's +Yacc +Yacc's +Yahoo +Yahoo's +Yahtzee +Yahtzee's +Yahweh +Yahweh's +Yakima +Yakut +Yakut's +Yakutsk +Yale +Yale's +Yalow +Yalow's +Yalta +Yalta's +Yalu +Yalu's +Yamagata +Yamagata's +Yamaha +Yamaha's +Yamoussoukro +Yang +Yangon +Yangon's +Yangtze +Yangtze's +Yank +Yank's +Yankee +Yankee's +Yankees +Yanks +Yaobang +Yaobang's +Yaounde +Yaounde's +Yaqui +Yaroslavl +Yataro +Yataro's +Yates +Yb +Yb's +Yeager +Yeager's +Yeats +Yeats's +Yekaterinburg +Yellowknife +Yellowstone +Yellowstone's +Yeltsin +Yemen +Yemen's +Yemeni +Yemeni's +Yemenis +Yenisei +Yenisei's +Yerevan +Yerkes +Yerkes's +Yesenia +Yesenia's +Yevtushenko +Yevtushenko's +Yggdrasil +Yiddish +Yiddish's +Ymir +Ymir's +Yoda +Yoda's +Yoknapatawpha +Yoknapatawpha's +Yoko +Yoko's +Yokohama +Yolanda +Yolanda's +Yong +Yong's +Yonkers +York +York's +Yorkie +Yorkshire +Yorkshire's +Yorktown +Yorktown's +Yoruba +Yoruba's +Yosemite +Yosemite's +Yossarian +Yossarian's +YouTube +YouTube's +Young +Youngstown +Ypres +Ypres's +Ypsilanti +Yuan +Yuan's +Yucatan +Yucatan's +Yugo +Yugoslav +Yugoslav's +Yugoslavia +Yugoslavia's +Yugoslavian +Yugoslavian's +Yugoslavians +Yukon +Yukon's +Yule +Yule's +Yules +Yuletide +Yuletide's +Yuletides +Yunnan +Yunnan's +Yuri +Yuri's +Yves +Yves's +Yvette +Yvette's +Yvonne +Yvonne's +Z +Z's +Zachariah +Zachariah's +Zachary +Zachary's +Zachery +Zachery's +Zagreb +Zagreb's +Zaire +Zaire's +Zairian +Zambezi +Zambezi's +Zambia +Zambia's +Zambian +Zambian's +Zambians +Zamboni +Zamenhof +Zamenhof's +Zamora +Zane +Zane's +Zanuck +Zanuck's +Zanzibar +Zanzibar's +Zapata +Zaporozhye +Zapotec +Zappa +Zappa's +Zara +Zara's +Zebedee +Zechariah +Zedekiah +Zedekiah's +Zedong +Zedong's +Zeffirelli +Zeffirelli's +Zeke +Zeke's +Zelig +Zelma +Zelma's +Zen +Zen's +Zenger +Zenger's +Zeno +Zeno's +Zens +Zephaniah +Zephyrus +Zeppelin +Zest +Zest's +Zeus +Zeus's +Zhengzhou +Zhivago +Zhivago's +Zhukov +Zibo +Zibo's +Ziegfeld +Ziegler +Ziegler's +Ziggy +Ziggy's +Zimbabwe +Zimbabwe's +Zimbabwean +Zimbabwean's +Zimbabweans +Zimmerman +Zimmerman's +Zinfandel +Zinfandel's +Zion +Zion's +Zionism +Zionism's +Zionisms +Zionist +Zionist's +Zionists +Zions +Ziploc +Zn +Zn's +Zoe +Zoe's +Zola +Zola's +Zollverein +Zoloft +Zomba +Zomba's +Zorn +Zoroaster +Zoroaster's +Zoroastrian +Zoroastrian's +Zoroastrianism +Zoroastrianism's +Zoroastrianisms +Zorro +Zorro's +Zosma +Zosma's +Zr +Zr's +Zsigmondy +Zubenelgenubi +Zubenelgenubi's +Zubeneschamali +Zubeneschamali's +Zukor +Zukor's +Zulu +Zulu's +Zulus +Zuni +Zwingli +Zwingli's +Zworykin +Zyrtec +Zyrtec's +Zyuganov +Zyuganov's +Zürich +Zürich's +a +aardvark +aardvark's +aardvarks +abaci +aback +abacus +abacus's +abacuses +abaft +abalone +abalone's +abalones +abandon +abandoned +abandoning +abandonment +abandonment's +abandons +abase +abased +abasement +abasement's +abases +abash +abashed +abashes +abashing +abasing +abate +abated +abatement +abatement's +abates +abating +abattoir +abattoir's +abattoirs +abbess +abbess's +abbesses +abbey +abbey's +abbeys +abbot +abbot's +abbots +abbreviate +abbreviated +abbreviates +abbreviating +abbreviation +abbreviation's +abbreviations +abbé +abbé's +abbés +abdicate +abdicated +abdicates +abdicating +abdication +abdication's +abdications +abdomen +abdomen's +abdomens +abdominal +abduct +abducted +abducting +abduction +abduction's +abductions +abductor +abductor's +abductors +abducts +abeam +abed +aberrant +aberration +aberration's +aberrations +abet +abets +abetted +abetter +abetter's +abetters +abetting +abettor +abettor's +abettors +abeyance +abeyance's +abhor +abhorred +abhorrence +abhorrence's +abhorrent +abhorring +abhors +abide +abided +abides +abiding +abilities +ability +ability's +abject +abjectly +abjuration +abjuration's +abjurations +abjure +abjured +abjures +abjuring +ablative +ablative's +ablatives +ablaze +able +abler +ablest +abloom +ablution +ablution's +ablutions +ably +abnegate +abnegated +abnegates +abnegating +abnegation +abnegation's +abnormal +abnormalities +abnormality +abnormality's +abnormally +aboard +abode +abode's +abodes +abolish +abolished +abolishes +abolishing +abolition +abolition's +abolitionist +abolitionist's +abolitionists +abominable +abominably +abominate +abominated +abominates +abominating +abomination +abomination's +abominations +aboriginal +aboriginal's +aboriginals +aborigine +aborigine's +aborigines +abort +aborted +aborting +abortion +abortion's +abortionist +abortionist's +abortionists +abortions +abortive +aborts +abound +abounded +abounding +abounds +about +above +above's +aboveboard +abracadabra +abracadabra's +abrade +abraded +abrades +abrading +abrasion +abrasion's +abrasions +abrasive +abrasive's +abrasively +abrasiveness +abrasiveness's +abrasives +abreast +abridge +abridged +abridgement +abridgement's +abridgements +abridges +abridging +abridgment +abridgment's +abridgments +abroad +abrogate +abrogated +abrogates +abrogating +abrogation +abrogation's +abrogations +abrupt +abrupter +abruptest +abruptly +abruptness +abruptness's +abscess +abscess's +abscessed +abscesses +abscessing +abscissa +abscissa's +abscissae +abscissas +abscond +absconded +absconding +absconds +absence +absence's +absences +absent +absented +absentee +absentee's +absenteeism +absenteeism's +absentees +absenting +absently +absents +absinth +absinth's +absinthe +absinthe's +absolute +absolute's +absolutely +absolutes +absolutest +absolution +absolution's +absolutism +absolutism's +absolve +absolved +absolves +absolving +absorb +absorbed +absorbency +absorbency's +absorbent +absorbent's +absorbents +absorbing +absorbs +absorption +absorption's +abstain +abstained +abstainer +abstainer's +abstainers +abstaining +abstains +abstemious +abstention +abstention's +abstentions +abstinence +abstinence's +abstinent +abstract +abstract's +abstracted +abstractedly +abstracting +abstraction +abstraction's +abstractions +abstractly +abstractness +abstractness's +abstractnesses +abstracts +abstruse +abstrusely +abstruseness +abstruseness's +absurd +absurder +absurdest +absurdities +absurdity +absurdity's +absurdly +abundance +abundance's +abundances +abundant +abundantly +abuse +abuse's +abused +abuser +abuser's +abusers +abuses +abusing +abusive +abusively +abusiveness +abusiveness's +abut +abutment +abutment's +abutments +abuts +abutted +abutting +abuzz +abysmal +abysmally +abyss +abyss's +abysses +acacia +acacia's +acacias +academia +academia's +academic +academic's +academical +academically +academician +academician's +academicians +academics +academies +academy +academy's +acanthi +acanthus +acanthus's +acanthuses +accede +acceded +accedes +acceding +accelerate +accelerated +accelerates +accelerating +acceleration +acceleration's +accelerations +accelerator +accelerator's +accelerators +accent +accent's +accented +accenting +accents +accentuate +accentuated +accentuates +accentuating +accentuation +accentuation's +accept +acceptability +acceptability's +acceptable +acceptably +acceptance +acceptance's +acceptances +accepted +accepting +accepts +access +access's +accessed +accesses +accessibility +accessibility's +accessible +accessibly +accessing +accession +accession's +accessioned +accessioning +accessions +accessories +accessory +accessory's +accident +accident's +accidental +accidental's +accidentally +accidentals +accidents +acclaim +acclaim's +acclaimed +acclaiming +acclaims +acclamation +acclamation's +acclimate +acclimated +acclimates +acclimating +acclimation +acclimation's +acclimatization +acclimatization's +acclimatize +acclimatized +acclimatizes +acclimatizing +accolade +accolade's +accolades +accommodate +accommodated +accommodates +accommodating +accommodation +accommodation's +accommodations +accompanied +accompanies +accompaniment +accompaniment's +accompaniments +accompanist +accompanist's +accompanists +accompany +accompanying +accomplice +accomplice's +accomplices +accomplish +accomplished +accomplishes +accomplishing +accomplishment +accomplishment's +accomplishments +accord +accord's +accordance +accordance's +accorded +according +accordingly +accordion +accordion's +accordions +accords +accost +accost's +accosted +accosting +accosts +account +account's +accountability +accountability's +accountable +accountancy +accountancy's +accountant +accountant's +accountants +accounted +accounting +accounting's +accounts +accouterments +accouterments's +accoutrements +accredit +accreditation +accreditation's +accredited +accrediting +accredits +accretion +accretion's +accretions +accrual +accrual's +accruals +accrue +accrued +accrues +accruing +acculturation +acculturation's +accumulate +accumulated +accumulates +accumulating +accumulation +accumulation's +accumulations +accumulative +accumulator +accuracy +accuracy's +accurate +accurately +accurateness +accurateness's +accursed +accurst +accusation +accusation's +accusations +accusative +accusative's +accusatives +accusatory +accuse +accused +accuser +accuser's +accusers +accuses +accusing +accusingly +accustom +accustomed +accustoming +accustoms +ace +ace's +aced +acerbic +acerbity +acerbity's +aces +acetaminophen +acetaminophen's +acetate +acetate's +acetates +acetic +acetone +acetone's +acetylene +acetylene's +ache +ache's +ached +aches +achier +achiest +achievable +achieve +achieved +achievement +achievement's +achievements +achiever +achiever's +achievers +achieves +achieving +aching +achoo +achoo's +achromatic +achy +acid +acid's +acidic +acidified +acidifies +acidify +acidifying +acidity +acidity's +acidly +acids +acidulous +acing +acknowledge +acknowledged +acknowledgement +acknowledgement's +acknowledgements +acknowledges +acknowledging +acknowledgment +acknowledgment's +acknowledgments +acme +acme's +acmes +acne +acne's +acolyte +acolyte's +acolytes +aconite +aconite's +aconites +acorn +acorn's +acorns +acoustic +acoustical +acoustically +acoustics +acoustics's +acquaint +acquaintance +acquaintance's +acquaintances +acquainted +acquainting +acquaints +acquiesce +acquiesced +acquiescence +acquiescence's +acquiescent +acquiesces +acquiescing +acquirable +acquire +acquired +acquirement +acquirement's +acquires +acquiring +acquisition +acquisition's +acquisitions +acquisitive +acquisitiveness +acquisitiveness's +acquit +acquits +acquittal +acquittal's +acquittals +acquitted +acquitting +acre +acre's +acreage +acreage's +acreages +acres +acrid +acrider +acridest +acrimonious +acrimony +acrimony's +acrobat +acrobat's +acrobatic +acrobatics +acrobatics's +acrobats +acronym +acronym's +acronyms +across +acrostic +acrostic's +acrostics +acrylic +acrylic's +acrylics +act +act's +acted +acting +acting's +actinium +actinium's +action +action's +actionable +actions +activate +activated +activates +activating +activation +activation's +active +active's +actively +actives +activism +activism's +activist +activist's +activists +activities +activity +activity's +actor +actor's +actors +actress +actress's +actresses +acts +actual +actualities +actuality +actuality's +actualization +actualization's +actualize +actualized +actualizes +actualizing +actually +actuarial +actuaries +actuary +actuary's +actuate +actuated +actuates +actuating +actuator +actuator's +actuators +acuity +acuity's +acumen +acumen's +acupuncture +acupuncture's +acupuncturist +acupuncturist's +acupuncturists +acute +acute's +acutely +acuteness +acuteness's +acuter +acutes +acutest +ad +ad's +adage +adage's +adages +adagio +adagio's +adagios +adamant +adamant's +adamantly +adapt +adaptability +adaptability's +adaptable +adaptation +adaptation's +adaptations +adapted +adapter +adapter's +adapters +adapting +adaptive +adaptor +adaptor's +adaptors +adapts +add +added +addend +addend's +addenda +addends +addendum +addendum's +addendums +adder +adder's +adders +addict +addict's +addicted +addicting +addiction +addiction's +addictions +addictive +addicts +adding +addition +addition's +additional +additionally +additions +additive +additive's +additives +addle +addled +addles +addling +address +address's +addressable +addressed +addressee +addressee's +addressees +addresses +addressing +adds +adduce +adduced +adduces +adducing +adenoid +adenoid's +adenoidal +adenoids +adept +adept's +adeptly +adeptness +adeptness's +adepts +adequacy +adequacy's +adequate +adequately +adhere +adhered +adherence +adherence's +adherent +adherent's +adherents +adheres +adhering +adhesion +adhesion's +adhesive +adhesive's +adhesives +adiabatic +adieu +adieu's +adieus +adieux +adipose +adiós +adjacent +adjacently +adjectival +adjectivally +adjective +adjective's +adjectives +adjoin +adjoined +adjoining +adjoins +adjourn +adjourned +adjourning +adjournment +adjournment's +adjournments +adjourns +adjudge +adjudged +adjudges +adjudging +adjudicate +adjudicated +adjudicates +adjudicating +adjudication +adjudication's +adjudicator +adjudicator's +adjudicators +adjunct +adjunct's +adjuncts +adjuration +adjuration's +adjurations +adjure +adjured +adjures +adjuring +adjust +adjustable +adjusted +adjuster +adjuster's +adjusters +adjusting +adjustment +adjustment's +adjustments +adjustor +adjustor's +adjustors +adjusts +adjutant +adjutant's +adjutants +adman +adman's +admen +administer +administered +administering +administers +administrate +administrated +administrates +administrating +administration +administration's +administrations +administrative +administratively +administrator +administrator's +administrators +admirable +admirably +admiral +admiral's +admirals +admiralty +admiralty's +admiration +admiration's +admire +admired +admirer +admirer's +admirers +admires +admiring +admiringly +admissibility +admissibility's +admissible +admission +admission's +admissions +admit +admits +admittance +admittance's +admitted +admittedly +admitting +admixture +admixture's +admixtures +admonish +admonished +admonishes +admonishing +admonishment +admonishment's +admonishments +admonition +admonition's +admonitions +admonitory +ado +ado's +adobe +adobe's +adobes +adolescence +adolescence's +adolescences +adolescent +adolescent's +adolescents +adopt +adopted +adopting +adoption +adoption's +adoptions +adoptive +adopts +adorable +adorably +adoration +adoration's +adore +adored +adores +adoring +adoringly +adorn +adorned +adorning +adornment +adornment's +adornments +adorns +adrenal +adrenal's +adrenaline +adrenaline's +adrenals +adrift +adroit +adroitly +adroitness +adroitness's +ads +adulate +adulated +adulates +adulating +adulation +adulation's +adult +adult's +adulterant +adulterant's +adulterants +adulterate +adulterated +adulterates +adulterating +adulteration +adulteration's +adulterer +adulterer's +adulterers +adulteress +adulteress's +adulteresses +adulteries +adulterous +adultery +adultery's +adulthood +adulthood's +adults +adumbrate +adumbrated +adumbrates +adumbrating +adumbration +adumbration's +advance +advance's +advanced +advancement +advancement's +advancements +advances +advancing +advantage +advantage's +advantaged +advantageous +advantageously +advantages +advantaging +advent +advent's +adventitious +advents +adventure +adventure's +adventured +adventurer +adventurer's +adventurers +adventures +adventuresome +adventuress +adventuress's +adventuresses +adventuring +adventurous +adventurously +adverb +adverb's +adverbial +adverbial's +adverbials +adverbs +adversarial +adversaries +adversary +adversary's +adverse +adversely +adverser +adversest +adversities +adversity +adversity's +advert +advert's +adverted +adverting +advertise +advertised +advertisement +advertisement's +advertisements +advertiser +advertiser's +advertisers +advertises +advertising +advertising's +adverts +advice +advice's +advisability +advisability's +advisable +advise +advised +advisedly +advisement +advisement's +adviser +adviser's +advisers +advises +advising +advisor +advisor's +advisories +advisors +advisory +advisory's +advocacy +advocacy's +advocate +advocate's +advocated +advocates +advocating +adz +adz's +adze +adze's +adzes +aegis +aegis's +aeon +aeon's +aeons +aerate +aerated +aerates +aerating +aeration +aeration's +aerator +aerator's +aerators +aerial +aerial's +aerialist +aerialist's +aerialists +aerials +aerie +aerie's +aeries +aerobatics +aerobatics's +aerobic +aerobics +aerobics's +aerodynamic +aerodynamically +aerodynamics +aerodynamics's +aeronautical +aeronautics +aeronautics's +aerosol +aerosol's +aerosols +aerospace +aerospace's +aery +aery's +aesthete +aesthete's +aesthetes +aesthetic +aesthetically +aesthetics +aesthetics's +afar +affability +affability's +affable +affably +affair +affair's +affairs +affect +affect's +affectation +affectation's +affectations +affected +affecting +affection +affection's +affectionate +affectionately +affections +affects +affidavit +affidavit's +affidavits +affiliate +affiliate's +affiliated +affiliates +affiliating +affiliation +affiliation's +affiliations +affinities +affinity +affinity's +affirm +affirmation +affirmation's +affirmations +affirmative +affirmative's +affirmatively +affirmatives +affirmed +affirming +affirms +affix +affix's +affixed +affixes +affixing +afflict +afflicted +afflicting +affliction +affliction's +afflictions +afflicts +affluence +affluence's +affluent +affluently +afford +affordable +afforded +affording +affords +afforest +afforestation +afforestation's +afforested +afforesting +afforests +affray +affray's +affrays +affront +affront's +affronted +affronting +affronts +afghan +afghan's +afghans +aficionado +aficionado's +aficionados +afield +afire +aflame +afloat +aflutter +afoot +aforementioned +aforesaid +aforethought +afoul +afraid +afresh +aft +after +afterbirth +afterbirth's +afterbirths +afterburner +afterburner's +afterburners +aftercare +aftercare's +aftereffect +aftereffect's +aftereffects +afterglow +afterglow's +afterglows +afterlife +afterlife's +afterlives +aftermath +aftermath's +aftermaths +afternoon +afternoon's +afternoons +aftershave +aftershave's +aftershaves +aftershock +aftershock's +aftershocks +aftertaste +aftertaste's +aftertastes +afterthought +afterthought's +afterthoughts +afterward +afterwards +afterword +afterword's +afterwords +again +against +agape +agape's +agar +agar's +agate +agate's +agates +agave +agave's +age +age's +aged +ageing +ageing's +ageings +ageism +ageism's +ageless +agencies +agency +agency's +agenda +agenda's +agendas +agent +agent's +agents +ages +agglomerate +agglomerate's +agglomerated +agglomerates +agglomerating +agglomeration +agglomeration's +agglomerations +agglutinate +agglutinated +agglutinates +agglutinating +agglutination +agglutination's +agglutinations +aggrandize +aggrandized +aggrandizement +aggrandizement's +aggrandizes +aggrandizing +aggravate +aggravated +aggravates +aggravating +aggravation +aggravation's +aggravations +aggregate +aggregate's +aggregated +aggregates +aggregating +aggregation +aggregation's +aggregations +aggression +aggression's +aggressive +aggressively +aggressiveness +aggressiveness's +aggressor +aggressor's +aggressors +aggrieve +aggrieved +aggrieves +aggrieving +aghast +agile +agilely +agiler +agilest +agility +agility's +aging +aging's +agings +agism +agitate +agitated +agitates +agitating +agitation +agitation's +agitations +agitator +agitator's +agitators +agleam +aglitter +aglow +agnostic +agnostic's +agnosticism +agnosticism's +agnostics +ago +agog +agonies +agonize +agonized +agonizes +agonizing +agonizingly +agony +agony's +agrarian +agrarian's +agrarians +agree +agreeable +agreeably +agreed +agreeing +agreement +agreement's +agreements +agrees +agribusiness +agribusiness's +agribusinesses +agricultural +agriculturalist +agriculturalist's +agriculturalists +agriculture +agriculture's +agronomist +agronomist's +agronomists +agronomy +agronomy's +aground +ague +ague's +ah +aha +ahead +ahem +ahoy +aid +aid's +aide +aide's +aided +aides +aiding +aids +ail +ailed +aileron +aileron's +ailerons +ailing +ailment +ailment's +ailments +ails +aim +aim's +aimed +aiming +aimless +aimlessly +aimlessness +aimlessness's +aims +ain't +air +air's +airborne +airbrush +airbrush's +airbrushed +airbrushes +airbrushing +aircraft +aircraft's +airdrop +airdrop's +airdropped +airdropping +airdrops +aired +airfare +airfare's +airfares +airfield +airfield's +airfields +airfoil +airfoil's +airfoils +airhead +airhead's +airheads +airier +airiest +airily +airiness +airiness's +airing +airing's +airings +airless +airlift +airlift's +airlifted +airlifting +airlifts +airline +airline's +airliner +airliner's +airliners +airlines +airmail +airmail's +airmailed +airmailing +airmails +airman +airman's +airmen +airplane +airplane's +airplanes +airport +airport's +airports +airs +airship +airship's +airships +airsick +airsickness +airsickness's +airspace +airspace's +airstrip +airstrip's +airstrips +airtight +airwaves +airwaves's +airway +airway's +airways +airworthier +airworthiest +airworthy +airy +aisle +aisle's +aisles +ajar +akimbo +akin +alabaster +alabaster's +alacrity +alacrity's +alarm +alarm's +alarmed +alarming +alarmingly +alarmist +alarmist's +alarmists +alarms +alas +alb +alb's +albacore +albacore's +albacores +albatross +albatross's +albatrosses +albeit +albino +albino's +albinos +albs +album +album's +albumen +albumen's +albumin +albumin's +albums +alchemist +alchemist's +alchemists +alchemy +alchemy's +alcohol +alcohol's +alcoholic +alcoholic's +alcoholics +alcoholism +alcoholism's +alcohols +alcove +alcove's +alcoves +alder +alder's +alderman +alderman's +aldermen +alders +alderwoman +alderwoman's +alderwomen +ale +ale's +alert +alert's +alerted +alerting +alertly +alertness +alertness's +alerts +ales +alfalfa +alfalfa's +alfresco +alga +alga's +algae +algebra +algebra's +algebraic +algebraically +algebras +algorithm +algorithm's +algorithmic +algorithms +alias +alias's +aliased +aliases +aliasing +alibi +alibi's +alibied +alibiing +alibis +alien +alien's +alienable +alienate +alienated +alienates +alienating +alienation +alienation's +aliened +aliening +aliens +alight +alighted +alighting +alights +align +aligned +aligning +alignment +alignment's +alignments +aligns +alike +alimentary +alimony +alimony's +aline +alined +alinement +alinement's +alinements +alines +alining +alit +alive +alkali +alkali's +alkalies +alkaline +alkalinity +alkalinity's +alkalis +alkaloid +alkaloid's +alkaloids +all +all's +allay +allayed +allaying +allays +allegation +allegation's +allegations +allege +alleged +allegedly +alleges +allegiance +allegiance's +allegiances +alleging +allegorical +allegorically +allegories +allegory +allegory's +allegro +allegro's +allegros +alleluia +alleluia's +alleluias +allergen +allergen's +allergenic +allergens +allergic +allergies +allergist +allergist's +allergists +allergy +allergy's +alleviate +alleviated +alleviates +alleviating +alleviation +alleviation's +alley +alley's +alleys +alleyway +alleyway's +alleyways +alliance +alliance's +alliances +allied +allies +alligator +alligator's +alligators +alliteration +alliteration's +alliterations +alliterative +allocate +allocated +allocates +allocating +allocation +allocation's +allocations +allot +allotment +allotment's +allotments +allots +allotted +allotting +allover +allow +allowable +allowance +allowance's +allowances +allowed +allowing +allows +alloy +alloy's +alloyed +alloying +alloys +allspice +allspice's +allude +alluded +alludes +alluding +allure +allure's +allured +allures +alluring +allusion +allusion's +allusions +allusive +allusively +alluvia +alluvial +alluvial's +alluvium +alluvium's +alluviums +ally +ally's +allying +almanac +almanac's +almanacs +almighty +almond +almond's +almonds +almost +alms +alms's +aloe +aloe's +aloes +aloft +aloha +aloha's +alohas +alone +along +alongside +aloof +aloofness +aloofness's +aloud +alpaca +alpaca's +alpacas +alpha +alpha's +alphabet +alphabet's +alphabetic +alphabetical +alphabetically +alphabetize +alphabetized +alphabetizes +alphabetizing +alphabets +alphanumeric +alphas +alpine +already +alright +also +altar +altar's +altars +alter +alterable +alteration +alteration's +alterations +altercation +altercation's +altercations +altered +altering +alternate +alternate's +alternated +alternately +alternates +alternating +alternation +alternation's +alternations +alternative +alternative's +alternatively +alternatives +alternator +alternator's +alternators +alters +altho +although +altimeter +altimeter's +altimeters +altitude +altitude's +altitudes +alto +alto's +altogether +altos +altruism +altruism's +altruist +altruist's +altruistic +altruistically +altruists +alum +alum's +aluminum +aluminum's +alumna +alumna's +alumnae +alumni +alumnus +alumnus's +alums +always +am +amalgam +amalgam's +amalgamate +amalgamated +amalgamates +amalgamating +amalgamation +amalgamation's +amalgamations +amalgams +amanuenses +amanuensis +amanuensis's +amaranth +amaranth's +amaranths +amaryllis +amaryllis's +amaryllises +amass +amassed +amasses +amassing +amateur +amateur's +amateurish +amateurism +amateurism's +amateurs +amatory +amaze +amaze's +amazed +amazement +amazement's +amazes +amazing +amazingly +amazon +amazon's +amazons +ambassador +ambassador's +ambassadorial +ambassadors +ambassadorship +ambassadorship's +ambassadorships +amber +amber's +ambergris +ambergris's +ambiance +ambiance's +ambiances +ambidextrous +ambidextrously +ambience +ambience's +ambiences +ambient +ambiguities +ambiguity +ambiguity's +ambiguous +ambiguously +ambition +ambition's +ambitions +ambitious +ambitiously +ambitiousness +ambitiousness's +ambivalence +ambivalence's +ambivalent +ambivalently +amble +amble's +ambled +ambles +ambling +ambrosia +ambrosia's +ambulance +ambulance's +ambulances +ambulatories +ambulatory +ambulatory's +ambush +ambush's +ambushed +ambushes +ambushing +ameba +ameba's +amebae +amebas +amebic +ameer +ameer's +ameers +ameliorate +ameliorated +ameliorates +ameliorating +amelioration +amelioration's +amen +amenable +amend +amendable +amended +amending +amendment +amendment's +amendments +amends +amenities +amenity +amenity's +amethyst +amethyst's +amethysts +amiability +amiability's +amiable +amiably +amicability +amicability's +amicable +amicably +amid +amidships +amidst +amigo +amigo's +amigos +amir +amir's +amirs +amiss +amity +amity's +ammeter +ammeter's +ammeters +ammo +ammo's +ammonia +ammonia's +ammunition +ammunition's +amnesia +amnesia's +amnesiac +amnesiac's +amnesiacs +amnestied +amnesties +amnesty +amnesty's +amnestying +amniocenteses +amniocentesis +amniocentesis's +amoeba +amoeba's +amoebae +amoebas +amoebic +amok +among +amongst +amoral +amorality +amorality's +amorally +amorous +amorously +amorousness +amorousness's +amorphous +amorphously +amorphousness +amorphousness's +amortization +amortization's +amortizations +amortize +amortized +amortizes +amortizing +amount +amount's +amounted +amounting +amounts +amour +amour's +amours +amp +amp's +amperage +amperage's +ampere +ampere's +amperes +ampersand +ampersand's +ampersands +amphetamine +amphetamine's +amphetamines +amphibian +amphibian's +amphibians +amphibious +amphitheater +amphitheater's +amphitheaters +amphitheatre +amphitheatre's +amphitheatres +ample +ampler +amplest +amplification +amplification's +amplifications +amplified +amplifier +amplifier's +amplifiers +amplifies +amplify +amplifying +amplitude +amplitude's +amplitudes +amply +ampoule +ampoule's +ampoules +amps +ampul +ampul's +ampule +ampule's +ampules +ampuls +amputate +amputated +amputates +amputating +amputation +amputation's +amputations +amputee +amputee's +amputees +amuck +amulet +amulet's +amulets +amuse +amused +amusement +amusement's +amusements +amuses +amusing +amusingly +an +anachronism +anachronism's +anachronisms +anachronistic +anaconda +anaconda's +anacondas +anaemia +anaemia's +anaemic +anaerobic +anaesthesia +anaesthesia's +anaesthetic +anaesthetic's +anaesthetics +anaesthetist +anaesthetist's +anaesthetists +anaesthetize +anaesthetized +anaesthetizes +anaesthetizing +anagram +anagram's +anagrams +anal +analgesia +analgesia's +analgesic +analgesic's +analgesics +analog +analog's +analogies +analogous +analogously +analogs +analogue +analogue's +analogues +analogy +analogy's +analyses +analysis +analysis's +analyst +analyst's +analysts +analytic +analytical +analyticalally +analytically +analyze +analyzed +analyzer +analyzer's +analyzers +analyzes +analyzing +anapest +anapest's +anapests +anarchic +anarchically +anarchism +anarchism's +anarchist +anarchist's +anarchistic +anarchists +anarchy +anarchy's +anathema +anathema's +anathemas +anatomic +anatomical +anatomically +anatomies +anatomist +anatomist's +anatomists +anatomy +anatomy's +ancestor +ancestor's +ancestors +ancestral +ancestress +ancestress's +ancestresses +ancestries +ancestry +ancestry's +anchor +anchor's +anchorage +anchorage's +anchorages +anchored +anchoring +anchorite +anchorite's +anchorites +anchorman +anchorman's +anchormen +anchorpeople +anchorperson +anchorperson's +anchorpersons +anchors +anchorwoman +anchorwoman's +anchorwomen +anchovies +anchovy +anchovy's +ancient +ancient's +ancienter +ancientest +ancients +ancillaries +ancillary +ancillary's +and +andante +andante's +andantes +andiron +andiron's +andirons +androgen +androgen's +androgynous +android +android's +androids +anecdota +anecdotal +anecdote +anecdote's +anecdotes +anemia +anemia's +anemic +anemometer +anemometer's +anemometers +anemone +anemone's +anemones +anesthesia +anesthesia's +anesthesiologist +anesthesiologist's +anesthesiologists +anesthesiology +anesthesiology's +anesthetic +anesthetic's +anesthetics +anesthetist +anesthetist's +anesthetists +anesthetize +anesthetized +anesthetizes +anesthetizing +aneurism +aneurism's +aneurisms +aneurysm +aneurysm's +aneurysms +anew +angel +angel's +angelic +angelically +angels +anger +anger's +angered +angering +angers +angina +angina's +angioplasties +angioplasty +angioplasty's +angiosperm +angiosperm's +angiosperms +angle +angle's +angled +angler +angler's +anglers +angles +angleworm +angleworm's +angleworms +angling +angling's +angora +angora's +angoras +angrier +angriest +angrily +angry +angst +angst's +angstrom +angstrom's +angstroms +anguish +anguish's +anguished +anguishes +anguishing +angular +angularities +angularity +angularity's +ani +animal +animal's +animals +animate +animated +animatedly +animates +animating +animation +animation's +animations +animator +animator's +animators +animism +animism's +animist +animist's +animistic +animists +animosities +animosity +animosity's +animus +animus's +anion +anion's +anions +anise +anise's +aniseed +aniseed's +ankh +ankh's +ankhs +ankle +ankle's +ankles +anklet +anklet's +anklets +annals +annals's +anneal +annealed +annealing +anneals +annex +annex's +annexation +annexation's +annexations +annexed +annexes +annexing +annihilate +annihilated +annihilates +annihilating +annihilation +annihilation's +annihilator +annihilator's +annihilators +anniversaries +anniversary +anniversary's +annotate +annotated +annotates +annotating +annotation +annotation's +annotations +announce +announced +announcement +announcement's +announcements +announcer +announcer's +announcers +announces +announcing +annoy +annoyance +annoyance's +annoyances +annoyed +annoying +annoyingly +annoys +annual +annual's +annually +annuals +annuities +annuity +annuity's +annul +annular +annulled +annulling +annulment +annulment's +annulments +annuls +anode +anode's +anodes +anodyne +anodyne's +anodynes +anoint +anointed +anointing +anointment +anointment's +anoints +anomalies +anomalous +anomaly +anomaly's +anon +anons +anonymity +anonymity's +anonymous +anonymously +anopheles +anopheles's +anorak +anorak's +anoraks +anorexia +anorexia's +anorexic +anorexic's +anorexics +another +answer +answer's +answerable +answered +answering +answers +ant +ant's +antacid +antacid's +antacids +antagonism +antagonism's +antagonisms +antagonist +antagonist's +antagonistic +antagonistically +antagonists +antagonize +antagonized +antagonizes +antagonizing +antarctic +ante +ante's +anteater +anteater's +anteaters +antebellum +antecedent +antecedent's +antecedents +antechamber +antechamber's +antechambers +anted +antedate +antedated +antedates +antedating +antediluvian +anteed +anteing +antelope +antelope's +antelopes +antenna +antenna's +antennae +antennas +anterior +anteroom +anteroom's +anterooms +antes +anthem +anthem's +anthems +anther +anther's +anthers +anthill +anthill's +anthills +anthologies +anthologist +anthologist's +anthologists +anthologize +anthologized +anthologizes +anthologizing +anthology +anthology's +anthracite +anthracite's +anthrax +anthrax's +anthropocentric +anthropoid +anthropoid's +anthropoids +anthropological +anthropologist +anthropologist's +anthropologists +anthropology +anthropology's +anthropomorphic +anthropomorphism +anthropomorphism's +anti +anti's +antiabortion +antiaircraft +antibiotic +antibiotic's +antibiotics +antibodies +antibody +antibody's +antic +antic's +anticipate +anticipated +anticipates +anticipating +anticipation +anticipation's +anticipations +anticipatory +anticked +anticking +anticlimactic +anticlimax +anticlimax's +anticlimaxes +anticlockwise +antics +anticyclone +anticyclone's +anticyclones +antidepressant +antidepressant's +antidepressants +antidote +antidote's +antidotes +antifreeze +antifreeze's +antigen +antigen's +antigens +antihero +antihero's +antiheroes +antihistamine +antihistamine's +antihistamines +antiknock +antiknock's +antimatter +antimatter's +antimony +antimony's +antiparticle +antiparticle's +antiparticles +antipasti +antipasto +antipasto's +antipastos +antipathetic +antipathies +antipathy +antipathy's +antipersonnel +antiperspirant +antiperspirant's +antiperspirants +antiphonal +antiphonal's +antiphonals +antipodes +antipodes's +antiquarian +antiquarian's +antiquarians +antiquaries +antiquary +antiquary's +antiquate +antiquated +antiquates +antiquating +antique +antique's +antiqued +antiques +antiquing +antiquities +antiquity +antiquity's +antis +antiseptic +antiseptic's +antiseptically +antiseptics +antislavery +antisocial +antitheses +antithesis +antithesis's +antithetical +antithetically +antitoxin +antitoxin's +antitoxins +antitrust +antiviral +antiviral's +antivirals +antiwar +antler +antler's +antlered +antlers +antonym +antonym's +antonyms +ants +anus +anus's +anuses +anvil +anvil's +anvils +anxieties +anxiety +anxiety's +anxious +anxiously +any +anybodies +anybody +anybody's +anyhow +anymore +anyone +anyone's +anyplace +anything +anything's +anythings +anytime +anyway +anywhere +aorta +aorta's +aortae +aortas +apace +apart +apartheid +apartheid's +apartment +apartment's +apartments +apathetic +apathetically +apathy +apathy's +ape +ape's +aped +aperitif +aperitif's +aperitifs +aperture +aperture's +apertures +apes +apex +apex's +apexes +aphasia +aphasia's +aphasic +aphasic's +aphasics +aphelia +aphelion +aphelion's +aphelions +aphid +aphid's +aphids +aphorism +aphorism's +aphorisms +aphoristic +aphrodisiac +aphrodisiac's +aphrodisiacs +apiaries +apiary +apiary's +apices +apiece +aping +aplenty +aplomb +aplomb's +apocalypse +apocalypse's +apocalypses +apocalyptic +apocryphal +apogee +apogee's +apogees +apolitical +apologetic +apologetically +apologia +apologia's +apologias +apologies +apologist +apologist's +apologists +apologize +apologized +apologizes +apologizing +apology +apology's +apoplectic +apoplexies +apoplexy +apoplexy's +apostasies +apostasy +apostasy's +apostate +apostate's +apostates +apostle +apostle's +apostles +apostolic +apostrophe +apostrophe's +apostrophes +apothecaries +apothecary +apothecary's +apotheoses +apotheosis +apotheosis's +appal +appall +appalled +appalling +appallingly +appalls +appals +apparatus +apparatus's +apparatuses +apparel +apparel's +appareled +appareling +apparelled +apparelling +apparels +apparent +apparently +apparition +apparition's +apparitions +appeal +appeal's +appealed +appealing +appeals +appear +appearance +appearance's +appearances +appeared +appearing +appears +appease +appeased +appeasement +appeasement's +appeasements +appeaser +appeaser's +appeasers +appeases +appeasing +appellant +appellant's +appellants +appellate +appellation +appellation's +appellations +append +appendage +appendage's +appendages +appendectomies +appendectomy +appendectomy's +appended +appendices +appendicitis +appendicitis's +appending +appendix +appendix's +appendixes +appends +appertain +appertained +appertaining +appertains +appetite +appetite's +appetites +appetizer +appetizer's +appetizers +appetizing +appetizingly +applaud +applauded +applauding +applauds +applause +applause's +apple +apple's +applejack +applejack's +apples +applesauce +applesauce's +appliance +appliance's +appliances +applicability +applicability's +applicable +applicant +applicant's +applicants +application +application's +applications +applicator +applicator's +applicators +applied +applies +appliqué +appliqué's +appliquéd +appliquéing +appliqués +apply +applying +appoint +appointed +appointee +appointee's +appointees +appointing +appointment +appointment's +appointments +appoints +apportion +apportioned +apportioning +apportionment +apportionment's +apportions +apposite +appositely +appositeness +appositeness's +apposition +apposition's +appositive +appositive's +appositives +appraisal +appraisal's +appraisals +appraise +appraised +appraiser +appraiser's +appraisers +appraises +appraising +appreciable +appreciably +appreciate +appreciated +appreciates +appreciating +appreciation +appreciation's +appreciations +appreciative +appreciatively +apprehend +apprehended +apprehending +apprehends +apprehension +apprehension's +apprehensions +apprehensive +apprehensively +apprehensiveness +apprehensiveness's +apprentice +apprentice's +apprenticed +apprentices +apprenticeship +apprenticeship's +apprenticeships +apprenticing +apprise +apprised +apprises +apprising +approach +approach's +approachable +approached +approaches +approaching +approbation +approbation's +approbations +appropriate +appropriated +appropriately +appropriateness +appropriateness's +appropriates +appropriating +appropriation +appropriation's +appropriations +approval +approval's +approvals +approve +approved +approves +approving +approvingly +approximate +approximated +approximately +approximates +approximating +approximation +approximation's +approximations +appurtenance +appurtenance's +appurtenances +apricot +apricot's +apricots +apron +apron's +aprons +apropos +apse +apse's +apses +apt +apter +aptest +aptitude +aptitude's +aptitudes +aptly +aptness +aptness's +aqua +aqua's +aquaculture +aquaculture's +aquae +aquamarine +aquamarine's +aquamarines +aquanaut +aquanaut's +aquanauts +aquaplane +aquaplane's +aquaplaned +aquaplanes +aquaplaning +aquaria +aquarium +aquarium's +aquariums +aquas +aquatic +aquatic's +aquatics +aquavit +aquavit's +aqueduct +aqueduct's +aqueducts +aqueous +aquiculture +aquiculture's +aquifer +aquifer's +aquifers +aquiline +arabesque +arabesque's +arabesques +arable +arachnid +arachnid's +arachnids +arbiter +arbiter's +arbiters +arbitrarily +arbitrariness +arbitrariness's +arbitrary +arbitrate +arbitrated +arbitrates +arbitrating +arbitration +arbitration's +arbitrator +arbitrator's +arbitrators +arbor +arbor's +arboreal +arboreta +arboretum +arboretum's +arboretums +arbors +arborvitae +arborvitae's +arborvitaes +arbutus +arbutus's +arbutuses +arc +arc's +arcade +arcade's +arcades +arcane +arced +arch +arch's +archaeological +archaeologist +archaeologist's +archaeologists +archaeology +archaeology's +archaic +archaically +archaism +archaism's +archaisms +archangel +archangel's +archangels +archbishop +archbishop's +archbishopric +archbishopric's +archbishoprics +archbishops +archdeacon +archdeacon's +archdeacons +archdiocese +archdiocese's +archdioceses +archduke +archduke's +archdukes +arched +archenemies +archenemy +archenemy's +archeological +archeologist +archeologist's +archeologists +archeology +archeology's +archer +archer's +archers +archery +archery's +arches +archest +archetypal +archetype +archetype's +archetypes +arching +archipelago +archipelago's +archipelagoes +archipelagos +architect +architect's +architects +architectural +architecturally +architecture +architecture's +architectures +archive +archive's +archived +archives +archiving +archivist +archivist's +archivists +archly +archness +archness's +archway +archway's +archways +arcing +arcked +arcking +arcs +arctic +arctic's +arctics +ardent +ardently +ardor +ardor's +ardors +arduous +arduously +arduousness +arduousness's +are +are's +area +area's +areas +aren't +arena +arena's +arenas +ares +argon +argon's +argosies +argosy +argosy's +argot +argot's +argots +arguable +arguably +argue +argued +argues +arguing +argument +argument's +argumentation +argumentation's +argumentative +arguments +argyle +argyle's +argyles +aria +aria's +arias +arid +aridity +aridity's +aright +arise +arisen +arises +arising +aristocracies +aristocracy +aristocracy's +aristocrat +aristocrat's +aristocratic +aristocratically +aristocrats +arithmetic +arithmetic's +arithmetical +arithmetically +ark +ark's +arks +arm +arm's +armada +armada's +armadas +armadillo +armadillo's +armadillos +armament +armament's +armaments +armature +armature's +armatures +armband +armband's +armbands +armchair +armchair's +armchairs +armed +armful +armful's +armfuls +armhole +armhole's +armholes +armies +arming +armistice +armistice's +armistices +armlet +armlet's +armlets +armor +armor's +armored +armorer +armorer's +armorers +armories +armoring +armors +armory +armory's +armpit +armpit's +armpits +armrest +armrest's +armrests +arms +armsful +army +army's +aroma +aroma's +aromas +aromatherapy +aromatherapy's +aromatic +aromatic's +aromatics +arose +around +arousal +arousal's +arouse +aroused +arouses +arousing +arpeggio +arpeggio's +arpeggios +arraign +arraigned +arraigning +arraignment +arraignment's +arraignments +arraigns +arrange +arranged +arrangement +arrangement's +arrangements +arranger +arranger's +arrangers +arranges +arranging +arrant +array +array's +arrayed +arraying +arrays +arrears +arrears's +arrest +arrest's +arrested +arresting +arrests +arrival +arrival's +arrivals +arrive +arrived +arrives +arriving +arrogance +arrogance's +arrogant +arrogantly +arrogate +arrogated +arrogates +arrogating +arrow +arrow's +arrowhead +arrowhead's +arrowheads +arrowroot +arrowroot's +arrows +arroyo +arroyo's +arroyos +arsenal +arsenal's +arsenals +arsenic +arsenic's +arson +arson's +arsonist +arsonist's +arsonists +art +art's +artefact +artefact's +artefacts +arterial +arteries +arteriosclerosis +arteriosclerosis's +artery +artery's +artful +artfully +artfulness +artfulness's +arthritic +arthritic's +arthritics +arthritis +arthritis's +arthropod +arthropod's +arthropods +artichoke +artichoke's +artichokes +article +article's +articles +articulate +articulated +articulately +articulateness +articulateness's +articulates +articulating +articulation +articulation's +articulations +artier +artiest +artifact +artifact's +artifacts +artifice +artifice's +artificer +artificer's +artificers +artifices +artificial +artificiality +artificiality's +artificially +artillery +artillery's +artisan +artisan's +artisans +artist +artist's +artiste +artiste's +artistes +artistic +artistically +artistry +artistry's +artists +artless +artlessly +artlessness +artlessness's +arts +artsier +artsiest +artsy +artwork +artwork's +artworks +arty +as +asbestos +asbestos's +ascend +ascendancy +ascendancy's +ascendant +ascendant's +ascendants +ascended +ascendency +ascendency's +ascendent +ascendent's +ascendents +ascending +ascends +ascension +ascension's +ascensions +ascent +ascent's +ascents +ascertain +ascertainable +ascertained +ascertaining +ascertains +ascetic +ascetic's +asceticism +asceticism's +ascetics +ascot +ascot's +ascots +ascribable +ascribe +ascribed +ascribes +ascribing +ascription +ascription's +aseptic +asexual +asexually +ash +ash's +ashamed +ashamedly +ashcan +ashcan's +ashcans +ashed +ashen +ashes +ashier +ashiest +ashing +ashore +ashram +ashram's +ashrams +ashtray +ashtray's +ashtrays +ashy +aside +aside's +asides +asinine +ask +askance +asked +askew +asking +asks +aslant +asleep +asocial +asp +asp's +asparagus +asparagus's +aspartame +aspartame's +aspect +aspect's +aspects +aspen +aspen's +aspens +asperities +asperity +asperity's +aspersion +aspersion's +aspersions +asphalt +asphalt's +asphalted +asphalting +asphalts +asphyxia +asphyxia's +asphyxiate +asphyxiated +asphyxiates +asphyxiating +asphyxiation +asphyxiation's +asphyxiations +aspic +aspic's +aspics +aspirant +aspirant's +aspirants +aspirate +aspirate's +aspirated +aspirates +aspirating +aspiration +aspiration's +aspirations +aspire +aspired +aspires +aspirin +aspirin's +aspiring +aspirins +asps +ass +ass's +assail +assailable +assailant +assailant's +assailants +assailed +assailing +assails +assassin +assassin's +assassinate +assassinated +assassinates +assassinating +assassination +assassination's +assassinations +assassins +assault +assault's +assaulted +assaulter +assaulting +assaults +assay +assay's +assayed +assaying +assays +assemblage +assemblage's +assemblages +assemble +assembled +assembler +assembler's +assemblers +assembles +assemblies +assembling +assembly +assembly's +assemblyman +assemblyman's +assemblymen +assemblywoman +assemblywoman's +assemblywomen +assent +assent's +assented +assenting +assents +assert +asserted +asserting +assertion +assertion's +assertions +assertive +assertively +assertiveness +assertiveness's +asserts +asses +assess +assessed +assesses +assessing +assessment +assessment's +assessments +assessor +assessor's +assessors +asset +asset's +assets +asseverate +asseverated +asseverates +asseverating +asshole +asshole's +assholes +assiduous +assiduously +assiduousness +assiduousness's +assign +assign's +assignable +assignation +assignation's +assignations +assigned +assigning +assignment +assignment's +assignments +assigns +assimilate +assimilated +assimilates +assimilating +assimilation +assimilation's +assist +assist's +assistance +assistance's +assistant +assistant's +assistants +assisted +assisting +assists +assize +assize's +assizes +associate +associate's +associated +associates +associating +association +association's +associations +associative +assonance +assonance's +assort +assorted +assorting +assortment +assortment's +assortments +assorts +assuage +assuaged +assuages +assuaging +assume +assumed +assumes +assuming +assumption +assumption's +assumptions +assurance +assurance's +assurances +assure +assured +assured's +assuredly +assureds +assures +assuring +aster +aster's +asterisk +asterisk's +asterisked +asterisking +asterisks +astern +asteroid +asteroid's +asteroids +asters +asthma +asthma's +asthmatic +asthmatic's +asthmatics +astigmatic +astigmatism +astigmatism's +astigmatisms +astir +astonish +astonished +astonishes +astonishing +astonishingly +astonishment +astonishment's +astound +astounded +astounding +astoundingly +astounds +astrakhan +astrakhan's +astral +astray +astride +astringency +astringency's +astringent +astringent's +astringents +astrologer +astrologer's +astrologers +astrological +astrology +astrology's +astronaut +astronaut's +astronautics +astronautics's +astronauts +astronomer +astronomer's +astronomers +astronomic +astronomical +astronomically +astronomy +astronomy's +astrophysicist +astrophysicist's +astrophysicists +astrophysics +astrophysics's +astute +astutely +astuteness +astuteness's +astuter +astutest +asunder +asylum +asylum's +asylums +asymmetric +asymmetrical +asymmetrically +asymmetry +asymmetry's +asymptotic +asymptotically +asynchronous +asynchronously +at +atavism +atavism's +atavistic +ate +atelier +atelier's +ateliers +atheism +atheism's +atheist +atheist's +atheistic +atheists +atherosclerosis +atherosclerosis's +athlete +athlete's +athletes +athletic +athletically +athletics +athletics's +atlas +atlas's +atlases +atmosphere +atmosphere's +atmospheres +atmospheric +atmospherically +atoll +atoll's +atolls +atom +atom's +atomic +atomizer +atomizer's +atomizers +atoms +atonal +atonality +atonality's +atone +atoned +atonement +atonement's +atones +atoning +atop +atria +atrium +atrium's +atriums +atrocious +atrociously +atrociousness +atrociousness's +atrocities +atrocity +atrocity's +atrophied +atrophies +atrophy +atrophy's +atrophying +attach +attached +attaching +attachment +attachment's +attachments +attaché +attaché's +attachés +attack +attack's +attacked +attacker +attacker's +attackers +attacking +attacks +attain +attainable +attained +attaining +attainment +attainment's +attainments +attains +attar +attar's +attempt +attempt's +attempted +attempting +attempts +attend +attendance +attendance's +attendances +attendant +attendant's +attendants +attended +attender +attending +attends +attention +attention's +attentions +attentive +attentively +attentiveness +attentiveness's +attenuate +attenuated +attenuates +attenuating +attenuation +attenuation's +attest +attestation +attestation's +attestations +attested +attesting +attests +attic +attic's +attics +attire +attire's +attired +attires +attiring +attitude +attitude's +attitudes +attitudinize +attitudinized +attitudinizes +attitudinizing +attorney +attorney's +attorneys +attract +attracted +attracting +attraction +attraction's +attractions +attractive +attractively +attractiveness +attractiveness's +attracts +attributable +attribute +attribute's +attributed +attributes +attributing +attribution +attribution's +attributions +attributive +attributive's +attributively +attributives +attrition +attrition's +attune +attuned +attunes +attuning +atwitter +atypical +atypically +auburn +auburn's +auction +auction's +auctioned +auctioneer +auctioneer's +auctioneers +auctioning +auctions +audacious +audaciously +audaciousness +audaciousness's +audacity +audacity's +audibility +audibility's +audible +audible's +audibles +audibly +audience +audience's +audiences +audio +audio's +audiophile +audiophile's +audiophiles +audios +audiovisual +audit +audit's +audited +auditing +audition +audition's +auditioned +auditioning +auditions +auditor +auditor's +auditoria +auditorium +auditorium's +auditoriums +auditors +auditory +audits +auger +auger's +augers +aught +aught's +aughts +augment +augmentation +augmentation's +augmentations +augmented +augmenting +augments +augur +augur's +augured +auguries +auguring +augurs +augury +augury's +august +auguster +augustest +auk +auk's +auks +aunt +aunt's +aunts +aura +aura's +aurae +aural +aurally +auras +aureola +aureola's +aureolas +aureole +aureole's +aureoles +auricle +auricle's +auricles +auspice +auspice's +auspices +auspicious +auspiciously +auspiciousness +auspiciousness's +austere +austerely +austerer +austerest +austerities +austerity +austerity's +authentic +authentically +authenticate +authenticated +authenticates +authenticating +authentication +authentication's +authentications +authenticity +authenticity's +author +author's +authored +authoring +authoritarian +authoritarian's +authoritarianism +authoritarianism's +authoritarians +authoritative +authoritatively +authoritativeness +authoritativeness's +authorities +authority +authority's +authorization +authorization's +authorizations +authorize +authorized +authorizes +authorizing +authors +authorship +authorship's +autism +autism's +autistic +auto +auto's +autobiographical +autobiographies +autobiography +autobiography's +autocracies +autocracy +autocracy's +autocrat +autocrat's +autocratic +autocratically +autocrats +autograph +autograph's +autographed +autographing +autographs +autoimmune +automata +automate +automated +automates +automatic +automatic's +automatically +automatics +automating +automation +automation's +automaton +automaton's +automatons +automobile +automobile's +automobiled +automobiles +automobiling +automotive +autonomous +autonomously +autonomy +autonomy's +autopilot +autopilot's +autopilots +autopsied +autopsies +autopsy +autopsy's +autopsying +autos +autoworker +autoworker's +autoworkers +autumn +autumn's +autumnal +autumns +auxiliaries +auxiliary +auxiliary's +avail +avail's +availability +availability's +available +availed +availing +avails +avalanche +avalanche's +avalanches +avarice +avarice's +avaricious +avariciously +avast +avatar +avatar's +avatars +avenge +avenged +avenger +avenger's +avengers +avenges +avenging +avenue +avenue's +avenues +aver +average +average's +averaged +averages +averaging +averred +averring +avers +averse +aversion +aversion's +aversions +avert +averted +averting +averts +avian +aviaries +aviary +aviary's +aviation +aviation's +aviator +aviator's +aviators +aviatrices +aviatrix +aviatrix's +aviatrixes +avid +avidity +avidity's +avidly +avionics +avionics's +avocado +avocado's +avocadoes +avocados +avocation +avocation's +avocations +avoid +avoidable +avoidably +avoidance +avoidance's +avoided +avoiding +avoids +avoirdupois +avoirdupois's +avow +avowal +avowal's +avowals +avowed +avowedly +avowing +avows +avuncular +await +awaited +awaiting +awaits +awake +awaked +awaken +awakened +awakening +awakening's +awakenings +awakens +awakes +awaking +award +award's +awarded +awarding +awards +aware +awareness +awareness's +awash +away +awe +awe's +awed +aweigh +awes +awesome +awesomely +awestricken +awestruck +awful +awfuller +awfullest +awfully +awfulness +awfulness's +awhile +awing +awkward +awkwarder +awkwardest +awkwardly +awkwardness +awkwardness's +awl +awl's +awls +awning +awning's +awnings +awoke +awoken +awol +awry +ax +ax's +axe +axe's +axed +axes +axial +axing +axiom +axiom's +axiomatic +axiomatically +axioms +axis +axis's +axle +axle's +axles +axon +axon's +axons +ay +ay's +ayatollah +ayatollah's +ayatollahs +aye +aye's +ayes +azalea +azalea's +azaleas +azimuth +azimuth's +azimuths +azure +azure's +azures +b +baa +baa's +baaed +baaing +baas +babble +babble's +babbled +babbler +babbler's +babblers +babbles +babbling +babe +babe's +babel +babel's +babels +babes +babied +babier +babies +babiest +baboon +baboon's +baboons +babushka +babushka's +babushkas +baby +baby's +babyhood +babyhood's +babying +babyish +babysat +babysit +babysits +babysitter +babysitter's +babysitters +babysitting +baccalaureate +baccalaureate's +baccalaureates +bacchanal +bacchanal's +bacchanalian +bacchanalian's +bacchanalians +bacchanals +bachelor +bachelor's +bachelors +bacilli +bacillus +bacillus's +back +back's +backache +backache's +backaches +backbit +backbite +backbiter +backbiter's +backbiters +backbites +backbiting +backbitten +backboard +backboard's +backboards +backbone +backbone's +backbones +backbreaking +backdate +backdated +backdates +backdating +backdrop +backdrop's +backdrops +backed +backer +backer's +backers +backfield +backfield's +backfields +backfire +backfire's +backfired +backfires +backfiring +backgammon +backgammon's +background +background's +backgrounds +backhand +backhand's +backhanded +backhanding +backhands +backhoe +backhoe's +backhoes +backing +backing's +backings +backlash +backlash's +backlashes +backless +backlog +backlog's +backlogged +backlogging +backlogs +backpack +backpack's +backpacked +backpacker +backpacker's +backpackers +backpacking +backpacks +backpedal +backpedaled +backpedaling +backpedalled +backpedalling +backpedals +backrest +backrest's +backrests +backs +backside +backside's +backsides +backslapper +backslapper's +backslappers +backslash +backslid +backslidden +backslide +backslider +backslider's +backsliders +backslides +backsliding +backspace +backspace's +backspaced +backspaces +backspacing +backspin +backspin's +backstabbing +backstage +backstage's +backstairs +backstop +backstop's +backstopped +backstopping +backstops +backstretch +backstretch's +backstretches +backstroke +backstroke's +backstroked +backstrokes +backstroking +backtrack +backtracked +backtracking +backtracks +backup +backup's +backups +backward +backwardness +backwardness's +backwards +backwash +backwash's +backwater +backwater's +backwaters +backwoods +backwoods's +backyard +backyard's +backyards +bacon +bacon's +bacteria +bacteria's +bacterial +bacterias +bacteriological +bacteriologist +bacteriologist's +bacteriologists +bacteriology +bacteriology's +bacterium +bacterium's +bad +bad's +badder +baddest +bade +badge +badge's +badger +badger's +badgered +badgering +badgers +badges +badinage +badinage's +badlands +badlands's +badly +badminton +badminton's +badmouth +badmouthed +badmouthing +badmouths +badness +badness's +baffle +baffle's +baffled +bafflement +bafflement's +baffles +baffling +bag +bag's +bagatelle +bagatelle's +bagatelles +bagel +bagel's +bagels +baggage +baggage's +bagged +baggier +baggiest +bagginess +bagginess's +bagging +baggy +bagpipe +bagpipe's +bagpipes +bags +bah +bail +bail's +bailed +bailiff +bailiffs +bailing +bailiwick +bailiwick's +bailiwicks +bailout +bailout's +bailouts +bails +bait +bait's +baited +baiting +baits +baize +baize's +bake +bake's +baked +baker +baker's +bakeries +bakers +bakery +bakery's +bakes +baking +balalaika +balalaika's +balalaikas +balance +balance's +balanced +balances +balancing +balconies +balcony +balcony's +bald +balded +balder +balderdash +balderdash's +baldest +balding +baldly +baldness +baldness's +balds +bale +bale's +baled +baleen +baleen's +baleful +balefully +bales +baling +balk +balk's +balked +balkier +balkiest +balking +balks +balky +ball +ball's +ballad +ballad's +balladeer +balladeer's +balladeers +ballads +ballast +ballast's +ballasted +ballasting +ballasts +balled +ballerina +ballerina's +ballerinas +ballet +ballet's +ballets +balling +ballistic +ballistics +ballistics's +balloon +balloon's +ballooned +ballooning +balloonist +balloonist's +balloonists +balloons +ballot +ballot's +balloted +balloting +ballots +ballpark +ballpark's +ballparks +ballplayer +ballplayer's +ballplayers +ballpoint +ballpoint's +ballpoints +ballroom +ballroom's +ballrooms +balls +ballsier +ballsiest +ballsy +ballyhoo +ballyhoo's +ballyhooed +ballyhooing +ballyhoos +balm +balm's +balmier +balmiest +balminess +balminess's +balms +balmy +baloney +baloney's +balsa +balsa's +balsam +balsam's +balsams +balsas +baluster +baluster's +balusters +balustrade +balustrade's +balustrades +bamboo +bamboo's +bamboos +bamboozle +bamboozled +bamboozles +bamboozling +ban +ban's +banal +banalities +banality +banality's +banana +banana's +bananas +band +band's +bandage +bandage's +bandaged +bandages +bandaging +bandana +bandana's +bandanas +bandanna +bandanna's +bandannas +banded +bandied +bandier +bandies +bandiest +banding +bandit +bandit's +banditry +banditry's +bandits +banditti +bandoleer +bandoleer's +bandoleers +bandolier +bandolier's +bandoliers +bands +bandstand +bandstand's +bandstands +bandwagon +bandwagon's +bandwagons +bandwidth +bandy +bandying +bane +bane's +baneful +banes +bang +bang's +banged +banging +bangle +bangle's +bangles +bangs +bani +banish +banished +banishes +banishing +banishment +banishment's +banister +banister's +banisters +banjo +banjo's +banjoes +banjoist +banjoist's +banjoists +banjos +bank +bank's +bankbook +bankbook's +bankbooks +banked +banker +banker's +bankers +banking +banking's +banknote +banknote's +banknotes +bankroll +bankroll's +bankrolled +bankrolling +bankrolls +bankrupt +bankrupt's +bankruptcies +bankruptcy +bankruptcy's +bankrupted +bankrupting +bankrupts +banks +banned +banner +banner's +banners +banning +bannister +bannister's +bannisters +banns +banns's +banquet +banquet's +banqueted +banqueting +banquets +bans +banshee +banshee's +banshees +bantam +bantam's +bantams +bantamweight +bantamweight's +bantamweights +banter +banter's +bantered +bantering +banters +banyan +banyan's +banyans +baobab +baobab's +baobabs +baptism +baptism's +baptismal +baptisms +baptist +baptisteries +baptistery +baptistery's +baptistries +baptistry +baptistry's +baptists +baptize +baptized +baptizes +baptizing +bar +bar's +barb +barb's +barbarian +barbarian's +barbarians +barbaric +barbarism +barbarism's +barbarisms +barbarities +barbarity +barbarity's +barbarous +barbarously +barbecue +barbecue's +barbecued +barbecues +barbecuing +barbed +barbell +barbell's +barbells +barbeque +barbeque's +barbequed +barbeques +barbequing +barber +barber's +barbered +barbering +barberries +barberry +barberry's +barbers +barbershop +barbershop's +barbershops +barbing +barbiturate +barbiturate's +barbiturates +barbs +bard +bard's +bards +bare +bareback +bared +barefaced +barefoot +barefooted +barehanded +bareheaded +barely +bareness +bareness's +barer +bares +barest +barf +barf's +barfed +barfing +barfs +bargain +bargain's +bargained +bargainer +bargaining +bargains +barge +barge's +barged +barges +barging +baring +baritone +baritone's +baritones +barium +barium's +bark +bark's +barked +barker +barker's +barkers +barking +barks +barley +barley's +barmaid +barmaid's +barmaids +barman +barn +barn's +barnacle +barnacle's +barnacles +barns +barnstorm +barnstormed +barnstorming +barnstorms +barnyard +barnyard's +barnyards +barometer +barometer's +barometers +barometric +baron +baron's +baroness +baroness's +baronesses +baronet +baronet's +baronets +baronial +barons +baroque +baroque's +barrack +barrack's +barracks +barracuda +barracuda's +barracudas +barrage +barrage's +barraged +barrages +barraging +barred +barrel +barrel's +barreled +barreling +barrelled +barrelling +barrels +barren +barren's +barrener +barrenest +barrenness +barrenness's +barrens +barrette +barrette's +barrettes +barricade +barricade's +barricaded +barricades +barricading +barrier +barrier's +barriers +barring +barrings +barrio +barrio's +barrios +barrister +barrister's +barristers +barroom +barroom's +barrooms +barrow +barrow's +barrows +bars +bartender +bartender's +bartenders +barter +barter's +bartered +bartering +barters +basal +basalt +basalt's +base +base's +baseball +baseball's +baseballs +baseboard +baseboard's +baseboards +based +baseless +baseline +baseline's +baselines +basely +baseman +baseman's +basemen +basement +basement's +basements +baseness +baseness's +baser +bases +basest +bash +bash's +bashed +bashes +bashful +bashfully +bashfulness +bashfulness's +bashing +bashing's +basic +basic's +basically +basics +basil +basil's +basilica +basilica's +basilicas +basin +basin's +basing +basins +basis +basis's +bask +basked +basket +basket's +basketball +basketball's +basketballs +baskets +basking +basks +bass +bass's +basses +bassi +bassinet +bassinet's +bassinets +bassist +bassist's +bassists +basso +basso's +bassoon +bassoon's +bassoonist +bassoonist's +bassoonists +bassoons +bassos +bast +bast's +bastard +bastard's +bastardize +bastardized +bastardizes +bastardizing +bastards +baste +basted +bastes +basting +bastion +bastion's +bastions +bat +bat's +batch +batch's +batched +batches +batching +bate +bated +bates +bath +bath's +bathe +bathe's +bathed +bather +bather's +bathers +bathes +bathhouse +bathhouse's +bathhouses +bathing +bathmat +bathmat's +bathmats +bathos +bathos's +bathrobe +bathrobe's +bathrobes +bathroom +bathroom's +bathrooms +baths +bathtub +bathtub's +bathtubs +batik +batik's +batiks +bating +baton +baton's +batons +bats +batsman +batsman's +batsmen +battalion +battalion's +battalions +batted +batten +batten's +battened +battening +battens +batter +batter's +battered +batteries +battering +batters +battery +battery's +battier +battiest +batting +batting's +battle +battle's +battled +battlefield +battlefield's +battlefields +battleground +battleground's +battlegrounds +battlement +battlement's +battlements +battles +battleship +battleship's +battleships +battling +batty +bauble +bauble's +baubles +baud +baud's +bauds +bauxite +bauxite's +bawdier +bawdiest +bawdily +bawdiness +bawdiness's +bawdy +bawl +bawl's +bawled +bawling +bawls +bay +bay's +bayberries +bayberry +bayberry's +bayed +baying +bayonet +bayonet's +bayoneted +bayoneting +bayonets +bayonetted +bayonetting +bayou +bayou's +bayous +bays +bazaar +bazaar's +bazaars +bazillion +bazillions +bazooka +bazooka's +bazookas +be +beach +beach's +beachcomber +beachcomber's +beachcombers +beached +beaches +beachhead +beachhead's +beachheads +beaching +beacon +beacon's +beacons +bead +bead's +beaded +beadier +beadiest +beading +beads +beady +beagle +beagle's +beagles +beak +beak's +beaked +beaker +beaker's +beakers +beaks +beam +beam's +beamed +beaming +beams +bean +bean's +beanbag +beanbag's +beanbags +beaned +beaning +beans +bear +bear's +bearable +beard +beard's +bearded +bearding +beards +bearer +bearer's +bearers +bearing +bearing's +bearings +bearish +bears +bearskin +bearskin's +bearskins +beast +beast's +beastlier +beastliest +beastliness +beastliness's +beastly +beastly's +beasts +beat +beat's +beaten +beater +beater's +beaters +beatific +beatification +beatification's +beatifications +beatified +beatifies +beatify +beatifying +beating +beating's +beatings +beatitude +beatitude's +beatitudes +beatnik +beatnik's +beatniks +beats +beau +beau's +beaus +beauteous +beauteously +beautician +beautician's +beauticians +beauties +beautification +beautification's +beautified +beautifier +beautifier's +beautifiers +beautifies +beautiful +beautifully +beautify +beautifying +beauty +beauty's +beaux +beaver +beaver's +beavered +beavering +beavers +bebop +bebop's +bebops +becalm +becalmed +becalming +becalms +became +because +beck +beck's +beckon +beckoned +beckoning +beckons +becks +become +becomes +becoming +becomingly +bed +bed's +bedazzle +bedazzled +bedazzles +bedazzling +bedbug +bedbug's +bedbugs +bedclothes +bedclothes's +bedded +bedder +bedding +bedding's +bedeck +bedecked +bedecking +bedecks +bedevil +bedeviled +bedeviling +bedevilled +bedevilling +bedevilment +bedevilment's +bedevils +bedfellow +bedfellow's +bedfellows +bedlam +bedlam's +bedlams +bedpan +bedpan's +bedpans +bedraggle +bedraggled +bedraggles +bedraggling +bedridden +bedrock +bedrock's +bedrocks +bedroll +bedroll's +bedrolls +bedroom +bedroom's +bedrooms +beds +bedside +bedside's +bedsides +bedsore +bedsore's +bedsores +bedspread +bedspread's +bedspreads +bedstead +bedstead's +bedsteads +bedtime +bedtime's +bedtimes +bee +bee's +beech +beech's +beeches +beechnut +beechnut's +beechnuts +beef +beef's +beefburger +beefed +beefier +beefiest +beefing +beefs +beefsteak +beefsteak's +beefsteaks +beefy +beehive +beehive's +beehives +beekeeper +beekeeper's +beekeepers +beekeeping +beekeeping's +beeline +beeline's +beelines +been +beep +beep's +beeped +beeper +beeper's +beepers +beeping +beeps +beer +beer's +beers +bees +beeswax +beeswax's +beet +beet's +beetle +beetle's +beetled +beetles +beetling +beets +beeves +befall +befallen +befalling +befalls +befell +befit +befits +befitted +befitting +befog +befogged +befogging +befogs +before +beforehand +befoul +befouled +befouling +befouls +befriend +befriended +befriending +befriends +befuddle +befuddled +befuddles +befuddling +beg +began +begat +beget +begets +begetting +beggar +beggar's +beggared +beggaring +beggarly +beggars +begged +begging +begin +beginner +beginner's +beginners +beginning +beginning's +beginnings +begins +begone +begonia +begonia's +begonias +begot +begotten +begrudge +begrudged +begrudges +begrudging +begrudgingly +begs +beguile +beguiled +beguiles +beguiling +beguilingly +begun +behalf +behalf's +behalves +behave +behaved +behaves +behaving +behavior +behavior's +behavioral +behead +beheaded +beheading +beheads +beheld +behemoth +behemoth's +behemoths +behest +behest's +behests +behind +behind's +behinds +behold +beholden +beholder +beholder's +beholders +beholding +beholds +behoove +behooved +behooves +behooving +beige +beige's +being +being's +beings +belabor +belabored +belaboring +belabors +belated +belatedly +belay +belayed +belaying +belays +belch +belch's +belched +belches +belching +beleaguer +beleaguered +beleaguering +beleaguers +belfries +belfry +belfry's +belie +belied +belief +belief's +beliefs +belies +believable +believe +believed +believer +believer's +believers +believes +believing +belittle +belittled +belittles +belittling +bell +bell's +belladonna +belladonna's +bellboy +bellboy's +bellboys +belle +belle's +belled +belles +bellhop +bellhop's +bellhops +bellicose +bellicosity +bellicosity's +bellied +bellies +belligerence +belligerence's +belligerency +belligerency's +belligerent +belligerent's +belligerently +belligerents +belling +bellow +bellow's +bellowed +bellowing +bellows +bells +bellwether +bellwether's +bellwethers +belly +belly's +bellyache +bellyache's +bellyached +bellyaches +bellyaching +bellybutton +bellybutton's +bellybuttons +bellyful +bellyful's +bellyfuls +bellying +belong +belonged +belonging +belonging's +belongings +belongs +beloved +beloved's +beloveds +below +belt +belt's +belted +belting +belts +beltway +beltway's +beltways +belying +bemoan +bemoaned +bemoaning +bemoans +bemuse +bemused +bemuses +bemusing +bench +bench's +benched +benches +benching +benchmark +benchmark's +benchmarks +bend +bend's +bender +bending +bends +beneath +benediction +benediction's +benedictions +benefaction +benefaction's +benefactions +benefactor +benefactor's +benefactors +benefactress +benefactress's +benefactresses +benefice +benefice's +beneficence +beneficence's +beneficent +beneficently +benefices +beneficial +beneficially +beneficiaries +beneficiary +beneficiary's +benefit +benefit's +benefited +benefiting +benefits +benefitted +benefitting +benevolence +benevolence's +benevolences +benevolent +benevolently +benighted +benign +benignly +bent +bent's +bents +benumb +benumbed +benumbing +benumbs +benzene +benzene's +bequeath +bequeathed +bequeathing +bequeaths +bequest +bequest's +bequests +berate +berated +berates +berating +bereave +bereaved +bereavement +bereavement's +bereavements +bereaves +bereaving +bereft +beret +beret's +berets +berg +berg's +bergs +beriberi +beriberi's +berm +berm's +berms +berried +berries +berry +berry's +berrying +berserk +berth +berth's +berthed +berthing +berths +beryl +beryl's +beryllium +beryllium's +beryls +beseech +beseeched +beseeches +beseeching +beset +besets +besetting +beside +besides +besiege +besieged +besieger +besieger's +besiegers +besieges +besieging +besmirch +besmirched +besmirches +besmirching +besom +besom's +besoms +besot +besots +besotted +besotting +besought +bespeak +bespeaking +bespeaks +bespoke +bespoken +best +best's +bested +bestial +bestiality +bestiality's +bestiaries +bestiary +bestiary's +besting +bestir +bestirred +bestirring +bestirs +bestow +bestowal +bestowal's +bestowals +bestowed +bestowing +bestows +bestrid +bestridden +bestride +bestrides +bestriding +bestrode +bests +bestseller +bestseller's +bestsellers +bet +bet's +beta +beta's +betake +betaken +betakes +betaking +betas +betcha +bethink +bethinking +bethinks +bethought +betide +betided +betides +betiding +betoken +betokened +betokening +betokens +betook +betray +betrayal +betrayal's +betrayals +betrayed +betrayer +betrayer's +betrayers +betraying +betrays +betroth +betrothal +betrothal's +betrothals +betrothed +betrothed's +betrothing +betroths +bets +betted +better +better's +bettered +bettering +betterment +betterment's +betters +betting +bettor +bettor's +bettors +between +betwixt +bevel +bevel's +beveled +beveling +bevelled +bevelling +bevels +beverage +beverage's +beverages +bevies +bevy +bevy's +bewail +bewailed +bewailing +bewails +beware +bewared +bewares +bewaring +bewilder +bewildered +bewildering +bewilderment +bewilderment's +bewilders +bewitch +bewitched +bewitches +bewitching +beyond +biannual +biannually +bias +bias's +biased +biases +biasing +biassed +biassing +biathlon +biathlon's +biathlons +bib +bib's +bible +bible's +bibles +biblical +bibliographer +bibliographer's +bibliographers +bibliographic +bibliographical +bibliographies +bibliography +bibliography's +bibliophile +bibliophile's +bibliophiles +bibs +bibulous +bicameral +bicentennial +bicentennial's +bicentennials +bicep +bicep's +biceps +biceps's +bicepses +bicker +bicker's +bickered +bickering +bickers +bicuspid +bicuspid's +bicuspids +bicycle +bicycle's +bicycled +bicycles +bicycling +bicyclist +bicyclist's +bicyclists +bid +bid's +bidden +bidder +bidder's +bidders +biddies +bidding +bidding's +biddy +biddy's +bide +bided +bides +bidet +bidet's +bidets +biding +bidirectional +bids +biennial +biennial's +biennially +biennials +bier +bier's +biers +bifocal +bifocals +bifocals's +bifurcate +bifurcated +bifurcates +bifurcating +bifurcation +bifurcation's +bifurcations +big +bigamist +bigamist's +bigamists +bigamous +bigamy +bigamy's +bigger +biggest +biggie +biggie's +biggies +bighearted +bighorn +bighorn's +bighorns +bight +bight's +bights +bigmouth +bigmouth's +bigmouths +bigness +bigness's +bigot +bigot's +bigoted +bigotries +bigotry +bigotry's +bigots +bigwig +bigwig's +bigwigs +bike +bike's +biked +biker +biker's +bikers +bikes +biking +bikini +bikini's +bikinis +bilateral +bilaterally +bile +bile's +bilge +bilge's +bilges +bilingual +bilingual's +bilinguals +bilious +bilk +bilked +bilking +bilks +bill +bill's +billboard +billboard's +billboards +billed +billet +billet's +billeted +billeting +billets +billfold +billfold's +billfolds +billiards +billiards's +billies +billing +billing's +billings +billion +billion's +billionaire +billionaire's +billionaires +billions +billionth +billionth's +billionths +billow +billow's +billowed +billowier +billowiest +billowing +billows +billowy +bills +billy +billy's +bimbo +bimbo's +bimboes +bimbos +bimonthlies +bimonthly +bimonthly's +bin +bin's +binaries +binary +binary's +bind +bind's +binder +binder's +binderies +binders +bindery +bindery's +binding +binding's +bindings +binds +binge +binge's +binged +bingeing +binges +binging +bingo +bingo's +binnacle +binnacle's +binnacles +binned +binning +binocular +binocular's +binoculars +binomial +binomial's +binomials +bins +biochemical +biochemical's +biochemicals +biochemist +biochemist's +biochemistry +biochemistry's +biochemists +biodegradable +biodiversity +biodiversity's +biofeedback +biofeedback's +biographer +biographer's +biographers +biographical +biographies +biography +biography's +biological +biologically +biologist +biologist's +biologists +biology +biology's +bionic +biophysicist +biophysicist's +biophysicists +biophysics +biophysics's +biopsied +biopsies +biopsy +biopsy's +biopsying +biorhythm +biorhythm's +biorhythms +biosphere +biosphere's +biospheres +biotechnology +biotechnology's +bipartisan +bipartite +biped +biped's +bipedal +bipeds +biplane +biplane's +biplanes +bipolar +biracial +birch +birch's +birched +birches +birching +bird +bird's +birdbath +birdbath's +birdbaths +birdbrained +birdcage +birdcages +birded +birdhouse +birdhouse's +birdhouses +birdie +birdie's +birdied +birdieing +birdies +birding +birds +birdseed +birdseed's +birdwatcher +birdwatcher's +birdwatchers +biretta +biretta's +birettas +birth +birth's +birthday +birthday's +birthdays +birthed +birthing +birthmark +birthmark's +birthmarks +birthplace +birthplace's +birthplaces +birthrate +birthrate's +birthrates +birthright +birthright's +birthrights +births +birthstone +birthstone's +birthstones +biscuit +biscuit's +biscuits +bisect +bisected +bisecting +bisection +bisection's +bisections +bisector +bisector's +bisectors +bisects +bisexual +bisexual's +bisexuality +bisexuality's +bisexuals +bishop +bishop's +bishopric +bishopric's +bishoprics +bishops +bismuth +bismuth's +bison +bison's +bisons +bisque +bisque's +bistro +bistro's +bistros +bit +bit's +bitch +bitch's +bitched +bitches +bitchier +bitchiest +bitching +bitchy +bite +bite's +bites +biting +bitingly +bitmap +bits +bitten +bitter +bitter's +bitterer +bitterest +bitterly +bittern +bittern's +bitterness +bitterness's +bitterns +bitters +bitters's +bittersweet +bittersweet's +bittersweets +bitumen +bitumen's +bituminous +bivalve +bivalve's +bivalves +bivouac +bivouac's +bivouacked +bivouacking +bivouacs +biweeklies +biweekly +biweekly's +bizarre +bizarrely +blab +blab's +blabbed +blabbermouth +blabbermouth's +blabbermouths +blabbing +blabs +black +black's +blackball +blackball's +blackballed +blackballing +blackballs +blackberries +blackberry +blackberry's +blackberrying +blackbird +blackbird's +blackbirds +blackboard +blackboard's +blackboards +blackcurrant +blacked +blacken +blackened +blackening +blackens +blacker +blackest +blackguard +blackguard's +blackguards +blackhead +blackhead's +blackheads +blacking +blackish +blackjack +blackjack's +blackjacked +blackjacking +blackjacks +blacklist +blacklist's +blacklisted +blacklisting +blacklists +blackmail +blackmail's +blackmailed +blackmailer +blackmailer's +blackmailers +blackmailing +blackmails +blackness +blackness's +blackout +blackout's +blackouts +blacks +blacksmith +blacksmith's +blacksmiths +blackthorn +blackthorn's +blackthorns +blacktop +blacktop's +blacktopped +blacktopping +blacktops +bladder +bladder's +bladders +blade +blade's +blades +blah +blah's +blame +blame's +blamed +blameless +blamelessly +blamer +blames +blameworthy +blaming +blanch +blanched +blanches +blanching +blancmange +bland +blander +blandest +blandishment +blandishment's +blandishments +blandly +blandness +blandness's +blank +blank's +blanked +blanker +blankest +blanket +blanket's +blanketed +blanketing +blankets +blanking +blankly +blankness +blankness's +blanks +blare +blare's +blared +blares +blaring +blarney +blarney's +blarneyed +blarneying +blarneys +blaspheme +blasphemed +blasphemer +blasphemer's +blasphemers +blasphemes +blasphemies +blaspheming +blasphemous +blasphemously +blasphemy +blasphemy's +blast +blast's +blasted +blaster +blaster's +blasters +blasting +blastoff +blastoff's +blastoffs +blasts +blasé +blatant +blatantly +blaze +blaze's +blazed +blazer +blazer's +blazers +blazes +blazing +blazon +blazon's +blazoned +blazoning +blazons +bleach +bleach's +bleached +bleacher +bleacher's +bleachers +bleaches +bleaching +bleak +bleaker +bleakest +bleakly +bleakness +bleakness's +blearier +bleariest +blearily +bleary +bleat +bleat's +bleated +bleating +bleats +bled +bleed +bleeder +bleeder's +bleeders +bleeding +bleeding's +bleeds +bleep +bleep's +bleeped +bleeping +bleeps +blemish +blemish's +blemished +blemishes +blemishing +blench +blenched +blenches +blenching +blend +blend's +blended +blender +blender's +blenders +blending +blends +blent +bless +blessed +blessedly +blessedness +blessedness's +blesses +blessing +blessing's +blessings +blest +blew +blight +blight's +blighted +blighting +blights +blimp +blimp's +blimps +blind +blind's +blinded +blinder +blinder's +blinders +blindest +blindfold +blindfold's +blindfolded +blindfolding +blindfolds +blinding +blindingly +blindly +blindness +blindness's +blinds +blindside +blindsided +blindsides +blindsiding +blink +blink's +blinked +blinker +blinker's +blinkered +blinkering +blinkers +blinking +blinks +blintz +blintz's +blintze +blintze's +blintzes +blip +blip's +blips +bliss +bliss's +blissful +blissfully +blissfulness +blissfulness's +blister +blister's +blistered +blistering +blisters +blithe +blithely +blither +blithest +blitz +blitz's +blitzed +blitzes +blitzing +blizzard +blizzard's +blizzards +bloat +bloated +bloating +bloats +blob +blob's +blobbed +blobbing +blobs +bloc +bloc's +block +block's +blockade +blockade's +blockaded +blockades +blockading +blockage +blockage's +blockages +blockbuster +blockbuster's +blockbusters +blocked +blockhead +blockhead's +blockheads +blockhouse +blockhouse's +blockhouses +blocking +blocks +blocs +blog +blog's +blogged +blogger +blogger's +bloggers +blogging +blogs +blond +blond's +blonde +blonde's +blonder +blondes +blondest +blondness +blondness's +blonds +blood +blood's +bloodbath +bloodbath's +bloodbaths +bloodcurdling +blooded +bloodhound +bloodhound's +bloodhounds +bloodied +bloodier +bloodies +bloodiest +blooding +bloodless +bloodlessly +bloodmobile +bloodmobile's +bloodmobiles +bloods +bloodshed +bloodshed's +bloodshot +bloodstain +bloodstain's +bloodstained +bloodstains +bloodstream +bloodstream's +bloodstreams +bloodsucker +bloodsucker's +bloodsuckers +bloodthirstier +bloodthirstiest +bloodthirstiness +bloodthirstiness's +bloodthirsty +bloody +bloodying +bloom +bloom's +bloomed +bloomer +bloomer's +bloomers +blooming +blooms +blooper +blooper's +bloopers +blossom +blossom's +blossomed +blossoming +blossoms +blot +blot's +blotch +blotch's +blotched +blotches +blotchier +blotchiest +blotching +blotchy +blots +blotted +blotter +blotter's +blotters +blotting +blouse +blouse's +bloused +blouses +blousing +blow +blow's +blower +blower's +blowers +blowgun +blowgun's +blowguns +blowing +blown +blowout +blowout's +blowouts +blows +blowsier +blowsiest +blowsy +blowtorch +blowtorch's +blowtorches +blowup +blowup's +blowups +blowzier +blowziest +blowzy +blubber +blubber's +blubbered +blubbering +blubbers +bludgeon +bludgeon's +bludgeoned +bludgeoning +bludgeons +blue +blue's +bluebell +bluebell's +bluebells +blueberries +blueberry +blueberry's +bluebird +bluebird's +bluebirds +bluebottle +bluebottle's +bluebottles +blued +bluefish +bluefish's +bluefishes +bluegrass +bluegrass's +blueing +blueing's +bluejacket +bluejacket's +bluejackets +bluejay +bluejay's +bluejays +bluenose +bluenose's +bluenoses +blueprint +blueprint's +blueprinted +blueprinting +blueprints +bluer +blues +bluest +bluff +bluff's +bluffed +bluffer +bluffer's +bluffers +bluffest +bluffing +bluffs +bluing +bluing's +bluish +blunder +blunder's +blunderbuss +blunderbuss's +blunderbusses +blundered +blunderer +blunderer's +blunderers +blundering +blunders +blunt +blunted +blunter +bluntest +blunting +bluntly +bluntness +bluntness's +blunts +blur +blur's +blurb +blurb's +blurbs +blurred +blurrier +blurriest +blurring +blurry +blurs +blurt +blurted +blurting +blurts +blush +blush's +blushed +blusher +blusher's +blushers +blushes +blushing +bluster +bluster's +blustered +blustering +blusters +blustery +bo's'n +bo's'n's +bo's'ns +bo'sun +bo'sun's +bo'suns +boa +boa's +boar +boar's +board +board's +boarded +boarder +boarder's +boarders +boarding +boardinghouse +boardinghouse's +boardinghouses +boardroom +boardroom's +boardrooms +boards +boardwalk +boardwalk's +boardwalks +boars +boas +boast +boast's +boasted +boaster +boaster's +boasters +boastful +boastfully +boastfulness +boastfulness's +boasting +boasts +boat +boat's +boated +boater +boater's +boaters +boating +boatman +boatman's +boatmen +boats +boatswain +boatswain's +boatswains +bob +bob's +bobbed +bobbies +bobbin +bobbin's +bobbing +bobbins +bobble +bobble's +bobbled +bobbles +bobbling +bobby +bobby's +bobcat +bobcat's +bobcats +bobolink +bobolink's +bobolinks +bobs +bobsled +bobsled's +bobsledded +bobsledding +bobsleds +bobtail +bobtail's +bobtails +bobwhite +bobwhite's +bobwhites +bode +boded +bodega +bodega's +bodegas +bodes +bodice +bodice's +bodices +bodies +bodily +boding +bodkin +bodkin's +bodkins +body +body's +bodybuilding +bodybuilding's +bodyguard +bodyguard's +bodyguards +bodywork +bodywork's +bog +bog's +bogey +bogey's +bogeyed +bogeying +bogeyman +bogeyman's +bogeymen +bogeys +bogged +boggier +boggiest +bogging +boggle +boggled +boggles +boggling +boggy +bogie +bogie's +bogied +bogies +bogs +bogus +bogy +bogy's +bohemian +bohemian's +bohemians +boil +boil's +boiled +boiler +boiler's +boilerplate +boilerplate's +boilers +boiling +boilings +boils +boisterous +boisterously +boisterousness +boisterousness's +bola +bola's +bolas +bold +bolder +boldest +boldface +boldface's +boldly +boldness +boldness's +bole +bole's +bolero +bolero's +boleros +boles +boll +boll's +bolls +bologna +bologna's +boloney +boloney's +bolster +bolster's +bolstered +bolstering +bolsters +bolt +bolt's +bolted +bolting +bolts +bomb +bomb's +bombard +bombarded +bombardier +bombardier's +bombardiers +bombarding +bombardment +bombardment's +bombardments +bombards +bombast +bombast's +bombastic +bombed +bomber +bomber's +bombers +bombing +bombings +bombs +bombshell +bombshell's +bombshells +bonanza +bonanza's +bonanzas +bonbon +bonbon's +bonbons +bond +bond's +bondage +bondage's +bonded +bonding +bonding's +bonds +bondsman +bondsman's +bondsmen +bone +bone's +boned +bonehead +bonehead's +boneheads +boneless +boner +boner's +boners +bones +boney +boneyer +boneyest +bonfire +bonfire's +bonfires +bong +bong's +bonged +bonging +bongo +bongo's +bongoes +bongos +bongs +bonier +boniest +boning +bonito +bonito's +bonitoes +bonitos +bonkers +bonnet +bonnet's +bonnets +bonnie +bonnier +bonniest +bonny +bonsai +bonsai's +bonus +bonus's +bonuses +bony +boo +boo's +boob +boob's +boobed +boobies +boobing +boobs +booby +booby's +boodle +boodle's +boodles +booed +boogie +boogie's +boogied +boogieing +boogies +booing +book +book's +bookcase +bookcase's +bookcases +booked +bookend +bookend's +bookends +bookie +bookie's +bookies +booking +booking's +bookings +bookish +bookkeeper +bookkeeper's +bookkeepers +bookkeeping +bookkeeping's +booklet +booklet's +booklets +bookmaker +bookmaker's +bookmakers +bookmaking +bookmaking's +bookmark +bookmark's +bookmarked +bookmarking +bookmarks +bookmobile +bookmobile's +bookmobiles +books +bookseller +bookseller's +booksellers +bookshelf +bookshelf's +bookshelves +bookshop +bookshop's +bookshops +bookstore +bookstore's +bookstores +bookworm +bookworm's +bookworms +boom +boom's +boomed +boomerang +boomerang's +boomeranged +boomeranging +boomerangs +booming +booms +boon +boon's +boondocks +boondocks's +boondoggle +boondoggle's +boondoggled +boondoggles +boondoggling +boons +boor +boor's +boorish +boorishly +boors +boos +boost +boost's +boosted +booster +booster's +boosters +boosting +boosts +boot +boot's +bootblack +bootblack's +bootblacks +booted +bootee +bootee's +bootees +booth +booth's +booths +bootie +bootie's +booties +booting +bootleg +bootleg's +bootlegged +bootlegger +bootlegger's +bootleggers +bootlegging +bootlegs +bootless +boots +bootstrap +bootstrap's +bootstraps +booty +booty's +booze +booze's +boozed +boozer +boozer's +boozers +boozes +boozier +booziest +boozing +boozy +bop +bop's +bopped +bopping +bops +borax +borax's +bordello +bordello's +bordellos +border +border's +bordered +bordering +borderland +borderland's +borderlands +borderline +borderline's +borderlines +borders +bore +bore's +bored +boredom +boredom's +borer +borer's +borers +bores +boring +boringly +born +borne +boron +boron's +borough +borough's +boroughs +borrow +borrowed +borrower +borrower's +borrowers +borrowing +borrows +borsch +borsch's +borscht +borscht's +bos'n +bos'n's +bos'ns +bosh +bosh's +bosom +bosom's +bosoms +boss +boss's +bossed +bosses +bossier +bossiest +bossily +bossiness +bossiness's +bossing +bossy +bosun +bosun's +bosuns +botanical +botanist +botanist's +botanists +botany +botany's +botch +botch's +botched +botches +botching +both +bother +bother's +bothered +bothering +bothers +bothersome +bottle +bottle's +bottled +bottleneck +bottleneck's +bottlenecks +bottles +bottling +bottom +bottom's +bottomed +bottoming +bottomless +bottoms +botulism +botulism's +boudoir +boudoir's +boudoirs +bouffant +bouffant's +bouffants +bough +bough's +boughs +bought +bouillabaisse +bouillabaisse's +bouillabaisses +bouillon +bouillon's +bouillons +boulder +boulder's +boulders +boulevard +boulevard's +boulevards +bounce +bounce's +bounced +bouncer +bouncer's +bouncers +bounces +bouncier +bounciest +bouncing +bouncy +bound +bound's +boundaries +boundary +boundary's +bounded +bounden +bounder +bounder's +bounders +bounding +boundless +bounds +bounteous +bounties +bountiful +bountifully +bounty +bounty's +bouquet +bouquet's +bouquets +bourbon +bourbon's +bourgeois +bourgeois's +bourgeoisie +bourgeoisie's +bout +bout's +boutique +boutique's +boutiques +boutonnière +boutonnière's +boutonnières +bouts +bovine +bovine's +bovines +bow +bow's +bowdlerize +bowdlerized +bowdlerizes +bowdlerizing +bowed +bowel +bowel's +bowels +bower +bower's +bowers +bowing +bowl +bowl's +bowlder +bowlder's +bowlders +bowled +bowlegged +bowler +bowler's +bowlers +bowling +bowling's +bowls +bowman +bowman's +bowmen +bows +bowsprit +bowsprit's +bowsprits +bowstring +bowstring's +bowstrings +box +box's +boxcar +boxcar's +boxcars +boxed +boxer +boxer's +boxers +boxes +boxing +boxing's +boxwood +boxwood's +boy +boy's +boycott +boycott's +boycotted +boycotting +boycotts +boyfriend +boyfriend's +boyfriends +boyhood +boyhood's +boyhoods +boyish +boyishly +boyishness +boyishness's +boys +boysenberries +boysenberry +boysenberry's +bozo +bozo's +bozos +bra +bra's +brace +brace's +braced +bracelet +bracelet's +bracelets +braces +bracing +bracken +bracken's +bracket +bracket's +bracketed +bracketing +brackets +brackish +bract +bract's +bracts +brad +brad's +brads +brag +brag's +braggart +braggart's +braggarts +bragged +bragger +bragger's +braggers +bragging +brags +braid +braid's +braided +braiding +braids +braille +braille's +brain +brain's +brainchild +brainchild's +brainchildren +brained +brainier +brainiest +braining +brainless +brains +brainstorm +brainstorm's +brainstormed +brainstorming +brainstorming's +brainstorms +brainteaser +brainteaser's +brainteasers +brainwash +brainwashed +brainwashes +brainwashing +brainwashing's +brainy +braise +braised +braises +braising +brake +brake's +braked +brakeman +brakeman's +brakemen +brakes +braking +bramble +bramble's +brambles +bran +bran's +branch +branch's +branched +branches +branching +brand +brand's +branded +brandied +brandies +branding +brandish +brandished +brandishes +brandishing +brands +brandy +brandy's +brandying +bras +brash +brasher +brashest +brashly +brashness +brashness's +brass +brass's +brasses +brassier +brassiere +brassiere's +brassieres +brassiest +brassy +brat +brat's +brats +brattier +brattiest +bratty +bravado +bravado's +brave +brave's +braved +bravely +braver +bravery +bravery's +braves +bravest +braving +bravo +bravo's +bravos +bravura +bravura's +bravuras +brawl +brawl's +brawled +brawler +brawler's +brawlers +brawling +brawls +brawn +brawn's +brawnier +brawniest +brawniness +brawniness's +brawny +bray +bray's +brayed +braying +brays +brazen +brazened +brazening +brazenly +brazenness +brazenness's +brazens +brazier +brazier's +braziers +breach +breach's +breached +breaches +breaching +bread +bread's +breadbasket +breadbasket's +breadbaskets +breaded +breadfruit +breadfruit's +breadfruits +breading +breads +breadth +breadth's +breadths +breadwinner +breadwinner's +breadwinners +break +break's +breakable +breakable's +breakables +breakage +breakage's +breakages +breakdown +breakdown's +breakdowns +breaker +breaker's +breakers +breakfast +breakfast's +breakfasted +breakfasting +breakfasts +breaking +breakneck +breakpoints +breaks +breakthrough +breakthrough's +breakthroughs +breakup +breakup's +breakups +breakwater +breakwater's +breakwaters +breast +breast's +breastbone +breastbone's +breastbones +breasted +breasting +breastplate +breastplate's +breastplates +breasts +breaststroke +breaststroke's +breaststrokes +breastwork +breastwork's +breastworks +breath +breath's +breathable +breathe +breathed +breather +breather's +breathers +breathes +breathier +breathiest +breathing +breathing's +breathless +breathlessly +breathlessness +breathlessness's +breaths +breathtaking +breathtakingly +breathy +bred +breech +breech's +breeches +breed +breed's +breeder +breeder's +breeders +breeding +breeding's +breeds +breeze +breeze's +breezed +breezes +breezier +breeziest +breezily +breeziness +breeziness's +breezing +breezy +brethren +breviaries +breviary +breviary's +brevity +brevity's +brew +brew's +brewed +brewer +brewer's +breweries +brewers +brewery +brewery's +brewing +brews +briar +briar's +briars +bribe +bribe's +bribed +bribery +bribery's +bribes +bribing +brick +brick's +brickbat +brickbat's +brickbats +bricked +bricking +bricklayer +bricklayer's +bricklayers +bricklaying +bricklaying's +bricks +bridal +bridal's +bridals +bride +bride's +bridegroom +bridegroom's +bridegrooms +brides +bridesmaid +bridesmaid's +bridesmaids +bridge +bridge's +bridged +bridgehead +bridgehead's +bridgeheads +bridges +bridgework +bridgework's +bridging +bridle +bridle's +bridled +bridles +bridling +brief +brief's +briefcase +briefcase's +briefcases +briefed +briefer +briefest +briefing +briefing's +briefings +briefly +briefness +briefness's +briefs +brier +brier's +briers +brig +brig's +brigade +brigade's +brigades +brigand +brigand's +brigandage +brigandage's +brigands +brigantine +brigantine's +brigantines +bright +brighten +brightened +brightening +brightens +brighter +brightest +brightly +brightness +brightness's +brigs +brilliance +brilliance's +brilliancy +brilliancy's +brilliant +brilliant's +brilliantly +brilliants +brim +brim's +brimful +brimfull +brimmed +brimming +brims +brimstone +brimstone's +brindled +brine +brine's +bring +bringing +brings +brinier +briniest +brink +brink's +brinkmanship +brinkmanship's +brinks +brinksmanship +brinksmanship's +briny +briquet +briquet's +briquets +briquette +briquette's +briquettes +brisk +brisked +brisker +briskest +brisket +brisket's +briskets +brisking +briskly +briskness +briskness's +brisks +bristle +bristle's +bristled +bristles +bristlier +bristliest +bristling +bristly +britches +britches's +brittle +brittle's +brittleness +brittleness's +brittler +brittlest +broach +broach's +broached +broaches +broaching +broad +broad's +broadcast +broadcast's +broadcasted +broadcaster +broadcaster's +broadcasters +broadcasting +broadcasts +broadcloth +broadcloth's +broaden +broadened +broadening +broadens +broader +broadest +broadloom +broadloom's +broadly +broadness +broadness's +broads +broadside +broadside's +broadsided +broadsides +broadsiding +broadsword +broadsword's +broadswords +brocade +brocade's +brocaded +brocades +brocading +broccoli +broccoli's +brochure +brochure's +brochures +brogan +brogan's +brogans +brogue +brogue's +brogues +broil +broil's +broiled +broiler +broiler's +broilers +broiling +broils +broke +broken +brokenhearted +broker +broker's +brokerage +brokerage's +brokerages +brokered +brokering +brokers +bromide +bromide's +bromides +bromine +bromine's +bronchi +bronchial +bronchitis +bronchitis's +broncho +broncho's +bronchos +bronchus +bronchus's +bronco +bronco's +broncos +brontosaur +brontosaur's +brontosauri +brontosaurs +brontosaurus +brontosaurus's +brontosauruses +bronze +bronze's +bronzed +bronzes +bronzing +brooch +brooch's +brooches +brood +brood's +brooded +brooder +brooder's +brooders +brooding +broods +brook +brook's +brooked +brooking +brooks +broom +broom's +brooms +broomstick +broomstick's +broomsticks +broth +broth's +brothel +brothel's +brothels +brother +brother's +brotherhood +brotherhood's +brotherhoods +brotherliness +brotherliness's +brotherly +brothers +broths +brought +brouhaha +brouhaha's +brouhahas +brow +brow's +browbeat +browbeaten +browbeating +browbeats +brown +brown's +browned +browner +brownest +brownie +brownie's +brownies +browning +brownish +brownout +brownout's +brownouts +browns +brownstone +brownstone's +brownstones +brows +browse +browse's +browsed +browser +browser's +browsers +browses +browsing +brr +bruin +bruin's +bruins +bruise +bruise's +bruised +bruiser +bruiser's +bruisers +bruises +bruising +brunch +brunch's +brunched +brunches +brunching +brunet +brunet's +brunets +brunette +brunette's +brunettes +brunt +brunt's +brush +brush's +brushed +brushes +brushing +brushwood +brushwood's +brusk +brusker +bruskest +bruskly +bruskness +bruskness's +brusque +brusquely +brusqueness +brusqueness's +brusquer +brusquest +brutal +brutalities +brutality +brutality's +brutalize +brutalized +brutalizes +brutalizing +brutally +brute +brute's +brutes +brutish +brutishly +bubble +bubble's +bubbled +bubbles +bubblier +bubbliest +bubbling +bubbly +bubbly's +buccaneer +buccaneer's +buccaneered +buccaneering +buccaneers +buck +buck's +buckboard +buckboard's +buckboards +bucked +bucket +bucket's +bucketed +bucketful +bucketful's +bucketfuls +bucketing +buckets +buckeye +buckeye's +buckeyes +bucking +buckle +buckle's +buckled +buckler +buckler's +bucklers +buckles +buckling +buckram +buckram's +bucks +bucksaw +bucksaw's +bucksaws +buckshot +buckshot's +buckskin +buckskin's +buckskins +buckteeth +bucktooth +bucktooth's +bucktoothed +buckwheat +buckwheat's +bucolic +bucolic's +bucolics +bud +bud's +budded +buddies +budding +buddings +buddy +buddy's +budge +budged +budgerigar +budgerigar's +budgerigars +budges +budget +budget's +budgetary +budgeted +budgeting +budgets +budgie +budgie's +budgies +budging +buds +buff +buff's +buffalo +buffalo's +buffaloed +buffaloes +buffaloing +buffalos +buffed +buffer +buffer's +buffered +buffering +buffers +buffet +buffet's +buffeted +buffeting +buffets +buffing +buffoon +buffoon's +buffoonery +buffoonery's +buffoons +buffs +bug +bug's +bugaboo +bugaboo's +bugaboos +bugbear +bugbear's +bugbears +bugged +bugger +bugger's +buggers +buggier +buggies +buggiest +bugging +buggy +buggy's +bugle +bugle's +bugled +bugler +bugler's +buglers +bugles +bugling +bugs +build +build's +builder +builder's +builders +building +building's +buildings +builds +buildup +buildup's +buildups +built +bulb +bulb's +bulbous +bulbs +bulge +bulge's +bulged +bulges +bulgier +bulgiest +bulging +bulgy +bulimia +bulimia's +bulimic +bulimic's +bulimics +bulk +bulk's +bulked +bulkhead +bulkhead's +bulkheads +bulkier +bulkiest +bulkiness +bulkiness's +bulking +bulks +bulky +bull +bull's +bulldog +bulldog's +bulldogged +bulldogging +bulldogs +bulldoze +bulldozed +bulldozer +bulldozer's +bulldozers +bulldozes +bulldozing +bulled +bullet +bullet's +bulletin +bulletin's +bulletined +bulletining +bulletins +bulletproof +bulletproofed +bulletproofing +bulletproofs +bullets +bullfight +bullfight's +bullfighter +bullfighter's +bullfighters +bullfighting +bullfighting's +bullfights +bullfinch +bullfinch's +bullfinches +bullfrog +bullfrog's +bullfrogs +bullheaded +bullhorn +bullhorn's +bullhorns +bullied +bullies +bulling +bullion +bullion's +bullish +bullock +bullock's +bullocks +bullpen +bullpen's +bullpens +bullring +bullring's +bullrings +bulls +bullshit +bullshit's +bullshits +bullshitted +bullshitting +bully +bully's +bullying +bulrush +bulrush's +bulrushes +bulwark +bulwark's +bulwarks +bum +bum's +bumble +bumblebee +bumblebee's +bumblebees +bumbled +bumbler +bumbler's +bumblers +bumbles +bumbling +bummed +bummer +bummer's +bummers +bummest +bumming +bump +bump's +bumped +bumper +bumper's +bumpers +bumpier +bumpiest +bumping +bumpkin +bumpkin's +bumpkins +bumps +bumptious +bumpy +bums +bun +bun's +bunch +bunch's +bunched +bunches +bunching +buncombe +buncombe's +bundle +bundle's +bundled +bundles +bundling +bung +bung's +bungalow +bungalow's +bungalows +bunged +bunghole +bunghole's +bungholes +bunging +bungle +bungle's +bungled +bungler +bungler's +bunglers +bungles +bungling +bungs +bunion +bunion's +bunions +bunk +bunk's +bunked +bunker +bunker's +bunkers +bunkhouse +bunkhouse's +bunkhouses +bunking +bunks +bunkum +bunkum's +bunnies +bunny +bunny's +buns +bunt +bunt's +bunted +bunting +bunting's +buntings +bunts +buoy +buoy's +buoyancy +buoyancy's +buoyant +buoyantly +buoyed +buoying +buoys +bur +bur's +burble +burbled +burbles +burbling +burden +burden's +burdened +burdening +burdens +burdensome +burdock +burdock's +bureau +bureau's +bureaucracies +bureaucracy +bureaucracy's +bureaucrat +bureaucrat's +bureaucratic +bureaucratically +bureaucrats +bureaus +bureaux +burg +burg's +burgeon +burgeoned +burgeoning +burgeons +burger +burger's +burgers +burgher +burgher's +burghers +burglar +burglar's +burglaries +burglarize +burglarized +burglarizes +burglarizing +burglars +burglary +burglary's +burgle +burgled +burgles +burgling +burgs +burial +burial's +burials +buried +buries +burlap +burlap's +burlesque +burlesque's +burlesqued +burlesques +burlesquing +burlier +burliest +burliness +burliness's +burly +burn +burn's +burned +burner +burner's +burners +burning +burnish +burnish's +burnished +burnishes +burnishing +burnoose +burnoose's +burnooses +burnous +burnous's +burnouses +burnout +burnout's +burnouts +burns +burnt +burp +burp's +burped +burping +burps +burr +burr's +burred +burring +burrito +burrito's +burritos +burro +burro's +burros +burrow +burrow's +burrowed +burrowing +burrows +burrs +burs +bursar +bursar's +bursars +bursitis +bursitis's +burst +burst's +bursted +bursting +bursts +bury +burying +bus +bus's +busbies +busboy +busboy's +busboys +busby +busby's +bused +buses +bush +bush's +bushed +bushel +bushel's +busheled +busheling +bushelled +bushelling +bushels +bushes +bushier +bushiest +bushiness +bushiness's +bushing +bushing's +bushings +bushman +bushman's +bushmen +bushwhack +bushwhacked +bushwhacker +bushwhacker's +bushwhackers +bushwhacking +bushwhacks +bushy +busied +busier +busies +busiest +busily +business +business's +businesses +businesslike +businessman +businessman's +businessmen +businesswoman +businesswoman's +businesswomen +busing +busing's +buss +buss's +bussed +busses +bussing +bussing's +bust +bust's +busted +buster +buster's +busters +busting +bustle +bustle's +bustled +bustles +bustling +busts +busy +busybodies +busybody +busybody's +busying +busyness +busyness's +busywork +busywork's +but +butane +butane's +butch +butch's +butcher +butcher's +butchered +butcheries +butchering +butchers +butchery +butchery's +butches +butler +butler's +butlers +buts +butt +butt's +butte +butte's +butted +butter +butter's +buttercup +buttercup's +buttercups +buttered +butterfat +butterfat's +butterfingers +butterfingers's +butterflied +butterflies +butterfly +butterfly's +butterflying +butterier +butteries +butteriest +buttering +buttermilk +buttermilk's +butternut +butternut's +butternuts +butters +butterscotch +butterscotch's +buttery +buttery's +buttes +butting +buttock +buttock's +buttocks +button +button's +buttoned +buttonhole +buttonhole's +buttonholed +buttonholes +buttonholing +buttoning +buttons +buttress +buttress's +buttressed +buttresses +buttressing +butts +buxom +buy +buy's +buyer +buyer's +buyers +buying +buyout +buyout's +buyouts +buys +buzz +buzz's +buzzard +buzzard's +buzzards +buzzed +buzzer +buzzer's +buzzers +buzzes +buzzing +buzzword +buzzword's +buzzwords +by +by's +bye +bye's +byelaw +byelaw's +byelaws +byes +bygone +bygone's +bygones +bylaw +bylaw's +bylaws +byline +byline's +bylines +bypass +bypass's +bypassed +bypasses +bypassing +bypast +byplay +byplay's +byproduct +byproduct's +byproducts +bystander +bystander's +bystanders +byte +byte's +bytes +byway +byway's +byways +byword +byword's +bywords +c +cab +cab's +cabal +cabal's +cabals +cabana +cabana's +cabanas +cabaret +cabaret's +cabarets +cabbage +cabbage's +cabbages +cabbed +cabbie +cabbie's +cabbies +cabbing +cabby +cabby's +cabin +cabin's +cabinet +cabinet's +cabinetmaker +cabinetmaker's +cabinetmakers +cabinets +cabins +cable +cable's +cablecast +cablecast's +cablecasted +cablecasting +cablecasts +cabled +cablegram +cablegram's +cablegrams +cables +cabling +caboodle +caboodle's +caboose +caboose's +cabooses +cabs +cacao +cacao's +cacaos +cache +cache's +cached +caches +cachet +cachet's +cachets +caching +cackle +cackle's +cackled +cackles +cackling +cacophonies +cacophonous +cacophony +cacophony's +cacti +cactus +cactus's +cactuses +cad +cad's +cadaver +cadaver's +cadaverous +cadavers +caddie +caddie's +caddied +caddies +caddish +caddy +caddy's +caddying +cadence +cadence's +cadences +cadenza +cadenza's +cadenzas +cadet +cadet's +cadets +cadge +cadged +cadger +cadger's +cadgers +cadges +cadging +cadmium +cadmium's +cadre +cadre's +cadres +cads +caducei +caduceus +caduceus's +caesarean +caesarean's +caesareans +caesarian +caesarian's +caesarians +caesura +caesura's +caesurae +caesuras +cafeteria +cafeteria's +cafeterias +caffeinated +caffeine +caffeine's +caftan +caftan's +caftans +café +café's +cafés +cage +cage's +caged +cages +cagey +cageyness +cageyness's +cagier +cagiest +cagily +caginess +caginess's +caging +cagy +cahoot +cahoot's +cahoots +cairn +cairn's +cairns +caisson +caisson's +caissons +cajole +cajoled +cajolery +cajolery's +cajoles +cajoling +cake +cake's +caked +cakes +caking +calabash +calabash's +calabashes +calamine +calamine's +calamities +calamitous +calamity +calamity's +calcified +calcifies +calcify +calcifying +calcine +calcined +calcines +calcining +calcite +calcite's +calcium +calcium's +calculable +calculate +calculated +calculates +calculating +calculation +calculation's +calculations +calculator +calculator's +calculators +calculi +calculus +calculus's +calculuses +caldron +caldron's +caldrons +calendar +calendar's +calendared +calendaring +calendars +calf +calf's +calfs +calfskin +calfskin's +caliber +caliber's +calibers +calibrate +calibrated +calibrates +calibrating +calibration +calibration's +calibrations +calibrator +calibrator's +calibrators +calico +calico's +calicoes +calicos +calif +calif's +califs +caliper +caliper's +calipered +calipering +calipers +caliph +caliph's +caliphate +caliphate's +caliphates +caliphs +calisthenic +calisthenics +calisthenics's +calk +calk's +calked +calking +calking's +calkings +calks +call +call's +callable +called +caller +caller's +callers +calligrapher +calligrapher's +calligraphers +calligraphy +calligraphy's +calling +calling's +callings +calliope +calliope's +calliopes +calliper +calliper's +callipered +callipering +callipers +callisthenics +callous +calloused +callouses +callousing +callously +callousness +callousness's +callow +callower +callowest +calls +callus +callus's +callused +calluses +callusing +calm +calm's +calmed +calmer +calmest +calming +calmly +calmness +calmness's +calms +caloric +calorie +calorie's +calories +calorific +calumniate +calumniated +calumniates +calumniating +calumnies +calumny +calumny's +calve +calved +calves +calving +calyces +calypso +calypso's +calypsos +calyx +calyx's +calyxes +cam +cam's +camaraderie +camaraderie's +camber +camber's +cambered +cambering +cambers +cambia +cambium +cambium's +cambiums +cambric +cambric's +camcorder +camcorder's +camcorders +came +camel +camel's +camellia +camellia's +camellias +camels +cameo +cameo's +cameos +camera +camera's +cameraman +cameraman's +cameramen +cameras +camerawoman +camerawoman's +camerawomen +camisole +camisole's +camisoles +camomile +camomile's +camomiles +camouflage +camouflage's +camouflaged +camouflages +camouflaging +camp +camp's +campaign +campaign's +campaigned +campaigner +campaigner's +campaigners +campaigning +campaigns +campanile +campanile's +campaniles +campanili +camped +camper +camper's +campers +campfire +campfire's +campfires +campground +campground's +campgrounds +camphor +camphor's +campier +campiest +camping +camping's +camps +campsite +campsite's +campsites +campus +campus's +campuses +campy +cams +camshaft +camshaft's +camshafts +can +can's +can't +canal +canal's +canals +canapé +canapé's +canapés +canard +canard's +canards +canaries +canary +canary's +canasta +canasta's +cancan +cancan's +cancans +cancel +cancelation +canceled +canceling +cancellation +cancellation's +cancellations +cancelled +cancelling +cancels +cancer +cancer's +cancerous +cancers +candelabra +candelabra's +candelabras +candelabrum +candelabrum's +candelabrums +candid +candidacies +candidacy +candidacy's +candidate +candidate's +candidates +candidly +candidness +candidness's +candied +candies +candle +candle's +candled +candlelight +candlelight's +candles +candlestick +candlestick's +candlesticks +candling +candor +candor's +candy +candy's +candying +cane +cane's +caned +canes +canine +canine's +canines +caning +canister +canister's +canisters +canker +canker's +cankered +cankering +cankerous +cankers +cannabis +cannabis's +cannabises +canned +canneries +cannery +cannery's +cannibal +cannibal's +cannibalism +cannibalism's +cannibalistic +cannibalize +cannibalized +cannibalizes +cannibalizing +cannibals +cannier +canniest +cannily +canniness +canniness's +canning +cannon +cannon's +cannonade +cannonade's +cannonaded +cannonades +cannonading +cannonball +cannonball's +cannonballs +cannoned +cannoning +cannons +cannot +canny +canoe +canoe's +canoed +canoeing +canoeist +canoeist's +canoeists +canoes +canon +canon's +canonical +canonization +canonization's +canonizations +canonize +canonized +canonizes +canonizing +canons +canopied +canopies +canopy +canopy's +canopying +cans +cant +cant's +cantaloup +cantaloup's +cantaloupe +cantaloupe's +cantaloupes +cantaloups +cantankerous +cantankerously +cantankerousness +cantankerousness's +cantata +cantata's +cantatas +canted +canteen +canteen's +canteens +canter +canter's +cantered +cantering +canters +canticle +canticle's +canticles +cantilever +cantilever's +cantilevered +cantilevering +cantilevers +canting +canto +canto's +canton +canton's +cantons +cantor +cantor's +cantors +cantos +cants +canvas +canvas's +canvasback +canvasback's +canvasbacks +canvased +canvases +canvasing +canvass +canvass's +canvassed +canvasser +canvasser's +canvassers +canvasses +canvassing +canyon +canyon's +canyons +cap +cap's +capabilities +capability +capability's +capable +capably +capacious +capaciously +capaciousness +capaciousness's +capacitance +capacities +capacitor +capacitor's +capacitors +capacity +capacity's +caparison +caparison's +caparisoned +caparisoning +caparisons +cape +cape's +caped +caper +caper's +capered +capering +capers +capes +capillaries +capillary +capillary's +capital +capital's +capitalism +capitalism's +capitalist +capitalist's +capitalistic +capitalists +capitalization +capitalization's +capitalize +capitalized +capitalizes +capitalizing +capitals +capitol +capitol's +capitols +capitulate +capitulated +capitulates +capitulating +capitulation +capitulation's +capitulations +caplet +caplet's +caplets +capon +capon's +capons +capped +capping +cappuccino +cappuccino's +cappuccinos +caprice +caprice's +caprices +capricious +capriciously +capriciousness +capriciousness's +caps +capsize +capsized +capsizes +capsizing +capstan +capstan's +capstans +capsule +capsule's +capsuled +capsules +capsuling +captain +captain's +captaincies +captaincy +captaincy's +captained +captaining +captains +caption +caption's +captioned +captioning +captions +captious +captivate +captivated +captivates +captivating +captivation +captivation's +captive +captive's +captives +captivities +captivity +captivity's +captor +captor's +captors +capture +capture's +captured +captures +capturing +car +car's +caracul +caracul's +carafe +carafe's +carafes +caramel +caramel's +caramels +carapace +carapace's +carapaces +carat +carat's +carats +caravan +caravan's +caravans +caraway +caraway's +caraways +carbide +carbide's +carbides +carbine +carbine's +carbines +carbohydrate +carbohydrate's +carbohydrates +carbon +carbon's +carbonate +carbonate's +carbonated +carbonates +carbonating +carbonation +carbonation's +carbons +carboy +carboy's +carboys +carbuncle +carbuncle's +carbuncles +carburetor +carburetor's +carburetors +carcass +carcass's +carcasses +carcinogen +carcinogen's +carcinogenic +carcinogenic's +carcinogenics +carcinogens +carcinoma +carcinoma's +carcinomas +carcinomata +card +card's +cardboard +cardboard's +carded +cardiac +cardigan +cardigan's +cardigans +cardinal +cardinal's +cardinals +carding +cardiogram +cardiogram's +cardiograms +cardiologist +cardiologist's +cardiologists +cardiology +cardiology's +cardiopulmonary +cardiovascular +cards +cardsharp +cardsharp's +cardsharps +care +care's +cared +careen +careened +careening +careens +career +career's +careered +careering +careers +carefree +careful +carefuller +carefullest +carefully +carefulness +carefulness's +caregiver +caregiver's +caregivers +careless +carelessly +carelessness +carelessness's +cares +caress +caress's +caressed +caresses +caressing +caret +caret's +caretaker +caretaker's +caretakers +carets +careworn +carfare +carfare's +cargo +cargo's +cargoes +cargos +caribou +caribou's +caribous +caricature +caricature's +caricatured +caricatures +caricaturing +caricaturist +caricaturist's +caricaturists +caries +caries's +carillon +carillon's +carillons +caring +caring's +carjack +carjacked +carjacker +carjacker's +carjackers +carjacking +carjacking's +carjackings +carjacks +carmine +carmine's +carmines +carnage +carnage's +carnal +carnally +carnation +carnation's +carnations +carnelian +carnelian's +carnelians +carnival +carnival's +carnivals +carnivore +carnivore's +carnivores +carnivorous +carol +carol's +caroled +caroler +caroler's +carolers +caroling +carolled +caroller +caroller's +carollers +carolling +carols +carom +carom's +caromed +caroming +caroms +carotid +carotid's +carotids +carousal +carousal's +carousals +carouse +carouse's +caroused +carousel +carousel's +carousels +carouser +carouser's +carousers +carouses +carousing +carp +carp's +carpal +carpal's +carpals +carped +carpel +carpel's +carpels +carpenter +carpenter's +carpentered +carpentering +carpenters +carpentry +carpentry's +carpet +carpet's +carpetbag +carpetbag's +carpetbagged +carpetbagger +carpetbagger's +carpetbaggers +carpetbagging +carpetbags +carpeted +carpeting +carpeting's +carpets +carpi +carping +carport +carport's +carports +carps +carpus +carpus's +carrel +carrel's +carrels +carriage +carriage's +carriages +carriageway +carried +carrier +carrier's +carriers +carries +carrion +carrion's +carrot +carrot's +carrots +carrousel +carrousel's +carrousels +carry +carry's +carryall +carryall's +carryalls +carrying +carryout +cars +carsick +carsickness +carsickness's +cart +cart's +carted +cartel +cartel's +cartels +cartilage +cartilage's +cartilages +cartilaginous +carting +cartographer +cartographer's +cartographers +cartography +cartography's +carton +carton's +cartons +cartoon +cartoon's +cartooned +cartooning +cartoonist +cartoonist's +cartoonists +cartoons +cartridge +cartridge's +cartridges +carts +cartwheel +cartwheel's +cartwheeled +cartwheeling +cartwheels +carve +carved +carver +carver's +carvers +carves +carving +carving's +carvings +caryatid +caryatid's +caryatides +caryatids +cascade +cascade's +cascaded +cascades +cascading +case +case's +cased +casein +casein's +caseload +caseload's +caseloads +casement +casement's +casements +cases +casework +casework's +caseworker +caseworker's +caseworkers +cash +cash's +cashed +cashes +cashew +cashew's +cashews +cashier +cashier's +cashiered +cashiering +cashiers +cashing +cashmere +cashmere's +casing +casing's +casings +casino +casino's +casinos +cask +cask's +casket +casket's +caskets +casks +cassava +cassava's +cassavas +casserole +casserole's +casseroled +casseroles +casseroling +cassette +cassette's +cassettes +cassia +cassia's +cassias +cassino +cassino's +cassinos +cassock +cassock's +cassocks +cast +cast's +castanet +castanet's +castanets +castaway +castaway's +castaways +caste +caste's +caster +caster's +casters +castes +castigate +castigated +castigates +castigating +castigation +castigation's +castigator +castigator's +castigators +casting +casting's +castings +castle +castle's +castled +castles +castling +castoff +castoff's +castoffs +castor +castor's +castors +castrate +castrated +castrates +castrating +castration +castration's +castrations +casts +casual +casual's +casually +casualness +casualness's +casuals +casualties +casualty +casualty's +casuist +casuist's +casuistry +casuistry's +casuists +cat +cat's +cataclysm +cataclysm's +cataclysmic +cataclysms +catacomb +catacomb's +catacombs +catafalque +catafalque's +catafalques +catalepsy +catalepsy's +cataleptic +cataleptic's +cataleptics +catalog +catalog's +cataloged +cataloger +cataloger's +catalogers +cataloging +catalogs +catalogue +catalogue's +catalogued +cataloguer +cataloguer's +cataloguers +catalogues +cataloguing +catalpa +catalpa's +catalpas +catalysis +catalysis's +catalyst +catalyst's +catalysts +catalytic +catalytic's +catalyze +catalyzed +catalyzes +catalyzing +catamaran +catamaran's +catamarans +catapult +catapult's +catapulted +catapulting +catapults +cataract +cataract's +cataracts +catarrh +catarrh's +catastrophe +catastrophe's +catastrophes +catastrophic +catastrophically +catatonic +catatonic's +catatonics +catbird +catbird's +catbirds +catboat +catboat's +catboats +catcall +catcall's +catcalled +catcalling +catcalls +catch +catch's +catchall +catchall's +catchalls +catcher +catcher's +catchers +catches +catchier +catchiest +catching +catchings +catchment +catchphrase +catchup +catchup's +catchword +catchword's +catchwords +catchy +catechise +catechised +catechises +catechising +catechism +catechism's +catechisms +catechize +catechized +catechizes +catechizing +categorical +categorically +categories +categorization +categorization's +categorizations +categorize +categorized +categorizes +categorizing +category +category's +cater +catered +caterer +caterer's +caterers +catering +caterings +caterpillar +caterpillar's +caterpillars +caters +caterwaul +caterwaul's +caterwauled +caterwauling +caterwauls +catfish +catfish's +catfishes +catgut +catgut's +catharses +catharsis +catharsis's +cathartic +cathartic's +cathartics +cathedral +cathedral's +cathedrals +catheter +catheter's +catheters +cathode +cathode's +cathodes +catholic +catholicity +catholicity's +cation +cation's +cations +catkin +catkin's +catkins +catnap +catnap's +catnapped +catnapping +catnaps +catnip +catnip's +cats +catsup +catsup's +cattail +cattail's +cattails +cattier +cattiest +cattily +cattiness +cattiness's +cattle +cattle's +cattleman +cattleman's +cattlemen +catty +catwalk +catwalk's +catwalks +caucus +caucus's +caucused +caucuses +caucusing +caucussed +caucussing +caudal +caught +cauldron +cauldron's +cauldrons +cauliflower +cauliflower's +cauliflowers +caulk +caulk's +caulked +caulking +caulking's +caulkings +caulks +causal +causalities +causality +causality's +causally +causation +causation's +causative +cause +cause's +caused +causeless +causes +causeway +causeway's +causeways +causing +caustic +caustic's +caustically +caustics +cauterize +cauterized +cauterizes +cauterizing +caution +caution's +cautionary +cautioned +cautioning +cautions +cautious +cautiously +cautiousness +cautiousness's +cavalcade +cavalcade's +cavalcades +cavalier +cavalier's +cavaliers +cavalries +cavalry +cavalry's +cavalryman +cavalryman's +cavalrymen +cave +cave's +caveat +caveat's +caveats +caved +caveman +caveman's +cavemen +cavern +cavern's +cavernous +caverns +caves +caviar +caviar's +caviare +caviare's +cavil +cavil's +caviled +caviling +cavilled +cavilling +cavils +caving +cavities +cavity +cavity's +cavort +cavorted +cavorting +cavorts +caw +caw's +cawed +cawing +caws +cayenne +cayenne's +cease +cease's +ceased +ceasefire +ceaseless +ceaselessly +ceases +ceasing +cedar +cedar's +cedars +cede +ceded +cedes +cedilla +cedilla's +cedillas +ceding +ceiling +ceiling's +ceilings +celebrant +celebrant's +celebrants +celebrate +celebrated +celebrates +celebrating +celebration +celebration's +celebrations +celebratory +celebrities +celebrity +celebrity's +celerity +celerity's +celery +celery's +celesta +celesta's +celestas +celestial +celibacy +celibacy's +celibate +celibate's +celibates +cell +cell's +cellar +cellar's +cellars +celli +cellist +cellist's +cellists +cello +cello's +cellophane +cellophane's +cellos +cells +cellular +cellular's +cellulars +cellulite +cellulite's +celluloid +celluloid's +cellulose +cellulose's +cement +cement's +cemented +cementing +cements +cemeteries +cemetery +cemetery's +cenotaph +cenotaph's +cenotaphs +censer +censer's +censers +censor +censor's +censored +censoring +censorious +censoriously +censors +censorship +censorship's +censure +censure's +censured +censures +censuring +census +census's +censused +censuses +censusing +cent +cent's +centaur +centaur's +centaurs +centenarian +centenarian's +centenarians +centenaries +centenary +centenary's +centennial +centennial's +centennials +center +center's +centered +centerfold +centerfold's +centerfolds +centering +centerpiece +centerpiece's +centerpieces +centers +centigrade +centigram +centigram's +centigramme +centigramme's +centigrammes +centigrams +centiliter +centiliter's +centiliters +centime +centime's +centimes +centimeter +centimeter's +centimeters +centipede +centipede's +centipedes +central +central's +centralization +centralization's +centralize +centralized +centralizes +centralizing +centrally +centrals +centrifugal +centrifuge +centrifuge's +centrifuged +centrifuges +centrifuging +centripetal +centrist +centrist's +centrists +cents +centuries +centurion +centurion's +centurions +century +century's +cephalic +ceramic +ceramic's +ceramics +ceramics's +cereal +cereal's +cereals +cerebella +cerebellum +cerebellum's +cerebellums +cerebra +cerebral +cerebrum +cerebrum's +cerebrums +ceremonial +ceremonial's +ceremonially +ceremonials +ceremonies +ceremonious +ceremoniously +ceremony +ceremony's +cerise +cerise's +certain +certainly +certainties +certainty +certainty's +certifiable +certificate +certificate's +certificated +certificates +certificating +certification +certification's +certifications +certified +certifies +certify +certifying +certitude +certitude's +cerulean +cerulean's +cervical +cervices +cervix +cervix's +cervixes +cesarean +cesarean's +cesareans +cesarian +cesarian's +cesarians +cesium +cesium's +cessation +cessation's +cessations +cession +cession's +cessions +cesspool +cesspool's +cesspools +cetacean +cetacean's +cetaceans +chafe +chafed +chafes +chaff +chaff's +chaffed +chaffinch +chaffinch's +chaffinches +chaffing +chaffs +chafing +chagrin +chagrin's +chagrined +chagrining +chagrinned +chagrinning +chagrins +chain +chain's +chained +chaining +chains +chainsaw +chainsaw's +chainsawed +chainsawing +chainsaws +chair +chair's +chaired +chairing +chairlift +chairlift's +chairlifts +chairman +chairman's +chairmanship +chairmanship's +chairmen +chairperson +chairperson's +chairpersons +chairs +chairwoman +chairwoman's +chairwomen +chaise +chaise's +chaises +chalet +chalet's +chalets +chalice +chalice's +chalices +chalk +chalk's +chalkboard +chalkboard's +chalkboards +chalked +chalkier +chalkiest +chalking +chalks +chalky +challenge +challenge's +challenged +challenger +challenger's +challengers +challenges +challenging +chamber +chamber's +chamberlain +chamberlain's +chamberlains +chambermaid +chambermaid's +chambermaids +chambers +chambray +chambray's +chameleon +chameleon's +chameleons +chammies +chammy +chammy's +chamois +chamois's +chamoix +chamomile +chamomile's +chamomiles +champ +champ's +champagne +champagne's +champagnes +champed +champing +champion +champion's +championed +championing +champions +championship +championship's +championships +champs +chance +chance's +chanced +chancel +chancel's +chancelleries +chancellery +chancellery's +chancellor +chancellor's +chancellors +chancels +chanceries +chancery +chancery's +chances +chancier +chanciest +chancing +chancy +chandelier +chandelier's +chandeliers +chandler +chandler's +chandlers +change +change's +changeable +changed +changeling +changeling's +changelings +changeover +changeover's +changeovers +changes +changing +channel +channel's +channeled +channeling +channelled +channelling +channels +chant +chant's +chanted +chanter +chanter's +chanters +chantey +chantey's +chanteys +chanticleer +chanticleer's +chanticleers +chanties +chanting +chants +chanty +chanty's +chaos +chaos's +chaotic +chaotically +chap +chap's +chaparral +chaparral's +chaparrals +chapel +chapel's +chapels +chaperon +chaperon's +chaperone +chaperone's +chaperoned +chaperones +chaperoning +chaperons +chaplain +chaplain's +chaplaincies +chaplaincy +chaplaincy's +chaplains +chaplet +chaplet's +chaplets +chapped +chapping +chaps +chapt +chapter +chapter's +chapters +char +char's +character +character's +characteristic +characteristic's +characteristically +characteristics +characterization +characterization's +characterizations +characterize +characterized +characterizes +characterizing +characters +charade +charade's +charades +charbroil +charbroiled +charbroiling +charbroils +charcoal +charcoal's +charcoals +charge +charge's +chargeable +charged +charger +charger's +chargers +charges +charging +charier +chariest +charily +chariot +chariot's +charioteer +charioteer's +charioteers +chariots +charisma +charisma's +charismatic +charismatic's +charismatics +charitable +charitably +charities +charity +charity's +charlatan +charlatan's +charlatans +charm +charm's +charmed +charmer +charmer's +charmers +charming +charmingly +charms +charred +charring +chars +chart +chart's +charted +charter +charter's +chartered +chartering +charters +charting +chartreuse +chartreuse's +charts +charwoman +charwoman's +charwomen +chary +chase +chase's +chased +chaser +chaser's +chasers +chases +chasing +chasm +chasm's +chasms +chassis +chassis's +chaste +chastely +chasten +chastened +chastening +chastens +chaster +chastest +chastise +chastised +chastisement +chastisement's +chastisements +chastises +chastising +chastity +chastity's +chasuble +chasuble's +chasubles +chat +chat's +chateaus +chats +chatted +chattel +chattel's +chattels +chatter +chatter's +chatterbox +chatterbox's +chatterboxes +chattered +chatterer +chatterer's +chatterers +chattering +chatters +chattier +chattiest +chattily +chattiness +chattiness's +chatting +chatty +chauffeur +chauffeur's +chauffeured +chauffeuring +chauffeurs +chauvinism +chauvinism's +chauvinist +chauvinist's +chauvinistic +chauvinists +cheap +cheapen +cheapened +cheapening +cheapens +cheaper +cheapest +cheaply +cheapness +cheapness's +cheapskate +cheapskate's +cheapskates +cheat +cheat's +cheated +cheater +cheater's +cheaters +cheating +cheats +check +check's +checkbook +checkbook's +checkbooks +checked +checker +checker's +checkerboard +checkerboard's +checkerboards +checkered +checkering +checkers +checkers's +checking +checklist +checklist's +checklists +checkmate +checkmate's +checkmated +checkmates +checkmating +checkout +checkout's +checkouts +checkpoint +checkpoint's +checkpoints +checkroom +checkroom's +checkrooms +checks +checkup +checkup's +checkups +cheddar +cheddar's +cheek +cheek's +cheekbone +cheekbone's +cheekbones +cheeked +cheekier +cheekiest +cheekily +cheekiness +cheekiness's +cheeking +cheeks +cheeky +cheep +cheep's +cheeped +cheeping +cheeps +cheer +cheer's +cheered +cheerful +cheerfuller +cheerfullest +cheerfully +cheerfulness +cheerfulness's +cheerier +cheeriest +cheerily +cheeriness +cheeriness's +cheering +cheerleader +cheerleader's +cheerleaders +cheerless +cheerlessly +cheerlessness +cheerlessness's +cheers +cheery +cheese +cheese's +cheeseburger +cheeseburger's +cheeseburgers +cheesecake +cheesecake's +cheesecakes +cheesecloth +cheesecloth's +cheesed +cheeses +cheesier +cheesiest +cheesing +cheesy +cheetah +cheetah's +cheetahs +chef +chef's +chefs +chemical +chemical's +chemically +chemicals +chemise +chemise's +chemises +chemist +chemist's +chemistry +chemistry's +chemists +chemotherapy +chemotherapy's +chenille +chenille's +cherish +cherished +cherishes +cherishing +cheroot +cheroot's +cheroots +cherries +cherry +cherry's +cherub +cherub's +cherubic +cherubim +cherubims +cherubs +chervil +chervil's +chess +chess's +chessboard +chessboard's +chessboards +chessman +chessman's +chessmen +chest +chest's +chestnut +chestnut's +chestnuts +chests +chevron +chevron's +chevrons +chew +chew's +chewed +chewer +chewer's +chewers +chewier +chewiest +chewing +chews +chewy +chi +chiaroscuro +chiaroscuro's +chic +chic's +chicaneries +chicanery +chicanery's +chicer +chicest +chichi +chichi's +chichis +chick +chick's +chickadee +chickadee's +chickadees +chicken +chicken's +chickened +chickening +chickenpox +chickenpox's +chickens +chickpea +chickpea's +chickpeas +chicks +chickweed +chickweed's +chicle +chicle's +chicories +chicory +chicory's +chid +chidden +chide +chided +chides +chiding +chief +chief's +chiefer +chiefest +chiefly +chiefs +chieftain +chieftain's +chieftains +chiffon +chiffon's +chigger +chigger's +chiggers +chignon +chignon's +chignons +chilblain +chilblain's +chilblains +child +child's +childbearing +childbearing's +childbirth +childbirth's +childbirths +childcare +childcare's +childhood +childhood's +childhoods +childish +childishly +childishness +childishness's +childless +childlessness +childlessness's +childlike +childproof +childproofed +childproofing +childproofs +children +chile +chile's +chiles +chili +chili's +chilies +chilis +chill +chill's +chilled +chiller +chiller's +chillers +chillest +chilli +chilli's +chillier +chillies +chilliest +chilliness +chilliness's +chilling +chillings +chills +chilly +chimaera +chimaera's +chimaeras +chime +chime's +chimed +chimera +chimera's +chimeras +chimerical +chimes +chiming +chimney +chimney's +chimneys +chimp +chimp's +chimpanzee +chimpanzee's +chimpanzees +chimps +chin +chin's +china +china's +chinchilla +chinchilla's +chinchillas +chink +chink's +chinked +chinking +chinks +chinned +chinning +chino +chino's +chinos +chins +chinstrap +chinstrap's +chinstraps +chintz +chintz's +chintzier +chintziest +chintzy +chip +chip's +chipmunk +chipmunk's +chipmunks +chipped +chipper +chipper's +chippers +chipping +chips +chiropodist +chiropodist's +chiropodists +chiropody +chiropody's +chiropractic +chiropractic's +chiropractics +chiropractor +chiropractor's +chiropractors +chirp +chirp's +chirped +chirping +chirps +chirrup +chirrup's +chirruped +chirruping +chirrupped +chirrupping +chirrups +chisel +chisel's +chiseled +chiseler +chiseler's +chiselers +chiseling +chiselled +chiseller +chiseller's +chisellers +chiselling +chisels +chit +chit's +chitchat +chitchat's +chitchats +chitchatted +chitchatting +chitin +chitin's +chitlings +chitlings's +chitlins +chitlins's +chits +chitterlings +chitterlings's +chivalrous +chivalrously +chivalry +chivalry's +chive +chive's +chives +chloride +chloride's +chlorides +chlorinate +chlorinated +chlorinates +chlorinating +chlorination +chlorination's +chlorine +chlorine's +chlorofluorocarbon +chlorofluorocarbon's +chlorofluorocarbons +chloroform +chloroform's +chloroformed +chloroforming +chloroforms +chlorophyll +chlorophyll's +chock +chock's +chocked +chocking +chocks +chocolate +chocolate's +chocolates +choice +choice's +choicer +choices +choicest +choir +choir's +choirs +choke +choke's +choked +choker +choker's +chokers +chokes +choking +choler +choler's +cholera +cholera's +choleric +cholesterol +cholesterol's +chomp +chomp's +chomped +chomping +chomps +choose +chooses +choosey +choosier +choosiest +choosing +choosy +chop +chop's +chopped +chopper +chopper's +choppered +choppering +choppers +choppier +choppiest +choppily +choppiness +choppiness's +chopping +choppy +chops +chopstick +chopstick's +chopsticks +choral +choral's +chorale +chorale's +chorales +chorals +chord +chord's +chords +chore +chore's +choreograph +choreographed +choreographer +choreographer's +choreographers +choreographic +choreographing +choreographs +choreography +choreography's +chores +chorister +chorister's +choristers +chortle +chortle's +chortled +chortles +chortling +chorus +chorus's +chorused +choruses +chorusing +chorussed +chorussing +chose +chosen +chow +chow's +chowder +chowder's +chowders +chowed +chowing +chows +christen +christened +christening +christening's +christenings +christens +chromatic +chrome +chrome's +chromed +chromes +chroming +chromium +chromium's +chromosome +chromosome's +chromosomes +chronic +chronically +chronicle +chronicle's +chronicled +chronicler +chronicler's +chroniclers +chronicles +chronicling +chronological +chronologically +chronologies +chronology +chronology's +chronometer +chronometer's +chronometers +chrysalides +chrysalis +chrysalis's +chrysalises +chrysanthemum +chrysanthemum's +chrysanthemums +chubbier +chubbiest +chubbiness +chubbiness's +chubby +chuck +chuck's +chucked +chuckhole +chuckhole's +chuckholes +chucking +chuckle +chuckle's +chuckled +chuckles +chuckling +chucks +chug +chug's +chugged +chugging +chugs +chum +chum's +chummed +chummier +chummiest +chumminess +chumminess's +chumming +chummy +chump +chump's +chumps +chums +chunk +chunk's +chunkier +chunkiest +chunkiness +chunkiness's +chunks +chunky +church +church's +churches +churchgoer +churchgoer's +churchgoers +churchman +churchman's +churchmen +churchyard +churchyard's +churchyards +churl +churl's +churlish +churlishly +churlishness +churlishness's +churls +churn +churn's +churned +churning +churns +chute +chute's +chutes +chutney +chutney's +chutzpa +chutzpa's +chutzpah +chutzpah's +château +château's +châteaux +châtelaine +châtelaine's +châtelaines +cicada +cicada's +cicadae +cicadas +cicatrice +cicatrice's +cicatrices +cicatrix +cicatrix's +cider +cider's +ciders +cigar +cigar's +cigaret +cigaret's +cigarets +cigarette +cigarette's +cigarettes +cigarillo +cigarillo's +cigarillos +cigars +cilantro +cilantro's +cilia +cilium +cilium's +cinch +cinch's +cinched +cinches +cinching +cinchona +cinchona's +cinchonas +cincture +cincture's +cinctures +cinder +cinder's +cindered +cindering +cinders +cinema +cinema's +cinemas +cinematic +cinematographer +cinematographer's +cinematographers +cinematography +cinematography's +cinnabar +cinnabar's +cinnamon +cinnamon's +cipher +cipher's +ciphered +ciphering +ciphers +circa +circadian +circle +circle's +circled +circles +circlet +circlet's +circlets +circling +circuit +circuit's +circuited +circuiting +circuitous +circuitously +circuitry +circuitry's +circuits +circular +circular's +circularity +circularity's +circularize +circularized +circularizes +circularizing +circulars +circulate +circulated +circulates +circulating +circulation +circulation's +circulations +circulatory +circumcise +circumcised +circumcises +circumcising +circumcision +circumcision's +circumcisions +circumference +circumference's +circumferences +circumflex +circumflex's +circumflexes +circumlocution +circumlocution's +circumlocutions +circumnavigate +circumnavigated +circumnavigates +circumnavigating +circumnavigation +circumnavigation's +circumnavigations +circumscribe +circumscribed +circumscribes +circumscribing +circumscription +circumscription's +circumscriptions +circumspect +circumspection +circumspection's +circumstance +circumstance's +circumstanced +circumstances +circumstancing +circumstantial +circumstantially +circumvent +circumvented +circumventing +circumvention +circumvention's +circumvents +circus +circus's +circuses +cirrhosis +cirrhosis's +cirrus +cirrus's +cistern +cistern's +cisterns +citadel +citadel's +citadels +citation +citation's +citations +cite +cite's +cited +cites +cities +citing +citizen +citizen's +citizenry +citizenry's +citizens +citizenship +citizenship's +citric +citron +citron's +citronella +citronella's +citrons +citrous +citrus +citrus's +citruses +city +city's +civet +civet's +civets +civic +civics +civics's +civies +civil +civilian +civilian's +civilians +civilities +civility +civility's +civilization +civilization's +civilizations +civilize +civilized +civilizes +civilizing +civilly +civvies +civvies's +clack +clack's +clacked +clacking +clacks +clad +claim +claim's +claimant +claimant's +claimants +claimed +claiming +claims +clairvoyance +clairvoyance's +clairvoyant +clairvoyant's +clairvoyants +clam +clam's +clambake +clambake's +clambakes +clamber +clamber's +clambered +clambering +clambers +clammed +clammier +clammiest +clamminess +clamminess's +clamming +clammy +clamor +clamor's +clamored +clamoring +clamorous +clamors +clamp +clamp's +clampdown +clampdown's +clampdowns +clamped +clamping +clamps +clams +clan +clan's +clandestine +clandestinely +clang +clang's +clanged +clanging +clangor +clangor's +clangs +clank +clank's +clanked +clanking +clanks +clannish +clans +clap +clap's +clapboard +clapboard's +clapboarded +clapboarding +clapboards +clapped +clapper +clapper's +clappers +clapping +claps +claptrap +claptrap's +claret +claret's +clarets +clarification +clarification's +clarifications +clarified +clarifies +clarify +clarifying +clarinet +clarinet's +clarinetist +clarinetist's +clarinetists +clarinets +clarinettist +clarinettist's +clarinettists +clarion +clarion's +clarioned +clarioning +clarions +clarity +clarity's +clash +clash's +clashed +clashes +clashing +clasp +clasp's +clasped +clasping +clasps +class +class's +classed +classes +classic +classic's +classical +classical's +classically +classicism +classicism's +classicist +classicist's +classicists +classics +classier +classiest +classifiable +classification +classification's +classifications +classified +classified's +classifieds +classifies +classify +classifying +classiness +classiness's +classing +classless +classmate +classmate's +classmates +classroom +classroom's +classrooms +classy +clatter +clatter's +clattered +clattering +clatters +clause +clause's +clauses +claustrophobia +claustrophobia's +claustrophobic +clavichord +clavichord's +clavichords +clavicle +clavicle's +clavicles +claw +claw's +clawed +clawing +claws +clay +clay's +clayey +clayier +clayiest +clean +cleaned +cleaner +cleaner's +cleaners +cleanest +cleaning +cleaning's +cleanings +cleanlier +cleanliest +cleanliness +cleanliness's +cleanly +cleanness +cleanness's +cleans +cleanse +cleansed +cleanser +cleanser's +cleansers +cleanses +cleansing +cleanup +cleanup's +cleanups +clear +clear's +clearance +clearance's +clearances +cleared +clearer +clearest +clearing +clearing's +clearinghouse +clearinghouse's +clearinghouses +clearings +clearly +clearness +clearness's +clears +cleat +cleat's +cleats +cleavage +cleavage's +cleavages +cleave +cleaved +cleaver +cleaver's +cleavers +cleaves +cleaving +clef +clef's +clefs +cleft +cleft's +clefts +clematis +clematis's +clematises +clemency +clemency's +clement +clench +clench's +clenched +clenches +clenching +clerestories +clerestory +clerestory's +clergies +clergy +clergy's +clergyman +clergyman's +clergymen +clergywoman +clergywoman's +clergywomen +cleric +cleric's +clerical +clerics +clerk +clerk's +clerked +clerking +clerks +clever +cleverer +cleverest +cleverly +cleverness +cleverness's +clew +clew's +clewed +clewing +clews +cliché +cliché's +clichéd +clichés +click +click's +clicked +clicking +clicks +client +client's +clients +clientèle +clientèle's +clientèles +cliff +cliff's +cliffhanger +cliffhanger's +cliffhangers +cliffs +climactic +climate +climate's +climates +climatic +climax +climax's +climaxed +climaxes +climaxing +climb +climb's +climbed +climber +climber's +climbers +climbing +climbs +clime +clime's +climes +clinch +clinch's +clinched +clincher +clincher's +clinchers +clinches +clinching +cling +cling's +clingier +clingiest +clinging +clings +clingy +clinic +clinic's +clinical +clinically +clinician +clinician's +clinicians +clinics +clink +clink's +clinked +clinker +clinker's +clinkers +clinking +clinks +clip +clip's +clipboard +clipboard's +clipboards +clipped +clipper +clipper's +clippers +clipping +clipping's +clippings +clips +clipt +clique +clique's +cliques +cliquish +clitoral +clitoris +clitoris's +clitorises +cloak +cloak's +cloaked +cloaking +cloakroom +cloakroom's +cloakrooms +cloaks +clobber +clobber's +clobbered +clobbering +clobbers +cloche +cloche's +cloches +clock +clock's +clocked +clocking +clocks +clockwise +clockwork +clockwork's +clockworks +clod +clod's +clodhopper +clodhopper's +clodhoppers +clods +clog +clog's +clogged +clogging +clogs +cloister +cloister's +cloistered +cloistering +cloisters +clomp +clomped +clomping +clomps +clone +clone's +cloned +clones +cloning +clop +clop's +clopped +clopping +clops +close +close's +closed +closefisted +closely +closemouthed +closeness +closeness's +closeout +closeout's +closeouts +closer +closes +closest +closet +closet's +closeted +closeting +closets +closing +closure +closure's +closures +clot +clot's +cloth +cloth's +clothe +clothed +clothes +clothesline +clothesline's +clotheslines +clothespin +clothespin's +clothespins +clothier +clothier's +clothiers +clothing +clothing's +cloths +clots +clotted +clotting +cloture +cloture's +clotures +cloud +cloud's +cloudburst +cloudburst's +cloudbursts +clouded +cloudier +cloudiest +cloudiness +cloudiness's +clouding +cloudless +clouds +cloudy +clout +clout's +clouted +clouting +clouts +clove +clove's +cloven +clover +clover's +cloverleaf +cloverleaf's +cloverleafs +cloverleaves +clovers +cloves +clown +clown's +clowned +clowning +clownish +clownishly +clownishness +clownishness's +clowns +cloy +cloyed +cloying +cloys +club +club's +clubbed +clubbing +clubfeet +clubfoot +clubfoot's +clubhouse +clubhouse's +clubhouses +clubs +cluck +cluck's +clucked +clucking +clucks +clue +clue's +clued +clueing +clueless +clues +cluing +clump +clump's +clumped +clumping +clumps +clumsier +clumsiest +clumsily +clumsiness +clumsiness's +clumsy +clung +clunk +clunk's +clunked +clunker +clunker's +clunkers +clunkier +clunkiest +clunking +clunks +clunky +cluster +cluster's +clustered +clustering +clusters +clutch +clutch's +clutched +clutches +clutching +clutter +clutter's +cluttered +cluttering +clutters +coach +coach's +coached +coaches +coaching +coachman +coachman's +coachmen +coagulant +coagulant's +coagulants +coagulate +coagulated +coagulates +coagulating +coagulation +coagulation's +coal +coal's +coaled +coalesce +coalesced +coalescence +coalescence's +coalesces +coalescing +coaling +coalition +coalition's +coalitions +coals +coarse +coarsely +coarsen +coarsened +coarseness +coarseness's +coarsening +coarsens +coarser +coarsest +coast +coast's +coastal +coasted +coaster +coaster's +coasters +coasting +coastline +coastline's +coastlines +coasts +coat +coat's +coated +coating +coating's +coatings +coats +coauthor +coauthor's +coauthored +coauthoring +coauthors +coax +coaxed +coaxes +coaxing +cob +cob's +cobalt +cobalt's +cobble +cobble's +cobbled +cobbler +cobbler's +cobblers +cobbles +cobblestone +cobblestone's +cobblestones +cobbling +cobra +cobra's +cobras +cobs +cobweb +cobweb's +cobwebs +cocaine +cocaine's +cocci +coccis +coccus +coccus's +coccyges +coccyx +coccyx's +coccyxes +cochlea +cochlea's +cochleae +cochleas +cock +cock's +cockade +cockade's +cockades +cockamamie +cockatoo +cockatoo's +cockatoos +cocked +cockerel +cockerel's +cockerels +cockeyed +cockfight +cockfight's +cockfights +cockier +cockiest +cockily +cockiness +cockiness's +cocking +cockle +cockle's +cockles +cockleshell +cockleshell's +cockleshells +cockney +cockney's +cockneys +cockpit +cockpit's +cockpits +cockroach +cockroach's +cockroaches +cocks +cockscomb +cockscomb's +cockscombs +cocksucker +cocksucker's +cocksuckers +cocksure +cocktail +cocktail's +cocktails +cocky +cocoa +cocoa's +cocoanut +cocoanut's +cocoanuts +cocoas +coconut +coconut's +coconuts +cocoon +cocoon's +cocooned +cocooning +cocoons +cod +cod's +coda +coda's +codas +codded +codding +coddle +coddled +coddles +coddling +code +code's +coded +codeine +codeine's +codependency +codependency's +codependent +codependent's +codependents +codes +codex +codex's +codfish +codfish's +codfishes +codger +codger's +codgers +codices +codicil +codicil's +codicils +codification +codification's +codifications +codified +codifies +codify +codifying +coding +cods +coed +coed's +coeds +coeducation +coeducation's +coeducational +coefficient +coefficient's +coefficients +coequal +coequal's +coequals +coerce +coerced +coerces +coercing +coercion +coercion's +coercive +coeval +coeval's +coevals +coexist +coexisted +coexistence +coexistence's +coexisting +coexists +coffee +coffee's +coffeecake +coffeecake's +coffeecakes +coffeehouse +coffeehouse's +coffeehouses +coffeepot +coffeepot's +coffeepots +coffees +coffer +coffer's +coffers +coffin +coffin's +coffined +coffining +coffins +cog +cog's +cogency +cogency's +cogent +cogently +cogitate +cogitated +cogitates +cogitating +cogitation +cogitation's +cognac +cognac's +cognacs +cognate +cognate's +cognates +cognition +cognition's +cognitive +cognizance +cognizance's +cognizant +cognomen +cognomen's +cognomens +cognomina +cogs +cogwheel +cogwheel's +cogwheels +cohabit +cohabitation +cohabitation's +cohabited +cohabiting +cohabits +cohere +cohered +coherence +coherence's +coherent +coherently +coheres +cohering +cohesion +cohesion's +cohesive +cohesively +cohesiveness +cohesiveness's +cohort +cohort's +cohorts +coif +coif's +coifed +coiffed +coiffing +coiffure +coiffure's +coiffured +coiffures +coiffuring +coifing +coifs +coil +coil's +coiled +coiling +coils +coin +coin's +coinage +coinage's +coinages +coincide +coincided +coincidence +coincidence's +coincidences +coincident +coincidental +coincidentally +coincides +coinciding +coined +coining +coins +coital +coitus +coitus's +coke +coke's +coked +cokes +coking +cola +cola's +colander +colander's +colanders +colas +cold +cold's +colder +coldest +coldly +coldness +coldness's +colds +coleslaw +coleslaw's +colic +colic's +colicky +coliseum +coliseum's +coliseums +colitis +colitis's +collaborate +collaborated +collaborates +collaborating +collaboration +collaboration's +collaborations +collaborative +collaborator +collaborator's +collaborators +collage +collage's +collages +collapse +collapse's +collapsed +collapses +collapsible +collapsing +collar +collar's +collarbone +collarbone's +collarbones +collared +collaring +collars +collate +collated +collateral +collateral's +collates +collating +collation +collation's +collations +colleague +colleague's +colleagues +collect +collect's +collectable +collectable's +collectables +collected +collectible +collectible's +collectibles +collecting +collection +collection's +collections +collective +collective's +collectively +collectives +collectivism +collectivism's +collectivist +collectivist's +collectivists +collectivize +collectivized +collectivizes +collectivizing +collector +collector's +collectors +collects +colleen +colleen's +colleens +college +college's +colleges +collegian +collegian's +collegians +collegiate +collide +collided +collides +colliding +collie +collie's +collier +collier's +collieries +colliers +colliery +colliery's +collies +collision +collision's +collisions +collocate +collocate's +collocated +collocates +collocating +collocation +collocation's +collocations +colloid +colloid's +colloids +colloquia +colloquial +colloquialism +colloquialism's +colloquialisms +colloquially +colloquies +colloquium +colloquium's +colloquiums +colloquy +colloquy's +collude +colluded +colludes +colluding +collusion +collusion's +collusive +cologne +cologne's +colognes +colon +colon's +colonel +colonel's +colonels +colones +colonial +colonial's +colonialism +colonialism's +colonialist +colonialist's +colonialists +colonials +colonies +colonist +colonist's +colonists +colonization +colonization's +colonize +colonized +colonizer +colonizer's +colonizers +colonizes +colonizing +colonnade +colonnade's +colonnades +colons +colony +colony's +color +color's +coloration +coloration's +coloratura +coloratura's +coloraturas +colorblind +colored +colored's +coloreds +colorfast +colorful +colorfully +coloring +coloring's +colorless +colors +colossal +colossally +colossi +colossus +colossus's +colossuses +cols +colt +colt's +coltish +colts +columbine +columbine's +columbines +column +column's +columned +columnist +columnist's +columnists +columns +coma +coma's +comas +comatose +comb +comb's +combat +combat's +combatant +combatant's +combatants +combated +combating +combative +combats +combatted +combatting +combed +combination +combination's +combinations +combine +combine's +combined +combines +combing +combining +combo +combo's +combos +combs +combustibility +combustibility's +combustible +combustible's +combustibles +combustion +combustion's +come +come's +comeback +comeback's +comebacks +comedian +comedian's +comedians +comedic +comedienne +comedienne's +comediennes +comedies +comedown +comedown's +comedowns +comedy +comedy's +comelier +comeliest +comeliness +comeliness's +comely +comer +comer's +comers +comes +comestible +comestible's +comestibles +comet +comet's +comets +comeuppance +comeuppance's +comeuppances +comfier +comfiest +comfort +comfort's +comfortable +comfortably +comforted +comforter +comforter's +comforters +comforting +comfortingly +comforts +comfy +comic +comic's +comical +comically +comics +coming +coming's +comings +comity +comity's +comma +comma's +command +command's +commandant +commandant's +commandants +commanded +commandeer +commandeered +commandeering +commandeers +commander +commander's +commanders +commanding +commandment +commandment's +commandments +commando +commando's +commandoes +commandos +commands +commas +commemorate +commemorated +commemorates +commemorating +commemoration +commemoration's +commemorations +commemorative +commence +commenced +commencement +commencement's +commencements +commences +commencing +commend +commendable +commendably +commendation +commendation's +commendations +commended +commending +commends +commensurable +commensurate +comment +comment's +commentaries +commentary +commentary's +commentate +commentated +commentates +commentating +commentator +commentator's +commentators +commented +commenting +comments +commerce +commerce's +commercial +commercial's +commercialism +commercialism's +commercialization +commercialization's +commercialize +commercialized +commercializes +commercializing +commercially +commercials +commingle +commingled +commingles +commingling +commiserate +commiserated +commiserates +commiserating +commiseration +commiseration's +commiserations +commissar +commissar's +commissariat +commissariat's +commissariats +commissaries +commissars +commissary +commissary's +commission +commission's +commissioned +commissioner +commissioner's +commissioners +commissioning +commissions +commit +commitment +commitment's +commitments +commits +committal +committal's +committals +committed +committee +committee's +committees +committing +commode +commode's +commodes +commodious +commodities +commodity +commodity's +commodore +commodore's +commodores +common +common's +commoner +commoner's +commoners +commonest +commonly +commonplace +commonplace's +commonplaces +commons +commonwealth +commonwealth's +commonwealths +commotion +commotion's +commotions +communal +communally +commune +commune's +communed +communes +communicable +communicant +communicant's +communicants +communicate +communicated +communicates +communicating +communication +communication's +communications +communicative +communicator +communicator's +communicators +communing +communion +communion's +communions +communique +communique's +communiques +communism +communism's +communist +communist's +communistic +communists +communities +community +community's +commutation +commutation's +commutations +commutative +commute +commute's +commuted +commuter +commuter's +commuters +commutes +commuting +compact +compact's +compacted +compacter +compactest +compacting +compaction +compactly +compactness +compactness's +compactor +compactor's +compactors +compacts +companies +companion +companion's +companionable +companions +companionship +companionship's +companionway +companionway's +companionways +company +company's +comparability +comparability's +comparable +comparably +comparative +comparative's +comparatively +comparatives +compare +compare's +compared +compares +comparing +comparison +comparison's +comparisons +compartment +compartment's +compartmentalize +compartmentalized +compartmentalizes +compartmentalizing +compartments +compass +compass's +compassed +compasses +compassing +compassion +compassion's +compassionate +compassionately +compatibility +compatibility's +compatible +compatible's +compatibles +compatibly +compatriot +compatriot's +compatriots +compel +compelled +compelling +compellingly +compels +compendia +compendium +compendium's +compendiums +compensate +compensated +compensates +compensating +compensation +compensation's +compensations +compensatory +compete +competed +competence +competence's +competences +competencies +competency +competency's +competent +competently +competes +competing +competition +competition's +competitions +competitive +competitively +competitiveness +competitiveness's +competitor +competitor's +competitors +compilation +compilation's +compilations +compile +compiled +compiler +compiler's +compilers +compiles +compiling +complacence +complacence's +complacency +complacency's +complacent +complacently +complain +complainant +complainant's +complainants +complained +complainer +complainer's +complainers +complaining +complains +complaint +complaint's +complaints +complaisance +complaisance's +complaisant +complaisantly +complected +complement +complement's +complementary +complemented +complementing +complements +complete +completed +completely +completeness +completeness's +completer +completes +completest +completing +completion +completion's +complex +complex's +complexes +complexion +complexion's +complexioned +complexions +complexities +complexity +complexity's +compliance +compliance's +compliant +complicate +complicated +complicates +complicating +complication +complication's +complications +complicity +complicity's +complied +complies +compliment +compliment's +complimentary +complimented +complimenting +compliments +comply +complying +component +component's +components +comport +comported +comporting +comportment +comportment's +comports +compose +composed +composer +composer's +composers +composes +composing +composite +composite's +composites +composition +composition's +compositions +compositor +compositor's +compositors +compost +compost's +composted +composting +composts +composure +composure's +compote +compote's +compotes +compound +compound's +compounded +compounding +compounds +comprehend +comprehended +comprehending +comprehends +comprehensibility +comprehensibility's +comprehensible +comprehension +comprehension's +comprehensions +comprehensive +comprehensive's +comprehensively +comprehensiveness +comprehensiveness's +comprehensives +compress +compress's +compressed +compresses +compressing +compression +compression's +compressor +compressor's +compressors +comprise +comprised +comprises +comprising +compromise +compromise's +compromised +compromises +compromising +comptroller +comptroller's +comptrollers +compulsion +compulsion's +compulsions +compulsive +compulsively +compulsiveness +compulsiveness's +compulsories +compulsorily +compulsory +compulsory's +compunction +compunction's +compunctions +computation +computation's +computational +computationally +computations +compute +computed +computer +computer's +computerization +computerization's +computerize +computerized +computerizes +computerizing +computers +computes +computing +computing's +comrade +comrade's +comrades +comradeship +comradeship's +con +con's +concatenate +concatenated +concatenates +concatenating +concatenation +concatenation's +concatenations +concave +concavities +concavity +concavity's +conceal +concealed +concealing +concealment +concealment's +conceals +concede +conceded +concedes +conceding +conceit +conceit's +conceited +conceits +conceivable +conceivably +conceive +conceived +conceives +conceiving +concentrate +concentrate's +concentrated +concentrates +concentrating +concentration +concentration's +concentrations +concentric +concentrically +concept +concept's +conception +conception's +conceptions +concepts +conceptual +conceptualization +conceptualization's +conceptualizations +conceptualize +conceptualized +conceptualizes +conceptualizing +conceptually +concern +concern's +concerned +concerning +concerns +concert +concert's +concerted +concerti +concertina +concertina's +concertinaed +concertinaing +concertinas +concerting +concertmaster +concertmaster's +concertmasters +concerto +concerto's +concertos +concerts +concession +concession's +concessionaire +concessionaire's +concessionaires +concessions +conch +conch's +conches +conchs +concierge +concierge's +concierges +conciliate +conciliated +conciliates +conciliating +conciliation +conciliation's +conciliator +conciliator's +conciliators +conciliatory +concise +concisely +conciseness +conciseness's +conciser +concisest +conclave +conclave's +conclaves +conclude +concluded +concludes +concluding +conclusion +conclusion's +conclusions +conclusive +conclusively +concoct +concocted +concocting +concoction +concoction's +concoctions +concocts +concomitant +concomitant's +concomitants +concord +concord's +concordance +concordance's +concordances +concordant +concourse +concourse's +concourses +concrete +concrete's +concreted +concretely +concretes +concreting +concubine +concubine's +concubines +concur +concurred +concurrence +concurrence's +concurrences +concurrency +concurrent +concurrently +concurring +concurs +concussion +concussion's +concussions +condemn +condemnation +condemnation's +condemnations +condemnatory +condemned +condemning +condemns +condensation +condensation's +condensations +condense +condensed +condenser +condenser's +condensers +condenses +condensing +condescend +condescended +condescending +condescendingly +condescends +condescension +condescension's +condiment +condiment's +condiments +condition +condition's +conditional +conditional's +conditionally +conditionals +conditioned +conditioner +conditioner's +conditioners +conditioning +conditions +condo +condo's +condoes +condole +condoled +condolence +condolence's +condolences +condoles +condoling +condom +condom's +condominium +condominium's +condominiums +condoms +condone +condoned +condones +condoning +condor +condor's +condors +condos +conduce +conduced +conduces +conducing +conducive +conduct +conduct's +conducted +conducting +conduction +conduction's +conductive +conductivity +conductivity's +conductor +conductor's +conductors +conducts +conduit +conduit's +conduits +cone +cone's +cones +confab +confab's +confabbed +confabbing +confabs +confection +confection's +confectioner +confectioner's +confectioneries +confectioners +confectionery +confectionery's +confections +confederacies +confederacy +confederacy's +confederate +confederate's +confederated +confederates +confederating +confederation +confederation's +confederations +confer +conference +conference's +conferences +conferencing +conferment +conferment's +conferments +conferred +conferrer +conferring +confers +confess +confessed +confessedly +confesses +confessing +confession +confession's +confessional +confessional's +confessionals +confessions +confessor +confessor's +confessors +confetti +confetti's +confidant +confidant's +confidante +confidante's +confidantes +confidants +confide +confided +confidence +confidence's +confidences +confident +confidential +confidentiality +confidentiality's +confidentially +confidently +confides +confiding +configurable +configuration +configuration's +configurations +configure +configured +configures +configuring +confine +confine's +confined +confinement +confinement's +confinements +confines +confining +confirm +confirmation +confirmation's +confirmations +confirmatory +confirmed +confirming +confirms +confiscate +confiscated +confiscates +confiscating +confiscation +confiscation's +confiscations +conflagration +conflagration's +conflagrations +conflict +conflict's +conflicted +conflicting +conflicts +confluence +confluence's +confluences +confluent +conform +conformance +conformation +conformation's +conformations +conformed +conforming +conformist +conformist's +conformists +conformity +conformity's +conforms +confound +confounded +confounding +confounds +confront +confrontation +confrontation's +confrontational +confrontations +confronted +confronting +confronts +confrère +confrère's +confrères +confuse +confused +confusedly +confuses +confusing +confusingly +confusion +confusion's +confusions +confute +confuted +confutes +confuting +conga +conga's +congaed +congaing +congas +congeal +congealed +congealing +congeals +congenial +congeniality +congeniality's +congenially +congenital +congenitally +congest +congested +congesting +congestion +congestion's +congestive +congests +conglomerate +conglomerate's +conglomerated +conglomerates +conglomerating +conglomeration +conglomeration's +conglomerations +congratulate +congratulated +congratulates +congratulating +congratulation +congratulation's +congratulations +congratulatory +congregate +congregated +congregates +congregating +congregation +congregation's +congregational +congregations +congress +congress's +congresses +congressional +congressman +congressman's +congressmen +congresswoman +congresswoman's +congresswomen +congruence +congruence's +congruent +congruities +congruity +congruity's +congruous +conic +conic's +conical +conics +conifer +conifer's +coniferous +conifers +conjectural +conjecture +conjecture's +conjectured +conjectures +conjecturing +conjoin +conjoined +conjoining +conjoins +conjoint +conjugal +conjugate +conjugated +conjugates +conjugating +conjugation +conjugation's +conjugations +conjunction +conjunction's +conjunctions +conjunctive +conjunctive's +conjunctives +conjunctivitis +conjunctivitis's +conjuncture +conjuncture's +conjunctures +conjure +conjured +conjurer +conjurer's +conjurers +conjures +conjuring +conjuror +conjuror's +conjurors +conk +conk's +conked +conking +conks +connect +connected +connecter +connecter's +connecters +connecting +connection +connection's +connections +connective +connective's +connectives +connectivity +connector +connector's +connectors +connects +conned +conning +connivance +connivance's +connive +connived +conniver +conniver's +connivers +connives +conniving +connoisseur +connoisseur's +connoisseurs +connotation +connotation's +connotations +connotative +connote +connoted +connotes +connoting +connubial +conquer +conquered +conquering +conqueror +conqueror's +conquerors +conquers +conquest +conquest's +conquests +conquistador +conquistador's +conquistadores +conquistadors +cons +consanguinity +consanguinity's +conscience +conscience's +consciences +conscientious +conscientiously +conscientiousness +conscientiousness's +conscious +consciously +consciousness +consciousness's +consciousnesses +conscript +conscript's +conscripted +conscripting +conscription +conscription's +conscripts +consecrate +consecrated +consecrates +consecrating +consecration +consecration's +consecrations +consecutive +consecutively +consensual +consensus +consensus's +consensuses +consent +consent's +consented +consenting +consents +consequence +consequence's +consequences +consequent +consequential +consequently +conservation +conservation's +conservationist +conservationist's +conservationists +conservatism +conservatism's +conservative +conservative's +conservatively +conservatives +conservator +conservator's +conservatories +conservators +conservatory +conservatory's +conserve +conserve's +conserved +conserves +conserving +consider +considerable +considerably +considerate +considerately +consideration +consideration's +considerations +considered +considering +considers +consign +consigned +consigning +consignment +consignment's +consignments +consigns +consist +consisted +consistencies +consistency +consistency's +consistent +consistently +consisting +consists +consolation +consolation's +consolations +console +console's +consoled +consoles +consolidate +consolidated +consolidates +consolidating +consolidation +consolidation's +consolidations +consoling +consommé +consommé's +consonance +consonance's +consonances +consonant +consonant's +consonants +consort +consort's +consorted +consortia +consorting +consortium +consortium's +consortiums +consorts +conspicuous +conspicuously +conspiracies +conspiracy +conspiracy's +conspirator +conspirator's +conspiratorial +conspirators +conspire +conspired +conspires +conspiring +constable +constable's +constables +constabularies +constabulary +constabulary's +constancy +constancy's +constant +constant's +constantly +constants +constellation +constellation's +constellations +consternation +consternation's +constipate +constipated +constipates +constipating +constipation +constipation's +constituencies +constituency +constituency's +constituent +constituent's +constituents +constitute +constituted +constitutes +constituting +constitution +constitution's +constitutional +constitutional's +constitutionality +constitutionality's +constitutionally +constitutionals +constitutions +constrain +constrained +constraining +constrains +constraint +constraint's +constraints +constrict +constricted +constricting +constriction +constriction's +constrictions +constrictive +constrictor +constrictor's +constrictors +constricts +construct +construct's +constructed +constructing +construction +construction's +constructions +constructive +constructively +constructor +constructor's +constructors +constructs +construe +construed +construes +construing +consul +consul's +consular +consulate +consulate's +consulates +consuls +consult +consultancies +consultancy +consultancy's +consultant +consultant's +consultants +consultation +consultation's +consultations +consultative +consulted +consulting +consults +consumable +consumable's +consumables +consume +consumed +consumer +consumer's +consumerism +consumerism's +consumers +consumes +consuming +consummate +consummated +consummates +consummating +consummation +consummation's +consummations +consumption +consumption's +consumptive +consumptive's +consumptives +contact +contact's +contactable +contacted +contacting +contacts +contagion +contagion's +contagions +contagious +contain +contained +container +container's +containers +containing +containment +containment's +contains +contaminant +contaminant's +contaminants +contaminate +contaminated +contaminates +contaminating +contamination +contamination's +contemplate +contemplated +contemplates +contemplating +contemplation +contemplation's +contemplative +contemplative's +contemplatives +contemporaneous +contemporaneously +contemporaries +contemporary +contemporary's +contempt +contempt's +contemptible +contemptibly +contemptuous +contemptuously +contend +contended +contender +contender's +contenders +contending +contends +content +content's +contented +contentedly +contentedness +contentedness's +contenting +contention +contention's +contentions +contentious +contentiously +contentment +contentment's +contents +contest +contest's +contestant +contestant's +contestants +contested +contesting +contests +context +context's +contexts +contextual +contiguity +contiguity's +contiguous +continence +continence's +continent +continent's +continental +continental's +continentals +continents +contingencies +contingency +contingency's +contingent +contingent's +contingents +continua +continual +continually +continuance +continuance's +continuances +continuation +continuation's +continuations +continue +continued +continues +continuing +continuity +continuity's +continuous +continuously +continuum +continuum's +continuums +contort +contorted +contorting +contortion +contortion's +contortionist +contortionist's +contortionists +contortions +contorts +contour +contour's +contoured +contouring +contours +contraband +contraband's +contraception +contraception's +contraceptive +contraceptive's +contraceptives +contract +contract's +contracted +contractile +contracting +contraction +contraction's +contractions +contractor +contractor's +contractors +contracts +contractual +contractually +contradict +contradicted +contradicting +contradiction +contradiction's +contradictions +contradictory +contradicts +contradistinction +contradistinction's +contradistinctions +contrail +contrail's +contrails +contralto +contralto's +contraltos +contraption +contraption's +contraptions +contrapuntal +contraries +contrarily +contrariness +contrariness's +contrariwise +contrary +contrary's +contrast +contrast's +contrasted +contrasting +contrasts +contravene +contravened +contravenes +contravening +contravention +contravention's +contraventions +contretemps +contretemps's +contribute +contributed +contributes +contributing +contribution +contribution's +contributions +contributor +contributor's +contributors +contributory +contrite +contritely +contrition +contrition's +contrivance +contrivance's +contrivances +contrive +contrived +contrives +contriving +control +control's +controllable +controlled +controller +controller's +controllers +controlling +controls +controversial +controversially +controversies +controversy +controversy's +controvert +controverted +controverting +controverts +contumacious +contumelies +contumely +contumely's +contuse +contused +contuses +contusing +contusion +contusion's +contusions +conundrum +conundrum's +conundrums +conurbation +conurbation's +conurbations +convalesce +convalesced +convalescence +convalescence's +convalescences +convalescent +convalescent's +convalescents +convalesces +convalescing +convection +convection's +convene +convened +convenes +convenience +convenience's +conveniences +convenient +conveniently +convening +convent +convent's +convention +convention's +conventional +conventionality +conventionality's +conventionally +conventions +convents +converge +converged +convergence +convergence's +convergences +convergent +converges +converging +conversant +conversation +conversation's +conversational +conversationalist +conversationalist's +conversationalists +conversationally +conversations +converse +converse's +conversed +conversely +converses +conversing +conversion +conversion's +conversions +convert +convert's +converted +converter +converter's +converters +convertible +convertible's +convertibles +converting +convertor +convertor's +convertors +converts +convex +convexity +convexity's +convey +conveyance +conveyance's +conveyances +conveyed +conveyer +conveyer's +conveyers +conveying +conveyor +conveyor's +conveyors +conveys +convict +convict's +convicted +convicting +conviction +conviction's +convictions +convicts +convince +convinced +convinces +convincing +convincingly +convivial +conviviality +conviviality's +convocation +convocation's +convocations +convoke +convoked +convokes +convoking +convoluted +convolution +convolution's +convolutions +convoy +convoy's +convoyed +convoying +convoys +convulse +convulsed +convulses +convulsing +convulsion +convulsion's +convulsions +convulsive +convulsively +coo +coo's +cooed +cooing +cook +cook's +cookbook +cookbook's +cookbooks +cooked +cooker +cooker's +cookeries +cookers +cookery +cookery's +cookie +cookie's +cookies +cooking +cooking's +cookout +cookout's +cookouts +cooks +cooky +cooky's +cool +cool's +coolant +coolant's +coolants +cooled +cooler +cooler's +coolers +coolest +coolie +coolie's +coolies +cooling +coolly +coolness +coolness's +cools +coon +coon's +coons +coop +coop's +cooped +cooper +cooper's +cooperate +cooperated +cooperates +cooperating +cooperation +cooperation's +cooperative +cooperative's +cooperatively +cooperatives +coopered +coopering +coopers +cooping +coops +coordinate +coordinate's +coordinated +coordinates +coordinating +coordination +coordination's +coordinator +coordinator's +coordinators +coos +coot +coot's +cootie +cootie's +cooties +coots +cop +cop's +cope +cope's +copeck +copeck's +copecks +coped +copes +copied +copier +copier's +copiers +copies +copilot +copilot's +copilots +coping +coping's +copings +copious +copiously +copped +copper +copper's +copperhead +copperhead's +copperheads +coppers +coppery +coppice +coppice's +coppices +copping +copra +copra's +cops +copse +copse's +copses +copter +copter's +copters +copula +copula's +copulae +copulas +copulate +copulated +copulates +copulating +copulation +copulation's +copy +copy's +copycat +copycat's +copycats +copycatted +copycatting +copying +copyright +copyright's +copyrighted +copyrighting +copyrights +copywriter +copywriter's +copywriters +coquette +coquette's +coquetted +coquettes +coquetting +coquettish +coral +coral's +corals +cord +cord's +corded +cordial +cordial's +cordiality +cordiality's +cordially +cordials +cording +cordite +cordite's +cordless +cordon +cordon's +cordoned +cordoning +cordons +cords +corduroy +corduroy's +corduroys +corduroys's +core +core's +cored +cores +corespondent +corespondent's +corespondents +coriander +coriander's +coring +cork +cork's +corked +corking +corks +corkscrew +corkscrew's +corkscrewed +corkscrewing +corkscrews +corm +corm's +cormorant +cormorant's +cormorants +corms +corn +corn's +cornball +cornball's +cornballs +cornbread +cornbread's +corncob +corncob's +corncobs +cornea +cornea's +corneal +corneas +corned +corner +corner's +cornered +cornering +corners +cornerstone +cornerstone's +cornerstones +cornet +cornet's +cornets +cornflakes +cornflakes's +cornflower +cornflower's +cornflowers +cornice +cornice's +cornices +cornier +corniest +corning +cornmeal +cornmeal's +cornrow +cornrow's +cornrowed +cornrowing +cornrows +corns +cornstalk +cornstalk's +cornstalks +cornstarch +cornstarch's +cornucopia +cornucopia's +cornucopias +corny +corolla +corolla's +corollaries +corollary +corollary's +corollas +corona +corona's +coronae +coronaries +coronary +coronary's +coronas +coronation +coronation's +coronations +coroner +coroner's +coroners +coronet +coronet's +coronets +corpora +corporal +corporal's +corporals +corporate +corporation +corporation's +corporations +corporeal +corps +corps's +corpse +corpse's +corpses +corpulence +corpulence's +corpulent +corpus +corpus's +corpuscle +corpuscle's +corpuscles +corpuses +corral +corral's +corralled +corralling +corrals +correct +correctable +corrected +correcter +correctest +correcting +correction +correction's +correctional +corrections +corrective +corrective's +correctives +correctly +correctness +correctness's +corrector +corrects +correlate +correlate's +correlated +correlates +correlating +correlation +correlation's +correlations +correlative +correlative's +correlatives +correspond +corresponded +correspondence +correspondence's +correspondences +correspondent +correspondent's +correspondents +corresponding +correspondingly +corresponds +corridor +corridor's +corridors +corroborate +corroborated +corroborates +corroborating +corroboration +corroboration's +corroborations +corroborative +corrode +corroded +corrodes +corroding +corrosion +corrosion's +corrosive +corrosive's +corrosives +corrugate +corrugated +corrugates +corrugating +corrugation +corrugation's +corrugations +corrupt +corrupted +corrupter +corruptest +corruptible +corrupting +corruption +corruption's +corruptions +corruptly +corruptness +corruptness's +corrupts +corsage +corsage's +corsages +corsair +corsair's +corsairs +corset +corset's +corseted +corseting +corsets +cortex +cortex's +cortexes +cortical +cortices +cortisone +cortisone's +cortège +cortège's +cortèges +coruscate +coruscated +coruscates +coruscating +cosier +cosies +cosiest +cosign +cosignatories +cosignatory +cosignatory's +cosigned +cosigner +cosigner's +cosigners +cosigning +cosigns +cosine +cosmetic +cosmetic's +cosmetically +cosmetics +cosmetologist +cosmetologist's +cosmetologists +cosmetology +cosmetology's +cosmic +cosmically +cosmogonies +cosmogony +cosmogony's +cosmological +cosmologies +cosmologist +cosmologist's +cosmologists +cosmology +cosmology's +cosmonaut +cosmonaut's +cosmonauts +cosmopolitan +cosmopolitan's +cosmopolitans +cosmos +cosmos's +cosmoses +cosponsor +cosponsor's +cosponsored +cosponsoring +cosponsors +cost +cost's +costar +costar's +costarred +costarring +costars +costed +costing +costings +costlier +costliest +costliness +costliness's +costly +costs +costume +costume's +costumed +costumes +costuming +cosy +cosy's +cot +cot's +cote +cote's +coterie +coterie's +coteries +cotes +cotillion +cotillion's +cotillions +cots +cottage +cottage's +cottages +cotter +cotter's +cotters +cotton +cotton's +cottoned +cottoning +cottonmouth +cottonmouth's +cottonmouths +cottons +cottonseed +cottonseed's +cottonseeds +cottontail +cottontail's +cottontails +cottonwood +cottonwood's +cottonwoods +cotyledon +cotyledon's +cotyledons +couch +couch's +couched +couches +couching +cougar +cougar's +cougars +cough +cough's +coughed +coughing +coughs +could +couldn't +council +council's +councillor +councillor's +councillors +councilman +councilman's +councilmen +councilor +councilor's +councilors +councils +councilwoman +councilwoman's +councilwomen +counsel +counsel's +counseled +counseling +counselings +counselled +counsellor +counsellor's +counsellors +counselor +counselor's +counselors +counsels +count +count's +countable +countably +countdown +countdown's +countdowns +counted +countenance +countenance's +countenanced +countenances +countenancing +counter +counter's +counteract +counteracted +counteracting +counteraction +counteraction's +counteractions +counteracts +counterattack +counterattack's +counterattacked +counterattacking +counterattacks +counterbalance +counterbalance's +counterbalanced +counterbalances +counterbalancing +counterclaim +counterclaim's +counterclaimed +counterclaiming +counterclaims +counterclockwise +counterculture +counterculture's +countered +counterespionage +counterespionage's +counterexample +counterexamples +counterfeit +counterfeit's +counterfeited +counterfeiter +counterfeiter's +counterfeiters +counterfeiting +counterfeits +countering +counterintelligence +counterintelligence's +countermand +countermand's +countermanded +countermanding +countermands +counteroffer +counteroffer's +counteroffers +counterpane +counterpane's +counterpanes +counterpart +counterpart's +counterparts +counterpoint +counterpoint's +counterpoints +counterproductive +counterrevolution +counterrevolution's +counterrevolutionaries +counterrevolutionary +counterrevolutionary's +counterrevolutions +counters +countersank +countersign +countersign's +countersigned +countersigning +countersigns +countersink +countersink's +countersinking +countersinks +countersunk +countertenor +countertenor's +countertenors +counterweight +counterweight's +counterweights +countess +countess's +countesses +counties +counting +countless +countries +countrified +country +country's +countryman +countryman's +countrymen +countryside +countryside's +countrysides +countrywoman +countrywoman's +countrywomen +counts +county +county's +coup +coup's +coupe +coupe's +coupes +couple +couple's +coupled +couples +couplet +couplet's +couplets +coupling +coupling's +couplings +coupon +coupon's +coupons +coups +courage +courage's +courageous +courageously +courier +courier's +couriers +course +course's +coursed +courser +courses +coursing +court +court's +courted +courteous +courteously +courteousness +courteousness's +courtesan +courtesan's +courtesans +courtesies +courtesy +courtesy's +courthouse +courthouse's +courthouses +courtier +courtier's +courtiers +courting +courtlier +courtliest +courtliness +courtliness's +courtly +courtroom +courtroom's +courtrooms +courts +courtship +courtship's +courtships +courtyard +courtyard's +courtyards +cousin +cousin's +cousins +cove +cove's +coven +coven's +covenant +covenant's +covenanted +covenanting +covenants +covens +cover +cover's +coverage +coverage's +coverall +coverall's +coveralls +covered +covering +covering's +coverings +coverlet +coverlet's +coverlets +covers +covert +covert's +covertly +coverts +coves +covet +coveted +coveting +covetous +covetously +covetousness +covetousness's +covets +covey +covey's +coveys +cow +cow's +coward +coward's +cowardice +cowardice's +cowardliness +cowardliness's +cowardly +cowards +cowbird +cowbird's +cowbirds +cowboy +cowboy's +cowboys +cowed +cower +cowered +cowering +cowers +cowgirl +cowgirl's +cowgirls +cowhand +cowhand's +cowhands +cowhide +cowhide's +cowhides +cowing +cowl +cowl's +cowlick +cowlick's +cowlicks +cowling +cowling's +cowlings +cowls +coworker +coworker's +coworkers +cowpoke +cowpoke's +cowpokes +cowpox +cowpox's +cowpuncher +cowpuncher's +cowpunchers +cows +cowslip +cowslip's +cowslips +cox +coxcomb +coxcomb's +coxcombs +coxswain +coxswain's +coxswains +coy +coyer +coyest +coyly +coyness +coyness's +coyote +coyote's +coyotes +cozen +cozened +cozening +cozens +cozier +cozies +coziest +cozily +coziness +coziness's +cozy +cozy's +crab +crab's +crabbed +crabbier +crabbiest +crabbily +crabbiness +crabbiness's +crabbing +crabby +crabs +crack +crack's +crackdown +crackdown's +crackdowns +cracked +cracker +cracker's +crackerjack +crackerjack's +crackerjacks +crackers +cracking +crackle +crackle's +crackled +crackles +cracklier +crackliest +crackling +crackly +crackpot +crackpot's +crackpots +cracks +crackup +crackup's +crackups +cradle +cradle's +cradled +cradles +cradling +craft +craft's +crafted +craftier +craftiest +craftily +craftiness +craftiness's +crafting +crafts +craftsman +craftsman's +craftsmanship +craftsmanship's +craftsmen +crafty +crag +crag's +craggier +craggiest +craggy +crags +cram +crammed +cramming +cramp +cramp's +cramped +cramping +cramps +crams +cranberries +cranberry +cranberry's +crane +crane's +craned +cranes +crania +cranial +craning +cranium +cranium's +craniums +crank +crank's +crankcase +crankcase's +crankcases +cranked +crankier +crankiest +crankiness +crankiness's +cranking +cranks +crankshaft +crankshaft's +crankshafts +cranky +crannies +cranny +cranny's +crap +crap's +crape +crape's +crapes +crapped +crappier +crappiest +crapping +crappy +craps +craps's +crash +crash's +crashed +crashes +crashing +crass +crasser +crassest +crassly +crassness +crassness's +crate +crate's +crated +crater +crater's +cratered +cratering +craters +crates +crating +cravat +cravat's +cravats +crave +craved +craven +craven's +cravenly +cravens +craves +craving +craving's +cravings +craw +craw's +crawfish +crawfish's +crawfishes +crawl +crawl's +crawled +crawling +crawls +crawlspace +crawlspace's +crawlspaces +craws +crayfish +crayfish's +crayfishes +crayon +crayon's +crayoned +crayoning +crayons +craze +craze's +crazed +crazes +crazier +crazies +craziest +crazily +craziness +craziness's +crazing +crazy +crazy's +creak +creak's +creaked +creakier +creakiest +creaking +creaks +creaky +cream +cream's +creamed +creamer +creamer's +creameries +creamers +creamery +creamery's +creamier +creamiest +creaminess +creaminess's +creaming +creams +creamy +crease +crease's +creased +creases +creasing +create +created +creates +creating +creation +creation's +creationism +creationism's +creations +creative +creative's +creatively +creativeness +creativeness's +creatives +creativity +creativity's +creator +creator's +creators +creature +creature's +creatures +credence +credence's +credential +credential's +credentials +credenza +credenza's +credenzas +credibility +credibility's +credible +credibly +credit +credit's +creditable +creditably +credited +crediting +creditor +creditor's +creditors +credits +credo +credo's +credos +credulity +credulity's +credulous +credulously +creed +creed's +creeds +creek +creek's +creeks +creel +creel's +creels +creep +creep's +creeper +creeper's +creepers +creepier +creepiest +creepily +creepiness +creepiness's +creeping +creeps +creepy +cremate +cremated +cremates +cremating +cremation +cremation's +cremations +crematoria +crematories +crematorium +crematorium's +crematoriums +crematory +crematory's +creole +creole's +creoles +creosote +creosote's +creosoted +creosotes +creosoting +crepe +crepe's +crepes +crept +crescendi +crescendo +crescendo's +crescendos +crescent +crescent's +crescents +cress +cress's +crest +crest's +crested +crestfallen +cresting +crests +cretin +cretin's +cretinous +cretins +crevasse +crevasse's +crevasses +crevice +crevice's +crevices +crew +crew's +crewed +crewing +crewman +crewman's +crewmen +crews +crib +crib's +cribbage +cribbage's +cribbed +cribbing +cribs +crick +crick's +cricked +cricket +cricket's +cricketer +cricketer's +cricketers +crickets +cricking +cricks +cried +crier +crier's +criers +cries +crime +crime's +crimes +criminal +criminal's +criminally +criminals +criminologist +criminologist's +criminologists +criminology +criminology's +crimp +crimp's +crimped +crimping +crimps +crimson +crimson's +crimsoned +crimsoning +crimsons +cringe +cringe's +cringed +cringes +cringing +crinkle +crinkle's +crinkled +crinkles +crinklier +crinkliest +crinkling +crinkly +crinoline +crinoline's +crinolines +cripple +cripple's +crippled +cripples +crippling +crises +crisis +crisis's +crisp +crisp's +crisped +crisper +crispest +crispier +crispiest +crisping +crisply +crispness +crispness's +crisps +crispy +crisscross +crisscross's +crisscrossed +crisscrosses +crisscrossing +criteria +criterion +criterion's +criterions +critic +critic's +critical +critically +criticism +criticism's +criticisms +criticize +criticized +criticizes +criticizing +critics +critique +critique's +critiqued +critiques +critiquing +critter +critter's +critters +croak +croak's +croaked +croaking +croaks +crochet +crochet's +crocheted +crocheting +crochets +croci +crock +crock's +crocked +crockery +crockery's +crocks +crocodile +crocodile's +crocodiles +crocus +crocus's +crocuses +crofts +croissant +croissant's +croissants +crone +crone's +crones +cronies +crony +crony's +crook +crook's +crooked +crookeder +crookedest +crookedly +crookedness +crookedness's +crooking +crooks +croon +croon's +crooned +crooner +crooner's +crooners +crooning +croons +crop +crop's +cropped +cropper +cropper's +croppers +cropping +crops +croquet +croquet's +croquette +croquette's +croquettes +crosier +crosier's +crosiers +cross +cross's +crossbar +crossbar's +crossbars +crossbeam +crossbeam's +crossbeams +crossbones +crossbones's +crossbow +crossbow's +crossbows +crossbred +crossbreed +crossbreed's +crossbreeding +crossbreeds +crosscheck +crosscheck's +crosschecked +crosschecking +crosschecks +crossed +crosser +crosses +crossest +crossfire +crossfire's +crossfires +crossing +crossing's +crossings +crossly +crossness +crossness's +crossover +crossover's +crossovers +crosspiece +crosspiece's +crosspieces +crossroad +crossroad's +crossroads +crossroads's +crosstown +crosswalk +crosswalk's +crosswalks +crossways +crosswise +crossword +crossword's +crosswords +crotch +crotch's +crotches +crotchet +crotchet's +crotchets +crotchety +crouch +crouch's +crouched +crouches +crouching +croup +croup's +croupier +croupier's +croupiers +croupiest +croupy +crow +crow's +crowbar +crowbar's +crowbars +crowd +crowd's +crowded +crowding +crowds +crowed +crowing +crown +crown's +crowned +crowning +crowns +crows +crozier +crozier's +croziers +croûton +croûton's +croûtons +crucial +crucially +crucible +crucible's +crucibles +crucified +crucifies +crucifix +crucifix's +crucifixes +crucifixion +crucifixion's +crucifixions +cruciform +cruciform's +cruciforms +crucify +crucifying +crud +crud's +cruddier +cruddiest +cruddy +crude +crude's +crudely +crudeness +crudeness's +cruder +crudest +crudities +crudity +crudity's +crudités +crudités's +cruel +crueler +cruelest +crueller +cruellest +cruelly +cruelties +cruelty +cruelty's +cruet +cruet's +cruets +cruise +cruise's +cruised +cruiser +cruiser's +cruisers +cruises +cruising +cruller +cruller's +crullers +crumb +crumb's +crumbed +crumbier +crumbiest +crumbing +crumble +crumble's +crumbled +crumbles +crumblier +crumbliest +crumbling +crumbly +crumbs +crumby +crummier +crummiest +crummy +crumpet +crumpet's +crumpets +crumple +crumple's +crumpled +crumples +crumpling +crunch +crunch's +crunched +cruncher +crunches +crunchier +crunchiest +crunching +crunchy +crusade +crusade's +crusaded +crusader +crusader's +crusaders +crusades +crusading +crush +crush's +crushed +crushes +crushing +crust +crust's +crustacean +crustacean's +crustaceans +crusted +crustier +crustiest +crusting +crusts +crusty +crutch +crutch's +crutches +crux +crux's +cruxes +cry +cry's +crybabies +crybaby +crybaby's +crying +cryings +cryogenics +cryogenics's +crypt +crypt's +cryptic +cryptically +cryptogram +cryptogram's +cryptograms +cryptographer +cryptographer's +cryptographers +cryptography +cryptography's +crypts +crystal +crystal's +crystalize +crystalized +crystalizes +crystalizing +crystalline +crystallization +crystallization's +crystallize +crystallized +crystallizes +crystallizing +crystallographic +crystallography +crystals +crèche +crèche's +crèches +cs +cub +cub's +cubbyhole +cubbyhole's +cubbyholes +cube +cube's +cubed +cubes +cubic +cubical +cubicle +cubicle's +cubicles +cubing +cubism +cubism's +cubist +cubist's +cubists +cubit +cubit's +cubits +cubs +cuckold +cuckold's +cuckolded +cuckolding +cuckolds +cuckoo +cuckoo's +cuckoos +cucumber +cucumber's +cucumbers +cud +cud's +cuddle +cuddle's +cuddled +cuddles +cuddlier +cuddliest +cuddling +cuddly +cudgel +cudgel's +cudgeled +cudgeling +cudgelled +cudgelling +cudgels +cuds +cue +cue's +cued +cueing +cues +cuff +cuff's +cuffed +cuffing +cuffs +cuing +cuisine +cuisine's +cuisines +culinary +cull +cull's +culled +cullender +cullender's +cullenders +culling +culls +culminate +culminated +culminates +culminating +culmination +culmination's +culminations +culotte +culotte's +culottes +culpability +culpability's +culpable +culprit +culprit's +culprits +cult +cult's +cultivate +cultivated +cultivates +cultivating +cultivation +cultivation's +cultivator +cultivator's +cultivators +cults +cultural +culturally +culture +culture's +cultured +cultures +culturing +culvert +culvert's +culverts +cumbersome +cumin +cumin's +cummerbund +cummerbund's +cummerbunds +cumming +cumquat +cumquat's +cumquats +cums +cumulative +cumulatively +cumuli +cumulus +cumulus's +cuneiform +cuneiform's +cunnilingus +cunnilingus's +cunning +cunning's +cunninger +cunningest +cunningly +cunt +cunt's +cunts +cup +cup's +cupboard +cupboard's +cupboards +cupcake +cupcake's +cupcakes +cupful +cupful's +cupfuls +cupidity +cupidity's +cupola +cupola's +cupolas +cupped +cupping +cups +cupsful +cur +cur's +curable +curacies +curacy +curacy's +curate +curate's +curates +curative +curative's +curatives +curator +curator's +curators +curb +curb's +curbed +curbing +curbs +curd +curd's +curdle +curdled +curdles +curdling +curds +cure +cure's +cured +curer +cures +curfew +curfew's +curfews +curie +curie's +curies +curing +curio +curio's +curios +curiosities +curiosity +curiosity's +curious +curiously +curl +curl's +curled +curler +curler's +curlers +curlew +curlew's +curlews +curlicue +curlicue's +curlicued +curlicues +curlicuing +curlier +curliest +curliness +curliness's +curling +curls +curly +curlycue +curlycue's +curlycues +curmudgeon +curmudgeon's +curmudgeons +currant +currant's +currants +currencies +currency +currency's +current +current's +currently +currents +curricula +curriculum +curriculum's +curriculums +curried +curries +curry +curry's +currycomb +currycomb's +currycombed +currycombing +currycombs +currying +curs +curse +curse's +cursed +curses +cursing +cursive +cursive's +cursor +cursor's +cursorily +cursors +cursory +curst +curt +curtail +curtailed +curtailing +curtailment +curtailment's +curtailments +curtails +curtain +curtain's +curtained +curtaining +curtains +curter +curtest +curtly +curtness +curtness's +curtsey +curtsey's +curtseyed +curtseying +curtseys +curtsied +curtsies +curtsy +curtsy's +curtsying +curvaceous +curvacious +curvature +curvature's +curvatures +curve +curve's +curved +curves +curvier +curviest +curving +curvy +cushier +cushiest +cushion +cushion's +cushioned +cushioning +cushions +cushy +cusp +cusp's +cuspid +cuspid's +cuspids +cusps +cuss +cuss's +cussed +cusses +cussing +custard +custard's +custards +custodial +custodian +custodian's +custodians +custody +custody's +custom +custom's +customarily +customary +customer +customer's +customers +customization +customize +customized +customizes +customizing +customs +cut +cut's +cutback +cutback's +cutbacks +cute +cutely +cuteness +cuteness's +cuter +cutesier +cutesiest +cutest +cutesy +cuticle +cuticle's +cuticles +cutlass +cutlass's +cutlasses +cutlery +cutlery's +cutlet +cutlet's +cutlets +cutoff +cutoff's +cutoffs +cuts +cutter +cutter's +cutters +cutthroat +cutthroat's +cutthroats +cutting +cutting's +cuttings +cuttlefish +cuttlefish's +cuttlefishes +cutup +cutup's +cutups +cyanide +cyanide's +cybernetic +cybernetics +cybernetics's +cyberpunk +cyberpunk's +cyberpunks +cyberspace +cyberspace's +cyclamen +cyclamen's +cyclamens +cycle +cycle's +cycled +cycles +cyclic +cyclical +cyclically +cycling +cyclist +cyclist's +cyclists +cyclone +cyclone's +cyclones +cyclonic +cyclotron +cyclotron's +cyclotrons +cygnet +cygnet's +cygnets +cylinder +cylinder's +cylinders +cylindrical +cymbal +cymbal's +cymbals +cynic +cynic's +cynical +cynically +cynicism +cynicism's +cynics +cynosure +cynosure's +cynosures +cypher +cypher's +cypress +cypress's +cypresses +cyst +cyst's +cystic +cysts +cytology +cytology's +cytoplasm +cytoplasm's +czar +czar's +czarina +czarina's +czarinas +czars +d +d'Arezzo +d'Estaing +dB +dab +dab's +dabbed +dabbing +dabble +dabbled +dabbler +dabbler's +dabblers +dabbles +dabbling +dabs +dacha +dacha's +dachas +dachshund +dachshund's +dachshunds +dactyl +dactyl's +dactylic +dactylic's +dactylics +dactyls +dad +dad's +daddies +daddy +daddy's +dado +dado's +dadoes +dados +dads +daemon +daemon's +daemons +daffier +daffiest +daffodil +daffodil's +daffodils +daffy +daft +dafter +daftest +dagger +dagger's +daggers +daguerreotype +daguerreotype's +daguerreotyped +daguerreotypes +daguerreotyping +dahlia +dahlia's +dahlias +dailies +daily +daily's +daintier +dainties +daintiest +daintily +daintiness +daintiness's +dainty +dainty's +daiquiri +daiquiri's +daiquiris +dairies +dairy +dairy's +dairying +dairying's +dairymaid +dairymaid's +dairymaids +dairyman +dairyman's +dairymen +dais +dais's +daises +daisies +daisy +daisy's +dale +dale's +dales +dalliance +dalliance's +dalliances +dallied +dallies +dally +dallying +dalmatian +dalmatian's +dalmatians +dam +dam's +damage +damage's +damaged +damages +damages's +damaging +damask +damask's +damasked +damasking +damasks +dame +dame's +dames +dammed +damming +damn +damn's +damnable +damnably +damnation +damnation's +damndest +damned +damnedest +damning +damns +damp +damp's +damped +dampen +dampened +dampening +dampens +damper +damper's +dampers +dampest +damping +damply +dampness +dampness's +damps +dams +damsel +damsel's +damsels +damson +damson's +damsons +dance +dance's +danced +dancer +dancer's +dancers +dances +dancing +dancing's +dandelion +dandelion's +dandelions +dander +dander's +dandier +dandies +dandiest +dandle +dandled +dandles +dandling +dandruff +dandruff's +dandy +dandy's +danger +danger's +dangerous +dangerously +dangers +dangle +dangled +dangles +dangling +dank +danker +dankest +dankly +dankness +dankness's +dapper +dapperer +dapperest +dapple +dapple's +dappled +dapples +dappling +dare +dare's +dared +daredevil +daredevil's +daredevils +dares +daring +daring's +daringly +dark +dark's +darken +darkened +darkening +darkens +darker +darkest +darkly +darkness +darkness's +darkroom +darkroom's +darkrooms +darling +darling's +darlings +darn +darn's +darned +darneder +darnedest +darning +darns +dart +dart's +dartboard +dartboard's +dartboards +darted +darting +darts +dash +dash's +dashboard +dashboard's +dashboards +dashed +dashes +dashiki +dashiki's +dashikis +dashing +dashingly +dastardly +data +database +database's +databases +date +date's +dated +dateline +dateline's +datelined +datelines +datelining +dates +dating +dative +dative's +datives +datum +datum's +daub +daub's +daubed +dauber +dauber's +daubers +daubing +daubs +daughter +daughter's +daughters +daunt +daunted +daunting +dauntless +dauntlessly +dauntlessness +dauntlessness's +daunts +dauphin +dauphin's +dauphins +davenport +davenport's +davenports +davit +davit's +davits +dawdle +dawdled +dawdler +dawdler's +dawdlers +dawdles +dawdling +dawn +dawn's +dawned +dawning +dawns +day +day's +daybed +daybed's +daybeds +daybreak +daybreak's +daydream +daydream's +daydreamed +daydreamer +daydreamer's +daydreamers +daydreaming +daydreams +daydreamt +daylight +daylight's +daylights +days +daytime +daytime's +daze +daze's +dazed +dazes +dazing +dazzle +dazzle's +dazzled +dazzles +dazzling +deacon +deacon's +deaconess +deaconess's +deaconesses +deacons +deactivate +deactivated +deactivates +deactivating +dead +dead's +deadbeat +deadbeat's +deadbeats +deadbolt +deadbolt's +deadbolts +deaden +deadened +deadening +deadens +deader +deadest +deadlier +deadliest +deadline +deadline's +deadlines +deadliness +deadliness's +deadlock +deadlock's +deadlocked +deadlocking +deadlocks +deadly +deadpan +deadpan's +deadpanned +deadpanning +deadpans +deadwood +deadwood's +deaf +deafen +deafened +deafening +deafens +deafer +deafest +deafness +deafness's +deal +deal's +dealer +dealer's +dealers +dealership +dealership's +dealerships +dealing +dealing's +dealings +deals +dealt +dean +dean's +deans +dear +dear's +dearer +dearest +dearly +dearness +dearness's +dears +dearth +dearth's +dearths +death +death's +deathbed +deathbed's +deathbeds +deathblow +deathblow's +deathblows +deathless +deathlike +deathly +deaths +deathtrap +deathtrap's +deathtraps +deaves +deb +deb's +debacle +debacle's +debacles +debar +debark +debarkation +debarkation's +debarked +debarking +debarks +debarment +debarment's +debarred +debarring +debars +debase +debased +debasement +debasement's +debasements +debases +debasing +debatable +debate +debate's +debated +debater +debater's +debaters +debates +debating +debauch +debauch's +debauched +debaucheries +debauchery +debauchery's +debauches +debauching +debenture +debenture's +debentures +debilitate +debilitated +debilitates +debilitating +debilitation +debilitation's +debilities +debility +debility's +debit +debit's +debited +debiting +debits +debonair +debonairly +debrief +debriefed +debriefing +debriefing's +debriefings +debriefs +debris +debris's +debs +debt +debt's +debtor +debtor's +debtors +debts +debug +debugged +debugger +debuggers +debugging +debugs +debunk +debunked +debunking +debunks +debut +debut's +debuted +debuting +debuts +decade +decade's +decadence +decadence's +decadent +decadent's +decadently +decadents +decades +decaf +decaf's +decaffeinate +decaffeinated +decaffeinates +decaffeinating +decal +decal's +decals +decamp +decamped +decamping +decamps +decant +decanted +decanter +decanter's +decanters +decanting +decants +decapitate +decapitated +decapitates +decapitating +decapitation +decapitation's +decapitations +decathlon +decathlon's +decathlons +decay +decay's +decayed +decaying +decays +decease +decease's +deceased +deceased's +deceases +deceasing +decedent +decedent's +decedents +deceit +deceit's +deceitful +deceitfully +deceitfulness +deceitfulness's +deceits +deceive +deceived +deceiver +deceiver's +deceivers +deceives +deceiving +decelerate +decelerated +decelerates +decelerating +deceleration +deceleration's +decencies +decency +decency's +decent +decently +decentralization +decentralization's +decentralize +decentralized +decentralizes +decentralizing +deception +deception's +deceptions +deceptive +deceptively +deceptiveness +deceptiveness's +decibel +decibel's +decibels +decide +decided +decidedly +decides +deciding +deciduous +decimal +decimal's +decimals +decimate +decimated +decimates +decimating +decimation +decimation's +decipher +decipherable +deciphered +deciphering +deciphers +decision +decision's +decisions +decisive +decisively +decisiveness +decisiveness's +deck +deck's +decked +deckhand +deckhand's +deckhands +decking +decks +declaim +declaimed +declaiming +declaims +declamation +declamation's +declamations +declamatory +declaration +declaration's +declarations +declarative +declare +declared +declares +declaring +declassified +declassifies +declassify +declassifying +declension +declension's +declensions +declination +declination's +decline +decline's +declined +declines +declining +declivities +declivity +declivity's +decode +decoded +decoder +decodes +decoding +decolonization +decolonization's +decolonize +decolonized +decolonizes +decolonizing +decommission +decommissioned +decommissioning +decommissions +decompose +decomposed +decomposes +decomposing +decomposition +decomposition's +decompress +decompressed +decompresses +decompressing +decompression +decompression's +decongestant +decongestant's +decongestants +deconstruction +deconstruction's +deconstructions +decontaminate +decontaminated +decontaminates +decontaminating +decontamination +decontamination's +decor +decor's +decorate +decorated +decorates +decorating +decoration +decoration's +decorations +decorative +decorator +decorator's +decorators +decorous +decorously +decors +decorum +decorum's +decoy +decoy's +decoyed +decoying +decoys +decrease +decrease's +decreased +decreases +decreasing +decree +decree's +decreed +decreeing +decrees +decremented +decrements +decrepit +decrepitude +decrepitude's +decrescendi +decrescendo +decrescendo's +decrescendos +decried +decries +decriminalization +decriminalization's +decriminalize +decriminalized +decriminalizes +decriminalizing +decry +decrying +dedicate +dedicated +dedicates +dedicating +dedication +dedication's +dedications +deduce +deduced +deduces +deducible +deducing +deduct +deducted +deductible +deductible's +deductibles +deducting +deduction +deduction's +deductions +deductive +deducts +deed +deed's +deeded +deeding +deeds +deejay +deejay's +deejays +deem +deemed +deeming +deems +deep +deep's +deepen +deepened +deepening +deepens +deeper +deepest +deeply +deepness +deepness's +deeps +deer +deer's +deers +deerskin +deerskin's +deescalate +deescalated +deescalates +deescalating +deface +defaced +defacement +defacement's +defaces +defacing +defamation +defamation's +defamatory +defame +defamed +defames +defaming +default +default's +defaulted +defaulter +defaulter's +defaulters +defaulting +defaults +defeat +defeat's +defeated +defeating +defeatism +defeatism's +defeatist +defeatist's +defeatists +defeats +defecate +defecated +defecates +defecating +defecation +defecation's +defect +defect's +defected +defecting +defection +defection's +defections +defective +defective's +defectives +defector +defector's +defectors +defects +defend +defendant +defendant's +defendants +defended +defender +defender's +defenders +defending +defends +defense +defense's +defensed +defenseless +defenses +defensible +defensing +defensive +defensive's +defensively +defensiveness +defensiveness's +defer +deference +deference's +deferential +deferentially +deferment +deferment's +deferments +deferred +deferring +defers +defiance +defiance's +defiant +defiantly +deficiencies +deficiency +deficiency's +deficient +deficit +deficit's +deficits +defied +defies +defile +defile's +defiled +defilement +defilement's +defiles +defiling +definable +define +defined +definer +definer's +definers +defines +defining +definite +definitely +definiteness +definiteness's +definition +definition's +definitions +definitive +definitively +deflate +deflated +deflates +deflating +deflation +deflation's +deflect +deflected +deflecting +deflection +deflection's +deflections +deflector +deflector's +deflectors +deflects +defogger +defogger's +defoggers +defoliant +defoliant's +defoliants +defoliate +defoliated +defoliates +defoliating +defoliation +defoliation's +deforest +deforestation +deforestation's +deforested +deforesting +deforests +deform +deformation +deformation's +deformations +deformed +deforming +deformities +deformity +deformity's +deforms +defraud +defrauded +defrauding +defrauds +defray +defrayal +defrayal's +defrayed +defraying +defrays +defrost +defrosted +defroster +defroster's +defrosters +defrosting +defrosts +deft +defter +deftest +deftly +deftness +deftness's +defunct +defuse +defused +defuses +defusing +defy +defying +degeneracy +degeneracy's +degenerate +degenerate's +degenerated +degenerates +degenerating +degeneration +degeneration's +degenerative +degradation +degradation's +degrade +degraded +degrades +degrading +degree +degree's +degrees +dehumanization +dehumanization's +dehumanize +dehumanized +dehumanizes +dehumanizing +dehumidified +dehumidifier +dehumidifier's +dehumidifiers +dehumidifies +dehumidify +dehumidifying +dehydrate +dehydrated +dehydrates +dehydrating +dehydration +dehydration's +deice +deiced +deicer +deicer's +deicers +deices +deicing +deification +deification's +deified +deifies +deify +deifying +deign +deigned +deigning +deigns +deism +deism's +deities +deity +deity's +deject +dejected +dejectedly +dejecting +dejection +dejection's +dejects +delay +delay's +delayed +delaying +delays +delectable +delectation +delectation's +delegate +delegate's +delegated +delegates +delegating +delegation +delegation's +delegations +delete +deleted +deleterious +deletes +deleting +deletion +deletion's +deletions +deli +deli's +deliberate +deliberated +deliberately +deliberates +deliberating +deliberation +deliberation's +deliberations +delicacies +delicacy +delicacy's +delicate +delicately +delicatessen +delicatessen's +delicatessens +delicious +deliciously +deliciousness +deliciousness's +delight +delight's +delighted +delightful +delightfully +delighting +delights +delimit +delimited +delimiter +delimiters +delimiting +delimits +delineate +delineated +delineates +delineating +delineation +delineation's +delineations +delinquencies +delinquency +delinquency's +delinquent +delinquent's +delinquently +delinquents +deliquescent +deliria +delirious +deliriously +delirium +delirium's +deliriums +delis +deliver +deliverance +deliverance's +delivered +deliverer +deliverer's +deliverers +deliveries +delivering +delivers +delivery +delivery's +dell +dell's +dells +delphinia +delphinium +delphinium's +delphiniums +delta +delta's +deltas +delude +deluded +deludes +deluding +deluge +deluge's +deluged +deluges +deluging +delusion +delusion's +delusions +delusive +deluxe +delve +delved +delves +delving +demagnetization +demagnetization's +demagnetize +demagnetized +demagnetizes +demagnetizing +demagog +demagog's +demagogic +demagogry +demagogs +demagogue +demagogue's +demagoguery +demagoguery's +demagogues +demagogy +demagogy's +demand +demand's +demanded +demanding +demands +demarcate +demarcated +demarcates +demarcating +demarcation +demarcation's +demean +demeaned +demeaning +demeanor +demeanor's +demeans +demented +dementedly +dementia +dementia's +demerit +demerit's +demerits +demesne +demesne's +demesnes +demigod +demigod's +demigods +demijohn +demijohn's +demijohns +demilitarization +demilitarization's +demilitarize +demilitarized +demilitarizes +demilitarizing +demise +demise's +demised +demises +demising +demitasse +demitasse's +demitasses +demo +demo's +demobilization +demobilization's +demobilize +demobilized +demobilizes +demobilizing +democracies +democracy +democracy's +democrat +democrat's +democratic +democratically +democratization +democratization's +democratize +democratized +democratizes +democratizing +democrats +demoed +demographer +demographer's +demographers +demographic +demographic's +demographically +demographics +demographics's +demography +demography's +demoing +demolish +demolished +demolishes +demolishing +demolition +demolition's +demolitions +demon +demon's +demoniac +demoniacal +demonic +demons +demonstrable +demonstrably +demonstrate +demonstrated +demonstrates +demonstrating +demonstration +demonstration's +demonstrations +demonstrative +demonstrative's +demonstratively +demonstratives +demonstrator +demonstrator's +demonstrators +demoralization +demoralization's +demoralize +demoralized +demoralizes +demoralizing +demos +demote +demoted +demotes +demoting +demotion +demotion's +demotions +demount +demur +demur's +demure +demurely +demurer +demurest +demurred +demurring +demurs +den +den's +denature +denatured +denatures +denaturing +dendrite +dendrite's +dendrites +denial +denial's +denials +denied +denier +denier's +deniers +denies +denigrate +denigrated +denigrates +denigrating +denigration +denigration's +denim +denim's +denims +denizen +denizen's +denizens +denominate +denominated +denominates +denominating +denomination +denomination's +denominational +denominations +denominator +denominator's +denominators +denotation +denotation's +denotations +denote +denoted +denotes +denoting +denouement +denouement's +denouements +denounce +denounced +denouncement +denouncement's +denouncements +denounces +denouncing +dens +dense +densely +denseness +denseness's +denser +densest +densities +density +density's +dent +dent's +dental +dented +dentifrice +dentifrice's +dentifrices +dentin +dentin's +dentine +dentine's +denting +dentist +dentist's +dentistry +dentistry's +dentists +dents +denture +denture's +dentures +denude +denuded +denudes +denuding +denunciation +denunciation's +denunciations +deny +denying +deodorant +deodorant's +deodorants +deodorize +deodorized +deodorizer +deodorizer's +deodorizers +deodorizes +deodorizing +depart +departed +departed's +departing +department +department's +departmental +departmentalize +departmentalized +departmentalizes +departmentalizing +departments +departs +departure +departure's +departures +depend +dependability +dependability's +dependable +dependably +dependance +dependance's +dependant +dependant's +dependants +depended +dependence +dependence's +dependencies +dependency +dependency's +dependent +dependent's +dependents +depending +depends +depict +depicted +depicting +depiction +depiction's +depictions +depicts +depilatories +depilatory +depilatory's +deplane +deplaned +deplanes +deplaning +deplete +depleted +depletes +depleting +depletion +depletion's +deplorable +deplorably +deplore +deplored +deplores +deploring +deploy +deployed +deploying +deployment +deployment's +deployments +deploys +depoliticize +depoliticized +depoliticizes +depoliticizing +depopulate +depopulated +depopulates +depopulating +depopulation +depopulation's +deport +deportation +deportation's +deportations +deported +deporting +deportment +deportment's +deports +depose +deposed +deposes +deposing +deposit +deposit's +deposited +depositing +deposition +deposition's +depositions +depositor +depositor's +depositories +depositors +depository +depository's +deposits +depot +depot's +depots +deprave +depraved +depraves +depraving +depravities +depravity +depravity's +deprecate +deprecated +deprecates +deprecating +deprecation +deprecation's +deprecatory +depreciate +depreciated +depreciates +depreciating +depreciation +depreciation's +depredation +depredation's +depredations +depress +depressant +depressant's +depressants +depressed +depresses +depressing +depressingly +depression +depression's +depressions +depressive +depressive's +depressives +deprivation +deprivation's +deprivations +deprive +deprived +deprives +depriving +deprogram +deprogramed +deprograming +deprogrammed +deprogramming +deprograms +depth +depth's +depths +deputation +deputation's +deputations +depute +deputed +deputes +deputies +deputing +deputize +deputized +deputizes +deputizing +deputy +deputy's +derail +derailed +derailing +derailment +derailment's +derailments +derails +derange +deranged +derangement +derangement's +deranges +deranging +derbies +derby +derby's +deregulate +deregulated +deregulates +deregulating +deregulation +deregulation's +derelict +derelict's +dereliction +dereliction's +derelicts +deride +derided +derides +deriding +derision +derision's +derisive +derisively +derisory +derivable +derivation +derivation's +derivations +derivative +derivative's +derivatives +derive +derived +derives +deriving +dermatitis +dermatitis's +dermatologist +dermatologist's +dermatologists +dermatology +dermatology's +dermis +dermis's +derogate +derogated +derogates +derogating +derogation +derogation's +derogatory +derrick +derrick's +derricks +derringer +derringer's +derringers +derrière +derrière's +derrières +dervish +dervish's +dervishes +desalinate +desalinated +desalinates +desalinating +desalination +desalination's +descant +descant's +descanted +descanting +descants +descend +descendant +descendant's +descendants +descended +descendent +descendent's +descendents +descender +descending +descends +descent +descent's +descents +describable +describe +described +describes +describing +descried +descries +description +description's +descriptions +descriptive +descriptively +descriptor +descriptors +descry +descrying +desecrate +desecrated +desecrates +desecrating +desecration +desecration's +desegregate +desegregated +desegregates +desegregating +desegregation +desegregation's +desensitization +desensitization's +desensitize +desensitized +desensitizes +desensitizing +desert +desert's +deserted +deserter +deserter's +deserters +deserting +desertion +desertion's +desertions +deserts +deserve +deserved +deservedly +deserves +deserving +desiccate +desiccated +desiccates +desiccating +desiccation +desiccation's +desiderata +desideratum +desideratum's +design +design's +designate +designated +designates +designating +designation +designation's +designations +designed +designer +designer's +designers +designing +designing's +designs +desirability +desirability's +desirable +desirably +desire +desire's +desired +desires +desiring +desirous +desist +desisted +desisting +desists +desk +desk's +desks +desktop +desktop's +desktops +desolate +desolated +desolately +desolateness +desolateness's +desolates +desolating +desolation +desolation's +despair +despair's +despaired +despairing +despairingly +despairs +despatch +despatch's +despatched +despatches +despatching +desperado +desperado's +desperadoes +desperados +desperate +desperately +desperation +desperation's +despicable +despicably +despise +despised +despises +despising +despite +despoil +despoiled +despoiling +despoils +despondency +despondency's +despondent +despondently +despot +despot's +despotic +despotism +despotism's +despots +dessert +dessert's +desserts +destabilize +destination +destination's +destinations +destine +destined +destines +destinies +destining +destiny +destiny's +destitute +destitution +destitution's +destroy +destroyed +destroyer +destroyer's +destroyers +destroying +destroys +destruct +destruct's +destructed +destructible +destructing +destruction +destruction's +destructive +destructively +destructiveness +destructiveness's +destructs +desultory +detach +detachable +detached +detaches +detaching +detachment +detachment's +detachments +detail +detail's +detailed +detailing +details +detain +detained +detaining +detainment +detainment's +detains +detect +detectable +detected +detecting +detection +detection's +detective +detective's +detectives +detector +detector's +detectors +detects +detentes +detention +detention's +detentions +deter +detergent +detergent's +detergents +deteriorate +deteriorated +deteriorates +deteriorating +deterioration +deterioration's +determinable +determinant +determinant's +determinants +determinate +determination +determination's +determinations +determine +determined +determiner +determiner's +determiners +determines +determining +determinism +deterministic +deterred +deterrence +deterrence's +deterrent +deterrent's +deterrents +deterring +deters +detest +detestable +detestation +detestation's +detested +detesting +detests +dethrone +dethroned +dethronement +dethronement's +dethrones +dethroning +detonate +detonated +detonates +detonating +detonation +detonation's +detonations +detonator +detonator's +detonators +detour +detour's +detoured +detouring +detours +detox +detox's +detoxed +detoxes +detoxification +detoxification's +detoxified +detoxifies +detoxify +detoxifying +detoxing +detract +detracted +detracting +detraction +detraction's +detractor +detractor's +detractors +detracts +detriment +detriment's +detrimental +detriments +detritus +detritus's +deuce +deuce's +deuces +deuterium +deuterium's +devaluation +devaluation's +devaluations +devalue +devalued +devalues +devaluing +devastate +devastated +devastates +devastating +devastation +devastation's +develop +developed +developer +developer's +developers +developing +development +development's +developmental +developments +develops +deviance +deviance's +deviant +deviant's +deviants +deviate +deviate's +deviated +deviates +deviating +deviation +deviation's +deviations +device +device's +devices +devil +devil's +deviled +deviling +devilish +devilishly +devilled +devilling +devilment +devilment's +devilries +devilry +devilry's +devils +deviltries +deviltry +deviltry's +devious +deviously +deviousness +deviousness's +devise +devise's +devised +devises +devising +devoid +devolution +devolve +devolved +devolves +devolving +devote +devoted +devotedly +devotee +devotee's +devotees +devotes +devoting +devotion +devotion's +devotional +devotional's +devotionals +devotions +devour +devoured +devouring +devours +devout +devouter +devoutest +devoutly +devoutness +devoutness's +dew +dew's +dewberries +dewberry +dewberry's +dewdrop +dewdrop's +dewdrops +dewier +dewiest +dewlap +dewlap's +dewlaps +dewy +dexterity +dexterity's +dexterous +dexterously +dextrose +dextrose's +dextrous +dextrously +dhoti +dhoti's +dhotis +diabetes +diabetes's +diabetic +diabetic's +diabetics +diabolic +diabolical +diabolically +diacritic +diacritic's +diacritical +diacritics +diadem +diadem's +diadems +diagnose +diagnosed +diagnoses +diagnosing +diagnosis +diagnosis's +diagnostic +diagnostician +diagnostician's +diagnosticians +diagnostics +diagonal +diagonal's +diagonally +diagonals +diagram +diagram's +diagramed +diagraming +diagrammatic +diagrammed +diagramming +diagrams +dial +dial's +dialect +dialect's +dialectal +dialectic +dialectic's +dialects +dialed +dialing +dialings +dialog +dialog's +dialogs +dialogue +dialogue's +dialogues +dials +dialyses +dialysis +dialysis's +dialyzes +diameter +diameter's +diameters +diametrical +diametrically +diamond +diamond's +diamonds +diaper +diaper's +diapered +diapering +diapers +diaphanous +diaphragm +diaphragm's +diaphragms +diaries +diarist +diarist's +diarists +diarrhea +diarrhea's +diarrhoea +diarrhoea's +diary +diary's +diastolic +diatom +diatom's +diatoms +diatribe +diatribe's +diatribes +dibble +dibble's +dibbled +dibbles +dibbling +dice +diced +dices +dicey +dichotomies +dichotomy +dichotomy's +dicier +diciest +dicing +dick +dick's +dicker +dickered +dickering +dickers +dickey +dickey's +dickeys +dickie +dickie's +dickies +dicks +dicky +dicky's +dicta +dictate +dictate's +dictated +dictates +dictating +dictation +dictation's +dictations +dictator +dictator's +dictatorial +dictators +dictatorship +dictatorship's +dictatorships +diction +diction's +dictionaries +dictionary +dictionary's +dictum +dictum's +dictums +did +didactic +diddle +diddled +diddles +diddling +didn't +die +die's +died +diehard +diehard's +diehards +diereses +dieresis +dieresis's +dies +diesel +diesel's +dieseled +dieseling +diesels +diet +diet's +dietaries +dietary +dietary's +dieted +dieter +dieter's +dieters +dietetic +dietetics +dietetics's +dietician +dietician's +dieticians +dieting +dietitian +dietitian's +dietitians +diets +differ +differed +difference +difference's +differences +different +differential +differential's +differentials +differentiate +differentiated +differentiates +differentiating +differentiation +differentiation's +differently +differing +differs +difficult +difficulties +difficulty +difficulty's +diffidence +diffidence's +diffident +diffidently +diffraction +diffraction's +diffuse +diffused +diffusely +diffuseness +diffuseness's +diffuses +diffusing +diffusion +diffusion's +dig +dig's +digest +digest's +digested +digestible +digesting +digestion +digestion's +digestions +digestive +digests +digger +digger's +diggers +digging +digit +digit's +digital +digitalis +digitalis's +digitally +digitization +digitize +digitized +digitizes +digitizing +digits +dignified +dignifies +dignify +dignifying +dignitaries +dignitary +dignitary's +dignities +dignity +dignity's +digraph +digraph's +digraphs +digress +digressed +digresses +digressing +digression +digression's +digressions +digressive +digs +dike +dike's +diked +dikes +diking +dilapidated +dilapidation +dilapidation's +dilate +dilated +dilates +dilating +dilation +dilation's +dilatory +dilemma +dilemma's +dilemmas +dilettante +dilettante's +dilettantes +dilettanti +dilettantism +dilettantism's +diligence +diligence's +diligent +diligently +dill +dill's +dillies +dills +dilly +dilly's +dillydallied +dillydallies +dillydally +dillydallying +dilute +diluted +dilutes +diluting +dilution +dilution's +dim +dime +dime's +dimension +dimension's +dimensional +dimensionless +dimensions +dimer +dimes +diminish +diminished +diminishes +diminishing +diminuendo +diminuendo's +diminuendoes +diminuendos +diminution +diminution's +diminutions +diminutive +diminutive's +diminutives +dimly +dimmed +dimmer +dimmer's +dimmers +dimmest +dimming +dimness +dimness's +dimple +dimple's +dimpled +dimples +dimpling +dims +dimwit +dimwit's +dimwits +dimwitted +din +din's +dine +dined +diner +diner's +diners +dines +dinette +dinette's +dinettes +ding +ding's +dinged +dinghies +dinghy +dinghy's +dingier +dingiest +dinginess +dinginess's +dinging +dingo +dingo's +dingoes +dings +dingy +dining +dinkier +dinkies +dinkiest +dinky +dinky's +dinned +dinner +dinner's +dinnered +dinnering +dinners +dinning +dinosaur +dinosaur's +dinosaurs +dins +dint +dint's +diocesan +diocesan's +diocesans +diocese +diocese's +dioceses +diode +diode's +diodes +diorama +diorama's +dioramas +dioxide +dioxin +dioxin's +dioxins +dip +dip's +diphtheria +diphtheria's +diphthong +diphthong's +diphthongs +diploma +diploma's +diplomacy +diplomacy's +diplomas +diplomat +diplomat's +diplomata +diplomatic +diplomatically +diplomats +dipole +dipped +dipper +dipper's +dippers +dipping +dips +dipsomania +dipsomania's +dipsomaniac +dipsomaniac's +dipsomaniacs +dipstick +dipstick's +dipsticks +dire +direct +directed +directer +directest +directing +direction +direction's +directional +directions +directive +directive's +directives +directly +directness +directness's +director +director's +directorate +directorate's +directorates +directorial +directories +directors +directorship +directorship's +directorships +directory +directory's +directs +direr +direst +dirge +dirge's +dirges +dirigible +dirigible's +dirigibles +dirk +dirk's +dirks +dirt +dirt's +dirtied +dirtier +dirties +dirtiest +dirtiness +dirtiness's +dirty +dirtying +dis +dis's +disabilities +disability +disability's +disable +disabled +disablement +disablement's +disables +disabling +disabuse +disabused +disabuses +disabusing +disadvantage +disadvantage's +disadvantaged +disadvantageous +disadvantageously +disadvantages +disadvantaging +disaffect +disaffected +disaffecting +disaffection +disaffection's +disaffects +disagree +disagreeable +disagreeably +disagreed +disagreeing +disagreement +disagreement's +disagreements +disagrees +disallow +disallowed +disallowing +disallows +disambiguate +disambiguation +disappear +disappearance +disappearance's +disappearances +disappeared +disappearing +disappears +disappoint +disappointed +disappointing +disappointingly +disappointment +disappointment's +disappointments +disappoints +disapprobation +disapprobation's +disapproval +disapproval's +disapprove +disapproved +disapproves +disapproving +disapprovingly +disarm +disarmament +disarmament's +disarmed +disarming +disarms +disarrange +disarranged +disarrangement +disarrangement's +disarranges +disarranging +disarray +disarray's +disarrayed +disarraying +disarrays +disassemble +disassembled +disassembles +disassembling +disassociate +disassociated +disassociates +disassociating +disaster +disaster's +disasters +disastrous +disastrously +disavow +disavowal +disavowal's +disavowals +disavowed +disavowing +disavows +disband +disbanded +disbanding +disbands +disbar +disbarment +disbarment's +disbarred +disbarring +disbars +disbelief +disbelief's +disbelieve +disbelieved +disbelieves +disbelieving +disburse +disbursed +disbursement +disbursement's +disbursements +disburses +disbursing +disc +disc's +discard +discard's +discarded +discarding +discards +discern +discerned +discernible +discerning +discernment +discernment's +discerns +discharge +discharge's +discharged +discharges +discharging +disciple +disciple's +disciples +disciplinarian +disciplinarian's +disciplinarians +disciplinary +discipline +discipline's +disciplined +disciplines +disciplining +disclaim +disclaimed +disclaimer +disclaimer's +disclaimers +disclaiming +disclaims +disclose +disclosed +discloses +disclosing +disclosure +disclosure's +disclosures +disco +disco's +discoed +discoing +discolor +discoloration +discoloration's +discolorations +discolored +discoloring +discolors +discombobulate +discombobulated +discombobulates +discombobulating +discomfit +discomfited +discomfiting +discomfits +discomfiture +discomfiture's +discomfort +discomfort's +discomforted +discomforting +discomforts +discommode +discommoded +discommodes +discommoding +discompose +discomposed +discomposes +discomposing +discomposure +discomposure's +disconcert +disconcerted +disconcerting +disconcerts +disconnect +disconnected +disconnectedly +disconnecting +disconnection +disconnection's +disconnections +disconnects +disconsolate +disconsolately +discontent +discontent's +discontented +discontentedly +discontenting +discontentment +discontentment's +discontents +discontinuance +discontinuance's +discontinuances +discontinuation +discontinuation's +discontinuations +discontinue +discontinued +discontinues +discontinuing +discontinuities +discontinuity +discontinuity's +discontinuous +discord +discord's +discordant +discorded +discording +discords +discos +discotheque +discotheque's +discotheques +discount +discount's +discounted +discountenance +discountenanced +discountenances +discountenancing +discounting +discounts +discourage +discouraged +discouragement +discouragement's +discouragements +discourages +discouraging +discouragingly +discourse +discourse's +discoursed +discourses +discoursing +discourteous +discourteously +discourtesies +discourtesy +discourtesy's +discover +discovered +discoverer +discoverer's +discoverers +discoveries +discovering +discovers +discovery +discovery's +discredit +discredit's +discreditable +discredited +discrediting +discredits +discreet +discreeter +discreetest +discreetly +discrepancies +discrepancy +discrepancy's +discrete +discretion +discretion's +discretionary +discriminant +discriminate +discriminated +discriminates +discriminating +discrimination +discrimination's +discriminatory +discs +discursive +discus +discus's +discuses +discuss +discussant +discussant's +discussants +discussed +discusses +discussing +discussion +discussion's +discussions +disdain +disdain's +disdained +disdainful +disdainfully +disdaining +disdains +disease +disease's +diseased +diseases +disembark +disembarkation +disembarkation's +disembarked +disembarking +disembarks +disembodied +disembodies +disembody +disembodying +disembowel +disemboweled +disemboweling +disembowelled +disembowelling +disembowels +disenchant +disenchanted +disenchanting +disenchantment +disenchantment's +disenchants +disencumber +disencumbered +disencumbering +disencumbers +disenfranchise +disenfranchised +disenfranchisement +disenfranchisement's +disenfranchises +disenfranchising +disengage +disengaged +disengagement +disengagement's +disengagements +disengages +disengaging +disentangle +disentangled +disentanglement +disentanglement's +disentangles +disentangling +disestablish +disestablished +disestablishes +disestablishing +disfavor +disfavor's +disfavored +disfavoring +disfavors +disfigure +disfigured +disfigurement +disfigurement's +disfigurements +disfigures +disfiguring +disfranchise +disfranchised +disfranchisement +disfranchisement's +disfranchises +disfranchising +disgorge +disgorged +disgorges +disgorging +disgrace +disgrace's +disgraced +disgraceful +disgracefully +disgraces +disgracing +disgruntle +disgruntled +disgruntles +disgruntling +disguise +disguise's +disguised +disguises +disguising +disgust +disgust's +disgusted +disgustedly +disgusting +disgustingly +disgusts +dish +dish's +disharmonious +disharmony +disharmony's +dishcloth +dishcloth's +dishcloths +dishearten +disheartened +disheartening +disheartens +dished +dishes +dishevel +disheveled +disheveling +dishevelled +dishevelling +dishevels +dishing +dishonest +dishonestly +dishonesty +dishonesty's +dishonor +dishonor's +dishonorable +dishonorably +dishonored +dishonoring +dishonors +dishpan +dishpan's +dishpans +dishrag +dishrag's +dishrags +dishtowel +dishtowel's +dishtowels +dishwasher +dishwasher's +dishwashers +dishwater +dishwater's +disillusion +disillusion's +disillusioned +disillusioning +disillusionment +disillusionment's +disillusions +disincentive +disinclination +disinclination's +disincline +disinclined +disinclines +disinclining +disinfect +disinfectant +disinfectant's +disinfectants +disinfected +disinfecting +disinfects +disinformation +disinformation's +disingenuous +disinherit +disinherited +disinheriting +disinherits +disintegrate +disintegrated +disintegrates +disintegrating +disintegration +disintegration's +disinter +disinterest +disinterest's +disinterested +disinterestedly +disinterests +disinterment +disinterment's +disinterred +disinterring +disinters +disjoint +disjointed +disjointedly +disjointing +disjoints +disk +disk's +diskette +diskette's +diskettes +disks +dislike +dislike's +disliked +dislikes +disliking +dislocate +dislocated +dislocates +dislocating +dislocation +dislocation's +dislocations +dislodge +dislodged +dislodges +dislodging +disloyal +disloyally +disloyalty +disloyalty's +dismal +dismally +dismantle +dismantled +dismantles +dismantling +dismay +dismay's +dismayed +dismaying +dismays +dismember +dismembered +dismembering +dismemberment +dismemberment's +dismembers +dismiss +dismissal +dismissal's +dismissals +dismissed +dismisses +dismissing +dismissive +dismount +dismount's +dismounted +dismounting +dismounts +disobedience +disobedience's +disobedient +disobediently +disobey +disobeyed +disobeying +disobeys +disoblige +disobliged +disobliges +disobliging +disorder +disorder's +disordered +disordering +disorderliness +disorderliness's +disorderly +disorders +disorganization +disorganization's +disorganize +disorganized +disorganizes +disorganizing +disorient +disorientation +disorientation's +disoriented +disorienting +disorients +disown +disowned +disowning +disowns +disparage +disparaged +disparagement +disparagement's +disparages +disparaging +disparate +disparities +disparity +disparity's +dispassionate +dispassionately +dispatch +dispatch's +dispatched +dispatcher +dispatcher's +dispatchers +dispatches +dispatching +dispel +dispelled +dispelling +dispels +dispensable +dispensaries +dispensary +dispensary's +dispensation +dispensation's +dispensations +dispense +dispensed +dispenser +dispenser's +dispensers +dispenses +dispensing +dispersal +dispersal's +disperse +dispersed +disperses +dispersing +dispersion +dispersion's +dispirit +dispirited +dispiriting +dispirits +displace +displaced +displacement +displacement's +displacements +displaces +displacing +display +display's +displayable +displayed +displaying +displays +displease +displeased +displeases +displeasing +displeasure +displeasure's +disport +disported +disporting +disports +disposable +disposable's +disposables +disposal +disposal's +disposals +dispose +disposed +disposes +disposing +disposition +disposition's +dispositions +dispossess +dispossessed +dispossesses +dispossessing +dispossession +dispossession's +disproof +disproportion +disproportion's +disproportionate +disproportionately +disproportions +disprove +disproved +disproven +disproves +disproving +disputable +disputant +disputant's +disputants +disputation +disputation's +disputations +disputatious +dispute +dispute's +disputed +disputes +disputing +disqualification +disqualification's +disqualifications +disqualified +disqualifies +disqualify +disqualifying +disquiet +disquiet's +disquieted +disquieting +disquiets +disquisition +disquisition's +disquisitions +disregard +disregard's +disregarded +disregarding +disregards +disrepair +disrepair's +disreputable +disreputably +disrepute +disrepute's +disrespect +disrespect's +disrespected +disrespectful +disrespectfully +disrespecting +disrespects +disrobe +disrobed +disrobes +disrobing +disrupt +disrupted +disrupting +disruption +disruption's +disruptions +disruptive +disrupts +diss +diss's +dissatisfaction +dissatisfaction's +dissatisfied +dissatisfies +dissatisfy +dissatisfying +dissect +dissected +dissecting +dissection +dissection's +dissections +dissects +dissed +dissemble +dissembled +dissembles +dissembling +disseminate +disseminated +disseminates +disseminating +dissemination +dissemination's +dissension +dissension's +dissensions +dissent +dissent's +dissented +dissenter +dissenter's +dissenters +dissenting +dissents +dissertation +dissertation's +dissertations +disservice +disservice's +disservices +disses +dissidence +dissidence's +dissident +dissident's +dissidents +dissimilar +dissimilarities +dissimilarity +dissimilarity's +dissimulate +dissimulated +dissimulates +dissimulating +dissimulation +dissimulation's +dissing +dissipate +dissipated +dissipates +dissipating +dissipation +dissipation's +dissociate +dissociated +dissociates +dissociating +dissociation +dissociation's +dissolute +dissolutely +dissoluteness +dissoluteness's +dissolution +dissolution's +dissolve +dissolved +dissolves +dissolving +dissonance +dissonance's +dissonances +dissonant +dissuade +dissuaded +dissuades +dissuading +dissuasion +dissuasion's +distaff +distaff's +distaffs +distance +distance's +distanced +distances +distancing +distant +distantly +distaste +distaste's +distasteful +distastefully +distastes +distemper +distemper's +distend +distended +distending +distends +distension +distension's +distensions +distention +distention's +distentions +distil +distill +distillate +distillate's +distillates +distillation +distillation's +distillations +distilled +distiller +distiller's +distilleries +distillers +distillery +distillery's +distilling +distills +distils +distinct +distincter +distinctest +distinction +distinction's +distinctions +distinctive +distinctively +distinctiveness +distinctiveness's +distinctly +distinguish +distinguishable +distinguished +distinguishes +distinguishing +distort +distorted +distorter +distorting +distortion +distortion's +distortions +distorts +distract +distracted +distracting +distraction +distraction's +distractions +distracts +distrait +distraught +distress +distress's +distressed +distresses +distressful +distressing +distressingly +distribute +distributed +distributes +distributing +distribution +distribution's +distributions +distributive +distributor +distributor's +distributors +district +district's +districts +distrust +distrust's +distrusted +distrustful +distrustfully +distrusting +distrusts +disturb +disturbance +disturbance's +disturbances +disturbed +disturbing +disturbingly +disturbs +disunite +disunited +disunites +disuniting +disunity +disunity's +disuse +disuse's +disused +disuses +disusing +ditch +ditch's +ditched +ditches +ditching +dither +dither's +dithered +dithering +dithers +ditties +ditto +ditto's +dittoed +dittoes +dittoing +dittos +ditty +ditty's +diuretic +diuretic's +diuretics +diurnal +diurnally +diva +diva's +divan +divan's +divans +divas +dive +dive's +dived +diver +diver's +diverge +diverged +divergence +divergence's +divergences +divergent +diverges +diverging +divers +diverse +diversely +diversification +diversification's +diversified +diversifies +diversify +diversifying +diversion +diversion's +diversionary +diversions +diversities +diversity +diversity's +divert +diverted +diverting +diverts +dives +divest +divested +divesting +divests +divide +divide's +divided +dividend +dividend's +dividends +divider +divider's +dividers +divides +dividing +divination +divination's +divine +divine's +divined +divinely +diviner +diviner's +diviners +divines +divinest +diving +diving's +divining +divinities +divinity +divinity's +divisibility +divisibility's +divisible +division +division's +divisional +divisions +divisive +divisively +divisiveness +divisiveness's +divisor +divisor's +divisors +divorce +divorce's +divorced +divorces +divorcing +divorcée +divorcée's +divorcées +divot +divot's +divots +divulge +divulged +divulges +divulging +divvied +divvies +divvy +divvy's +divvying +dizzied +dizzier +dizzies +dizziest +dizzily +dizziness +dizziness's +dizzy +dizzying +djinn +djinn's +djinni +djinni's +djinns +do +do's +doable +doc +doc's +docent +docent's +docents +docile +docilely +docility +docility's +dock +dock's +docked +docket +docket's +docketed +docketing +dockets +docking +docks +dockyard +dockyard's +dockyards +docs +doctor +doctor's +doctoral +doctorate +doctorate's +doctorates +doctored +doctoring +doctors +doctrinaire +doctrinaire's +doctrinaires +doctrinal +doctrine +doctrine's +doctrines +docudrama +docudrama's +docudramas +document +document's +documentaries +documentary +documentary's +documentation +documentation's +documented +documenting +documents +dodder +dodder's +doddered +doddering +dodders +dodge +dodge's +dodged +dodger +dodger's +dodgers +dodges +dodging +dodo +dodo's +dodoes +dodos +doe +doe's +doer +doer's +doers +does +doesn't +doff +doffed +doffing +doffs +dog +dog's +dogcatcher +dogcatcher's +dogcatchers +dogfight +dogfight's +dogfights +dogfish +dogfish's +dogfishes +dogged +doggedly +doggedness +doggedness's +doggerel +doggerel's +doggie +doggie's +doggier +doggies +doggiest +dogging +doggone +doggoned +doggoneder +doggonedest +doggoner +doggones +doggonest +doggoning +doggy +doggy's +doghouse +doghouse's +doghouses +dogie +dogie's +dogies +dogma +dogma's +dogmas +dogmata +dogmatic +dogmatically +dogmatism +dogmatism's +dogmatist +dogmatist's +dogmatists +dogs +dogtrot +dogtrot's +dogtrots +dogtrotted +dogtrotting +dogwood +dogwood's +dogwoods +doilies +doily +doily's +doing +doing's +doings +doldrums +doldrums's +dole +dole's +doled +doleful +dolefully +doles +doling +doll +doll's +dollar +dollar's +dollars +dolled +dollhouse +dollhouse's +dollhouses +dollies +dolling +dollop +dollop's +dolloped +dolloping +dollops +dolls +dolly +dolly's +dolmen +dolmen's +dolmens +dolorous +dolphin +dolphin's +dolphins +dolt +dolt's +doltish +dolts +domain +domain's +domains +dome +dome's +domed +domes +domestic +domestic's +domestically +domesticate +domesticated +domesticates +domesticating +domestication +domestication's +domesticity +domesticity's +domestics +domicile +domicile's +domiciled +domiciles +domiciling +dominance +dominance's +dominant +dominant's +dominantly +dominants +dominate +dominated +dominates +dominating +domination +domination's +domineer +domineered +domineering +domineers +doming +dominion +dominion's +dominions +domino +domino's +dominoes +dominos +don +don's +don't +donate +donated +donates +donating +donation +donation's +donations +done +donkey +donkey's +donkeys +donned +donning +donor +donor's +donors +dons +donut +donut's +donuts +doodad +doodad's +doodads +doodle +doodle's +doodled +doodler +doodler's +doodlers +doodles +doodling +doohickey +doohickey's +doohickeys +doom +doom's +doomed +dooming +dooms +doomsday +doomsday's +door +door's +doorbell +doorbell's +doorbells +doorknob +doorknob's +doorknobs +doorman +doorman's +doormat +doormat's +doormats +doormen +doors +doorstep +doorstep's +doorsteps +doorway +doorway's +doorways +dope +dope's +doped +dopes +dopey +dopier +dopiest +doping +dopy +dories +dork +dork's +dorkier +dorkiest +dorks +dorky +dorm +dorm's +dormancy +dormancy's +dormant +dormer +dormer's +dormers +dormice +dormitories +dormitory +dormitory's +dormouse +dormouse's +dorms +dorsal +dory +dory's +dos +dosage +dosage's +dosages +dose +dose's +dosed +doses +dosing +dossier +dossier's +dossiers +dot +dot's +dotage +dotage's +dote +doted +dotes +doth +doting +dotingly +dots +dotted +dotting +dotty +double +double's +doubled +doubles +doublet +doublet's +doublets +doubling +doubloon +doubloon's +doubloons +doubly +doubt +doubt's +doubted +doubter +doubter's +doubters +doubtful +doubtfully +doubting +doubtless +doubtlessly +doubts +douche +douche's +douched +douches +douching +dough +dough's +doughier +doughiest +doughnut +doughnut's +doughnuts +doughtier +doughtiest +doughty +doughy +dour +dourer +dourest +dourly +douse +doused +douses +dousing +dove +dove's +doves +dovetail +dovetail's +dovetailed +dovetailing +dovetails +dowager +dowager's +dowagers +dowdier +dowdies +dowdiest +dowdily +dowdiness +dowdiness's +dowdy +dowel +dowel's +doweled +doweling +dowelled +dowelling +dowels +down +down's +downbeat +downbeat's +downbeats +downcast +downed +downer +downer's +downers +downfall +downfall's +downfalls +downgrade +downgrade's +downgraded +downgrades +downgrading +downhearted +downhill +downhill's +downhills +downier +downiest +downing +download +download's +downloaded +downloading +downloads +downplay +downplayed +downplaying +downplays +downpour +downpour's +downpours +downright +downs +downscale +downsize +downsized +downsizes +downsizing +downsizing's +downstage +downstairs +downstairs's +downstate +downstate's +downstream +downswing +downswing's +downswings +downtime +downtime's +downtown +downtown's +downtrodden +downturn +downturn's +downturns +downward +downwards +downwind +downy +dowries +dowry +dowry's +dowse +dowsed +dowses +dowsing +doxologies +doxology +doxology's +doyen +doyen's +doyens +doze +doze's +dozed +dozen +dozen's +dozens +dozes +dozing +drab +drab's +drabber +drabbest +drably +drabness +drabness's +drabs +drachma +drachma's +drachmae +drachmai +drachmas +draconian +draft +draft's +drafted +draftee +draftee's +draftees +draftier +draftiest +draftiness +draftiness's +drafting +drafts +draftsman +draftsman's +draftsmanship +draftsmanship's +draftsmen +drafty +drag +drag's +dragged +dragging +dragnet +dragnet's +dragnets +dragon +dragon's +dragonflies +dragonfly +dragonfly's +dragons +dragoon +dragoon's +dragooned +dragooning +dragoons +drags +drain +drain's +drainage +drainage's +drained +drainer +drainer's +drainers +draining +drainpipe +drainpipe's +drainpipes +drains +drake +drake's +drakes +dram +dram's +drama +drama's +dramas +dramatic +dramatically +dramatics +dramatics's +dramatist +dramatist's +dramatists +dramatization +dramatization's +dramatizations +dramatize +dramatized +dramatizes +dramatizing +drams +drank +drape +drape's +draped +draperies +drapery +drapery's +drapes +draping +drastic +drastically +draw +draw's +drawback +drawback's +drawbacks +drawbridge +drawbridge's +drawbridges +drawer +drawer's +drawers +drawing +drawing's +drawings +drawl +drawl's +drawled +drawling +drawls +drawn +draws +drawstring +drawstring's +drawstrings +dray +dray's +drays +dread +dread's +dreaded +dreadful +dreadfully +dreading +dreadlocks +dreadlocks's +dreadnought +dreadnought's +dreadnoughts +dreads +dream +dream's +dreamed +dreamer +dreamer's +dreamers +dreamier +dreamiest +dreamily +dreaming +dreamland +dreamland's +dreamless +dreamlike +dreams +dreamy +drearier +dreariest +drearily +dreariness +dreariness's +dreary +dredge +dredge's +dredged +dredger +dredger's +dredgers +dredges +dredging +dregs +dregs's +drench +drenched +drenches +drenching +dress +dress's +dressage +dressage's +dressed +dresser +dresser's +dressers +dresses +dressier +dressiest +dressiness +dressiness's +dressing +dressing's +dressings +dressmaker +dressmaker's +dressmakers +dressmaking +dressmaking's +dressy +drew +dribble +dribble's +dribbled +dribbler +dribbler's +dribblers +dribbles +dribbling +driblet +driblet's +driblets +dried +drier +drier's +driers +dries +driest +drift +drift's +drifted +drifter +drifter's +drifters +drifting +drifts +driftwood +driftwood's +drill +drill's +drilled +drilling +drills +drily +drink +drink's +drinkable +drinker +drinker's +drinkers +drinking +drinkings +drinks +drip +drip's +dripped +dripping +dripping's +drippings +drips +drive +drive's +drivel +drivel's +driveled +driveling +drivelled +drivelling +drivels +driven +driver +driver's +drivers +drives +driveway +driveway's +driveways +driving +drivings +drizzle +drizzle's +drizzled +drizzles +drizzlier +drizzliest +drizzling +drizzly +droll +droller +drolleries +drollery +drollery's +drollest +drollness +drollness's +drolly +dromedaries +dromedary +dromedary's +drone +drone's +droned +drones +droning +drool +drool's +drooled +drooling +drools +droop +droop's +drooped +droopier +droopiest +drooping +droops +droopy +drop +drop's +droplet +droplet's +droplets +dropout +dropout's +dropouts +dropped +dropper +dropper's +droppers +dropping +droppings +droppings's +drops +dropsy +dropsy's +dross +dross's +drought +drought's +droughts +drouth +drouth's +drouthes +drouths +drove +drove's +drover +drover's +drovers +droves +drown +drowned +drowning +drowning's +drownings +drowns +drowse +drowse's +drowsed +drowses +drowsier +drowsiest +drowsily +drowsiness +drowsiness's +drowsing +drowsy +drub +drubbed +drubbing +drubbing's +drubbings +drubs +drudge +drudge's +drudged +drudgery +drudgery's +drudges +drudging +drug +drug's +drugged +drugging +druggist +druggist's +druggists +drugs +drugstore +drugstore's +drugstores +druid +druid's +druids +drum +drum's +drummed +drummer +drummer's +drummers +drumming +drums +drumstick +drumstick's +drumsticks +drunk +drunk's +drunkard +drunkard's +drunkards +drunken +drunkenly +drunkenness +drunkenness's +drunker +drunkest +drunks +dry +dry's +dryad +dryad's +dryads +dryer +dryer's +dryers +dryest +drying +dryly +dryness +dryness's +drys +drywall +drywall's +dual +dualism +duality +duality's +dub +dub's +dubbed +dubbing +dubiety +dubiety's +dubious +dubiously +dubiousness +dubiousness's +dubs +ducal +ducat +ducat's +ducats +duchess +duchess's +duchesses +duchies +duchy +duchy's +duck +duck's +duckbill +duckbill's +duckbills +ducked +ducking +duckling +duckling's +ducklings +ducks +duct +duct's +ductile +ductility +ductility's +ducting +ductless +ducts +dud +dud's +dude +dude's +duded +dudes +dudgeon +dudgeon's +duding +duds +due +due's +duel +duel's +dueled +dueling +duelist +duelist's +duelists +duelled +duelling +duellist +duellist's +duellists +duels +dues +duet +duet's +duets +duff +duffer +duffer's +duffers +dug +dugout +dugout's +dugouts +duh +duke +duke's +dukedom +dukedom's +dukedoms +dukes +dulcet +dulcimer +dulcimer's +dulcimers +dull +dullard +dullard's +dullards +dulled +duller +dullest +dulling +dullness +dullness's +dulls +dully +dulness +dulness's +duly +dumb +dumbbell +dumbbell's +dumbbells +dumber +dumbest +dumbfound +dumbfounded +dumbfounding +dumbfounds +dumbly +dumbness +dumbness's +dumbwaiter +dumbwaiter's +dumbwaiters +dumfound +dumfounded +dumfounding +dumfounds +dummies +dummy +dummy's +dump +dump's +dumped +dumpier +dumpiest +dumping +dumpling +dumpling's +dumplings +dumps +dumpster +dumpy +dun +dun's +dunce +dunce's +dunces +dune +dune's +dunes +dung +dung's +dungaree +dungaree's +dungarees +dunged +dungeon +dungeon's +dungeons +dunging +dungs +dunk +dunk's +dunked +dunking +dunks +dunned +dunner +dunnest +dunning +dunno +duns +duo +duo's +duodena +duodenal +duodenum +duodenum's +duodenums +duos +dupe +dupe's +duped +dupes +duping +duplex +duplex's +duplexes +duplicate +duplicate's +duplicated +duplicates +duplicating +duplication +duplication's +duplicator +duplicator's +duplicators +duplicity +duplicity's +durability +durability's +durable +durably +duration +duration's +duress +duress's +during +dusk +dusk's +duskier +duskiest +dusky +dust +dust's +dustbin +dustbin's +dustbins +dusted +duster +duster's +dusters +dustier +dustiest +dustiness +dustiness's +dusting +dustless +dustman +dustmen +dustpan +dustpan's +dustpans +dusts +dusty +duteous +dutiable +duties +dutiful +dutifully +duty +duty's +duvet +dwarf +dwarf's +dwarfed +dwarfing +dwarfish +dwarfism +dwarfism's +dwarfs +dwarves +dweeb +dweeb's +dweebs +dwell +dwelled +dweller +dweller's +dwellers +dwelling +dwelling's +dwellings +dwells +dwelt +dwindle +dwindled +dwindles +dwindling +dyadic +dye +dye's +dyed +dyeing +dyer +dyer's +dyers +dyes +dyestuff +dyestuff's +dying +dying's +dyke +dyke's +dykes +dynamic +dynamic's +dynamical +dynamically +dynamics +dynamics's +dynamism +dynamism's +dynamite +dynamite's +dynamited +dynamites +dynamiting +dynamo +dynamo's +dynamos +dynastic +dynasties +dynasty +dynasty's +dysentery +dysentery's +dysfunction +dysfunction's +dysfunctional +dysfunctions +dyslexia +dyslexia's +dyslexic +dyslexic's +dyslexics +dyspepsia +dyspepsia's +dyspeptic +dyspeptic's +dyspeptics +débutante +débutante's +débutantes +décolleté +dérailleur +dérailleur's +dérailleurs +détente +détente's +e +e'er +eBay +eBay's +eMusic +each +eager +eagerer +eagerest +eagerly +eagerness +eagerness's +eagle +eagle's +eagles +eaglet +eaglet's +eaglets +ear +ear's +earache +earache's +earaches +eardrum +eardrum's +eardrums +earful +earful's +earfuls +earl +earl's +earldom +earldom's +earldoms +earlier +earliest +earliness +earliness's +earlobe +earlobe's +earlobes +earls +early +earmark +earmark's +earmarked +earmarking +earmarks +earmuff +earmuff's +earmuffs +earn +earned +earner +earner's +earners +earnest +earnest's +earnestly +earnestness +earnestness's +earnests +earning +earnings +earnings's +earns +earphone +earphone's +earphones +earplug +earplug's +earplugs +earring +earring's +earrings +ears +earshot +earshot's +earsplitting +earth +earth's +earthed +earthen +earthenware +earthenware's +earthier +earthiest +earthiness +earthiness's +earthing +earthlier +earthliest +earthling +earthling's +earthlings +earthly +earthquake +earthquake's +earthquakes +earths +earthshaking +earthward +earthwork +earthwork's +earthworks +earthworm +earthworm's +earthworms +earthy +earwax +earwax's +earwig +earwig's +earwigs +ease +ease's +eased +easel +easel's +easels +eases +easier +easiest +easily +easiness +easiness's +easing +east +east's +eastbound +easterlies +easterly +easterly's +eastern +easterner +easterner's +easterners +easternmost +eastward +eastwards +easy +easygoing +eat +eatable +eatable's +eatables +eaten +eater +eater's +eateries +eaters +eatery +eatery's +eating +eats +eave +eave's +eaves +eavesdrop +eavesdropped +eavesdropper +eavesdropper's +eavesdroppers +eavesdropping +eavesdrops +ebb +ebb's +ebbed +ebbing +ebbs +ebonies +ebony +ebony's +ebullience +ebullience's +ebullient +eccentric +eccentric's +eccentrically +eccentricities +eccentricity +eccentricity's +eccentrics +ecclesiastic +ecclesiastic's +ecclesiastical +ecclesiastics +echelon +echelon's +echelons +echo +echo's +echoed +echoes +echoing +echos +eclectic +eclectic's +eclectically +eclecticism +eclecticism's +eclectics +eclipse +eclipse's +eclipsed +eclipses +eclipsing +ecliptic +ecliptic's +ecological +ecologically +ecologist +ecologist's +ecologists +ecology +ecology's +econometric +economic +economical +economically +economics +economics's +economies +economist +economist's +economists +economize +economized +economizes +economizing +economy +economy's +ecosystem +ecosystem's +ecosystems +ecru +ecru's +ecstasies +ecstasy +ecstasy's +ecstatic +ecstatically +ecumenical +ecumenically +eczema +eczema's +ed's +eddied +eddies +eddy +eddy's +eddying +edelweiss +edelweiss's +edema +edema's +edge +edge's +edged +edger +edges +edgeways +edgewise +edgier +edgiest +edginess +edginess's +edging +edging's +edgings +edgy +edibility +edibility's +edible +edible's +edibles +edict +edict's +edicts +edification +edification's +edifice +edifice's +edifices +edified +edifies +edify +edifying +edit +edit's +editable +edited +editing +edition +edition's +editions +editor +editor's +editorial +editorial's +editorialize +editorialized +editorializes +editorializing +editorially +editorials +editors +editorship +edits +educable +educate +educated +educates +educating +education +education's +educational +educationally +educations +educator +educator's +educators +eel +eel's +eels +eerie +eerier +eeriest +eerily +eeriness +eeriness's +eery +efface +effaced +effacement +effacement's +effaces +effacing +effect +effect's +effected +effecting +effective +effectively +effectiveness +effectiveness's +effects +effectual +effectually +effectuate +effectuated +effectuates +effectuating +effeminacy +effeminacy's +effeminate +effervesce +effervesced +effervescence +effervescence's +effervescent +effervesces +effervescing +effete +efficacious +efficaciously +efficacy +efficacy's +efficiency +efficiency's +efficient +efficiently +effigies +effigy +effigy's +effluent +effluent's +effluents +effort +effort's +effortless +effortlessly +efforts +effrontery +effrontery's +effulgence +effulgence's +effulgent +effusion +effusion's +effusions +effusive +effusively +effusiveness +effusiveness's +egalitarian +egalitarian's +egalitarianism +egalitarianism's +egalitarians +egg +egg's +eggbeater +eggbeater's +eggbeaters +egged +egghead +egghead's +eggheads +egging +eggnog +eggnog's +eggplant +eggplant's +eggplants +eggs +eggshell +eggshell's +eggshells +egis +egis's +eglantine +eglantine's +eglantines +ego +ego's +egocentric +egocentric's +egocentrics +egoism +egoism's +egoist +egoist's +egoistic +egoists +egos +egotism +egotism's +egotist +egotist's +egotistic +egotistical +egotistically +egotists +egregious +egregiously +egress +egress's +egresses +egret +egret's +egrets +eh +eider +eider's +eiderdown +eiderdown's +eiderdowns +eiders +eigenvalue +eigenvalues +eight +eight's +eighteen +eighteen's +eighteens +eighteenth +eighteenth's +eighteenths +eighth +eighth's +eighths +eighties +eightieth +eightieth's +eightieths +eights +eighty +eighty's +either +ejaculate +ejaculated +ejaculates +ejaculating +ejaculation +ejaculation's +ejaculations +eject +ejected +ejecting +ejection +ejection's +ejections +ejects +eke +eked +ekes +eking +elaborate +elaborated +elaborately +elaborateness +elaborateness's +elaborates +elaborating +elaboration +elaboration's +elaborations +elapse +elapsed +elapses +elapsing +elastic +elastic's +elasticity +elasticity's +elastics +elate +elated +elates +elating +elation +elation's +elbow +elbow's +elbowed +elbowing +elbowroom +elbowroom's +elbows +elder +elder's +elderberries +elderberry +elderberry's +elderly +elders +eldest +elect +elect's +elected +electing +election +election's +electioneer +electioneered +electioneering +electioneers +elections +elective +elective's +electives +elector +elector's +electoral +electorate +electorate's +electorates +electors +electric +electrical +electrically +electrician +electrician's +electricians +electricity +electricity's +electrification +electrification's +electrified +electrifies +electrify +electrifying +electrocardiogram +electrocardiogram's +electrocardiograms +electrocardiograph +electrocardiograph's +electrocardiographs +electrocute +electrocuted +electrocutes +electrocuting +electrocution +electrocution's +electrocutions +electrode +electrode's +electrodes +electrodynamics +electroencephalogram +electroencephalogram's +electroencephalograms +electroencephalograph +electroencephalograph's +electroencephalographs +electrolysis +electrolysis's +electrolyte +electrolyte's +electrolytes +electrolytic +electromagnet +electromagnet's +electromagnetic +electromagnetism +electromagnetism's +electromagnets +electron +electron's +electronic +electronically +electronics +electronics's +electrons +electroplate +electroplated +electroplates +electroplating +electrostatic +elects +elegance +elegance's +elegant +elegantly +elegiac +elegiac's +elegiacs +elegies +elegy +elegy's +element +element's +elemental +elementary +elements +elephant +elephant's +elephantine +elephants +elevate +elevated +elevates +elevating +elevation +elevation's +elevations +elevator +elevator's +elevators +eleven +eleven's +elevens +eleventh +eleventh's +elevenths +elf +elf's +elfin +elfish +elicit +elicited +eliciting +elicits +elide +elided +elides +eliding +eligibility +eligibility's +eligible +eliminate +eliminated +eliminates +eliminating +elimination +elimination's +eliminations +elision +elision's +elisions +elite +elite's +elites +elitism +elitism's +elitist +elitist's +elitists +elixir +elixir's +elixirs +elk +elk's +elks +ell +ell's +ellipse +ellipse's +ellipses +ellipsis +ellipsis's +elliptic +elliptical +elliptically +ells +elm +elm's +elms +elocution +elocution's +elocutionist +elocutionist's +elocutionists +elongate +elongated +elongates +elongating +elongation +elongation's +elongations +elope +eloped +elopement +elopement's +elopements +elopes +eloping +eloquence +eloquence's +eloquent +eloquently +else +elsewhere +elucidate +elucidated +elucidates +elucidating +elucidation +elucidation's +elucidations +elude +eluded +eludes +eluding +elusive +elusively +elusiveness +elusiveness's +elves +em +em's +emaciate +emaciated +emaciates +emaciating +emaciation +emaciation's +email +email's +emailed +emailing +emails +emanate +emanated +emanates +emanating +emanation +emanation's +emanations +emancipate +emancipated +emancipates +emancipating +emancipation +emancipation's +emancipator +emancipator's +emancipators +emasculate +emasculated +emasculates +emasculating +emasculation +emasculation's +embalm +embalmed +embalmer +embalmer's +embalmers +embalming +embalms +embankment +embankment's +embankments +embargo +embargo's +embargoed +embargoes +embargoing +embark +embarkation +embarkation's +embarkations +embarked +embarking +embarks +embarrass +embarrassed +embarrasses +embarrassing +embarrassingly +embarrassment +embarrassment's +embarrassments +embassies +embassy +embassy's +embattled +embed +embedded +embedding +embeds +embellish +embellished +embellishes +embellishing +embellishment +embellishment's +embellishments +ember +ember's +embers +embezzle +embezzled +embezzlement +embezzlement's +embezzler +embezzler's +embezzlers +embezzles +embezzling +embitter +embittered +embittering +embitters +emblazon +emblazoned +emblazoning +emblazons +emblem +emblem's +emblematic +emblems +embodied +embodies +embodiment +embodiment's +embody +embodying +embolden +emboldened +emboldening +emboldens +embolism +embolism's +embolisms +emboss +embossed +embosses +embossing +embrace +embrace's +embraced +embraces +embracing +embroider +embroidered +embroideries +embroidering +embroiders +embroidery +embroidery's +embroil +embroiled +embroiling +embroils +embryo +embryo's +embryologist +embryologist's +embryologists +embryology +embryology's +embryonic +embryos +emcee +emcee's +emceed +emceeing +emcees +emend +emendation +emendation's +emendations +emended +emending +emends +emerald +emerald's +emeralds +emerge +emerged +emergence +emergence's +emergencies +emergency +emergency's +emergent +emerges +emerging +emeritus +emery +emery's +emetic +emetic's +emetics +emigrant +emigrant's +emigrants +emigrate +emigrated +emigrates +emigrating +emigration +emigration's +emigrations +eminence +eminence's +eminences +eminent +eminently +emir +emir's +emirate +emirate's +emirates +emirs +emissaries +emissary +emissary's +emission +emission's +emissions +emit +emits +emitted +emitting +emollient +emollient's +emollients +emolument +emolument's +emoluments +emote +emoted +emotes +emoting +emotion +emotion's +emotional +emotionalism +emotionalism's +emotionally +emotions +emotive +empanel +empaneled +empaneling +empanels +empathetic +empathize +empathized +empathizes +empathizing +empathy +empathy's +emperor +emperor's +emperors +emphases +emphasis +emphasis's +emphasize +emphasized +emphasizes +emphasizing +emphatic +emphatically +emphysema +emphysema's +empire +empire's +empires +empirical +empirically +empiricism +empiricism's +emplacement +emplacement's +emplacements +employ +employ's +employable +employe +employe's +employed +employee +employee's +employees +employer +employer's +employers +employes +employing +employment +employment's +employments +employs +emporia +emporium +emporium's +emporiums +empower +empowered +empowering +empowerment +empowerment's +empowers +empress +empress's +empresses +emptied +emptier +empties +emptiest +emptily +emptiness +emptiness's +empty +empty's +emptying +ems +emu +emu's +emulate +emulated +emulates +emulating +emulation +emulation's +emulations +emulator +emulator's +emulators +emulsification +emulsification's +emulsified +emulsifies +emulsify +emulsifying +emulsion +emulsion's +emulsions +emus +enable +enabled +enables +enabling +enact +enacted +enacting +enactment +enactment's +enactments +enacts +enamel +enamel's +enameled +enameling +enamelled +enamelling +enamels +enamor +enamored +enamoring +enamors +encamp +encamped +encamping +encampment +encampment's +encampments +encamps +encapsulate +encapsulated +encapsulates +encapsulating +encapsulation +encapsulation's +encapsulations +encase +encased +encases +encasing +encephalitis +encephalitis's +enchant +enchanted +enchanter +enchanter's +enchanters +enchanting +enchantingly +enchantment +enchantment's +enchantments +enchantress +enchantress's +enchantresses +enchants +enchilada +enchilada's +enchiladas +encircle +encircled +encirclement +encirclement's +encircles +encircling +enclave +enclave's +enclaves +enclose +enclosed +encloses +enclosing +enclosure +enclosure's +enclosures +encode +encoded +encoder +encoder's +encoders +encodes +encoding +encompass +encompassed +encompasses +encompassing +encore +encore's +encored +encores +encoring +encounter +encounter's +encountered +encountering +encounters +encourage +encouraged +encouragement +encouragement's +encouragements +encourages +encouraging +encouragingly +encroach +encroached +encroaches +encroaching +encroachment +encroachment's +encroachments +encrust +encrustation +encrustation's +encrustations +encrusted +encrusting +encrusts +encrypt +encrypted +encryption +encrypts +encumber +encumbered +encumbering +encumbers +encumbrance +encumbrance's +encumbrances +encyclical +encyclical's +encyclicals +encyclopaedia +encyclopaedia's +encyclopaedias +encyclopedia +encyclopedia's +encyclopedias +encyclopedic +end +end's +endanger +endangered +endangering +endangers +endear +endeared +endearing +endearingly +endearment +endearment's +endearments +endears +endeavor +endeavor's +endeavored +endeavoring +endeavors +ended +endemic +endemic's +endemics +ending +ending's +endings +endive +endive's +endives +endless +endlessly +endlessness +endlessness's +endocrine +endocrine's +endocrines +endorse +endorsed +endorsement +endorsement's +endorsements +endorser +endorser's +endorsers +endorses +endorsing +endow +endowed +endowing +endowment +endowment's +endowments +endows +ends +endue +endued +endues +enduing +endurable +endurance +endurance's +endure +endured +endures +enduring +endways +endwise +enema +enema's +enemas +enemata +enemies +enemy +enemy's +energetic +energetically +energies +energize +energized +energizer +energizer's +energizers +energizes +energizing +energy +energy's +enervate +enervated +enervates +enervating +enervation +enervation's +enfeeble +enfeebled +enfeebles +enfeebling +enfold +enfolded +enfolding +enfolds +enforce +enforceable +enforced +enforcement +enforcement's +enforcer +enforcer's +enforcers +enforces +enforcing +enfranchise +enfranchised +enfranchisement +enfranchisement's +enfranchises +enfranchising +engage +engaged +engagement +engagement's +engagements +engages +engaging +engagingly +engender +engendered +engendering +engenders +engine +engine's +engineer +engineer's +engineered +engineering +engineering's +engineers +engines +engorge +engorged +engorges +engorging +engrave +engraved +engraver +engraver's +engravers +engraves +engraving +engraving's +engravings +engross +engrossed +engrosses +engrossing +engulf +engulfed +engulfing +engulfs +enhance +enhanced +enhancement +enhancement's +enhancements +enhancer +enhances +enhancing +enigma +enigma's +enigmas +enigmatic +enigmatically +enjoin +enjoined +enjoining +enjoins +enjoy +enjoyable +enjoyed +enjoying +enjoyment +enjoyment's +enjoyments +enjoys +enlarge +enlarged +enlargement +enlargement's +enlargements +enlarger +enlarger's +enlargers +enlarges +enlarging +enlighten +enlightened +enlightening +enlightenment +enlightenment's +enlightens +enlist +enlisted +enlistee +enlistee's +enlistees +enlisting +enlistment +enlistment's +enlistments +enlists +enliven +enlivened +enlivening +enlivens +enmesh +enmeshed +enmeshes +enmeshing +enmities +enmity +enmity's +ennoble +ennobled +ennoblement +ennoblement's +ennobles +ennobling +ennui +ennui's +enormities +enormity +enormity's +enormous +enormously +enormousness +enormousness's +enough +enough's +enquire +enquired +enquires +enquiries +enquiring +enquiry +enquiry's +enrage +enraged +enrages +enraging +enrapture +enraptured +enraptures +enrapturing +enrich +enriched +enriches +enriching +enrichment +enrichment's +enrol +enroll +enrolled +enrolling +enrollment +enrollment's +enrollments +enrolls +enrolment +enrolment's +enrolments +enrols +ensconce +ensconced +ensconces +ensconcing +ensemble +ensemble's +ensembles +enshrine +enshrined +enshrines +enshrining +enshroud +enshrouded +enshrouding +enshrouds +ensign +ensign's +ensigns +enslave +enslaved +enslavement +enslavement's +enslaves +enslaving +ensnare +ensnared +ensnares +ensnaring +ensue +ensued +ensues +ensuing +ensure +ensured +ensures +ensuring +entail +entailed +entailing +entails +entangle +entangled +entanglement +entanglement's +entanglements +entangles +entangling +entente +entente's +ententes +enter +entered +entering +enterprise +enterprise's +enterprises +enterprising +enters +entertain +entertained +entertainer +entertainer's +entertainers +entertaining +entertaining's +entertainingly +entertainment +entertainment's +entertainments +entertains +enthral +enthrall +enthralled +enthralling +enthralls +enthrals +enthrone +enthroned +enthronement +enthronement's +enthronements +enthrones +enthroning +enthuse +enthused +enthuses +enthusiasm +enthusiasm's +enthusiasms +enthusiast +enthusiast's +enthusiastic +enthusiastically +enthusiasts +enthusing +entice +enticed +enticement +enticement's +enticements +entices +enticing +entire +entirely +entirety +entirety's +entities +entitle +entitled +entitlement +entitlement's +entitlements +entitles +entitling +entity +entity's +entomb +entombed +entombing +entombment +entombment's +entombs +entomological +entomologist +entomologist's +entomologists +entomology +entomology's +entourage +entourage's +entourages +entrails +entrails's +entrance +entrance's +entranced +entrances +entrancing +entrant +entrant's +entrants +entrap +entrapment +entrapment's +entrapped +entrapping +entraps +entreat +entreated +entreaties +entreating +entreats +entreaty +entreaty's +entrench +entrenched +entrenches +entrenching +entrenchment +entrenchment's +entrenchments +entrepreneur +entrepreneur's +entrepreneurial +entrepreneurs +entries +entropy +entropy's +entrust +entrusted +entrusting +entrusts +entry +entry's +entryway +entryway's +entryways +entrée +entrée's +entrées +entwine +entwined +entwines +entwining +enumerable +enumerate +enumerated +enumerates +enumerating +enumeration +enumeration's +enumerations +enunciate +enunciated +enunciates +enunciating +enunciation +enunciation's +enure +enured +enures +enuring +envelop +envelope +envelope's +enveloped +envelopes +enveloping +envelopment +envelopment's +envelops +enviable +enviably +envied +envies +envious +enviously +enviousness +enviousness's +environment +environment's +environmental +environmentalism +environmentalism's +environmentalist +environmentalist's +environmentalists +environmentally +environments +environs +environs's +envisage +envisaged +envisages +envisaging +envision +envisioned +envisioning +envisions +envoy +envoy's +envoys +envy +envy's +envying +enzyme +enzyme's +enzymes +eon +eon's +eons +epaulet +epaulet's +epaulets +epaulette +epaulette's +epaulettes +ephemeral +epic +epic's +epicenter +epicenter's +epicenters +epics +epicure +epicure's +epicurean +epicurean's +epicureans +epicures +epidemic +epidemic's +epidemics +epidemiology +epidemiology's +epidermal +epidermis +epidermis's +epidermises +epiglottides +epiglottis +epiglottis's +epiglottises +epigram +epigram's +epigrammatic +epigrams +epilepsy +epilepsy's +epileptic +epileptic's +epileptics +epilog +epilog's +epilogs +epilogue +epilogue's +epilogues +episcopacy +episcopacy's +episcopal +episcopate +episcopate's +episode +episode's +episodes +episodic +epistemology +epistle +epistle's +epistles +epistolary +epitaph +epitaph's +epitaphs +epithet +epithet's +epithets +epitome +epitome's +epitomes +epitomize +epitomized +epitomizes +epitomizing +epoch +epoch's +epochal +epochs +epoxied +epoxies +epoxy +epoxy's +epoxyed +epoxying +epsilon +equability +equability's +equable +equably +equal +equal's +equaled +equaling +equality +equality's +equalization +equalization's +equalize +equalized +equalizer +equalizer's +equalizers +equalizes +equalizing +equalled +equalling +equally +equals +equanimity +equanimity's +equate +equated +equates +equating +equation +equation's +equations +equator +equator's +equatorial +equators +equestrian +equestrian's +equestrians +equestrienne +equestrienne's +equestriennes +equidistant +equilateral +equilateral's +equilaterals +equilibrium +equilibrium's +equine +equine's +equines +equinoctial +equinox +equinox's +equinoxes +equip +equipage +equipage's +equipages +equipment +equipment's +equipoise +equipoise's +equipped +equipping +equips +equitable +equitably +equities +equity +equity's +equivalence +equivalence's +equivalences +equivalent +equivalent's +equivalently +equivalents +equivocal +equivocally +equivocate +equivocated +equivocates +equivocating +equivocation +equivocation's +equivocations +era +era's +eradicate +eradicated +eradicates +eradicating +eradication +eradication's +eras +erase +erased +eraser +eraser's +erasers +erases +erasing +erasure +erasure's +erasures +ere +erect +erected +erectile +erecting +erection +erection's +erections +erectly +erectness +erectness's +erects +erg +erg's +ergo +ergonomic +ergonomics +ergonomics's +ergs +ermine +ermine's +ermines +erode +eroded +erodes +eroding +erogenous +erosion +erosion's +erosive +erotic +erotica +erotica's +erotically +eroticism +eroticism's +err +errand +errand's +errands +errant +errata +errata's +erratas +erratic +erratically +erratum +erratum's +erred +erring +erroneous +erroneously +error +error's +errors +errs +ersatz +ersatz's +ersatzes +erstwhile +erudite +eruditely +erudition +erudition's +erupt +erupted +erupting +eruption +eruption's +eruptions +erupts +erythrocyte +erythrocyte's +erythrocytes +es +escalate +escalated +escalates +escalating +escalation +escalation's +escalations +escalator +escalator's +escalators +escapade +escapade's +escapades +escape +escape's +escaped +escapee +escapee's +escapees +escapes +escaping +escapism +escapism's +escapist +escapist's +escapists +escarole +escarole's +escaroles +escarpment +escarpment's +escarpments +eschatology +eschew +eschewed +eschewing +eschews +escort +escort's +escorted +escorting +escorts +escrow +escrow's +escrows +escutcheon +escutcheon's +escutcheons +esophagi +esophagus +esophagus's +esophaguses +esoteric +esoterically +espadrille +espadrille's +espadrilles +especial +especially +espied +espies +espionage +espionage's +esplanade +esplanade's +esplanades +espousal +espousal's +espouse +espoused +espouses +espousing +espresso +espresso's +espressos +espy +espying +esquire +esquire's +esquires +essay +essay's +essayed +essaying +essayist +essayist's +essayists +essays +essence +essence's +essences +essential +essential's +essentially +essentials +establish +established +establishes +establishing +establishment +establishment's +establishments +estate +estate's +estates +esteem +esteem's +esteemed +esteeming +esteems +ester +ester's +esters +esthete +esthete's +esthetes +esthetic +esthetics +estimable +estimate +estimate's +estimated +estimates +estimating +estimation +estimation's +estimations +estimator +estimator's +estimators +estrange +estranged +estrangement +estrangement's +estrangements +estranges +estranging +estrogen +estrogen's +estuaries +estuary +estuary's +eta +etch +etched +etcher +etcher's +etchers +etches +etching +etching's +etchings +eternal +eternally +eternities +eternity +eternity's +ether +ether's +ethereal +ethereally +ethic +ethic's +ethical +ethically +ethics +ethics's +ethnic +ethnic's +ethnically +ethnicity +ethnicity's +ethnics +ethnological +ethnologist +ethnologist's +ethnologists +ethnology +ethnology's +ethos +ethos's +etiologies +etiology +etiology's +etiquette +etiquette's +etymological +etymologies +etymologist +etymologist's +etymologists +etymology +etymology's +eucalypti +eucalyptus +eucalyptus's +eucalyptuses +eugenics +eugenics's +eulogies +eulogistic +eulogize +eulogized +eulogizes +eulogizing +eulogy +eulogy's +eunuch +eunuch's +eunuchs +euphemism +euphemism's +euphemisms +euphemistic +euphemistically +euphony +euphony's +euphoria +euphoria's +euphoric +eureka +euro +euro's +euros +eutectic +euthanasia +euthanasia's +evacuate +evacuated +evacuates +evacuating +evacuation +evacuation's +evacuations +evacuee +evacuee's +evacuees +evade +evaded +evades +evading +evaluate +evaluated +evaluates +evaluating +evaluation +evaluation's +evaluations +evanescent +evangelical +evangelical's +evangelicals +evangelism +evangelism's +evangelist +evangelist's +evangelistic +evangelists +evangelize +evangelized +evangelizes +evangelizing +evaporate +evaporated +evaporates +evaporating +evaporation +evaporation's +evasion +evasion's +evasions +evasive +evasively +evasiveness +evasiveness's +eve +eve's +even +even's +evened +evener +evenest +evenhanded +evening +evening's +evenings +evenly +evenness +evenness's +evens +event +event's +eventful +eventfully +eventfulness +eventfulness's +eventide +eventide's +events +eventual +eventualities +eventuality +eventuality's +eventually +eventuate +eventuated +eventuates +eventuating +ever +everglade +everglade's +everglades +evergreen +evergreen's +evergreens +everlasting +everlasting's +everlastings +evermore +every +everybody +everybody's +everyday +everyone +everyone's +everyplace +everything +everything's +everywhere +eves +evict +evicted +evicting +eviction +eviction's +evictions +evicts +evidence +evidence's +evidenced +evidences +evidencing +evident +evidently +evil +evil's +evildoer +evildoer's +evildoers +eviler +evilest +eviller +evillest +evilly +evils +evince +evinced +evinces +evincing +eviscerate +eviscerated +eviscerates +eviscerating +evisceration +evisceration's +evocation +evocation's +evocations +evocative +evoke +evoked +evokes +evoking +evolution +evolution's +evolutionary +evolve +evolved +evolves +evolving +ewe +ewe's +ewer +ewer's +ewers +ewes +ex +ex's +exacerbate +exacerbated +exacerbates +exacerbating +exacerbation +exacerbation's +exact +exacted +exacter +exactest +exacting +exactingly +exactitude +exactitude's +exactly +exactness +exactness's +exacts +exaggerate +exaggerated +exaggerates +exaggerating +exaggeration +exaggeration's +exaggerations +exalt +exaltation +exaltation's +exalted +exalting +exalts +exam +exam's +examination +examination's +examinations +examine +examined +examiner +examiner's +examiners +examines +examining +example +example's +exampled +examples +exampling +exams +exasperate +exasperated +exasperates +exasperating +exasperation +exasperation's +excavate +excavated +excavates +excavating +excavation +excavation's +excavations +excavator +excavator's +excavators +exceed +exceeded +exceeding +exceedingly +exceeds +excel +excelled +excellence +excellence's +excellent +excellently +excelling +excels +except +excepted +excepting +exception +exception's +exceptionable +exceptional +exceptionally +exceptions +excepts +excerpt +excerpt's +excerpted +excerpting +excerpts +excess +excess's +excesses +excessive +excessively +exchange +exchange's +exchangeable +exchanged +exchanges +exchanging +exchequer +exchequer's +exchequers +excise +excise's +excised +excises +excising +excision +excision's +excisions +excitability +excitability's +excitable +excitation +excitation's +excite +excited +excitedly +excitement +excitement's +excitements +excites +exciting +excitingly +exclaim +exclaimed +exclaiming +exclaims +exclamation +exclamation's +exclamations +exclamatory +exclude +excluded +excludes +excluding +exclusion +exclusion's +exclusive +exclusive's +exclusively +exclusiveness +exclusiveness's +exclusives +exclusivity +exclusivity's +excommunicate +excommunicated +excommunicates +excommunicating +excommunication +excommunication's +excommunications +excoriate +excoriated +excoriates +excoriating +excoriation +excoriation's +excoriations +excrement +excrement's +excrescence +excrescence's +excrescences +excreta +excreta's +excrete +excreted +excretes +excreting +excretion +excretion's +excretions +excretory +excruciating +excruciatingly +exculpate +exculpated +exculpates +exculpating +excursion +excursion's +excursions +excusable +excuse +excuse's +excused +excuses +excusing +exec +exec's +execrable +execrate +execrated +execrates +execrating +execs +executable +execute +executed +executes +executing +execution +execution's +executioner +executioner's +executioners +executions +executive +executive's +executives +executor +executor's +executors +executrices +executrix +executrix's +executrixes +exegeses +exegesis +exegesis's +exemplar +exemplar's +exemplars +exemplary +exemplification +exemplification's +exemplifications +exemplified +exemplifies +exemplify +exemplifying +exempt +exempted +exempting +exemption +exemption's +exemptions +exempts +exercise +exercise's +exercised +exercises +exercising +exert +exerted +exerting +exertion +exertion's +exertions +exerts +exes +exhalation +exhalation's +exhalations +exhale +exhaled +exhales +exhaling +exhaust +exhaust's +exhausted +exhaustible +exhausting +exhaustion +exhaustion's +exhaustive +exhaustively +exhausts +exhibit +exhibit's +exhibited +exhibiting +exhibition +exhibition's +exhibitionism +exhibitionism's +exhibitionist +exhibitionist's +exhibitionists +exhibitions +exhibitor +exhibitor's +exhibitors +exhibits +exhilarate +exhilarated +exhilarates +exhilarating +exhilaration +exhilaration's +exhort +exhortation +exhortation's +exhortations +exhorted +exhorting +exhorts +exhumation +exhumation's +exhumations +exhume +exhumed +exhumes +exhuming +exigencies +exigency +exigency's +exigent +exiguous +exile +exile's +exiled +exiles +exiling +exist +existed +existence +existence's +existences +existent +existential +existentialism +existentialism's +existentialist +existentialist's +existentialists +existentially +existing +exists +exit +exit's +exited +exiting +exits +exodus +exodus's +exoduses +exonerate +exonerated +exonerates +exonerating +exoneration +exoneration's +exorbitance +exorbitance's +exorbitant +exorbitantly +exorcise +exorcised +exorcises +exorcising +exorcism +exorcism's +exorcisms +exorcist +exorcist's +exorcists +exorcize +exorcized +exorcizes +exorcizing +exotic +exotic's +exotically +exotics +expand +expandable +expanded +expanding +expands +expanse +expanse's +expanses +expansion +expansion's +expansionist +expansionist's +expansionists +expansions +expansive +expansively +expansiveness +expansiveness's +expatiate +expatiated +expatiates +expatiating +expatriate +expatriate's +expatriated +expatriates +expatriating +expatriation +expatriation's +expect +expectancy +expectancy's +expectant +expectantly +expectation +expectation's +expectations +expected +expecting +expectorant +expectorant's +expectorants +expectorate +expectorated +expectorates +expectorating +expectoration +expectoration's +expects +expedience +expedience's +expediences +expediencies +expediency +expediency's +expedient +expedient's +expediently +expedients +expedite +expedited +expediter +expediter's +expediters +expedites +expediting +expedition +expedition's +expeditionary +expeditions +expeditious +expeditiously +expeditor +expeditor's +expeditors +expel +expelled +expelling +expels +expend +expendable +expendable's +expendables +expended +expending +expenditure +expenditure's +expenditures +expends +expense +expense's +expenses +expensive +expensively +experience +experience's +experienced +experiences +experiencing +experiment +experiment's +experimental +experimentally +experimentation +experimentation's +experimented +experimenter +experimenter's +experimenters +experimenting +experiments +expert +expert's +expertise +expertise's +expertly +expertness +expertness's +experts +expiate +expiated +expiates +expiating +expiation +expiation's +expiration +expiration's +expire +expired +expires +expiring +expiry +explain +explained +explaining +explains +explanation +explanation's +explanations +explanatory +expletive +expletive's +expletives +explicable +explicate +explicated +explicates +explicating +explication +explication's +explications +explicit +explicitly +explicitness +explicitness's +explode +exploded +explodes +exploding +exploit +exploit's +exploitation +exploitation's +exploitative +exploited +exploiter +exploiter's +exploiters +exploiting +exploits +exploration +exploration's +explorations +exploratory +explore +explored +explorer +explorer's +explorers +explores +exploring +explosion +explosion's +explosions +explosive +explosive's +explosively +explosiveness +explosiveness's +explosives +expo +expo's +exponent +exponent's +exponential +exponentially +exponentiation +exponents +export +export's +exportation +exportation's +exported +exporter +exporter's +exporters +exporting +exports +expos +expose +expose's +exposed +exposes +exposing +exposition +exposition's +expositions +expository +expostulate +expostulated +expostulates +expostulating +expostulation +expostulation's +expostulations +exposure +exposure's +exposures +expound +expounded +expounding +expounds +express +express's +expressed +expresses +expressible +expressing +expression +expression's +expressionism +expressionism's +expressionist +expressionist's +expressionists +expressionless +expressions +expressive +expressively +expressiveness +expressiveness's +expressly +expressway +expressway's +expressways +expropriate +expropriated +expropriates +expropriating +expropriation +expropriation's +expropriations +expulsion +expulsion's +expulsions +expunge +expunged +expunges +expunging +expurgate +expurgated +expurgates +expurgating +expurgation +expurgation's +expurgations +exquisite +exquisitely +extant +extemporaneous +extemporaneously +extempore +extemporize +extemporized +extemporizes +extemporizing +extend +extendable +extended +extendible +extending +extends +extension +extension's +extensional +extensions +extensive +extensively +extensiveness +extensiveness's +extent +extent's +extents +extenuate +extenuated +extenuates +extenuating +extenuation +extenuation's +exterior +exterior's +exteriors +exterminate +exterminated +exterminates +exterminating +extermination +extermination's +exterminations +exterminator +exterminator's +exterminators +external +external's +externally +externals +extinct +extincted +extincting +extinction +extinction's +extinctions +extincts +extinguish +extinguishable +extinguished +extinguisher +extinguisher's +extinguishers +extinguishes +extinguishing +extirpate +extirpated +extirpates +extirpating +extirpation +extirpation's +extol +extoll +extolled +extolling +extolls +extols +extort +extorted +extorting +extortion +extortion's +extortionate +extortionist +extortionist's +extortionists +extorts +extra +extra's +extract +extract's +extracted +extracting +extraction +extraction's +extractions +extractor +extractor's +extractors +extracts +extracurricular +extradite +extradited +extradites +extraditing +extradition +extradition's +extraditions +extramarital +extraneous +extraneously +extraordinarily +extraordinary +extrapolate +extrapolated +extrapolates +extrapolating +extrapolation +extrapolation's +extrapolations +extras +extrasensory +extraterrestrial +extraterrestrial's +extraterrestrials +extravagance +extravagance's +extravagances +extravagant +extravagantly +extravaganza +extravaganza's +extravaganzas +extravert +extravert's +extraverted +extraverts +extreme +extreme's +extremely +extremer +extremes +extremest +extremism +extremism's +extremist +extremist's +extremists +extremities +extremity +extremity's +extricate +extricated +extricates +extricating +extrication +extrication's +extrinsic +extrinsically +extroversion +extroversion's +extrovert +extrovert's +extroverted +extroverts +extrude +extruded +extrudes +extruding +extrusion +extrusion's +extrusions +exuberance +exuberance's +exuberant +exuberantly +exude +exuded +exudes +exuding +exult +exultant +exultantly +exultation +exultation's +exulted +exulting +exults +eye +eye's +eyeball +eyeball's +eyeballed +eyeballing +eyeballs +eyebrow +eyebrow's +eyebrows +eyed +eyeful +eyeful's +eyefuls +eyeglass +eyeglass's +eyeglasses +eyeing +eyelash +eyelash's +eyelashes +eyelet +eyelet's +eyelets +eyelid +eyelid's +eyelids +eyeliner +eyeliner's +eyeliners +eyepiece +eyepiece's +eyepieces +eyes +eyesight +eyesight's +eyesore +eyesore's +eyesores +eyestrain +eyestrain's +eyeteeth +eyetooth +eyetooth's +eyewitness +eyewitness's +eyewitnesses +eying +eyrie +eyrie's +f +fa +fa's +fable +fable's +fabled +fables +fabric +fabric's +fabricate +fabricated +fabricates +fabricating +fabrication +fabrication's +fabrications +fabrics +fabulous +fabulously +facade +facade's +facades +face +face's +faced +faceless +facelift +facelift's +facelifts +faces +facet +facet's +faceted +faceting +facetious +facetiously +facetiousness +facetiousness's +facets +facetted +facetting +facial +facial's +facially +facials +facile +facilitate +facilitated +facilitates +facilitating +facilitation +facilitation's +facilities +facility +facility's +facing +facing's +facings +facsimile +facsimile's +facsimiled +facsimileing +facsimiles +fact +fact's +faction +faction's +factional +factionalism +factionalism's +factions +factitious +factor +factor's +factored +factorial +factories +factoring +factorization +factorize +factorizing +factors +factory +factory's +factotum +factotum's +factotums +facts +factual +factually +faculties +faculty +faculty's +fad +fad's +faddish +fade +fade's +faded +fades +fading +fads +faecal +faeces +faeces's +fag +fag's +fagged +fagging +faggot +faggot's +faggots +fagot +fagot's +fagots +fags +fail +fail's +failed +failing +failing's +failings +fails +failure +failure's +failures +fain +fainer +fainest +faint +faint's +fainted +fainter +faintest +fainthearted +fainting +faintly +faintness +faintness's +faints +fair +fair's +fairer +fairest +fairground +fairground's +fairgrounds +fairies +fairly +fairness +fairness's +fairs +fairway +fairway's +fairways +fairy +fairy's +fairyland +fairyland's +fairylands +faith +faith's +faithful +faithful's +faithfully +faithfulness +faithfulness's +faithfuls +faithless +faithlessly +faithlessness +faithlessness's +faiths +fake +fake's +faked +faker +faker's +fakers +fakes +faking +fakir +fakir's +fakirs +falcon +falcon's +falconer +falconer's +falconers +falconry +falconry's +falcons +fall +fall's +fallacies +fallacious +fallaciously +fallacy +fallacy's +fallen +fallibility +fallibility's +fallible +fallibly +falling +falloff +falloff's +falloffs +fallout +fallout's +fallow +fallow's +fallowed +fallowing +fallows +falls +false +falsehood +falsehood's +falsehoods +falsely +falseness +falseness's +falser +falsest +falsetto +falsetto's +falsettos +falsifiable +falsification +falsification's +falsifications +falsified +falsifies +falsify +falsifying +falsities +falsity +falsity's +falter +falter's +faltered +faltering +falteringly +falterings +falters +fame +fame's +famed +familial +familiar +familiar's +familiarity +familiarity's +familiarization +familiarization's +familiarize +familiarized +familiarizes +familiarizing +familiarly +familiars +families +family +family's +famine +famine's +famines +famish +famished +famishes +famishing +famous +famously +fan +fan's +fanatic +fanatic's +fanatical +fanatically +fanaticism +fanaticism's +fanatics +fancied +fancier +fancier's +fanciers +fancies +fanciest +fanciful +fancifully +fancily +fanciness +fanciness's +fancy +fancy's +fancying +fanfare +fanfare's +fanfares +fang +fang's +fangs +fanned +fannies +fanning +fanny +fanny's +fans +fantasied +fantasies +fantasize +fantasized +fantasizes +fantasizing +fantastic +fantastically +fantasy +fantasy's +fantasying +fanzine +far +faraway +farce +farce's +farces +farcical +fare +fare's +fared +fares +farewell +farewell's +farewells +farina +farina's +farinaceous +faring +farm +farm's +farmed +farmer +farmer's +farmers +farmhand +farmhand's +farmhands +farmhouse +farmhouse's +farmhouses +farming +farming's +farmland +farmland's +farms +farmyard +farmyard's +farmyards +farrow +farrow's +farrowed +farrowing +farrows +farsighted +farsightedness +farsightedness's +fart +fart's +farted +farther +farthest +farthing +farthing's +farthings +farting +farts +fascinate +fascinated +fascinates +fascinating +fascination +fascination's +fascinations +fascism +fascism's +fascist +fascist's +fascists +fashion +fashion's +fashionable +fashionably +fashioned +fashioning +fashions +fast +fast's +fasted +fasten +fastened +fastener +fastener's +fasteners +fastening +fastening's +fastenings +fastens +faster +fastest +fastidious +fastidiously +fastidiousness +fastidiousness's +fasting +fastness +fastness's +fastnesses +fasts +fat +fat's +fatal +fatalism +fatalism's +fatalist +fatalist's +fatalistic +fatalists +fatalities +fatality +fatality's +fatally +fate +fate's +fated +fateful +fatefully +fates +fathead +fathead's +fatheads +father +father's +fathered +fatherhood +fatherhood's +fathering +fatherland +fatherland's +fatherlands +fatherless +fatherly +fathers +fathom +fathom's +fathomable +fathomed +fathoming +fathomless +fathoms +fatigue +fatigue's +fatigued +fatigues +fatigues's +fatiguing +fating +fatness +fatness's +fats +fatten +fattened +fattening +fattens +fatter +fattest +fattier +fatties +fattiest +fatty +fatty's +fatuous +fatuously +fatuousness +fatuousness's +faucet +faucet's +faucets +fault +fault's +faulted +faultfinding +faultfinding's +faultier +faultiest +faultily +faultiness +faultiness's +faulting +faultless +faultlessly +faults +faulty +faun +faun's +fauna +fauna's +faunae +faunas +fauns +favor +favor's +favorable +favorably +favored +favoring +favorite +favorite's +favorites +favoritism +favoritism's +favors +fawn +fawn's +fawned +fawning +fawns +fax +fax's +faxed +faxes +faxing +faze +fazed +fazes +fazing +fealty +fealty's +fear +fear's +feared +fearful +fearfully +fearfulness +fearfulness's +fearing +fearless +fearlessly +fearlessness +fearlessness's +fears +fearsome +feasibility +feasibility's +feasible +feasibly +feast +feast's +feasted +feasting +feasts +feat +feat's +feather +feather's +featherbedding +featherbedding's +feathered +featherier +featheriest +feathering +feathers +featherweight +featherweight's +featherweights +feathery +feats +feature +feature's +featured +featureless +features +featuring +febrile +fecal +feces +feces's +feckless +fecund +fecundity +fecundity's +fed +fed's +federal +federal's +federalism +federalism's +federalist +federalist's +federalists +federally +federals +federate +federated +federates +federating +federation +federation's +federations +fedora +fedora's +fedoras +feds +fee +fee's +feeble +feebleness +feebleness's +feebler +feeblest +feebly +feed +feed's +feedback +feedback's +feedbag +feedbag's +feedbags +feeder +feeder's +feeders +feeding +feeding's +feedings +feeds +feel +feel's +feeler +feeler's +feelers +feeling +feeling's +feelingly +feelings +feels +fees +feet +feign +feigned +feigning +feigns +feint +feint's +feinted +feinting +feints +feistier +feistiest +feisty +feldspar +feldspar's +felicities +felicitous +felicity +felicity's +feline +feline's +felines +fell +fell's +fellatio +fellatio's +felled +feller +fellest +felling +fellow +fellow's +fellows +fellowship +fellowship's +fellowships +fells +felon +felon's +felonies +felonious +felons +felony +felony's +felt +felt's +felted +felting +felts +female +female's +females +feminine +feminine's +feminines +femininity +femininity's +feminism +feminism's +feminist +feminist's +feminists +femora +femoral +femur +femur's +femurs +fen +fen's +fence +fence's +fenced +fencer +fencer's +fencers +fences +fencing +fencing's +fend +fended +fender +fender's +fenders +fending +fends +fennel +fennel's +fens +fer +feral +ferment +ferment's +fermentation +fermentation's +fermented +fermenting +ferments +fern +fern's +ferns +ferocious +ferociously +ferociousness +ferociousness's +ferocity +ferocity's +ferret +ferret's +ferreted +ferreting +ferrets +ferric +ferried +ferries +ferrous +ferrule +ferrule's +ferrules +ferry +ferry's +ferryboat +ferryboat's +ferryboats +ferrying +fertile +fertility +fertility's +fertilization +fertilization's +fertilize +fertilized +fertilizer +fertilizer's +fertilizers +fertilizes +fertilizing +fervency +fervency's +fervent +fervently +fervid +fervidly +fervor +fervor's +fest +fest's +festal +fester +fester's +festered +festering +festers +festival +festival's +festivals +festive +festively +festivities +festivity +festivity's +festoon +festoon's +festooned +festooning +festoons +fests +feta +feta's +fetal +fetch +fetched +fetches +fetching +fetchingly +feted +fetich +fetich's +fetiches +fetid +feting +fetish +fetish's +fetishes +fetishism +fetishism's +fetishist +fetishist's +fetishistic +fetishists +fetlock +fetlock's +fetlocks +fetter +fetter's +fettered +fettering +fetters +fettle +fettle's +fetus +fetus's +fetuses +feud +feud's +feudal +feudalism +feudalism's +feudalistic +feuded +feuding +feuds +fever +fever's +fevered +feverish +feverishly +fevers +few +few's +fewer +fewest +fey +fez +fez's +fezes +fezzes +fiancé +fiancé's +fiancée +fiancée's +fiancées +fiancés +fiasco +fiasco's +fiascoes +fiascos +fiat +fiat's +fiats +fib +fib's +fibbed +fibber +fibber's +fibbers +fibbing +fiber +fiber's +fiberboard +fiberboard's +fiberglass +fiberglass's +fibers +fibroid +fibrous +fibs +fibula +fibula's +fibulae +fibulas +fiche +fiche's +fiches +fickle +fickleness +fickleness's +fickler +ficklest +fiction +fiction's +fictional +fictionalize +fictionalized +fictionalizes +fictionalizing +fictions +fictitious +fiddle +fiddle's +fiddled +fiddler +fiddler's +fiddlers +fiddles +fiddlesticks +fiddling +fiddly +fidelity +fidelity's +fidget +fidget's +fidgeted +fidgeting +fidgets +fidgety +fiduciaries +fiduciary +fiduciary's +fie +fief +fief's +fiefs +field +field's +fielded +fielder +fielder's +fielders +fielding +fields +fieldwork +fieldwork's +fiend +fiend's +fiendish +fiendishly +fiends +fierce +fiercely +fierceness +fierceness's +fiercer +fiercest +fierier +fieriest +fieriness +fieriness's +fiery +fiesta +fiesta's +fiestas +fife +fife's +fifes +fifteen +fifteen's +fifteens +fifteenth +fifteenth's +fifteenths +fifth +fifth's +fifths +fifties +fiftieth +fiftieth's +fiftieths +fifty +fifty's +fig +fig's +fight +fight's +fighter +fighter's +fighters +fighting +fighting's +fights +figment +figment's +figments +figs +figurative +figuratively +figure +figure's +figured +figurehead +figurehead's +figureheads +figures +figurine +figurine's +figurines +figuring +filament +filament's +filamentous +filaments +filbert +filbert's +filberts +filch +filched +filches +filching +file +file's +filed +files +filet +filet's +filets +filial +filibuster +filibuster's +filibustered +filibustering +filibusters +filigree +filigree's +filigreed +filigreeing +filigrees +filing +filing's +filings +fill +fill's +filled +filler +filler's +fillers +fillet +fillet's +filleted +filleting +fillets +fillies +filling +filling's +fillings +fillip +fillip's +filliped +filliping +fillips +fills +filly +filly's +film +film's +filmed +filmier +filmiest +filming +filmmaker +filmmaker's +filmmakers +films +filmstrip +filmstrip's +filmstrips +filmy +filter +filter's +filterable +filtered +filtering +filters +filth +filth's +filthier +filthiest +filthiness +filthiness's +filthy +filtrable +filtrate +filtrate's +filtrated +filtrates +filtrating +filtration +filtration's +fin +fin's +finagle +finagled +finagler +finagler's +finaglers +finagles +finagling +final +final's +finale +finale's +finales +finalist +finalist's +finalists +finality +finality's +finalize +finalized +finalizes +finalizing +finally +finals +finance +finance's +financed +finances +financial +financially +financier +financier's +financiers +financing +financing's +finch +finch's +finches +find +find's +finder +finder's +finders +finding +finding's +findings +finds +fine +fine's +fined +finely +fineness +fineness's +finer +finery +finery's +fines +finesse +finesse's +finessed +finesses +finessing +finest +finger +finger's +fingerboard +fingerboard's +fingerboards +fingered +fingering +fingering's +fingerings +fingernail +fingernail's +fingernails +fingerprint +fingerprint's +fingerprinted +fingerprinting +fingerprints +fingers +fingertip +fingertip's +fingertips +finickier +finickiest +finicky +fining +finis +finis's +finises +finish +finish's +finished +finisher +finisher's +finishers +finishes +finishing +finite +finitely +fink +fink's +finked +finking +finks +finnier +finniest +finny +fins +fiord +fiord's +fiords +fir +fir's +fire +fire's +firearm +firearm's +firearms +fireball +fireball's +fireballs +firebomb +firebomb's +firebombed +firebombing +firebombs +firebrand +firebrand's +firebrands +firebreak +firebreak's +firebreaks +firebug +firebug's +firebugs +firecracker +firecracker's +firecrackers +fired +firefight +firefight's +firefighter +firefighter's +firefighters +firefighting +firefighting's +firefights +fireflies +firefly +firefly's +firehouse +firehouse's +firehouses +fireman +fireman's +firemen +fireplace +fireplace's +fireplaces +fireplug +fireplug's +fireplugs +firepower +firepower's +fireproof +fireproofed +fireproofing +fireproofs +fires +fireside +fireside's +firesides +firestorm +firestorm's +firestorms +firetrap +firetrap's +firetraps +firewall +firewall's +firewalls +firewater +firewater's +firewood +firewood's +firework +firework's +fireworks +firing +firm +firm's +firmament +firmament's +firmaments +firmed +firmer +firmest +firming +firmly +firmness +firmness's +firms +firmware +firs +first +first's +firstborn +firstborn's +firstborns +firsthand +firstly +firsts +firth +firth's +firths +fiscal +fiscal's +fiscally +fiscals +fish +fish's +fishbowl +fishbowl's +fishbowls +fished +fisher +fisher's +fisheries +fisherman +fisherman's +fishermen +fishers +fishery +fishery's +fishes +fishhook +fishhook's +fishhooks +fishier +fishiest +fishing +fishing's +fishnet +fishnet's +fishnets +fishtail +fishtailed +fishtailing +fishtails +fishwife +fishwife's +fishwives +fishy +fission +fission's +fissure +fissure's +fissures +fist +fist's +fistful +fistful's +fistfuls +fisticuffs +fisticuffs's +fists +fit +fit's +fitful +fitfully +fitly +fitness +fitness's +fits +fitted +fitter +fitter's +fitters +fittest +fitting +fitting's +fittingly +fittings +five +five's +fiver +fives +fix +fix's +fixable +fixate +fixated +fixates +fixating +fixation +fixation's +fixations +fixative +fixative's +fixatives +fixed +fixedly +fixer +fixer's +fixers +fixes +fixing +fixings +fixings's +fixity +fixity's +fixture +fixture's +fixtures +fizz +fizz's +fizzed +fizzes +fizzier +fizziest +fizzing +fizzle +fizzle's +fizzled +fizzles +fizzling +fizzy +fjord +fjord's +fjords +flab +flab's +flabbergast +flabbergasted +flabbergasting +flabbergasts +flabbier +flabbiest +flabbiness +flabbiness's +flabby +flaccid +flack +flack's +flacks +flag +flag's +flagella +flagellate +flagellated +flagellates +flagellating +flagellation +flagellation's +flagellum +flagellum's +flagellums +flagged +flagging +flagon +flagon's +flagons +flagpole +flagpole's +flagpoles +flagrant +flagrantly +flags +flagship +flagship's +flagships +flagstaff +flagstaff's +flagstaffs +flagstone +flagstone's +flagstones +flail +flail's +flailed +flailing +flails +flair +flair's +flairs +flak +flak's +flake +flake's +flaked +flakes +flakier +flakiest +flakiness +flakiness's +flaking +flaky +flambeing +flambes +flamboyance +flamboyance's +flamboyant +flamboyantly +flambé +flambé's +flambéed +flame +flame's +flamed +flamenco +flamenco's +flamencos +flames +flamethrower +flamethrower's +flamethrowers +flaming +flamingo +flamingo's +flamingoes +flamingos +flamings +flammability +flammability's +flammable +flammable's +flammables +flan +flange +flange's +flanges +flank +flank's +flanked +flanking +flanks +flannel +flannel's +flanneled +flannelet +flannelet's +flannelette +flannelette's +flanneling +flannelled +flannelling +flannels +flap +flap's +flapjack +flapjack's +flapjacks +flapped +flapper +flapper's +flappers +flapping +flaps +flare +flare's +flared +flares +flaring +flash +flash's +flashback +flashback's +flashbacks +flashbulb +flashbulb's +flashbulbs +flashed +flasher +flasher's +flashers +flashes +flashest +flashgun +flashgun's +flashguns +flashier +flashiest +flashily +flashiness +flashiness's +flashing +flashing's +flashlight +flashlight's +flashlights +flashy +flask +flask's +flasks +flat +flat's +flatbed +flatbed's +flatbeds +flatboat +flatboat's +flatboats +flatcar +flatcar's +flatcars +flatfeet +flatfish +flatfish's +flatfishes +flatfoot +flatfoot's +flatfooted +flatfoots +flatiron +flatiron's +flatirons +flatly +flatness +flatness's +flats +flatted +flatten +flattened +flattening +flattens +flatter +flattered +flatterer +flatterer's +flatterers +flattering +flatteringly +flatters +flattery +flattery's +flattest +flatting +flattop +flattop's +flattops +flatulence +flatulence's +flatulent +flatware +flatware's +flaunt +flaunt's +flaunted +flaunting +flaunts +flavor +flavor's +flavored +flavorful +flavoring +flavoring's +flavorings +flavorless +flavors +flaw +flaw's +flawed +flawing +flawless +flawlessly +flaws +flax +flax's +flaxen +flay +flayed +flaying +flays +flea +flea's +fleas +fleck +fleck's +flecked +flecking +flecks +fled +fledged +fledgeling +fledgeling's +fledgelings +fledgling +fledgling's +fledglings +flee +fleece +fleece's +fleeced +fleeces +fleecier +fleeciest +fleecing +fleecy +fleeing +flees +fleet +fleet's +fleeted +fleeter +fleetest +fleeting +fleetingly +fleetingly's +fleetness +fleetness's +fleets +flesh +flesh's +fleshed +fleshes +fleshier +fleshiest +fleshing +fleshlier +fleshliest +fleshly +fleshy +flew +flex +flex's +flexed +flexes +flexibility +flexibility's +flexible +flexibly +flexing +flexitime +flexitime's +flextime +flextime's +flibbertigibbet +flibbertigibbet's +flibbertigibbets +flick +flick's +flicked +flicker +flicker's +flickered +flickering +flickers +flicking +flicks +flied +flier +flier's +fliers +flies +fliest +flight +flight's +flightier +flightiest +flightiness +flightiness's +flightless +flights +flighty +flimflam +flimflam's +flimflammed +flimflamming +flimflams +flimsier +flimsiest +flimsily +flimsiness +flimsiness's +flimsy +flinch +flinch's +flinched +flinches +flinching +fling +fling's +flinging +flings +flint +flint's +flintier +flintiest +flintlock +flintlock's +flintlocks +flints +flinty +flip +flip's +flippancy +flippancy's +flippant +flippantly +flipped +flipper +flipper's +flippers +flippest +flipping +flips +flirt +flirt's +flirtation +flirtation's +flirtations +flirtatious +flirtatiously +flirted +flirting +flirts +flit +flit's +flits +flitted +flitting +float +float's +floatation +floatation's +floatations +floated +floater +floater's +floaters +floating +floats +flock +flock's +flocked +flocking +flocks +floe +floe's +floes +flog +flogged +flogging +flogging's +floggings +flogs +flood +flood's +flooded +flooder +floodgate +floodgate's +floodgates +flooding +floodlight +floodlight's +floodlighted +floodlighting +floodlights +floodlit +floods +floor +floor's +floorboard +floorboard's +floorboards +floored +flooring +flooring's +floors +floozie +floozie's +floozies +floozy +floozy's +flop +flop's +flophouse +flophouse's +flophouses +flopped +floppier +floppies +floppiest +floppiness +floppiness's +flopping +floppy +floppy's +flops +flora +flora's +florae +floral +floras +florid +floridly +florin +florin's +florins +florist +florist's +florists +floss +floss's +flossed +flosses +flossing +flotation +flotation's +flotations +flotilla +flotilla's +flotillas +flotsam +flotsam's +flounce +flounce's +flounced +flounces +flouncing +flounder +flounder's +floundered +floundering +flounders +flour +flour's +floured +flouring +flourish +flourish's +flourished +flourishes +flourishing +flours +floury +flout +flout's +flouted +flouting +flouts +flow +flow's +flowed +flower +flower's +flowerbed +flowerbed's +flowerbeds +flowered +flowerier +floweriest +floweriness +floweriness's +flowering +flowerpot +flowerpot's +flowerpots +flowers +flowery +flowing +flown +flows +flu +flu's +flub +flub's +flubbed +flubbing +flubs +fluctuate +fluctuated +fluctuates +fluctuating +fluctuation +fluctuation's +fluctuations +flue +flue's +fluency +fluency's +fluent +fluently +flues +fluff +fluff's +fluffed +fluffier +fluffiest +fluffiness +fluffiness's +fluffing +fluffs +fluffy +fluid +fluid's +fluidity +fluidity's +fluidly +fluids +fluke +fluke's +flukes +flukey +flukier +flukiest +fluky +flume +flume's +flumes +flummox +flummoxed +flummoxes +flummoxing +flung +flunk +flunk's +flunked +flunkey +flunkey's +flunkeys +flunkie +flunkie's +flunkies +flunking +flunks +flunky +flunky's +fluoresce +fluoresced +fluorescence +fluorescence's +fluorescent +fluoresces +fluorescing +fluoridate +fluoridated +fluoridates +fluoridating +fluoridation +fluoridation's +fluoride +fluoride's +fluorides +fluorine +fluorine's +fluorite +fluorite's +fluorocarbon +fluorocarbon's +fluorocarbons +fluoroscope +fluoroscope's +fluoroscopes +flurried +flurries +flurry +flurry's +flurrying +flush +flush's +flushed +flusher +flushes +flushest +flushing +fluster +fluster's +flustered +flustering +flusters +flute +flute's +fluted +flutes +fluting +fluting's +flutist +flutist's +flutists +flutter +flutter's +fluttered +fluttering +flutters +fluttery +flux +flux's +fluxed +fluxes +fluxing +fly +fly's +flyby +flyby's +flybys +flycatcher +flycatcher's +flycatchers +flyer +flyer's +flyers +flying +flying's +flyleaf +flyleaf's +flyleaves +flyover +flyover's +flyovers +flypaper +flypaper's +flypapers +flysheet +flyspeck +flyspeck's +flyspecked +flyspecking +flyspecks +flyswatter +flyswatter's +flyswatters +flyweight +flyweight's +flyweights +flywheel +flywheel's +flywheels +fo'c's'le +fo'c's'le's +fo'c's'les +fo'c'sle +fo'c'sle's +fo'c'sles +foal +foal's +foaled +foaling +foals +foam +foam's +foamed +foamier +foamiest +foaming +foams +foamy +fob +fob's +fobbed +fobbing +fobs +focal +foci +focus +focus's +focused +focuses +focusing +focussed +focusses +focussing +fodder +fodder's +fodders +foe +foe's +foes +foetal +foetus +foetus's +foetuses +fog +fog's +fogbound +fogey +fogey's +fogeys +fogged +foggier +foggiest +fogginess +fogginess's +fogging +foggy +foghorn +foghorn's +foghorns +fogies +fogs +fogy +fogy's +foible +foible's +foibles +foil +foil's +foiled +foiling +foils +foist +foisted +foisting +foists +fold +fold's +foldaway +folded +folder +folder's +folders +folding +folds +foliage +foliage's +folio +folio's +folios +folk +folk's +folklore +folklore's +folks +folksier +folksiest +folksy +follicle +follicle's +follicles +follies +follow +followed +follower +follower's +followers +following +following's +followings +follows +folly +folly's +foment +fomentation +fomentation's +fomented +fomenting +foments +fond +fondant +fondant's +fondants +fonder +fondest +fondle +fondled +fondles +fondling +fondly +fondness +fondness's +fondu +fondu's +fondue +fondue's +fondues +fondus +font +font's +fonts +food +food's +foods +foodstuff +foodstuff's +foodstuffs +fool +fool's +fooled +fooleries +foolery +foolery's +foolhardier +foolhardiest +foolhardiness +foolhardiness's +foolhardy +fooling +foolish +foolishly +foolishness +foolishness's +foolproof +fools +foolscap +foolscap's +foot +foot's +footage +footage's +football +football's +footballer +footballer's +footballers +footballs +footbridge +footbridge's +footbridges +footed +footfall +footfall's +footfalls +foothill +foothill's +foothills +foothold +foothold's +footholds +footing +footing's +footings +footlights +footlights's +footlocker +footlocker's +footlockers +footloose +footman +footman's +footmen +footnote +footnote's +footnoted +footnotes +footnoting +footpath +footpath's +footpaths +footprint +footprint's +footprints +footrest +footrest's +footrests +foots +footsie +footsie's +footsies +footsore +footstep +footstep's +footsteps +footstool +footstool's +footstools +footwear +footwear's +footwork +footwork's +fop +fop's +foppish +fops +for +fora +forage +forage's +foraged +forager +forager's +foragers +forages +foraging +foray +foray's +forayed +foraying +forays +forbad +forbade +forbear +forbear's +forbearance +forbearance's +forbearing +forbears +forbid +forbidden +forbidding +forbiddingly +forbiddings +forbids +forbore +forborne +force +force's +forced +forceful +forcefully +forcefulness +forcefulness's +forceps +forceps's +forces +forcible +forcibly +forcing +ford +ford's +forded +fording +fords +fore +fore's +forearm +forearm's +forearmed +forearming +forearms +forebear +forebear's +forebears +forebode +foreboded +forebodes +foreboding +foreboding's +forebodings +forecast +forecast's +forecasted +forecaster +forecaster's +forecasters +forecasting +forecastle +forecastle's +forecastles +forecasts +foreclose +foreclosed +forecloses +foreclosing +foreclosure +foreclosure's +foreclosures +forefather +forefather's +forefathers +forefeet +forefinger +forefinger's +forefingers +forefoot +forefoot's +forefront +forefront's +forefronts +foregather +foregathered +foregathering +foregathers +forego +foregoes +foregoing +foregone +foreground +foreground's +foregrounded +foregrounding +foregrounds +forehand +forehand's +forehands +forehead +forehead's +foreheads +foreign +foreigner +foreigner's +foreigners +foreknowledge +foreknowledge's +foreleg +foreleg's +forelegs +forelock +forelock's +forelocks +foreman +foreman's +foremast +foremast's +foremasts +foremen +foremost +forename +forename's +forenames +forenoon +forenoon's +forenoons +forensic +forensic's +forensics +foreordain +foreordained +foreordaining +foreordains +foreplay +foreplay's +forerunner +forerunner's +forerunners +fores +foresail +foresail's +foresails +foresaw +foresee +foreseeable +foreseeing +foreseen +foresees +foreshadow +foreshadowed +foreshadowing +foreshadows +foreshorten +foreshortened +foreshortening +foreshortens +foresight +foresight's +foreskin +foreskin's +foreskins +forest +forest's +forestall +forestalled +forestalling +forestalls +forestation +forestation's +forested +forester +forester's +foresters +foresting +forestry +forestry's +forests +foreswear +foreswearing +foreswears +foreswore +foresworn +foretaste +foretaste's +foretasted +foretastes +foretasting +foretell +foretelling +foretells +forethought +forethought's +foretold +forever +forever's +forevermore +forewarn +forewarned +forewarning +forewarns +forewent +forewoman +forewoman's +forewomen +foreword +foreword's +forewords +forfeit +forfeit's +forfeited +forfeiting +forfeits +forfeiture +forfeiture's +forgather +forgathered +forgathering +forgathers +forgave +forge +forge's +forged +forger +forger's +forgeries +forgers +forgery +forgery's +forges +forget +forgetful +forgetfully +forgetfulness +forgetfulness's +forgets +forgettable +forgetting +forging +forgivable +forgive +forgiven +forgiveness +forgiveness's +forgives +forgiving +forgo +forgoes +forgoing +forgone +forgot +forgotten +fork +fork's +forked +forking +forklift +forklift's +forklifts +forks +forlorn +forlornly +form +form's +formal +formal's +formaldehyde +formaldehyde's +formalism +formalism's +formalities +formality +formality's +formalization +formalization's +formalize +formalized +formalizes +formalizing +formally +formals +format +format's +formation +formation's +formations +formative +formats +formatted +formatting +formed +former +former's +formerly +formidable +formidably +forming +formless +formlessly +formlessness +formlessness's +forms +formula +formula's +formulae +formulaic +formulas +formulate +formulated +formulates +formulating +formulation +formulation's +formulations +fornicate +fornicated +fornicates +fornicating +fornication +fornication's +forsake +forsaken +forsakes +forsaking +forsook +forsooth +forswear +forswearing +forswears +forswore +forsworn +forsythia +forsythia's +forsythias +fort +fort's +forte +forte's +fortes +forth +forthcoming +forthcoming's +forthright +forthrightly +forthrightness +forthrightness's +forthwith +forties +fortieth +fortieth's +fortieths +fortification +fortification's +fortifications +fortified +fortifies +fortify +fortifying +fortissimo +fortitude +fortitude's +fortnight +fortnight's +fortnightly +fortnights +fortress +fortress's +fortresses +forts +fortuitous +fortuitously +fortunate +fortunately +fortune +fortune's +fortunes +forty +forty's +forum +forum's +forums +forward +forward's +forwarded +forwarder +forwardest +forwarding +forwardness +forwardness's +forwards +forwent +fossil +fossil's +fossilization +fossilization's +fossilize +fossilized +fossilizes +fossilizing +fossils +foster +fostered +fostering +fosters +fought +foul +foul's +fouled +fouler +foulest +fouling +foully +foulness +foulness's +fouls +found +foundation +foundation's +foundations +founded +founder +founder's +foundered +foundering +founders +founding +foundling +foundling's +foundlings +foundries +foundry +foundry's +founds +fount +fount's +fountain +fountain's +fountainhead +fountainhead's +fountainheads +fountains +founts +four +four's +fourfold +fours +fourscore +fourscore's +foursome +foursome's +foursomes +foursquare +fourteen +fourteen's +fourteens +fourteenth +fourteenth's +fourteenths +fourth +fourth's +fourthly +fourths +fowl +fowl's +fowled +fowling +fowls +fox +fox's +foxed +foxes +foxglove +foxglove's +foxgloves +foxhole +foxhole's +foxholes +foxhound +foxhound's +foxhounds +foxier +foxiest +foxing +foxtrot +foxtrot's +foxtrots +foxtrotted +foxtrotting +foxy +foyer +foyer's +foyers +fracas +fracas's +fracases +fractal +fractal's +fractals +fraction +fraction's +fractional +fractionally +fractions +fractious +fractiously +fracture +fracture's +fractured +fractures +fracturing +fragile +fragility +fragility's +fragment +fragment's +fragmentary +fragmentary's +fragmentation +fragmentation's +fragmented +fragmenting +fragments +fragrance +fragrance's +fragrances +fragrant +fragrantly +frail +frailer +frailest +frailties +frailty +frailty's +frame +frame's +framed +framer +framer's +framers +frames +framework +framework's +frameworks +framing +franc +franc's +franchise +franchise's +franchised +franchisee +franchisee's +franchisees +franchiser +franchiser's +franchisers +franchises +franchising +francs +frank +frank's +franked +franker +frankest +frankfurter +frankfurter's +frankfurters +frankincense +frankincense's +franking +frankly +frankness +frankness's +franks +frantic +frantically +frappes +frappé +frappé's +frat +frat's +fraternal +fraternally +fraternities +fraternity +fraternity's +fraternization +fraternization's +fraternize +fraternized +fraternizes +fraternizing +fratricide +fratricide's +fratricides +frats +fraud +fraud's +frauds +fraudulence +fraudulence's +fraudulent +fraudulently +fraught +fray +fray's +frayed +fraying +frays +frazzle +frazzle's +frazzled +frazzles +frazzling +freak +freak's +freaked +freakier +freakiest +freaking +freakish +freaks +freaky +freckle +freckle's +freckled +freckles +freckling +free +freebase +freebase's +freebased +freebases +freebasing +freebee +freebee's +freebees +freebie +freebie's +freebies +freebooter +freebooter's +freebooters +freed +freedman +freedman's +freedmen +freedom +freedom's +freedoms +freehand +freehold +freehold's +freeholder +freeholder's +freeholders +freeholds +freeing +freelance +freelance's +freelanced +freelancer +freelancer's +freelancers +freelances +freelancing +freeload +freeloaded +freeloader +freeloader's +freeloaders +freeloading +freeloads +freely +freeman +freeman's +freemen +freer +frees +freest +freestanding +freestyle +freestyle's +freestyles +freethinker +freethinker's +freethinkers +freethinking +freethinking's +freeway +freeway's +freeways +freewheel +freewheeled +freewheeling +freewheels +freewill +freeze +freeze's +freezer +freezer's +freezers +freezes +freezing +freezing's +freight +freight's +freighted +freighter +freighter's +freighters +freighting +freights +french +frenetic +frenetically +frenzied +frenziedly +frenzies +frenzy +frenzy's +frequencies +frequency +frequency's +frequent +frequented +frequenter +frequentest +frequenting +frequently +frequents +fresco +fresco's +frescoes +frescos +fresh +freshen +freshened +freshening +freshens +fresher +freshest +freshet +freshet's +freshets +freshly +freshman +freshman's +freshmen +freshness +freshness's +freshwater +freshwater's +fret +fret's +fretful +fretfully +fretfulness +fretfulness's +frets +fretted +fretting +fretwork +fretwork's +friable +friar +friar's +friars +fricassee +fricassee's +fricasseed +fricasseeing +fricassees +friction +friction's +fridge +fridge's +fridges +fried +friend +friend's +friendless +friendlier +friendlies +friendliest +friendliness +friendliness's +friendly +friendly's +friends +friendship +friendship's +friendships +frier +frier's +friers +fries +frieze +frieze's +friezes +frigate +frigate's +frigates +fright +fright's +frighted +frighten +frightened +frightening +frighteningly +frightens +frightful +frightfully +frighting +frights +frigid +frigidity +frigidity's +frigidly +frill +frill's +frillier +frilliest +frills +frilly +fringe +fringe's +fringed +fringes +fringing +fripperies +frippery +frippery's +frisk +frisked +friskier +friskiest +friskily +friskiness +friskiness's +frisking +frisks +frisky +fritter +fritter's +frittered +frittering +fritters +frivolities +frivolity +frivolity's +frivolous +frivolously +frizz +frizz's +frizzed +frizzes +frizzier +frizziest +frizzing +frizzle +frizzle's +frizzled +frizzles +frizzling +frizzy +fro +frock +frock's +frocks +frog +frog's +frogman +frogman's +frogmen +frogs +frolic +frolic's +frolicked +frolicking +frolics +frolicsome +from +frond +frond's +fronds +front +front's +frontage +frontage's +frontages +frontal +frontally +fronted +frontier +frontier's +frontiers +frontiersman +frontiersman's +frontiersmen +fronting +frontispiece +frontispiece's +frontispieces +frontrunner +frontrunner's +frontrunners +fronts +frost +frost's +frostbit +frostbite +frostbite's +frostbites +frostbiting +frostbitten +frosted +frostier +frostiest +frostily +frostiness +frostiness's +frosting +frosting's +frosts +frosty +froth +froth's +frothed +frothier +frothiest +frothing +froths +frothy +frown +frown's +frowned +frowning +frowns +frowsier +frowsiest +frowsy +frowzier +frowziest +frowzy +froze +frozen +fructified +fructifies +fructify +fructifying +fructose +fructose's +frugal +frugality +frugality's +frugally +fruit +fruit's +fruitcake +fruitcake's +fruitcakes +fruited +fruitful +fruitfully +fruitfulness +fruitfulness's +fruitier +fruitiest +fruiting +fruition +fruition's +fruitless +fruitlessly +fruitlessness +fruitlessness's +fruits +fruity +frump +frump's +frumpier +frumpiest +frumps +frumpy +frustrate +frustrated +frustrates +frustrating +frustration +frustration's +frustrations +fry +fry's +fryer +fryer's +fryers +frying +fuchsia +fuchsia's +fuchsias +fuck +fuck's +fucked +fucker +fucker's +fuckers +fucking +fucks +fuddle +fuddle's +fuddled +fuddles +fuddling +fudge +fudge's +fudged +fudges +fudging +fuel +fuel's +fueled +fueling +fuelled +fuelling +fuels +fugitive +fugitive's +fugitives +fugue +fugue's +fugues +fulcra +fulcrum +fulcrum's +fulcrums +fulfil +fulfill +fulfilled +fulfilling +fulfillment +fulfillment's +fulfills +fulfilment +fulfilment's +fulfils +full +full's +fullback +fullback's +fullbacks +fulled +fuller +fullest +fulling +fullness +fullness's +fulls +fully +fulminate +fulminated +fulminates +fulminating +fulmination +fulmination's +fulminations +fulness +fulness's +fulsome +fumble +fumble's +fumbled +fumbler +fumbler's +fumblers +fumbles +fumbling +fume +fume's +fumed +fumes +fumigate +fumigated +fumigates +fumigating +fumigation +fumigation's +fumigator +fumigator's +fumigators +fuming +fun +fun's +function +function's +functional +functionality +functionally +functionaries +functionary +functionary's +functioned +functioning +functions +fund +fund's +fundamental +fundamental's +fundamentalism +fundamentalism's +fundamentalist +fundamentalist's +fundamentalists +fundamentally +fundamentals +funded +funding +funding's +funds +funeral +funeral's +funerals +funereal +funereally +fungal +fungi +fungicidal +fungicide +fungicide's +fungicides +fungous +fungus +fungus's +funguses +funicular +funicular's +funiculars +funk +funk's +funked +funkier +funkiest +funking +funks +funky +funnel +funnel's +funneled +funneling +funnelled +funnelling +funnels +funner +funnest +funnier +funnies +funniest +funnily +funniness +funniness's +funny +funny's +fur +fur's +furbelow +furbelow's +furbish +furbished +furbishes +furbishing +furies +furious +furiously +furl +furl's +furled +furling +furlong +furlong's +furlongs +furlough +furlough's +furloughed +furloughing +furloughs +furls +furnace +furnace's +furnaces +furnish +furnished +furnishes +furnishing +furnishings +furnishings's +furniture +furniture's +furor +furor's +furors +furred +furrier +furrier's +furriers +furriest +furring +furrow +furrow's +furrowed +furrowing +furrows +furry +furs +further +furtherance +furtherance's +furthered +furthering +furthermore +furthermost +furthers +furthest +furtive +furtively +furtiveness +furtiveness's +fury +fury's +furze +furze's +fuse +fuse's +fused +fuselage +fuselage's +fuselages +fuses +fusible +fusillade +fusillade's +fusillades +fusing +fusion +fusion's +fusions +fuss +fuss's +fussbudget +fussbudget's +fussbudgets +fussed +fusses +fussier +fussiest +fussily +fussiness +fussiness's +fussing +fussy +fustian +fustian's +fustier +fustiest +fusty +futile +futilely +futility +futility's +futon +futon's +futons +future +future's +futures +futuristic +futurities +futurity +futurity's +futz +futzed +futzes +futzing +fuze +fuze's +fuzed +fuzes +fuzing +fuzz +fuzz's +fuzzed +fuzzes +fuzzier +fuzziest +fuzzily +fuzziness +fuzziness's +fuzzing +fuzzy +fête +fête's +fêtes +g +gab +gab's +gabardine +gabardine's +gabardines +gabbed +gabbier +gabbiest +gabbing +gabble +gabble's +gabbled +gabbles +gabbling +gabby +gaberdine +gaberdine's +gaberdines +gable +gable's +gabled +gables +gabs +gad +gadabout +gadabout's +gadabouts +gadded +gadding +gadflies +gadfly +gadfly's +gadget +gadget's +gadgetry +gadgetry's +gadgets +gads +gaff +gaff's +gaffe +gaffe's +gaffed +gaffes +gaffing +gaffs +gag +gag's +gage +gage's +gaged +gages +gagged +gagging +gaggle +gaggle's +gaggles +gaging +gags +gaiety +gaiety's +gaily +gain +gain's +gained +gainful +gainfully +gaining +gains +gainsaid +gainsay +gainsaying +gainsays +gait +gait's +gaiter +gaiter's +gaiters +gaits +gal +gal's +gala +gala's +galactic +galas +galaxies +galaxy +galaxy's +gale +gale's +galena +galena's +gales +gall +gall's +gallant +gallant's +gallantly +gallantry +gallantry's +gallants +gallbladder +gallbladder's +gallbladders +galled +galleon +galleon's +galleons +galleries +gallery +gallery's +galley +galley's +galleys +galling +gallium +gallium's +gallivant +gallivanted +gallivanting +gallivants +gallon +gallon's +gallons +gallop +gallop's +galloped +galloping +gallops +gallows +gallows's +gallowses +galls +gallstone +gallstone's +gallstones +galore +galosh +galosh's +galoshes +gals +galvanic +galvanize +galvanized +galvanizes +galvanizing +galvanometer +galvanometer's +galvanometers +gambit +gambit's +gambits +gamble +gamble's +gambled +gambler +gambler's +gamblers +gambles +gambling +gambling's +gambol +gambol's +gamboled +gamboling +gambolled +gambolling +gambols +game +game's +gamecock +gamecock's +gamecocks +gamed +gamekeeper +gamekeeper's +gamekeepers +gamely +gameness +gameness's +gamer +games +gamesmanship +gamesmanship's +gamest +gamete +gamete's +gametes +gamey +gamier +gamiest +gamin +gamin's +gamine +gamine's +gamines +gaming +gamins +gamma +gamma's +gammas +gamut +gamut's +gamuts +gamy +gander +gander's +ganders +gang +gang's +ganged +ganging +gangland +gangland's +ganglia +ganglier +gangliest +gangling +ganglion +ganglion's +ganglions +gangly +gangplank +gangplank's +gangplanks +gangrene +gangrene's +gangrened +gangrenes +gangrening +gangrenous +gangs +gangster +gangster's +gangsters +gangway +gangway's +gangways +gannet +gannet's +gannets +gantlet +gantlet's +gantlets +gantries +gantry +gantry's +gap +gap's +gape +gape's +gaped +gapes +gaping +gaps +garage +garage's +garaged +garages +garaging +garb +garb's +garbage +garbage's +garbageman +garbanzo +garbanzo's +garbanzos +garbed +garbing +garble +garbled +garbles +garbling +garbs +garden +garden's +gardened +gardener +gardener's +gardeners +gardenia +gardenia's +gardenias +gardening +gardening's +gardens +gargantuan +gargle +gargle's +gargled +gargles +gargling +gargoyle +gargoyle's +gargoyles +garish +garishly +garishness +garishness's +garland +garland's +garlanded +garlanding +garlands +garlic +garlic's +garlicky +garment +garment's +garments +garner +garnered +garnering +garners +garnet +garnet's +garnets +garnish +garnish's +garnished +garnishee +garnishee's +garnisheed +garnisheeing +garnishees +garnishes +garnishing +garote +garote's +garoted +garotes +garoting +garotte +garotte's +garotted +garottes +garotting +garret +garret's +garrets +garrison +garrison's +garrisoned +garrisoning +garrisons +garrote +garrote's +garroted +garrotes +garroting +garrotte +garrotte's +garrotted +garrottes +garrotting +garrulity +garrulity's +garrulous +garrulously +garrulousness +garrulousness's +garter +garter's +garters +gas +gas's +gaseous +gases +gash +gash's +gashed +gashes +gashing +gasket +gasket's +gaskets +gaslight +gaslight's +gaslights +gasohol +gasohol's +gasolene +gasolene's +gasoline +gasoline's +gasp +gasp's +gasped +gasping +gasps +gassed +gasses +gassier +gassiest +gassing +gassy +gastric +gastritis +gastritis's +gastrointestinal +gastronomic +gastronomical +gastronomy +gastronomy's +gasworks +gasworks's +gate +gate's +gatecrasher +gatecrasher's +gatecrashers +gated +gatepost +gatepost's +gateposts +gates +gateway +gateway's +gateways +gather +gather's +gathered +gatherer +gatherer's +gatherers +gathering +gathering's +gatherings +gathers +gating +gauche +gaucher +gauchest +gaucho +gaucho's +gauchos +gaudier +gaudiest +gaudily +gaudiness +gaudiness's +gaudy +gauge +gauge's +gauged +gauges +gauging +gaunt +gaunter +gauntest +gauntlet +gauntlet's +gauntlets +gauntness +gauntness's +gauze +gauze's +gauzier +gauziest +gauzy +gave +gavel +gavel's +gavels +gavotte +gavotte's +gavottes +gawk +gawked +gawkier +gawkiest +gawkily +gawkiness +gawkiness's +gawking +gawks +gawky +gay +gay's +gayer +gayest +gayety +gayety's +gayly +gayness +gayness's +gays +gaze +gaze's +gazebo +gazebo's +gazeboes +gazebos +gazed +gazelle +gazelle's +gazelles +gazer +gazer's +gazers +gazes +gazette +gazette's +gazetted +gazetteer +gazetteer's +gazetteers +gazettes +gazetting +gazillion +gazillions +gazing +gazpacho +gazpacho's +gear +gear's +gearbox +gearbox's +gearboxes +geared +gearing +gears +gearshift +gearshift's +gearshifts +gearwheel +gearwheel's +gearwheels +gecko +gecko's +geckoes +geckos +gee +geed +geegaw +geegaw's +geegaws +geeing +geek +geek's +geekier +geekiest +geeks +geeky +gees +geese +geez +geezer +geezer's +geezers +geisha +geisha's +geishas +gel +gel's +gelatin +gelatin's +gelatine +gelatine's +gelatinous +geld +gelded +gelding +gelding's +geldings +gelds +gelid +gelled +gelling +gels +gelt +gem +gem's +gems +gemstone +gemstone's +gemstones +gendarme +gendarme's +gendarmes +gender +gender's +genders +gene +gene's +genealogical +genealogies +genealogist +genealogist's +genealogists +genealogy +genealogy's +genera +general +general's +generalissimo +generalissimo's +generalissimos +generalities +generality +generality's +generalization +generalization's +generalizations +generalize +generalized +generalizes +generalizing +generally +generals +generate +generated +generates +generating +generation +generation's +generations +generative +generator +generator's +generators +generic +generic's +generically +generics +generosities +generosity +generosity's +generous +generously +genes +geneses +genesis +genesis's +genetic +genetically +geneticist +geneticist's +geneticists +genetics +genetics's +genial +geniality +geniality's +genially +genie +genie's +genies +genii +genital +genitalia +genitalia's +genitals +genitals's +genitive +genitive's +genitives +genius +genius's +geniuses +genocide +genocide's +genome +genome's +genomes +genre +genre's +genres +gent +gent's +genteel +gentian +gentian's +gentians +gentile +gentile's +gentiles +gentility +gentility's +gentle +gentled +gentlefolk +gentlefolk's +gentleman +gentleman's +gentlemanly +gentlemen +gentleness +gentleness's +gentler +gentles +gentlest +gentlewoman +gentlewoman's +gentlewomen +gentling +gently +gentries +gentrification +gentrification's +gentrified +gentrifies +gentrify +gentrifying +gentry +gentry's +gents +genuflect +genuflected +genuflecting +genuflection +genuflection's +genuflections +genuflects +genuine +genuinely +genuineness +genuineness's +genus +genus's +genuses +geocentric +geode +geode's +geodes +geodesic +geodesic's +geodesics +geographer +geographer's +geographers +geographic +geographical +geographically +geographies +geography +geography's +geologic +geological +geologically +geologies +geologist +geologist's +geologists +geology +geology's +geometer +geometric +geometrical +geometrically +geometries +geometry +geometry's +geophysical +geophysics +geophysics's +geopolitical +geopolitics +geopolitics's +geostationary +geothermal +geranium +geranium's +geraniums +gerbil +gerbil's +gerbils +geriatric +geriatrics +geriatrics's +germ +germ's +germane +germanium +germanium's +germicidal +germicide +germicide's +germicides +germinal +germinal's +germinate +germinated +germinates +germinating +germination +germination's +germs +gerontologist +gerontologist's +gerontologists +gerontology +gerontology's +gerrymander +gerrymander's +gerrymandered +gerrymandering +gerrymandering's +gerrymanders +gerund +gerund's +gerunds +gestate +gestated +gestates +gestating +gestation +gestation's +gesticulate +gesticulated +gesticulates +gesticulating +gesticulation +gesticulation's +gesticulations +gesture +gesture's +gestured +gestures +gesturing +gesundheit +get +get's +getaway +getaway's +getaways +gets +getting +getup +getup's +gewgaw +gewgaw's +gewgaws +geyser +geyser's +geysers +ghastlier +ghastliest +ghastliness +ghastliness's +ghastly +gherkin +gherkin's +gherkins +ghetto +ghetto's +ghettoes +ghettos +ghost +ghost's +ghosted +ghosting +ghostlier +ghostliest +ghostliness +ghostliness's +ghostly +ghosts +ghostwrite +ghostwriter +ghostwriter's +ghostwriters +ghostwrites +ghostwriting +ghostwritten +ghostwrote +ghoul +ghoul's +ghoulish +ghouls +giant +giant's +giantess +giantess's +giantesses +giants +gibber +gibbered +gibbering +gibberish +gibberish's +gibbers +gibbet +gibbet's +gibbeted +gibbeting +gibbets +gibbon +gibbon's +gibbons +gibe +gibe's +gibed +gibes +gibing +giblet +giblet's +giblets +giddier +giddiest +giddily +giddiness +giddiness's +giddy +gift +gift's +gifted +gifting +gifts +gig +gig's +gigabit +gigabit's +gigabits +gigabyte +gigabyte's +gigabytes +gigahertz +gigahertz's +gigantic +gigged +gigging +giggle +giggle's +giggled +giggler +giggler's +gigglers +giggles +gigglier +giggliest +giggling +giggly +gigolo +gigolo's +gigolos +gigs +gild +gild's +gilded +gilding +gilds +gill +gill's +gills +gilt +gilt's +gilts +gimcrack +gimcrack's +gimcracks +gimlet +gimlet's +gimleted +gimleting +gimlets +gimme +gimmick +gimmick's +gimmickry +gimmickry's +gimmicks +gimmicky +gimpier +gimpiest +gimpy +gin +gin's +ginger +ginger's +gingerbread +gingerbread's +gingerly +gingersnap +gingersnap's +gingersnaps +gingham +gingham's +gingivitis +gingivitis's +gingko +gingko's +gingkoes +gingkos +ginkgo +ginkgo's +ginkgoes +ginkgos +ginned +ginning +gins +ginseng +ginseng's +gipsies +gipsy +gipsy's +giraffe +giraffe's +giraffes +gird +girded +girder +girder's +girders +girding +girdle +girdle's +girdled +girdles +girdling +girds +girl +girl's +girlfriend +girlfriend's +girlfriends +girlhood +girlhood's +girlhoods +girlish +girlishly +girls +girt +girt's +girted +girth +girth's +girths +girting +girts +gismo +gismo's +gismos +gist +gist's +give +give's +giveaway +giveaway's +giveaways +given +given's +givens +gives +giving +gizmo +gizmo's +gizmos +gizzard +gizzard's +gizzards +glacial +glacially +glacier +glacier's +glaciers +glad +glad's +gladden +gladdened +gladdening +gladdens +gladder +gladdest +glade +glade's +glades +gladiator +gladiator's +gladiatorial +gladiators +gladiola +gladiola's +gladiolas +gladioli +gladiolus +gladiolus's +gladioluses +gladly +gladness +gladness's +glads +glamor +glamor's +glamored +glamoring +glamorize +glamorized +glamorizes +glamorizing +glamorous +glamorously +glamors +glamour +glamour's +glamoured +glamouring +glamourize +glamourized +glamourizes +glamourizing +glamourous +glamours +glance +glance's +glanced +glances +glancing +gland +gland's +glands +glandular +glare +glare's +glared +glares +glaring +glaringly +glass +glass's +glassed +glasses +glassful +glassful's +glassfuls +glassier +glassiest +glassing +glassware +glassware's +glassy +glaucoma +glaucoma's +glaze +glaze's +glazed +glazes +glazier +glazier's +glaziers +glazing +gleam +gleam's +gleamed +gleaming +gleamings +gleams +glean +gleaned +gleaning +gleans +glee +glee's +gleeful +gleefully +glen +glen's +glens +glib +glibber +glibbest +glibly +glibness +glibness's +glide +glide's +glided +glider +glider's +gliders +glides +gliding +glimmer +glimmer's +glimmered +glimmering +glimmering's +glimmerings +glimmers +glimpse +glimpse's +glimpsed +glimpses +glimpsing +glint +glint's +glinted +glinting +glints +glissandi +glissando +glissando's +glissandos +glisten +glisten's +glistened +glistening +glistens +glitch +glitch's +glitches +glitter +glitter's +glittered +glittering +glitters +glittery +glitz +glitz's +glitzier +glitziest +glitzy +gloaming +gloaming's +gloamings +gloat +gloat's +gloated +gloating +gloats +glob +glob's +global +globally +globe +globe's +globes +globetrotter +globetrotter's +globetrotters +globs +globular +globule +globule's +globules +glockenspiel +glockenspiel's +glockenspiels +gloom +gloom's +gloomier +gloomiest +gloomily +gloominess +gloominess's +gloomy +glop +glop's +gloried +glories +glorification +glorification's +glorified +glorifies +glorify +glorifying +glorious +gloriously +glory +glory's +glorying +gloss +gloss's +glossaries +glossary +glossary's +glossed +glosses +glossier +glossies +glossiest +glossiness +glossiness's +glossing +glossy +glossy's +glottides +glottis +glottis's +glottises +glove +glove's +gloved +gloves +gloving +glow +glow's +glowed +glower +glower's +glowered +glowering +glowers +glowing +glowingly +glows +glowworm +glowworm's +glowworms +glucose +glucose's +glue +glue's +glued +glueing +glues +gluey +gluier +gluiest +gluing +glum +glumly +glummer +glummest +glumness +glumness's +glut +glut's +gluten +gluten's +glutinous +gluts +glutted +glutting +glutton +glutton's +gluttonous +gluttonously +gluttons +gluttony +gluttony's +glycerin +glycerin's +glycerine +glycerine's +glycerol +glycerol's +glycogen +glycogen's +glyph +gnarl +gnarled +gnarlier +gnarliest +gnarling +gnarls +gnarly +gnash +gnash's +gnashed +gnashes +gnashing +gnat +gnat's +gnats +gnaw +gnawed +gnawing +gnawn +gnaws +gneiss +gneiss's +gnome +gnome's +gnomes +gnomish +gnu +gnu's +gnus +go +go's +goad +goad's +goaded +goading +goads +goal +goal's +goalie +goalie's +goalies +goalkeeper +goalkeeper's +goalkeepers +goalpost +goalpost's +goalposts +goals +goaltender +goaltender's +goaltenders +goat +goat's +goatee +goatee's +goatees +goatherd +goatherd's +goatherds +goats +goatskin +goatskin's +goatskins +gob +gob's +gobbed +gobbing +gobble +gobble's +gobbled +gobbledegook +gobbledegook's +gobbledygook +gobbledygook's +gobbler +gobbler's +gobblers +gobbles +gobbling +goblet +goblet's +goblets +goblin +goblin's +goblins +gobs +god +god's +godchild +godchild's +godchildren +goddam +goddamed +goddamn +goddamned +goddaughter +goddaughter's +goddaughters +goddess +goddess's +goddesses +godfather +godfather's +godfathers +godforsaken +godhood +godhood's +godless +godlier +godliest +godlike +godliness +godliness's +godly +godmother +godmother's +godmothers +godparent +godparent's +godparents +gods +godsend +godsend's +godsends +godson +godson's +godsons +goes +gofer +gofer's +gofers +goggle +goggle's +goggled +goggles +goggles's +goggling +going +going's +goings +goiter +goiter's +goiters +goitre +goitre's +goitres +gold +gold's +goldbrick +goldbrick's +goldbricked +goldbricking +goldbricks +golden +goldener +goldenest +goldenrod +goldenrod's +goldfinch +goldfinch's +goldfinches +goldfish +goldfish's +goldfishes +golds +goldsmith +goldsmith's +goldsmiths +golf +golf's +golfed +golfer +golfer's +golfers +golfing +golfs +gollies +golly +golly's +gonad +gonad's +gonads +gondola +gondola's +gondolas +gondolier +gondolier's +gondoliers +gone +goner +goner's +goners +gong +gong's +gonged +gonging +gongs +gonna +gonorrhea +gonorrhea's +gonorrhoea +gonorrhoea's +goo +goo's +goober +goober's +goobers +good +good's +goodby +goodby's +goodbye +goodbye's +goodbyes +goodbys +goodie +goodie's +goodies +goodlier +goodliest +goodly +goodness +goodness's +goodnight +goods +goods's +goodwill +goodwill's +goody +goody's +gooey +goof +goof's +goofed +goofier +goofiest +goofing +goofs +goofy +gooier +gooiest +gook +gook's +gooks +goon +goon's +goons +goop +goop's +goose +goose's +gooseberries +gooseberry +gooseberry's +goosed +gooses +goosing +gopher +gopher's +gophers +gore +gore's +gored +gores +gorge +gorge's +gorged +gorgeous +gorgeously +gorges +gorging +gorier +goriest +gorilla +gorilla's +gorillas +goriness +goriness's +goring +gorse +gorse's +gory +gosh +gosling +gosling's +goslings +gospel +gospel's +gospels +gossamer +gossamer's +gossip +gossip's +gossiped +gossiping +gossipped +gossipping +gossips +gossipy +got +gotta +gotten +gouge +gouge's +gouged +gouger +gouger's +gougers +gouges +gouging +goulash +goulash's +goulashes +gourd +gourd's +gourds +gourmand +gourmand's +gourmands +gourmet +gourmet's +gourmets +gout +gout's +goutier +goutiest +gouty +govern +governable +governance +governance's +governed +governess +governess's +governesses +governing +government +government's +governmental +governments +governor +governor's +governors +governorship +governorship's +governs +gown +gown's +gowned +gowning +gowns +grab +grab's +grabbed +grabber +grabbing +grabs +grace +grace's +graced +graceful +gracefully +gracefulness +gracefulness's +graceless +gracelessly +gracelessness +gracelessness's +graces +gracing +gracious +graciously +graciousness +graciousness's +grackle +grackle's +grackles +grad +grad's +gradation +gradation's +gradations +grade +grade's +graded +grader +grader's +graders +grades +gradient +gradient's +gradients +grading +grads +gradual +gradually +graduate +graduate's +graduated +graduates +graduating +graduation +graduation's +graduations +graffiti +graffito +graffito's +graft +graft's +grafted +grafter +grafter's +grafters +grafting +grafts +grail +grain +grain's +grainier +grainiest +grains +grainy +gram +gram's +grammar +grammar's +grammarian +grammarian's +grammarians +grammars +grammatical +grammatically +gramophone +grams +granaries +granary +granary's +grand +grand's +grandad +grandad's +grandads +grandchild +grandchild's +grandchildren +granddad +granddad's +granddads +granddaughter +granddaughter's +granddaughters +grandee +grandee's +grandees +grander +grandest +grandeur +grandeur's +grandfather +grandfather's +grandfathered +grandfathering +grandfathers +grandiloquence +grandiloquence's +grandiloquent +grandiose +grandly +grandma +grandma's +grandmas +grandmother +grandmother's +grandmothers +grandness +grandness's +grandpa +grandpa's +grandparent +grandparent's +grandparents +grandpas +grands +grandson +grandson's +grandsons +grandstand +grandstand's +grandstanded +grandstanding +grandstands +grange +grange's +granges +granite +granite's +grannie +grannie's +grannies +granny +granny's +granola +granola's +grant +grant's +granted +granting +grants +granular +granularity +granularity's +granulate +granulated +granulates +granulating +granulation +granulation's +granule +granule's +granules +grape +grape's +grapefruit +grapefruit's +grapefruits +grapes +grapevine +grapevine's +grapevines +graph +graph's +graphed +graphic +graphic's +graphical +graphically +graphics +graphing +graphite +graphite's +graphologist +graphologist's +graphologists +graphology +graphology's +graphs +grapnel +grapnel's +grapnels +grapple +grapple's +grappled +grapples +grappling +grasp +grasp's +grasped +grasping +grasps +grass +grass's +grassed +grasses +grasshopper +grasshopper's +grasshoppers +grassier +grassiest +grassing +grassland +grassland's +grassy +grate +grate's +grated +grateful +gratefully +gratefulness +gratefulness's +grater +grater's +graters +grates +gratification +gratification's +gratifications +gratified +gratifies +gratify +gratifying +grating +grating's +gratings +gratis +gratitude +gratitude's +gratuities +gratuitous +gratuitously +gratuity +gratuity's +grave +grave's +graved +gravel +gravel's +graveled +graveling +gravelled +gravelling +gravelly +gravels +gravely +graven +graver +graves +gravest +gravestone +gravestone's +gravestones +graveyard +graveyard's +graveyards +gravies +graving +gravitate +gravitated +gravitates +gravitating +gravitation +gravitation's +gravitational +gravity +gravity's +gravy +gravy's +gray +gray's +graybeard +graybeard's +graybeards +grayed +grayer +grayest +graying +grayish +grayness +grayness's +grays +graze +graze's +grazed +grazes +grazing +grease +grease's +greased +greasepaint +greasepaint's +greases +greasier +greasiest +greasiness +greasiness's +greasing +greasy +great +great's +greater +greatest +greatly +greatness +greatness's +greats +grebe +grebe's +grebes +greed +greed's +greedier +greediest +greedily +greediness +greediness's +greedy +green +green's +greenback +greenback's +greenbacks +greened +greener +greenery +greenery's +greenest +greengrocer +greengrocer's +greengrocers +greenhorn +greenhorn's +greenhorns +greenhouse +greenhouse's +greenhouses +greening +greenish +greenness +greenness's +greens +greensward +greensward's +greet +greeted +greeting +greeting's +greetings +greets +gregarious +gregariously +gregariousness +gregariousness's +gremlin +gremlin's +gremlins +grenade +grenade's +grenades +grenadier +grenadier's +grenadiers +grew +grey +grey's +greyed +greyer +greyest +greyhound +greyhound's +greyhounds +greying +greyish +greys +grid +grid's +griddle +griddle's +griddlecake +griddlecake's +griddlecakes +griddles +gridiron +gridiron's +gridirons +gridlock +gridlock's +gridlocks +grids +grief +grief's +griefs +grievance +grievance's +grievances +grieve +grieved +grieves +grieving +grievous +grievously +griffin +griffin's +griffins +grill +grill's +grille +grille's +grilled +grilles +grilling +grills +grim +grimace +grimace's +grimaced +grimaces +grimacing +grime +grime's +grimed +grimes +grimier +grimiest +griming +grimly +grimmer +grimmest +grimness +grimness's +grimy +grin +grin's +grind +grind's +grinder +grinder's +grinders +grinding +grinds +grindstone +grindstone's +grindstones +gringo +gringo's +gringos +grinned +grinning +grins +grip +grip's +gripe +gripe's +griped +gripes +griping +grippe +grippe's +gripped +gripping +grips +grislier +grisliest +grisly +grist +grist's +gristle +gristle's +gristlier +gristliest +gristly +grit +grit's +grits +grits's +gritted +grittier +grittiest +gritting +gritty +grizzled +grizzlier +grizzlies +grizzliest +grizzly +grizzly's +groan +groan's +groaned +groaning +groans +grocer +grocer's +groceries +grocers +grocery +grocery's +grog +grog's +groggier +groggiest +groggily +grogginess +grogginess's +groggy +groin +groin's +groins +grommet +grommet's +grommets +groom +groom's +groomed +grooming +grooming's +grooms +groove +groove's +grooved +grooves +groovier +grooviest +grooving +groovy +grope +grope's +groped +gropes +groping +grosbeak +grosbeak's +grosbeaks +gross +gross's +grossed +grosser +grosses +grossest +grossing +grossly +grossness +grossness's +grotesque +grotesque's +grotesquely +grotesques +grotto +grotto's +grottoes +grottos +grouch +grouch's +grouched +grouches +grouchier +grouchiest +grouchiness +grouchiness's +grouching +grouchy +ground +ground's +groundbreaking +groundbreaking's +groundbreakings +grounded +grounder +grounder's +grounders +groundhog +groundhog's +groundhogs +grounding +grounding's +groundings +groundless +groundlessly +grounds +groundswell +groundswell's +groundswells +groundwork +groundwork's +group +group's +grouped +grouper +grouper's +groupers +groupie +groupie's +groupies +grouping +grouping's +groupings +groups +grouse +grouse's +groused +grouses +grousing +grout +grout's +grouted +grouting +grouts +grove +grove's +grovel +groveled +groveler +groveler's +grovelers +groveling +grovelled +groveller +groveller's +grovellers +grovelling +grovels +groves +grow +grower +grower's +growers +growing +growl +growl's +growled +growling +growls +grown +grownup +grownup's +grownups +grows +growth +growth's +growths +grub +grub's +grubbed +grubbier +grubbiest +grubbiness +grubbiness's +grubbing +grubby +grubs +grubstake +grubstake's +grudge +grudge's +grudged +grudges +grudging +grudgingly +gruel +gruel's +grueling +gruelings +gruelling +gruellings +gruesome +gruesomely +gruesomer +gruesomest +gruff +gruffer +gruffest +gruffly +gruffness +gruffness's +grumble +grumble's +grumbled +grumbler +grumbler's +grumblers +grumbles +grumbling +grumpier +grumpiest +grumpily +grumpiness +grumpiness's +grumpy +grunge +grunge's +grungier +grungiest +grungy +grunt +grunt's +grunted +grunting +grunts +gryphon +gryphon's +gryphons +gs +guacamole +guacamole's +guano +guano's +guarantee +guarantee's +guaranteed +guaranteeing +guarantees +guarantied +guaranties +guarantor +guarantor's +guarantors +guaranty +guaranty's +guarantying +guard +guard's +guarded +guardedly +guardhouse +guardhouse's +guardhouses +guardian +guardian's +guardians +guardianship +guardianship's +guarding +guardrail +guardrail's +guardrails +guardroom +guardroom's +guardrooms +guards +guardsman +guardsman's +guardsmen +guava +guava's +guavas +gubernatorial +guerilla +guerilla's +guerillas +guerrilla +guerrilla's +guerrillas +guess +guess's +guessable +guessed +guesser +guesser's +guessers +guesses +guessing +guesstimate +guesstimate's +guesstimated +guesstimates +guesstimating +guesswork +guesswork's +guest +guest's +guested +guesting +guests +guff +guff's +guffaw +guffaw's +guffawed +guffawing +guffaws +guidance +guidance's +guide +guide's +guidebook +guidebook's +guidebooks +guided +guideline +guideline's +guidelines +guides +guiding +guild +guild's +guilder +guilder's +guilders +guilds +guile +guile's +guileful +guileless +guillotine +guillotine's +guillotined +guillotines +guillotining +guilt +guilt's +guiltier +guiltiest +guiltily +guiltiness +guiltiness's +guiltless +guilty +guinea +guinea's +guineas +guise +guise's +guises +guitar +guitar's +guitarist +guitarist's +guitarists +guitars +gulag +gulag's +gulags +gulch +gulch's +gulches +gulf +gulf's +gulfs +gull +gull's +gulled +gullet +gullet's +gullets +gulley +gulley's +gullibility +gullibility's +gullible +gullies +gulling +gulls +gully +gully's +gulp +gulp's +gulped +gulping +gulps +gum +gum's +gumbo +gumbo's +gumbos +gumdrop +gumdrop's +gumdrops +gummed +gummier +gummiest +gumming +gummy +gumption +gumption's +gums +gun +gun's +gunboat +gunboat's +gunboats +gunfight +gunfight's +gunfights +gunfire +gunfire's +gunk +gunk's +gunman +gunman's +gunmen +gunned +gunner +gunner's +gunners +gunnery +gunnery's +gunning +gunny +gunny's +gunnysack +gunnysack's +gunnysacks +gunpoint +gunpoint's +gunpowder +gunpowder's +gunrunner +gunrunner's +gunrunners +gunrunning +gunrunning's +guns +gunshot +gunshot's +gunshots +gunslinger +gunslinger's +gunslingers +gunsmith +gunsmith's +gunsmiths +gunwale +gunwale's +gunwales +guppies +guppy +guppy's +gurgle +gurgle's +gurgled +gurgles +gurgling +gurney +gurney's +gurneys +guru +guru's +gurus +gush +gush's +gushed +gusher +gusher's +gushers +gushes +gushier +gushiest +gushing +gushy +gusset +gusset's +gusseted +gusseting +gussets +gust +gust's +gustatory +gusted +gustier +gustiest +gusting +gusto +gusto's +gusts +gusty +gut +gut's +gutless +guts +gutsier +gutsiest +gutsy +gutted +gutter +gutter's +guttered +guttering +gutters +guttersnipe +guttersnipe's +guttersnipes +gutting +guttural +guttural's +gutturals +guy +guy's +guyed +guying +guys +guzzle +guzzled +guzzler +guzzler's +guzzlers +guzzles +guzzling +gybe +gybe's +gybed +gybes +gybing +gym +gym's +gymnasia +gymnasium +gymnasium's +gymnasiums +gymnast +gymnast's +gymnastic +gymnastics +gymnastics's +gymnasts +gymnosperm +gymnosperm's +gymnosperms +gyms +gynecological +gynecologist +gynecologist's +gynecologists +gynecology +gynecology's +gyp +gyp's +gypped +gypping +gyps +gypsies +gypsum +gypsum's +gypsy +gypsy's +gyrate +gyrated +gyrates +gyrating +gyration +gyration's +gyrations +gyro +gyro's +gyros +gyroscope +gyroscope's +gyroscopes +h +h'm +ha +haberdasher +haberdasher's +haberdasheries +haberdashers +haberdashery +haberdashery's +habit +habit's +habitability +habitability's +habitable +habitat +habitat's +habitation +habitation's +habitations +habitats +habits +habitual +habitually +habituate +habituated +habituates +habituating +habituation +habituation's +habitué +habitué's +habitués +hacienda +hacienda's +haciendas +hack +hack's +hacked +hacker +hacker's +hackers +hacking +hackle +hackle's +hackles +hackney +hackney's +hackneyed +hackneying +hackneys +hacks +hacksaw +hacksaw's +hacksaws +had +haddock +haddock's +haddocks +hadn't +haemoglobin +haemoglobin's +haemophilia +haemophilia's +haemorrhage +haemorrhage's +haemorrhaged +haemorrhages +haemorrhaging +haemorrhoids +hafnium +hafnium's +haft +haft's +hafts +hag +hag's +haggard +haggle +haggle's +haggled +haggler +haggler's +hagglers +haggles +haggling +hags +hah +haiku +haiku's +hail +hail's +hailed +hailing +hails +hailstone +hailstone's +hailstones +hailstorm +hailstorm's +hailstorms +hair +hair's +hairbreadth +hairbreadth's +hairbreadths +hairbrush +hairbrush's +hairbrushes +haircut +haircut's +haircuts +hairdo +hairdo's +hairdos +hairdresser +hairdresser's +hairdressers +hairdressing +hairdressing's +haired +hairier +hairiest +hairiness +hairiness's +hairless +hairline +hairline's +hairlines +hairnet +hairnet's +hairnets +hairpiece +hairpiece's +hairpieces +hairpin +hairpin's +hairpins +hairs +hairsbreadth +hairsbreadth's +hairsbreadths +hairsplitting +hairsplitting's +hairspring +hairspring's +hairsprings +hairstyle +hairstyle's +hairstyles +hairstylist +hairstylist's +hairstylists +hairy +hake +hake's +hakes +halberd +halberd's +halberds +halcyon +hale +haled +haler +hales +halest +half +half's +halfback +halfback's +halfbacks +halfhearted +halfheartedly +halfheartedness +halfheartedness's +halfpence +halfpennies +halfpenny +halfpenny's +halftime +halftime's +halftimes +halfway +halibut +halibut's +halibuts +haling +halitosis +halitosis's +hall +hall's +halleluiah +halleluiah's +halleluiahs +hallelujah +hallelujah's +hallelujahs +hallmark +hallmark's +hallmarked +hallmarking +hallmarks +hallow +hallowed +hallowing +hallows +halls +hallucinate +hallucinated +hallucinates +hallucinating +hallucination +hallucination's +hallucinations +hallucinatory +hallucinogen +hallucinogen's +hallucinogenic +hallucinogenic's +hallucinogenics +hallucinogens +hallway +hallway's +hallways +halo +halo's +haloed +haloes +halogen +halogen's +halogens +haloing +halon +halos +halt +halt's +halted +halter +halter's +haltered +haltering +halters +halting +haltingly +halts +halve +halved +halves +halving +halyard +halyard's +halyards +ham +ham's +hamburger +hamburger's +hamburgers +hamlet +hamlet's +hamlets +hammed +hammer +hammer's +hammered +hammerhead +hammerhead's +hammerheads +hammering +hammerings +hammers +hamming +hammock +hammock's +hammocks +hamper +hamper's +hampered +hampering +hampers +hams +hamster +hamster's +hamsters +hamstring +hamstring's +hamstringing +hamstrings +hamstrung +hand +hand's +handbag +handbag's +handbags +handball +handball's +handballs +handbill +handbill's +handbills +handbook +handbook's +handbooks +handcar +handcar's +handcars +handcart +handcart's +handcarts +handcraft +handcraft's +handcrafted +handcrafting +handcrafts +handcuff +handcuff's +handcuffed +handcuffing +handcuffs +handed +handedness +handful +handful's +handfuls +handgun +handgun's +handguns +handicap +handicap's +handicapped +handicapper +handicapper's +handicappers +handicapping +handicaps +handicraft +handicraft's +handicrafts +handier +handiest +handily +handiness +handiness's +handing +handiwork +handiwork's +handkerchief +handkerchief's +handkerchiefs +handkerchieves +handle +handle's +handlebar +handlebar's +handlebars +handled +handler +handler's +handlers +handles +handling +handmade +handmaid +handmaid's +handmaiden +handmaiden's +handmaidens +handmaids +handout +handout's +handouts +handpick +handpicked +handpicking +handpicks +handrail +handrail's +handrails +hands +handset +handset's +handsets +handsful +handshake +handshake's +handshakes +handshaking +handsome +handsomely +handsomeness +handsomeness's +handsomer +handsomest +handspring +handspring's +handsprings +handstand +handstand's +handstands +handwork +handwork's +handwriting +handwriting's +handwritten +handy +handyman +handyman's +handymen +hang +hang's +hangar +hangar's +hangars +hangdog +hanged +hanger +hanger's +hangers +hanging +hanging's +hangings +hangman +hangman's +hangmen +hangnail +hangnail's +hangnails +hangout +hangout's +hangouts +hangover +hangover's +hangovers +hangs +hank +hank's +hanker +hankered +hankering +hankering's +hankerings +hankers +hankie +hankie's +hankies +hanks +hanky +hanky's +hansom +hansom's +hansoms +haphazard +haphazardly +hapless +happen +happened +happening +happening's +happenings +happens +happenstance +happenstance's +happenstances +happier +happiest +happily +happiness +happiness's +happy +harangue +harangue's +harangued +harangues +haranguing +harass +harassed +harasses +harassing +harassment +harassment's +harbinger +harbinger's +harbingers +harbor +harbor's +harbored +harboring +harbors +hard +hardback +hardback's +hardbacks +hardball +hardball's +hardcover +hardcover's +hardcovers +harden +hardened +hardener +hardener's +hardeners +hardening +hardens +harder +hardest +hardheaded +hardheadedly +hardheadedness +hardheadedness's +hardhearted +hardheartedly +hardheartedness +hardheartedness's +hardier +hardiest +hardily +hardiness +hardiness's +hardline +hardliner +hardliner's +hardliners +hardly +hardness +hardness's +hardship +hardship's +hardships +hardtack +hardtack's +hardtop +hardtop's +hardtops +hardware +hardware's +hardwood +hardwood's +hardwoods +hardy +hare +hare's +harebrained +hared +harelip +harelip's +harelips +harem +harem's +harems +hares +haring +hark +harked +harken +harkened +harkening +harkens +harking +harks +harlequin +harlequin's +harlequins +harlot +harlot's +harlots +harm +harm's +harmed +harmful +harmfully +harmfulness +harmfulness's +harming +harmless +harmlessly +harmlessness +harmlessness's +harmonic +harmonic's +harmonica +harmonica's +harmonically +harmonicas +harmonics +harmonies +harmonious +harmoniously +harmoniousness +harmoniousness's +harmonization +harmonization's +harmonize +harmonized +harmonizes +harmonizing +harmony +harmony's +harms +harness +harness's +harnessed +harnesses +harnessing +harp +harp's +harped +harpies +harping +harpist +harpist's +harpists +harpoon +harpoon's +harpooned +harpooning +harpoons +harps +harpsichord +harpsichord's +harpsichords +harpy +harpy's +harridan +harridan's +harridans +harried +harries +harrow +harrow's +harrowed +harrowing +harrows +harry +harrying +harsh +harsher +harshest +harshly +harshness +harshness's +hart +hart's +harts +harvest +harvest's +harvested +harvester +harvester's +harvesters +harvesting +harvests +has +hash +hash's +hashed +hasheesh +hasheesh's +hashes +hashing +hashish +hashish's +hasn't +hasp +hasp's +hasps +hassle +hassle's +hassled +hassles +hassling +hassock +hassock's +hassocks +haste +haste's +hasted +hasten +hastened +hastening +hastens +hastes +hastier +hastiest +hastily +hastiness +hastiness's +hasting +hasty +hat +hat's +hatch +hatch's +hatchback +hatchback's +hatchbacks +hatched +hatcheries +hatchery +hatchery's +hatches +hatchet +hatchet's +hatchets +hatching +hatching's +hatchway +hatchway's +hatchways +hate +hate's +hated +hateful +hatefully +hatefulness +hatefulness's +hater +hater's +haters +hates +hath +hating +hatred +hatred's +hatreds +hats +hatted +hatter +hatter's +hatters +hatting +haughtier +haughtiest +haughtily +haughtiness +haughtiness's +haughty +haul +haul's +hauled +hauler +hauler's +haulers +hauling +hauls +haunch +haunch's +haunches +haunt +haunt's +haunted +haunting +hauntingly +haunts +hauteur +hauteur's +have +have's +haven +haven's +haven't +havens +haversack +haversack's +haversacks +haves +having +havoc +havoc's +haw +haw's +hawed +hawing +hawk +hawk's +hawked +hawker +hawker's +hawkers +hawking +hawkish +hawks +haws +hawser +hawser's +hawsers +hawthorn +hawthorn's +hawthorns +hay +hay's +haycock +haycock's +haycocks +hayed +haying +hayloft +hayloft's +haylofts +haymow +haymow's +haymows +hays +hayseed +hayseed's +hayseeds +haystack +haystack's +haystacks +haywire +hazard +hazard's +hazarded +hazarding +hazardous +hazards +haze +haze's +hazed +hazel +hazel's +hazelnut +hazelnut's +hazelnuts +hazels +hazes +hazier +haziest +hazily +haziness +haziness's +hazing +hazing's +hazings +hazy +he +he'd +he'll +he's +head +head's +headache +headache's +headaches +headband +headband's +headbands +headboard +headboard's +headboards +headdress +headdress's +headdresses +headed +header +header's +headers +headfirst +headgear +headgear's +headhunter +headhunter's +headhunters +headier +headiest +heading +heading's +headings +headland +headland's +headlands +headless +headlight +headlight's +headlights +headline +headline's +headlined +headlines +headlining +headlock +headlock's +headlocks +headlong +headmaster +headmaster's +headmasters +headmistress +headmistress's +headmistresses +headphone +headphone's +headphones +headquarter +headquarters +headquarters's +headrest +headrest's +headrests +headroom +headroom's +heads +headset +headset's +headsets +headstone +headstone's +headstones +headstrong +headwaiter +headwaiter's +headwaiters +headwaters +headwaters's +headway +headway's +headwind +headwind's +headwinds +headword +headword's +headwords +heady +heal +healed +healer +healer's +healers +healing +heals +health +health's +healthful +healthfully +healthfulness +healthfulness's +healthier +healthiest +healthily +healthiness +healthiness's +healthy +heap +heap's +heaped +heaping +heaps +hear +heard +hearer +hearer's +hearers +hearing +hearing's +hearings +hearken +hearkened +hearkening +hearkens +hears +hearsay +hearsay's +hearse +hearse's +hearses +heart +heart's +heartache +heartache's +heartaches +heartbeat +heartbeat's +heartbeats +heartbreak +heartbreak's +heartbreaking +heartbreaks +heartbroken +heartburn +heartburn's +hearten +heartened +heartening +heartens +heartfelt +hearth +hearth's +hearths +heartier +hearties +heartiest +heartily +heartiness +heartiness's +heartland +heartland's +heartlands +heartless +heartlessly +heartlessness +heartlessness's +heartrending +hearts +heartsick +heartstrings +heartstrings's +heartthrob +heartthrob's +heartthrobs +heartwarming +hearty +hearty's +heat +heat's +heated +heatedly +heater +heater's +heaters +heath +heath's +heathen +heathen's +heathenish +heathens +heather +heather's +heaths +heating +heats +heatstroke +heatstroke's +heave +heave's +heaved +heaven +heaven's +heavenlier +heavenliest +heavenly +heavens +heavens's +heavenward +heavenwards +heaves +heavier +heavies +heaviest +heavily +heaviness +heaviness's +heaving +heavy +heavy's +heavyset +heavyweight +heavyweight's +heavyweights +heck +heck's +heckle +heckle's +heckled +heckler +heckler's +hecklers +heckles +heckling +heckling's +hectare +hectare's +hectares +hectic +hectically +hector +hector's +hectored +hectoring +hectors +hedge +hedge's +hedged +hedgehog +hedgehog's +hedgehogs +hedgerow +hedgerow's +hedgerows +hedges +hedging +hedonism +hedonism's +hedonist +hedonist's +hedonistic +hedonists +heed +heed's +heeded +heedful +heeding +heedless +heedlessly +heedlessness +heedlessness's +heeds +heehaw +heehaw's +heehawed +heehawing +heehaws +heel +heel's +heeled +heeling +heels +heft +heft's +hefted +heftier +heftiest +hefting +hefts +hefty +hegemony +hegemony's +heifer +heifer's +heifers +height +height's +heighten +heightened +heightening +heightens +heights +heinous +heinously +heinousness +heinousness's +heir +heir's +heiress +heiress's +heiresses +heirloom +heirloom's +heirlooms +heirs +heist +heist's +heisted +heisting +heists +held +helical +helices +helicopter +helicopter's +helicoptered +helicoptering +helicopters +heliotrope +heliotrope's +heliotropes +heliport +heliport's +heliports +helium +helium's +helix +helix's +helixes +hell +hell's +hellebore +hellebore's +hellhole +hellhole's +hellholes +hellion +hellion's +hellions +hellish +hellishly +hello +hello's +hellos +helm +helm's +helmet +helmet's +helmets +helms +helmsman +helmsman's +helmsmen +helot +helot's +helots +help +help's +helped +helper +helper's +helpers +helpful +helpfully +helpfulness +helpfulness's +helping +helping's +helpings +helpless +helplessly +helplessness +helplessness's +helpmate +helpmate's +helpmates +helpmeet +helpmeet's +helpmeets +helps +hem +hem's +hematologist +hematologist's +hematologists +hematology +hematology's +hemisphere +hemisphere's +hemispheres +hemispheric +hemispherical +hemline +hemline's +hemlines +hemlock +hemlock's +hemlocks +hemmed +hemming +hemoglobin +hemoglobin's +hemophilia +hemophilia's +hemophiliac +hemophiliac's +hemophiliacs +hemorrhage +hemorrhage's +hemorrhaged +hemorrhages +hemorrhaging +hemorrhoid +hemorrhoid's +hemorrhoids +hemp +hemp's +hempen +hems +hemstitch +hemstitch's +hemstitched +hemstitches +hemstitching +hen +hen's +hence +henceforth +henceforward +henchman +henchman's +henchmen +henna +henna's +hennaed +hennaing +hennas +henpeck +henpecked +henpecking +henpecks +hens +hep +hepatic +hepatitis +hepatitis's +hepper +heppest +heptagon +heptagon's +heptagons +her +her's +herald +herald's +heralded +heraldic +heralding +heraldry +heraldry's +heralds +herb +herb's +herbaceous +herbage +herbage's +herbal +herbalist +herbalist's +herbalists +herbicide +herbicide's +herbicides +herbivore +herbivore's +herbivores +herbivorous +herbs +herculean +herd +herd's +herded +herding +herds +herdsman +herdsman's +herdsmen +here +here's +hereabout +hereabouts +hereafter +hereafter's +hereafters +hereby +hereditary +heredity +heredity's +herein +hereof +heresies +heresy +heresy's +heretic +heretic's +heretical +heretics +hereto +heretofore +hereupon +herewith +heritage +heritage's +heritages +hermaphrodite +hermaphrodite's +hermaphrodites +hermaphroditic +hermetic +hermetically +hermit +hermit's +hermitage +hermitage's +hermitages +hermits +hernia +hernia's +herniae +hernias +hero +hero's +heroes +heroic +heroically +heroics +heroics's +heroin +heroin's +heroine +heroine's +heroins +heroism +heroism's +heron +heron's +herons +heros +herpes +herpes's +herring +herring's +herringbone +herringbone's +herrings +hers +herself +hertz +hertz's +hertzes +hes +hesitancy +hesitancy's +hesitant +hesitantly +hesitate +hesitated +hesitates +hesitating +hesitatingly +hesitation +hesitation's +hesitations +heterodox +heterodoxy +heterodoxy's +heterogeneity +heterogeneity's +heterogeneous +heterosexual +heterosexual's +heterosexuality +heterosexuality's +heterosexuals +heuristic +heuristic's +heuristics +hew +hewed +hewer +hewer's +hewers +hewing +hewn +hews +hex +hex's +hexadecimal +hexagon +hexagon's +hexagonal +hexagons +hexameter +hexameter's +hexameters +hexed +hexes +hexing +hey +heyday +heyday's +heydays +hi +hiatus +hiatus's +hiatuses +hibachi +hibachi's +hibachis +hibernate +hibernated +hibernates +hibernating +hibernation +hibernation's +hibiscus +hibiscus's +hibiscuses +hiccough +hiccough's +hiccoughed +hiccoughing +hiccoughs +hiccup +hiccup's +hiccuped +hiccuping +hiccups +hick +hick's +hickey +hickey's +hickeys +hickories +hickory +hickory's +hicks +hid +hidden +hide +hide's +hideaway +hideaway's +hideaways +hidebound +hided +hideous +hideously +hideousness +hideousness's +hideout +hideout's +hideouts +hides +hiding +hiding's +hie +hied +hieing +hierarchical +hierarchically +hierarchies +hierarchy +hierarchy's +hieroglyphic +hieroglyphic's +hieroglyphics +hies +hifalutin +high +high's +highball +highball's +highballs +highborn +highboy +highboy's +highboys +highbrow +highbrow's +highbrows +highchair +highchair's +highchairs +higher +highest +highfalutin +highfaluting +highjack +highjack's +highjacked +highjacker +highjacker's +highjackers +highjacking +highjacks +highland +highland's +highlands +highlight +highlight's +highlighted +highlighter +highlighter's +highlighters +highlighting +highlights +highly +highness +highness's +highs +hightail +hightailed +hightailing +hightails +highway +highway's +highwayman +highwayman's +highwaymen +highways +hijack +hijack's +hijacked +hijacker +hijacker's +hijackers +hijacking +hijacking's +hijackings +hijacks +hike +hike's +hiked +hiker +hiker's +hikers +hikes +hiking +hilarious +hilariously +hilarity +hilarity's +hill +hill's +hillbillies +hillbilly +hillbilly's +hillier +hilliest +hillock +hillock's +hillocks +hills +hillside +hillside's +hillsides +hilltop +hilltop's +hilltops +hilly +hilt +hilt's +hilts +him +him's +hims +himself +hind +hind's +hinder +hindered +hindering +hinders +hindmost +hindquarter +hindquarter's +hindquarters +hindrance +hindrance's +hindrances +hinds +hindsight +hindsight's +hinge +hinge's +hinged +hinges +hinging +hint +hint's +hinted +hinterland +hinterland's +hinterlands +hinting +hints +hip +hip's +hipped +hipper +hippest +hippie +hippie's +hippies +hipping +hippo +hippo's +hippopotami +hippopotamus +hippopotamus's +hippopotamuses +hippos +hippy +hippy's +hips +hire +hire's +hired +hireling +hireling's +hirelings +hires +hiring +hirsute +his +hiss +hiss's +hissed +hisses +hissing +histamine +histamine's +histamines +histogram +histogram's +histograms +historian +historian's +historians +historic +historical +historically +histories +history +history's +histrionic +histrionics +histrionics's +hit +hit's +hitch +hitch's +hitched +hitches +hitchhike +hitchhike's +hitchhiked +hitchhiker +hitchhiker's +hitchhikers +hitchhikes +hitchhiking +hitching +hither +hitherto +hits +hitter +hitter's +hitters +hitting +hive +hive's +hived +hives +hiving +ho +ho's +hoagie +hoagie's +hoagies +hoagy +hoagy's +hoard +hoard's +hoarded +hoarder +hoarder's +hoarders +hoarding +hoards +hoarfrost +hoarfrost's +hoarier +hoariest +hoariness +hoariness's +hoarse +hoarsely +hoarseness +hoarseness's +hoarser +hoarsest +hoary +hoax +hoax's +hoaxed +hoaxer +hoaxer's +hoaxers +hoaxes +hoaxing +hob +hob's +hobbies +hobbit +hobble +hobble's +hobbled +hobbles +hobbling +hobby +hobby's +hobbyhorse +hobbyhorse's +hobbyhorses +hobbyist +hobbyist's +hobbyists +hobgoblin +hobgoblin's +hobgoblins +hobnail +hobnail's +hobnailed +hobnailing +hobnails +hobnob +hobnobbed +hobnobbing +hobnobs +hobo +hobo's +hoboes +hobos +hobs +hock +hock's +hocked +hockey +hockey's +hocking +hocks +hockshop +hockshop's +hockshops +hod +hod's +hodgepodge +hodgepodge's +hodgepodges +hods +hoe +hoe's +hoed +hoedown +hoedown's +hoedowns +hoeing +hoes +hog +hog's +hogan +hogan's +hogans +hogged +hogging +hoggish +hogs +hogshead +hogshead's +hogsheads +hogwash +hogwash's +hoist +hoist's +hoisted +hoisting +hoists +hokey +hokier +hokiest +hokum +hokum's +hold +hold's +holder +holder's +holders +holding +holding's +holdings +holdout +holdout's +holdouts +holdover +holdover's +holdovers +holds +holdup +holdup's +holdups +hole +hole's +holed +holes +holiday +holiday's +holidayed +holidaying +holidays +holier +holiest +holiness +holiness's +holing +holistic +holler +holler's +hollered +hollering +hollers +hollies +hollow +hollow's +hollowed +hollower +hollowest +hollowing +hollowly +hollowness +hollowness's +hollows +holly +holly's +hollyhock +hollyhock's +hollyhocks +holocaust +holocaust's +holocausts +hologram +hologram's +holograms +holograph +holograph's +holographic +holographs +holography +holography's +holster +holster's +holstered +holstering +holsters +holy +homage +homage's +homages +homburg +homburg's +homburgs +home +home's +homebodies +homebody +homebody's +homeboy +homeboy's +homeboys +homecoming +homecoming's +homecomings +homed +homegrown +homeland +homeland's +homelands +homeless +homeless's +homelessness +homelessness's +homelier +homeliest +homeliness +homeliness's +homely +homemade +homemaker +homemaker's +homemakers +homeopathic +homeopathy +homeopathy's +homeowner +homeowner's +homeowners +homepage +homepage's +homepages +homer +homer's +homered +homering +homeroom +homeroom's +homerooms +homers +homes +homesick +homesickness +homesickness's +homespun +homespun's +homestead +homestead's +homesteaded +homesteader +homesteader's +homesteaders +homesteading +homesteads +homestretch +homestretch's +homestretches +hometown +hometown's +hometowns +homeward +homewards +homework +homework's +homey +homey's +homeyness +homeyness's +homeys +homicidal +homicide +homicide's +homicides +homie +homie's +homier +homies +homiest +homilies +homily +homily's +hominess +hominess's +homing +hominy +hominy's +homogeneity +homogeneity's +homogeneous +homogeneously +homogenization +homogenization's +homogenize +homogenized +homogenizes +homogenizing +homograph +homograph's +homographs +homonym +homonym's +homonyms +homophobia +homophobia's +homophobic +homophone +homophone's +homophones +homosexual +homosexual's +homosexuality +homosexuality's +homosexuals +homy +honcho +honcho's +honchos +hone +hone's +honed +hones +honest +honester +honestest +honestly +honesty +honesty's +honey +honey's +honeybee +honeybee's +honeybees +honeycomb +honeycomb's +honeycombed +honeycombing +honeycombs +honeydew +honeydew's +honeydews +honeyed +honeying +honeymoon +honeymoon's +honeymooned +honeymooner +honeymooner's +honeymooners +honeymooning +honeymoons +honeys +honeysuckle +honeysuckle's +honeysuckles +honied +honing +honk +honk's +honked +honking +honks +honor +honor's +honorable +honorably +honoraria +honorarium +honorarium's +honorariums +honorary +honored +honorific +honorific's +honorifics +honoring +honors +hooch +hooch's +hood +hood's +hooded +hooding +hoodlum +hoodlum's +hoodlums +hoodoo +hoodoo's +hoodooed +hoodooing +hoodoos +hoods +hoodwink +hoodwinked +hoodwinking +hoodwinks +hooey +hooey's +hoof +hoof's +hoofed +hoofing +hoofs +hook +hook's +hookah +hookah's +hookahs +hooked +hooker +hooker's +hookers +hookey +hookey's +hooking +hooks +hookup +hookup's +hookups +hookworm +hookworm's +hookworms +hooky +hooky's +hooligan +hooligan's +hooliganism +hooliganism's +hooligans +hoop +hoop's +hooped +hooping +hoopla +hoopla's +hoops +hoorah +hoorah's +hoorahs +hooray +hooray's +hoorayed +hooraying +hoorays +hoot +hoot's +hootch +hootch's +hooted +hooter +hooter's +hooters +hooting +hoots +hooves +hop +hop's +hope +hope's +hoped +hopeful +hopeful's +hopefully +hopefulness +hopefulness's +hopefuls +hopeless +hopelessly +hopelessness +hopelessness's +hopes +hoping +hopped +hopper +hopper's +hoppers +hopping +hops +hopscotch +hopscotch's +hopscotched +hopscotches +hopscotching +horde +horde's +horded +hordes +hording +horizon +horizon's +horizons +horizontal +horizontal's +horizontally +horizontals +hormonal +hormone +hormone's +hormones +horn +horn's +horned +hornet +hornet's +hornets +hornier +horniest +hornless +hornpipe +hornpipe's +hornpipes +horns +horny +horology +horology's +horoscope +horoscope's +horoscopes +horrendous +horrendously +horrible +horribly +horrid +horridly +horrific +horrified +horrifies +horrify +horrifying +horror +horror's +horrors +horse +horse's +horseback +horseback's +horsed +horseflies +horsefly +horsefly's +horsehair +horsehair's +horsehide +horsehide's +horseman +horseman's +horsemanship +horsemanship's +horsemen +horseplay +horseplay's +horsepower +horsepower's +horseradish +horseradish's +horseradishes +horses +horseshoe +horseshoe's +horseshoed +horseshoeing +horseshoes +horsetail +horsetail's +horsetails +horsewhip +horsewhip's +horsewhipped +horsewhipping +horsewhips +horsewoman +horsewoman's +horsewomen +horsey +horsier +horsiest +horsing +horsy +horticultural +horticulture +horticulture's +horticulturist +horticulturist's +horticulturists +hos +hosanna +hosanna's +hosannas +hose +hose's +hosed +hoses +hosiery +hosiery's +hosing +hospice +hospice's +hospices +hospitable +hospitably +hospital +hospital's +hospitality +hospitality's +hospitalization +hospitalization's +hospitalizations +hospitalize +hospitalized +hospitalizes +hospitalizing +hospitals +host +host's +hostage +hostage's +hostages +hosted +hostel +hostel's +hosteled +hosteler +hosteler's +hostelers +hosteling +hostelled +hostelling +hostelries +hostelry +hostelry's +hostels +hostess +hostess's +hostessed +hostesses +hostessing +hostile +hostile's +hostilely +hostiles +hostilities +hostilities's +hostility +hostility's +hosting +hostler +hostler's +hostlers +hosts +hot +hotbed +hotbed's +hotbeds +hotcake +hotcake's +hotcakes +hotel +hotel's +hotelier +hotelier's +hoteliers +hotels +hothead +hothead's +hotheaded +hotheadedly +hotheadedness +hotheadedness's +hotheads +hothouse +hothouse's +hothouses +hotly +hotness +hotness's +hotshot +hotshot's +hotshots +hotter +hottest +hoummos +hound +hound's +hounded +hounding +hounds +hour +hour's +hourglass +hourglass's +hourglasses +hourly +hours +house +house's +houseboat +houseboat's +houseboats +housebound +housebreak +housebreaking +housebreaking's +housebreaks +housebroke +housebroken +houseclean +housecleaned +housecleaning +housecleaning's +housecleans +housecoat +housecoat's +housecoats +housed +houseflies +housefly +housefly's +household +household's +householder +householder's +householders +households +househusband +househusband's +househusbands +housekeeper +housekeeper's +housekeepers +housekeeping +housekeeping's +housemaid +housemaid's +housemaids +housemother +housemother's +housemothers +houseplant +houseplant's +houseplants +houses +housetop +housetop's +housetops +housewares +housewares's +housewarming +housewarming's +housewarmings +housewife +housewife's +housewives +housework +housework's +housing +housing's +housings +hove +hovel +hovel's +hovels +hover +hovercraft +hovercraft's +hovered +hovering +hovers +how +how's +howdah +howdah's +howdahs +howdy +however +howitzer +howitzer's +howitzers +howl +howl's +howled +howler +howler's +howlers +howling +howls +hows +howsoever +hub +hub's +hubbies +hubbub +hubbub's +hubbubs +hubby +hubby's +hubcap +hubcap's +hubcaps +hubris +hubris's +hubs +huckleberries +huckleberry +huckleberry's +huckster +huckster's +huckstered +huckstering +hucksters +huddle +huddle's +huddled +huddles +huddling +hue +hue's +hued +hues +huff +huff's +huffed +huffier +huffiest +huffily +huffing +huffs +huffy +hug +hug's +huge +hugely +hugeness +hugeness's +huger +hugest +hugged +hugging +hugs +huh +hula +hula's +hulas +hulk +hulk's +hulking +hulks +hull +hull's +hullabaloo +hullabaloo's +hullabaloos +hulled +hulling +hulls +hum +hum's +human +human's +humane +humanely +humaneness +humaneness's +humaner +humanest +humanism +humanism's +humanist +humanist's +humanistic +humanists +humanitarian +humanitarian's +humanitarianism +humanitarianism's +humanitarians +humanities +humanities's +humanity +humanity's +humanization +humanization's +humanize +humanized +humanizer +humanizer's +humanizers +humanizes +humanizing +humankind +humankind's +humanly +humanness +humanness's +humanoid +humanoid's +humanoids +humans +humble +humbled +humbleness +humbleness's +humbler +humbles +humblest +humbling +humblings +humbly +humbug +humbug's +humbugged +humbugging +humbugs +humdinger +humdinger's +humdingers +humdrum +humdrum's +humeri +humerus +humerus's +humid +humidified +humidifier +humidifier's +humidifiers +humidifies +humidify +humidifying +humidity +humidity's +humidor +humidor's +humidors +humiliate +humiliated +humiliates +humiliating +humiliation +humiliation's +humiliations +humility +humility's +hummed +humming +hummingbird +hummingbird's +hummingbirds +hummock +hummock's +hummocks +humongous +humor +humor's +humored +humoring +humorist +humorist's +humorists +humorless +humorlessness +humorlessness's +humorous +humorously +humors +hump +hump's +humpback +humpback's +humpbacked +humpbacks +humped +humping +humps +hums +humungous +humus +humus's +hunch +hunch's +hunchback +hunchback's +hunchbacked +hunchbacks +hunched +hunches +hunching +hundred +hundred's +hundredfold +hundreds +hundredth +hundredth's +hundredths +hundredweight +hundredweight's +hundredweights +hung +hunger +hunger's +hungered +hungering +hungers +hungover +hungrier +hungriest +hungrily +hungry +hunk +hunk's +hunker +hunkered +hunkering +hunkers +hunks +hunt +hunt's +hunted +hunter +hunter's +hunters +hunting +hunting's +huntress +huntress's +huntresses +hunts +huntsman +huntsman's +huntsmen +hurdle +hurdle's +hurdled +hurdler +hurdler's +hurdlers +hurdles +hurdling +hurl +hurl's +hurled +hurler +hurler's +hurlers +hurling +hurls +hurrah +hurrah's +hurrahed +hurrahing +hurrahs +hurray +hurray's +hurrayed +hurraying +hurrays +hurricane +hurricane's +hurricanes +hurried +hurriedly +hurries +hurry +hurry's +hurrying +hurt +hurt's +hurtful +hurting +hurtle +hurtled +hurtles +hurtling +hurts +husband +husband's +husbanded +husbanding +husbandry +husbandry's +husbands +hush +hush's +hushed +hushes +hushing +husk +husk's +husked +husker +husker's +huskers +huskier +huskies +huskiest +huskily +huskiness +huskiness's +husking +husks +husky +husky's +hussar +hussar's +hussars +hussies +hussy +hussy's +hustings +hustings's +hustle +hustle's +hustled +hustler +hustler's +hustlers +hustles +hustling +hut +hut's +hutch +hutch's +hutches +huts +hutzpa +hutzpa's +hutzpah +hutzpah's +hyacinth +hyacinth's +hyacinths +hyaena +hyaena's +hyaenas +hybrid +hybrid's +hybridize +hybridized +hybridizes +hybridizing +hybrids +hydra +hydra's +hydrae +hydrangea +hydrangea's +hydrangeas +hydrant +hydrant's +hydrants +hydras +hydrate +hydrate's +hydrated +hydrates +hydrating +hydraulic +hydraulically +hydraulics +hydraulics's +hydrocarbon +hydrocarbon's +hydrocarbons +hydroelectric +hydroelectricity +hydroelectricity's +hydrofoil +hydrofoil's +hydrofoils +hydrogen +hydrogen's +hydrogenate +hydrogenated +hydrogenates +hydrogenating +hydrology +hydrology's +hydrolysis +hydrolysis's +hydrometer +hydrometer's +hydrometers +hydrophobia +hydrophobia's +hydroplane +hydroplane's +hydroplaned +hydroplanes +hydroplaning +hydroponic +hydroponics +hydroponics's +hydrosphere +hydrosphere's +hydrotherapy +hydrotherapy's +hyena +hyena's +hyenas +hygiene +hygiene's +hygienic +hygienically +hygienist +hygienist's +hygienists +hygrometer +hygrometer's +hygrometers +hying +hymen +hymen's +hymens +hymn +hymn's +hymnal +hymnal's +hymnals +hymned +hymning +hymns +hype +hype's +hyped +hyper +hyperactive +hyperactivity +hyperactivity's +hyperbola +hyperbola's +hyperbolae +hyperbolas +hyperbole +hyperbole's +hyperbolic +hypercritical +hypercritically +hypermarket +hypersensitive +hypersensitivities +hypersensitivity +hypersensitivity's +hyperspace +hypertension +hypertension's +hypertext +hypertext's +hyperventilate +hyperventilated +hyperventilates +hyperventilating +hyperventilation +hyperventilation's +hypes +hyphen +hyphen's +hyphenate +hyphenate's +hyphenated +hyphenates +hyphenating +hyphenation +hyphenation's +hyphenations +hyphened +hyphening +hyphens +hyping +hypnoses +hypnosis +hypnosis's +hypnotic +hypnotic's +hypnotically +hypnotics +hypnotism +hypnotism's +hypnotist +hypnotist's +hypnotists +hypnotize +hypnotized +hypnotizes +hypnotizing +hypo +hypo's +hypoallergenic +hypochondria +hypochondria's +hypochondriac +hypochondriac's +hypochondriacs +hypocrisies +hypocrisy +hypocrisy's +hypocrite +hypocrite's +hypocrites +hypocritical +hypocritically +hypodermic +hypodermic's +hypodermics +hypoglycemia +hypoglycemia's +hypoglycemic +hypoglycemic's +hypoglycemics +hypos +hypotenuse +hypotenuse's +hypotenuses +hypothalami +hypothalamus +hypothalamus's +hypothermia +hypothermia's +hypotheses +hypothesis +hypothesis's +hypothesize +hypothesized +hypothesizes +hypothesizing +hypothetical +hypothetically +hysterectomies +hysterectomy +hysterectomy's +hysteresis +hysteria +hysteria's +hysteric +hysteric's +hysterical +hysterically +hysterics +hysterics's +i +iPad +iPhone +iPod +iPod's +iTunes +iTunes's +iamb +iamb's +iambic +iambic's +iambics +iambs +ibex +ibex's +ibexes +ibices +ibis +ibis's +ibises +ibuprofen +ibuprofen's +ice +ice's +iceberg +iceberg's +icebergs +icebound +icebox +icebox's +iceboxes +icebreaker +icebreaker's +icebreakers +icecap +icecap's +icecaps +iced +ices +icicle +icicle's +icicles +icier +iciest +icily +iciness +iciness's +icing +icing's +icings +ickier +ickiest +icky +icon +icon's +iconoclast +iconoclast's +iconoclastic +iconoclasts +icons +icy +id +id's +idea +idea's +ideal +ideal's +idealism +idealism's +idealist +idealist's +idealistic +idealistically +idealists +idealization +idealization's +idealize +idealized +idealizes +idealizing +ideally +ideals +ideas +identical +identically +identifiable +identification +identification's +identified +identifier +identifiers +identifies +identify +identifying +identities +identity +identity's +ideogram +ideogram's +ideograms +ideograph +ideograph's +ideographs +ideological +ideologically +ideologies +ideologist +ideologist's +ideologists +ideology +ideology's +ides +ides's +idiocies +idiocy +idiocy's +idiom +idiom's +idiomatic +idiomatically +idioms +idiosyncrasies +idiosyncrasy +idiosyncrasy's +idiosyncratic +idiot +idiot's +idiotic +idiotically +idiots +idle +idle's +idled +idleness +idleness's +idler +idler's +idlers +idles +idlest +idling +idly +idol +idol's +idolater +idolater's +idolaters +idolatrous +idolatry +idolatry's +idolize +idolized +idolizes +idolizing +idols +ids +idyl +idyl's +idyll +idyll's +idyllic +idylls +idyls +if +if's +iffier +iffiest +iffy +ifs +igloo +igloo's +igloos +igneous +ignite +ignited +ignites +igniting +ignition +ignition's +ignitions +ignoble +ignobly +ignominies +ignominious +ignominiously +ignominy +ignominy's +ignoramus +ignoramus's +ignoramuses +ignorance +ignorance's +ignorant +ignorantly +ignore +ignored +ignores +ignoring +iguana +iguana's +iguanas +ikon +ikon's +ikons +ilk +ilk's +ilks +ill +ill's +illegal +illegal's +illegalities +illegality +illegality's +illegally +illegals +illegibility +illegibility's +illegible +illegibly +illegitimacy +illegitimacy's +illegitimate +illegitimately +illiberal +illicit +illicitly +illicitness +illicitness's +illiteracy +illiteracy's +illiterate +illiterate's +illiterates +illness +illness's +illnesses +illogical +illogically +ills +illuminate +illuminated +illuminates +illuminating +illumination +illumination's +illuminations +illumine +illumined +illumines +illumining +illusion +illusion's +illusions +illusive +illusory +illustrate +illustrated +illustrates +illustrating +illustration +illustration's +illustrations +illustrative +illustrator +illustrator's +illustrators +illustrious +image +image's +imaged +imagery +imagery's +images +imaginable +imaginably +imaginary +imagination +imagination's +imaginations +imaginative +imaginatively +imagine +imagined +imagines +imaging +imagining +imam +imam's +imams +imbalance +imbalance's +imbalanced +imbalances +imbecile +imbecile's +imbeciles +imbecilic +imbecilities +imbecility +imbecility's +imbed +imbedded +imbedding +imbeds +imbibe +imbibed +imbibes +imbibing +imbroglio +imbroglio's +imbroglios +imbue +imbued +imbues +imbuing +imitate +imitated +imitates +imitating +imitation +imitation's +imitations +imitative +imitator +imitator's +imitators +immaculate +immaculately +immaculateness +immaculateness's +immanence +immanence's +immanent +immaterial +immature +immaturely +immaturity +immaturity's +immeasurable +immeasurably +immediacy +immediacy's +immediate +immediately +immemorial +immense +immensely +immensities +immensity +immensity's +immerse +immersed +immerses +immersing +immersion +immersion's +immersions +immigrant +immigrant's +immigrants +immigrate +immigrated +immigrates +immigrating +immigration +immigration's +imminence +imminence's +imminent +imminently +immobile +immobility +immobility's +immobilization +immobilization's +immobilize +immobilized +immobilizes +immobilizing +immoderate +immoderately +immodest +immodestly +immodesty +immodesty's +immolate +immolated +immolates +immolating +immolation +immolation's +immoral +immoralities +immorality +immorality's +immorally +immortal +immortal's +immortality +immortality's +immortalize +immortalized +immortalizes +immortalizing +immortally +immortals +immovable +immovably +immoveable +immune +immunity +immunity's +immunization +immunization's +immunizations +immunize +immunized +immunizes +immunizing +immunology +immunology's +immure +immured +immures +immuring +immutability +immutability's +immutable +immutably +imp +imp's +impact +impact's +impacted +impacting +impacts +impair +impaired +impairing +impairment +impairment's +impairments +impairs +impala +impala's +impalas +impale +impaled +impalement +impalement's +impales +impaling +impalpable +impanel +impaneled +impaneling +impanels +impart +imparted +impartial +impartiality +impartiality's +impartially +imparting +imparts +impassable +impasse +impasse's +impasses +impassioned +impassive +impassively +impassivity +impassivity's +impatience +impatience's +impatiences +impatient +impatiently +impeach +impeached +impeaches +impeaching +impeachment +impeachment's +impeachments +impeccability +impeccability's +impeccable +impeccably +impecunious +impecuniousness +impecuniousness's +impedance +impedance's +impede +impeded +impedes +impediment +impediment's +impedimenta +impedimenta's +impediments +impeding +impel +impelled +impelling +impels +impend +impended +impending +impends +impenetrability +impenetrability's +impenetrable +impenetrably +impenitence +impenitence's +impenitent +imperative +imperative's +imperatively +imperatives +imperceptible +imperceptibly +imperfect +imperfect's +imperfection +imperfection's +imperfections +imperfectly +imperfects +imperial +imperial's +imperialism +imperialism's +imperialist +imperialist's +imperialistic +imperialists +imperially +imperials +imperil +imperiled +imperiling +imperilled +imperilling +imperils +imperious +imperiously +imperiousness +imperiousness's +imperishable +impermanence +impermanence's +impermanent +impermeable +impermissible +impersonal +impersonally +impersonate +impersonated +impersonates +impersonating +impersonation +impersonation's +impersonations +impersonator +impersonator's +impersonators +impertinence +impertinence's +impertinent +impertinently +imperturbability +imperturbability's +imperturbable +imperturbably +impervious +impetigo +impetigo's +impetuosity +impetuosity's +impetuous +impetuously +impetus +impetus's +impetuses +impieties +impiety +impiety's +impinge +impinged +impingement +impingement's +impinges +impinging +impious +impiously +impish +impishly +impishness +impishness's +implacability +implacability's +implacable +implacably +implant +implant's +implantation +implantation's +implanted +implanting +implants +implausibilities +implausibility +implausibility's +implausible +implausibly +implement +implement's +implementable +implementation +implementation's +implementations +implemented +implementer +implementing +implements +implicate +implicated +implicates +implicating +implication +implication's +implications +implicit +implicitly +implied +implies +implode +imploded +implodes +imploding +implore +implored +implores +imploring +implosion +implosion's +implosions +imply +implying +impolite +impolitely +impoliteness +impoliteness's +impolitenesses +impolitic +imponderable +imponderable's +imponderables +import +import's +importance +importance's +important +importantly +importation +importation's +importations +imported +importer +importer's +importers +importing +imports +importunate +importune +importuned +importunes +importuning +importunity +importunity's +impose +imposed +imposes +imposing +imposingly +imposition +imposition's +impositions +impossibilities +impossibility +impossibility's +impossible +impossibles +impossibly +imposter +imposter's +imposters +impostor +impostor's +impostors +imposture +imposture's +impostures +impotence +impotence's +impotent +impotently +impound +impounded +impounding +impounds +impoverish +impoverished +impoverishes +impoverishing +impoverishment +impoverishment's +impracticable +impracticably +impractical +impracticality +impracticality's +imprecation +imprecation's +imprecations +imprecise +imprecisely +imprecision +imprecision's +impregnability +impregnability's +impregnable +impregnably +impregnate +impregnated +impregnates +impregnating +impregnation +impregnation's +impresario +impresario's +impresarios +impress +impress's +impressed +impresses +impressing +impression +impression's +impressionable +impressionism +impressionism's +impressionist +impressionist's +impressionistic +impressionists +impressions +impressive +impressively +impressiveness +impressiveness's +imprimatur +imprimatur's +imprimaturs +imprint +imprint's +imprinted +imprinting +imprints +imprison +imprisoned +imprisoning +imprisonment +imprisonment's +imprisonments +imprisons +improbabilities +improbability +improbability's +improbable +improbably +impromptu +impromptu's +impromptus +improper +improperly +improprieties +impropriety +impropriety's +improvable +improve +improved +improvement +improvement's +improvements +improves +improvidence +improvidence's +improvident +improvidently +improving +improvisation +improvisation's +improvisations +improvise +improvised +improvises +improvising +imprudence +imprudence's +imprudent +imps +impudence +impudence's +impudent +impudently +impugn +impugned +impugning +impugns +impulse +impulse's +impulsed +impulses +impulsing +impulsion +impulsion's +impulsive +impulsively +impulsiveness +impulsiveness's +impunity +impunity's +impure +impurely +impurer +impurest +impurities +impurity +impurity's +imputation +imputation's +imputations +impute +imputed +imputes +imputing +in +in's +inabilities +inability +inability's +inaccessibility +inaccessibility's +inaccessible +inaccuracies +inaccuracy +inaccuracy's +inaccurate +inaccurately +inaction +inaction's +inactive +inactivity +inactivity's +inadequacies +inadequacy +inadequacy's +inadequate +inadequately +inadmissible +inadvertence +inadvertence's +inadvertent +inadvertently +inadvisable +inalienable +inamorata +inamorata's +inamoratas +inane +inanely +inaner +inanest +inanimate +inanities +inanity +inanity's +inapplicable +inappropriate +inappropriately +inapt +inarticulate +inarticulately +inasmuch +inattention +inattention's +inattentive +inaudible +inaudibly +inaugural +inaugural's +inaugurals +inaugurate +inaugurated +inaugurates +inaugurating +inauguration +inauguration's +inaugurations +inauspicious +inboard +inboard's +inboards +inborn +inbound +inbred +inbreed +inbreeding +inbreeding's +inbreeds +inbuilt +incalculable +incalculably +incandescence +incandescence's +incandescent +incantation +incantation's +incantations +incapability +incapability's +incapable +incapacitate +incapacitated +incapacitates +incapacitating +incapacity +incapacity's +incarcerate +incarcerated +incarcerates +incarcerating +incarceration +incarceration's +incarcerations +incarnate +incarnated +incarnates +incarnating +incarnation +incarnation's +incarnations +incautious +incendiaries +incendiary +incendiary's +incense +incense's +incensed +incenses +incensing +incentive +incentive's +incentives +inception +inception's +inceptions +incessant +incessantly +incest +incest's +incestuous +inch +inch's +inched +inches +inching +inchoate +incidence +incidence's +incidences +incident +incident's +incidental +incidental's +incidentally +incidentals +incidents +incinerate +incinerated +incinerates +incinerating +incineration +incineration's +incinerator +incinerator's +incinerators +incipient +incise +incised +incises +incising +incision +incision's +incisions +incisive +incisively +incisiveness +incisiveness's +incisor +incisor's +incisors +incite +incited +incitement +incitement's +incitements +incites +inciting +incivilities +incivility +incivility's +inclemency +inclemency's +inclement +inclination +inclination's +inclinations +incline +incline's +inclined +inclines +inclining +inclose +inclosed +incloses +inclosing +inclosure +inclosure's +inclosures +include +included +includes +including +inclusion +inclusion's +inclusions +inclusive +inclusively +incognito +incognito's +incognitos +incoherence +incoherence's +incoherent +incoherently +incombustible +income +income's +incomes +incoming +incommensurate +incommunicado +incomparable +incomparably +incompatibilities +incompatibility +incompatibility's +incompatible +incompatible's +incompatibles +incompatibly +incompetence +incompetence's +incompetent +incompetent's +incompetently +incompetents +incomplete +incompletely +incompleteness +incomprehensible +incomprehensibly +inconceivable +inconceivably +inconclusive +inconclusively +incongruities +incongruity +incongruity's +incongruous +incongruously +inconsequential +inconsequentially +inconsiderable +inconsiderate +inconsiderately +inconsiderateness +inconsiderateness's +inconsistencies +inconsistency +inconsistency's +inconsistent +inconsistently +inconsolable +inconspicuous +inconspicuously +inconspicuousness +inconspicuousness's +inconstancy +inconstancy's +inconstant +incontestable +incontestably +incontinence +incontinence's +incontinent +incontrovertible +incontrovertibly +inconvenience +inconvenience's +inconvenienced +inconveniences +inconveniencing +inconvenient +inconveniently +incorporate +incorporated +incorporates +incorporating +incorporation +incorporation's +incorporeal +incorrect +incorrectly +incorrectness +incorrectness's +incorrigibility +incorrigibility's +incorrigible +incorrigibly +incorruptibility +incorruptibility's +incorruptible +increase +increase's +increased +increases +increasing +increasingly +incredibility +incredibility's +incredible +incredibly +incredulity +incredulity's +incredulous +incredulously +increment +increment's +incremental +incremented +increments +incriminate +incriminated +incriminates +incriminating +incrimination +incrimination's +incriminatory +incrust +incrustation +incrustation's +incrustations +incrusted +incrusting +incrusts +incubate +incubated +incubates +incubating +incubation +incubation's +incubator +incubator's +incubators +incubi +incubus +incubus's +incubuses +inculcate +inculcated +inculcates +inculcating +inculcation +inculcation's +inculpate +inculpated +inculpates +inculpating +incumbencies +incumbency +incumbency's +incumbent +incumbent's +incumbents +incur +incurable +incurable's +incurables +incurably +incurious +incurred +incurring +incurs +incursion +incursion's +incursions +indebted +indebtedness +indebtedness's +indecencies +indecency +indecency's +indecent +indecently +indecipherable +indecision +indecision's +indecisive +indecisively +indecisiveness +indecisiveness's +indecorous +indeed +indefatigable +indefatigably +indefensible +indefensibly +indefinable +indefinably +indefinite +indefinitely +indelible +indelibly +indelicacies +indelicacy +indelicacy's +indelicate +indelicately +indemnification +indemnification's +indemnifications +indemnified +indemnifies +indemnify +indemnifying +indemnities +indemnity +indemnity's +indent +indent's +indentation +indentation's +indentations +indented +indenting +indents +indenture +indenture's +indentured +indentures +indenturing +independence +independence's +independent +independent's +independently +independents +indescribable +indescribably +indestructible +indestructibly +indeterminable +indeterminacy +indeterminacy's +indeterminate +indeterminately +index +index's +indexed +indexes +indexing +indicate +indicated +indicates +indicating +indication +indication's +indications +indicative +indicative's +indicatives +indicator +indicator's +indicators +indices +indict +indictable +indicted +indicting +indictment +indictment's +indictments +indicts +indifference +indifference's +indifferent +indifferently +indigence +indigence's +indigenous +indigent +indigent's +indigents +indigestible +indigestion +indigestion's +indignant +indignantly +indignation +indignation's +indignities +indignity +indignity's +indigo +indigo's +indirect +indirection +indirectly +indirectness +indirectness's +indiscernible +indiscreet +indiscreetly +indiscretion +indiscretion's +indiscretions +indiscriminate +indiscriminately +indispensable +indispensable's +indispensables +indispensably +indisposed +indisposition +indisposition's +indispositions +indisputable +indisputably +indissoluble +indistinct +indistinctly +indistinctness +indistinctness's +indistinguishable +individual +individual's +individualism +individualism's +individualist +individualist's +individualistic +individualists +individuality +individuality's +individualize +individualized +individualizes +individualizing +individually +individuals +indivisibility +indivisibility's +indivisible +indivisibly +indoctrinate +indoctrinated +indoctrinates +indoctrinating +indoctrination +indoctrination's +indolence +indolence's +indolent +indolently +indomitable +indomitably +indoor +indoors +indorse +indorsed +indorsement +indorsement's +indorsements +indorses +indorsing +indubitable +indubitably +induce +induced +inducement +inducement's +inducements +induces +inducing +induct +inductance +inductance's +inducted +inductee +inductee's +inductees +inducting +induction +induction's +inductions +inductive +inducts +indue +indued +indues +induing +indulge +indulged +indulgence +indulgence's +indulgences +indulgent +indulgently +indulges +indulging +industrial +industrialism +industrialism's +industrialist +industrialist's +industrialists +industrialization +industrialization's +industrialize +industrialized +industrializes +industrializing +industrially +industries +industrious +industriously +industriousness +industriousness's +industry +industry's +inebriate +inebriate's +inebriated +inebriates +inebriating +inebriation +inebriation's +inedible +ineducable +ineffable +ineffably +ineffective +ineffectively +ineffectiveness +ineffectiveness's +ineffectual +ineffectually +inefficiencies +inefficiency +inefficiency's +inefficient +inefficiently +inelastic +inelegance +inelegant +inelegantly +ineligibility +ineligibility's +ineligible +ineligible's +ineligibles +ineluctable +ineluctably +inept +ineptitude +ineptitude's +ineptly +ineptness +ineptness's +inequalities +inequality +inequality's +inequitable +inequities +inequity +inequity's +inert +inertia +inertia's +inertial +inertly +inertness +inertness's +inescapable +inescapably +inessential +inessential's +inessentials +inestimable +inestimably +inevitability +inevitability's +inevitable +inevitable's +inevitably +inexact +inexcusable +inexcusably +inexhaustible +inexhaustibly +inexorable +inexorably +inexpedient +inexpensive +inexpensively +inexperience +inexperience's +inexperienced +inexpert +inexplicable +inexplicably +inexpressible +inextinguishable +inextricable +inextricably +infallibility +infallibility's +infallible +infallibly +infamies +infamous +infamously +infamy +infamy's +infancy +infancy's +infant +infant's +infanticide +infanticide's +infanticides +infantile +infantries +infantry +infantry's +infantryman +infantryman's +infantrymen +infants +infarction +infarction's +infatuate +infatuated +infatuates +infatuating +infatuation +infatuation's +infatuations +infect +infected +infecting +infection +infection's +infections +infectious +infectiously +infectiousness +infectiousness's +infects +infelicities +infelicitous +infelicity +infelicity's +infer +inference +inference's +inferences +inferential +inferior +inferior's +inferiority +inferiority's +inferiors +infernal +inferno +inferno's +infernos +inferred +inferring +infers +infertile +infertility +infertility's +infest +infestation +infestation's +infestations +infested +infesting +infests +infidel +infidel's +infidelities +infidelity +infidelity's +infidels +infield +infield's +infielder +infielder's +infielders +infields +infighting +infighting's +infiltrate +infiltrated +infiltrates +infiltrating +infiltration +infiltration's +infiltrator +infiltrator's +infiltrators +infinite +infinite's +infinitely +infinitesimal +infinitesimal's +infinitesimally +infinitesimals +infinities +infinitive +infinitive's +infinitives +infinitude +infinitude's +infinity +infinity's +infirm +infirmaries +infirmary +infirmary's +infirmities +infirmity +infirmity's +infix +inflame +inflamed +inflames +inflaming +inflammable +inflammation +inflammation's +inflammations +inflammatory +inflatable +inflatable's +inflatables +inflate +inflated +inflates +inflating +inflation +inflation's +inflationary +inflect +inflected +inflecting +inflection +inflection's +inflectional +inflections +inflects +inflexibility +inflexibility's +inflexible +inflexibly +inflict +inflicted +inflicting +infliction +infliction's +inflicts +inflorescence +inflorescence's +inflow +influence +influence's +influenced +influences +influencing +influential +influentially +influenza +influenza's +influx +influx's +influxes +info +info's +infomercial +infomercial's +infomercials +inform +informal +informality +informality's +informally +informant +informant's +informants +information +information's +informational +informative +informed +informer +informer's +informers +informing +informs +infotainment +infotainment's +infraction +infraction's +infractions +infrared +infrared's +infrastructure +infrastructure's +infrastructures +infrequency +infrequency's +infrequent +infrequently +infringe +infringed +infringement +infringement's +infringements +infringes +infringing +infuriate +infuriated +infuriates +infuriating +infuriatingly +infuse +infused +infuses +infusing +infusion +infusion's +infusions +ingenious +ingeniously +ingenuity +ingenuity's +ingenuous +ingenuously +ingenuousness +ingenuousness's +ingest +ingested +ingesting +ingestion +ingestion's +ingests +inglorious +ingot +ingot's +ingots +ingrain +ingrained +ingraining +ingrains +ingrate +ingrate's +ingrates +ingratiate +ingratiated +ingratiates +ingratiating +ingratiatingly +ingratitude +ingratitude's +ingredient +ingredient's +ingredients +ingress +ingress's +ingresses +ingrown +ingénue +ingénue's +ingénues +inhabit +inhabitable +inhabitant +inhabitant's +inhabitants +inhabited +inhabiting +inhabits +inhalant +inhalant's +inhalants +inhalation +inhalation's +inhalations +inhalator +inhalator's +inhalators +inhale +inhaled +inhaler +inhaler's +inhalers +inhales +inhaling +inhere +inhered +inherent +inherently +inheres +inhering +inherit +inheritance +inheritance's +inheritances +inherited +inheriting +inheritor +inheritor's +inheritors +inherits +inhibit +inhibited +inhibiting +inhibition +inhibition's +inhibitions +inhibits +inhospitable +inhuman +inhumane +inhumanely +inhumanities +inhumanity +inhumanity's +inhumanly +inimical +inimically +inimitable +inimitably +iniquities +iniquitous +iniquity +iniquity's +initial +initial's +initialed +initialing +initialization +initialize +initialized +initializes +initializing +initialled +initialling +initially +initials +initiate +initiate's +initiated +initiates +initiating +initiation +initiation's +initiations +initiative +initiative's +initiatives +initiator +initiator's +initiators +inject +injected +injecting +injection +injection's +injections +injector +injector's +injectors +injects +injudicious +injunction +injunction's +injunctions +injure +injured +injures +injuries +injuring +injurious +injury +injury's +injustice +injustice's +injustices +ink +ink's +inkblot +inkblot's +inkblots +inked +inkier +inkiest +inkiness +inkiness's +inking +inkling +inkling's +inklings +inks +inkwell +inkwell's +inkwells +inky +inlaid +inland +inland's +inlay +inlay's +inlaying +inlays +inlet +inlet's +inlets +inline +inmate +inmate's +inmates +inmost +inn +inn's +innards +innards's +innate +innately +inner +innermost +inning +inning's +innings +innkeeper +innkeeper's +innkeepers +innocence +innocence's +innocent +innocent's +innocently +innocents +innocuous +innocuously +innovate +innovated +innovates +innovating +innovation +innovation's +innovations +innovative +innovator +innovator's +innovators +inns +innuendo +innuendo's +innuendoes +innuendos +innumerable +inoculate +inoculated +inoculates +inoculating +inoculation +inoculation's +inoculations +inoffensive +inoffensively +inoperable +inoperative +inopportune +inordinate +inordinately +inorganic +inpatient +inpatient's +inpatients +input +input's +inputs +inputted +inputting +inquest +inquest's +inquests +inquietude +inquietude's +inquire +inquired +inquirer +inquirer's +inquirers +inquires +inquiries +inquiring +inquiringly +inquiry +inquiry's +inquisition +inquisition's +inquisitions +inquisitive +inquisitively +inquisitiveness +inquisitiveness's +inquisitor +inquisitor's +inquisitors +inroad +inroad's +inroads +ins +insane +insanely +insaner +insanest +insanity +insanity's +insatiable +insatiably +inscribe +inscribed +inscribes +inscribing +inscription +inscription's +inscriptions +inscrutable +inscrutably +inseam +inseam's +inseams +insect +insect's +insecticide +insecticide's +insecticides +insectivore +insectivore's +insectivores +insectivorous +insects +insecure +insecurely +insecurities +insecurity +insecurity's +inseminate +inseminated +inseminates +inseminating +insemination +insemination's +insensate +insensibility +insensibility's +insensible +insensibly +insensitive +insensitively +insensitivity +insensitivity's +insentience +insentience's +insentient +inseparability +inseparability's +inseparable +inseparable's +inseparables +inseparably +insert +insert's +inserted +inserting +insertion +insertion's +insertions +inserts +inset +inset's +insets +insetted +insetting +inshore +inside +inside's +insider +insider's +insiders +insides +insidious +insidiously +insidiousness +insidiousness's +insight +insight's +insightful +insights +insigne +insigne's +insignes +insignia +insignia's +insignias +insignificance +insignificance's +insignificant +insignificantly +insincere +insincerely +insincerity +insincerity's +insinuate +insinuated +insinuates +insinuating +insinuation +insinuation's +insinuations +insipid +insist +insisted +insistence +insistence's +insistent +insistently +insisting +insists +insofar +insole +insole's +insolence +insolence's +insolent +insolently +insoles +insolubility +insolubility's +insoluble +insolvable +insolvency +insolvency's +insolvent +insolvent's +insolvents +insomnia +insomnia's +insomniac +insomniac's +insomniacs +insouciance +insouciance's +insouciant +inspect +inspected +inspecting +inspection +inspection's +inspections +inspector +inspector's +inspectors +inspects +inspiration +inspiration's +inspirational +inspirations +inspire +inspired +inspires +inspiring +instability +instability's +instal +install +installation +installation's +installations +installed +installing +installment +installment's +installments +installs +instalment +instalment's +instalments +instals +instance +instance's +instanced +instances +instancing +instant +instant's +instantaneous +instantaneously +instantly +instants +instead +instep +instep's +insteps +instigate +instigated +instigates +instigating +instigation +instigation's +instigator +instigator's +instigators +instil +instill +instilled +instilling +instills +instils +instinct +instinct's +instinctive +instinctively +instincts +institute +institute's +instituted +institutes +instituting +institution +institution's +institutional +institutionalize +institutionalized +institutionalizes +institutionalizing +institutions +instruct +instructed +instructing +instruction +instruction's +instructional +instructions +instructive +instructively +instructor +instructor's +instructors +instructs +instrument +instrument's +instrumental +instrumental's +instrumentalist +instrumentalist's +instrumentalists +instrumentality +instrumentality's +instrumentals +instrumentation +instrumentation's +instrumented +instrumenting +instruments +insubordinate +insubordination +insubordination's +insubstantial +insufferable +insufferably +insufficiency +insufficiency's +insufficient +insufficiently +insular +insularity +insularity's +insulate +insulated +insulates +insulating +insulation +insulation's +insulator +insulator's +insulators +insulin +insulin's +insult +insult's +insulted +insulting +insults +insuperable +insupportable +insurance +insurance's +insurances +insure +insured +insured's +insureds +insurer +insurer's +insurers +insures +insurgence +insurgence's +insurgences +insurgencies +insurgency +insurgency's +insurgent +insurgent's +insurgents +insuring +insurmountable +insurrection +insurrection's +insurrectionist +insurrectionist's +insurrectionists +insurrections +intact +intagli +intaglio +intaglio's +intaglios +intake +intake's +intakes +intangible +intangible's +intangibles +intangibly +integer +integer's +integers +integral +integral's +integrals +integrate +integrated +integrates +integrating +integration +integration's +integrator +integrity +integrity's +integument +integument's +integuments +intellect +intellect's +intellects +intellectual +intellectual's +intellectualism +intellectualize +intellectualized +intellectualizes +intellectualizing +intellectually +intellectuals +intelligence +intelligence's +intelligent +intelligently +intelligentsia +intelligentsia's +intelligibility +intelligibility's +intelligible +intelligibly +intemperance +intemperance's +intemperate +intend +intended +intended's +intendeds +intending +intends +intense +intensely +intenser +intensest +intensification +intensification's +intensified +intensifier +intensifier's +intensifiers +intensifies +intensify +intensifying +intensities +intensity +intensity's +intensive +intensive's +intensively +intensives +intent +intent's +intention +intention's +intentional +intentionally +intentions +intently +intentness +intentness's +intents +inter +interact +interacted +interacting +interaction +interaction's +interactions +interactive +interactively +interacts +interbred +interbreed +interbreeding +interbreeds +intercede +interceded +intercedes +interceding +intercept +intercept's +intercepted +intercepting +interception +interception's +interceptions +interceptor +interceptor's +interceptors +intercepts +intercession +intercession's +intercessions +intercessor +intercessor's +intercessors +interchange +interchange's +interchangeable +interchangeably +interchanged +interchanges +interchanging +intercollegiate +intercom +intercom's +intercoms +interconnect +interconnected +interconnecting +interconnection +interconnection's +interconnections +interconnects +intercontinental +intercourse +intercourse's +interdenominational +interdepartmental +interdependence +interdependence's +interdependent +interdict +interdict's +interdicted +interdicting +interdiction +interdiction's +interdicts +interdisciplinary +interest +interest's +interested +interesting +interestingly +interests +interface +interface's +interfaced +interfaces +interfacing +interfaith +interfere +interfered +interference +interference's +interferes +interfering +interferon +interferon's +intergalactic +interim +interim's +interior +interior's +interiors +interject +interjected +interjecting +interjection +interjection's +interjections +interjects +interlace +interlaced +interlaces +interlacing +interlard +interlarded +interlarding +interlards +interleave +interleaved +interleaves +interleaving +interleukin +interleukin's +interlink +interlinked +interlinking +interlinks +interlock +interlock's +interlocked +interlocking +interlocks +interlocutory +interloper +interloper's +interlopers +interlude +interlude's +interluded +interludes +interluding +intermarriage +intermarriage's +intermarriages +intermarried +intermarries +intermarry +intermarrying +intermediaries +intermediary +intermediary's +intermediate +intermediate's +intermediates +interment +interment's +interments +intermezzi +intermezzo +intermezzo's +intermezzos +interminable +interminably +intermingle +intermingled +intermingles +intermingling +intermission +intermission's +intermissions +intermittent +intermittently +intern +intern's +internal +internalize +internalized +internalizes +internalizing +internally +internals +international +international's +internationalism +internationalism's +internationalize +internationalized +internationalizes +internationalizing +internationally +internationals +interne +interne's +internecine +interned +internee +internee's +internees +internement +internes +interneship +interneships +internet +interning +internist +internist's +internists +internment +internment's +interns +internship +internship's +internships +interoffice +interpersonal +interplanetary +interplay +interplay's +interpolate +interpolated +interpolates +interpolating +interpolation +interpolation's +interpolations +interpose +interposed +interposes +interposing +interposition +interposition's +interpret +interpretation +interpretation's +interpretations +interpretative +interpreted +interpreter +interpreter's +interpreters +interpreting +interpretive +interprets +interracial +interred +interrelate +interrelated +interrelates +interrelating +interrelation +interrelation's +interrelations +interrelationship +interrelationship's +interrelationships +interring +interrogate +interrogated +interrogates +interrogating +interrogation +interrogation's +interrogations +interrogative +interrogative's +interrogatives +interrogator +interrogator's +interrogatories +interrogators +interrogatory +interrogatory's +interrupt +interrupt's +interrupted +interrupting +interruption +interruption's +interruptions +interrupts +inters +interscholastic +intersect +intersected +intersecting +intersection +intersection's +intersections +intersects +intersperse +interspersed +intersperses +interspersing +interstate +interstate's +interstates +interstellar +interstice +interstice's +interstices +intertwine +intertwined +intertwines +intertwining +interurban +interval +interval's +intervals +intervene +intervened +intervenes +intervening +intervention +intervention's +interventions +interview +interview's +interviewed +interviewee +interviewee's +interviewees +interviewer +interviewer's +interviewers +interviewing +interviews +interweave +interweaved +interweaves +interweaving +interwove +interwoven +intestate +intestinal +intestine +intestine's +intestines +intimacies +intimacy +intimacy's +intimate +intimate's +intimated +intimately +intimates +intimating +intimation +intimation's +intimations +intimidate +intimidated +intimidates +intimidating +intimidation +intimidation's +into +intolerable +intolerably +intolerance +intolerance's +intolerant +intonation +intonation's +intonations +intone +intoned +intones +intoning +intoxicant +intoxicant's +intoxicants +intoxicate +intoxicated +intoxicates +intoxicating +intoxication +intoxication's +intractability +intractability's +intractable +intramural +intransigence +intransigence's +intransigent +intransigent's +intransigents +intransitive +intransitive's +intransitively +intransitives +intravenous +intravenous's +intravenouses +intravenously +intrench +intrenched +intrenches +intrenching +intrenchment +intrenchment's +intrepid +intrepidly +intricacies +intricacy +intricacy's +intricate +intricately +intrigue +intrigue's +intrigued +intrigues +intriguing +intriguingly +intrinsic +intrinsically +intro's +introduce +introduced +introduces +introducing +introduction +introduction's +introductions +introductory +intros +introspection +introspection's +introspective +introversion +introversion's +introvert +introvert's +introverted +introverts +intrude +intruded +intruder +intruder's +intruders +intrudes +intruding +intrusion +intrusion's +intrusions +intrusive +intrust +intrusted +intrusting +intrusts +intuit +intuited +intuiting +intuition +intuition's +intuitions +intuitive +intuitively +intuits +inundate +inundated +inundates +inundating +inundation +inundation's +inundations +inure +inured +inures +inuring +invade +invaded +invader +invader's +invaders +invades +invading +invalid +invalid's +invalidate +invalidated +invalidates +invalidating +invalidation +invalidation's +invalided +invaliding +invalidity +invalidity's +invalids +invaluable +invariable +invariable's +invariables +invariably +invariant +invasion +invasion's +invasions +invasive +invective +invective's +inveigh +inveighed +inveighing +inveighs +inveigle +inveigled +inveigles +inveigling +invent +invented +inventing +invention +invention's +inventions +inventive +inventiveness +inventiveness's +inventor +inventor's +inventoried +inventories +inventors +inventory +inventory's +inventorying +invents +inverse +inverse's +inversely +inverses +inversion +inversion's +inversions +invert +invert's +invertebrate +invertebrate's +invertebrates +inverted +inverting +inverts +invest +invested +investigate +investigated +investigates +investigating +investigation +investigation's +investigations +investigative +investigator +investigator's +investigators +investing +investiture +investiture's +investitures +investment +investment's +investments +investor +investor's +investors +invests +inveterate +invidious +invidiously +invigorate +invigorated +invigorates +invigorating +invigoration +invigoration's +invincibility +invincibility's +invincible +invincibly +inviolability +inviolability's +inviolable +inviolate +invisibility +invisibility's +invisible +invisibly +invitation +invitation's +invitational +invitational's +invitationals +invitations +invite +invite's +invited +invites +inviting +invitingly +invocation +invocation's +invocations +invoice +invoice's +invoiced +invoices +invoicing +invoke +invoked +invokes +invoking +involuntarily +involuntary +involve +involved +involvement +involvement's +involvements +involves +involving +invulnerability +invulnerability's +invulnerable +invulnerably +inward +inwardly +inwards +iodine +iodine's +iodize +iodized +iodizes +iodizing +ion +ion's +ionization +ionization's +ionize +ionized +ionizer +ionizer's +ionizers +ionizes +ionizing +ionosphere +ionosphere's +ionospheres +ions +iota +iota's +iotas +ipecac +ipecac's +ipecacs +irascibility +irascibility's +irascible +irate +irately +irateness +irateness's +ire +ire's +iridescence +iridescence's +iridescent +iridium +iridium's +iris +iris's +irises +irk +irked +irking +irks +irksome +iron +iron's +ironclad +ironclad's +ironclads +ironed +ironic +ironical +ironically +ironies +ironing +ironing's +irons +ironware +ironware's +ironwork +ironwork's +irony +irony's +irradiate +irradiated +irradiates +irradiating +irradiation +irradiation's +irrational +irrational's +irrationality +irrationality's +irrationally +irrationals +irreconcilable +irrecoverable +irredeemable +irrefutable +irregardless +irregular +irregular's +irregularities +irregularity +irregularity's +irregularly +irregulars +irrelevance +irrelevance's +irrelevances +irrelevancies +irrelevancy +irrelevancy's +irrelevant +irrelevantly +irreligious +irremediable +irremediably +irreparable +irreparably +irreplaceable +irrepressible +irreproachable +irresistible +irresistibly +irresolute +irresolutely +irresolution +irresolution's +irrespective +irresponsibility +irresponsibility's +irresponsible +irresponsibly +irretrievable +irretrievably +irreverence +irreverence's +irreverent +irreverently +irreversible +irreversibly +irrevocable +irrevocably +irrigate +irrigated +irrigates +irrigating +irrigation +irrigation's +irritability +irritability's +irritable +irritably +irritant +irritant's +irritants +irritate +irritated +irritates +irritating +irritatingly +irritation +irritation's +irritations +irruption +irruption's +irruptions +is +isinglass +isinglass's +island +island's +islander +islander's +islanders +islands +isle +isle's +isles +islet +islet's +islets +ism +ism's +isms +isn't +isobar +isobar's +isobars +isolate +isolate's +isolated +isolates +isolating +isolation +isolation's +isolationism +isolationism's +isolationist +isolationist's +isolationists +isometric +isometrics +isometrics's +isomorphic +isosceles +isotope +isotope's +isotopes +isotopic +isotropic +issuance +issuance's +issue +issue's +issued +issues +issuing +isthmi +isthmus +isthmus's +isthmuses +it +it'd +it'll +it's +italic +italic's +italicize +italicized +italicizes +italicizing +italics +italics's +itch +itch's +itched +itches +itchier +itchiest +itchiness +itchiness's +itching +itchy +item +item's +itemization +itemization's +itemize +itemized +itemizes +itemizing +items +iterate +iterated +iterates +iterating +iteration +iteration's +iterations +iterative +iterator +iterators +itinerant +itinerant's +itinerants +itineraries +itinerary +itinerary's +its +itself +ivies +ivories +ivory +ivory's +ivy +ivy's +j +jab +jab's +jabbed +jabber +jabber's +jabbered +jabberer +jabberer's +jabberers +jabbering +jabbers +jabbing +jabot +jabot's +jabots +jabs +jack +jack's +jackal +jackal's +jackals +jackass +jackass's +jackasses +jackboot +jackboot's +jackboots +jackdaw +jackdaw's +jackdaws +jacked +jacket +jacket's +jackets +jackhammer +jackhammer's +jackhammers +jacking +jackknife +jackknife's +jackknifed +jackknifes +jackknifing +jackknives +jackpot +jackpot's +jackpots +jackrabbit +jackrabbit's +jackrabbits +jacks +jade +jade's +jaded +jades +jading +jag +jag's +jagged +jaggeder +jaggedest +jaggedly +jaggedness +jaggedness's +jags +jaguar +jaguar's +jaguars +jail +jail's +jailbreak +jailbreak's +jailbreaks +jailed +jailer +jailer's +jailers +jailing +jailor +jailor's +jailors +jails +jalapeño +jalapeño's +jalapeños +jalopies +jalopy +jalopy's +jalousie +jalousie's +jalousies +jam +jam's +jamb +jamb's +jamboree +jamboree's +jamborees +jambs +jammed +jamming +jams +jangle +jangle's +jangled +jangles +jangling +janitor +janitor's +janitorial +janitors +japan +japan's +japanned +japanning +japans +jape +jape's +japed +japes +japing +jar +jar's +jardinière +jardinière's +jardinières +jargon +jargon's +jarred +jarring +jars +jasmine +jasmine's +jasmines +jasper +jasper's +jaundice +jaundice's +jaundiced +jaundices +jaundicing +jaunt +jaunt's +jaunted +jauntier +jauntiest +jauntily +jauntiness +jauntiness's +jaunting +jaunts +jaunty +javelin +javelin's +javelins +jaw +jaw's +jawbone +jawbone's +jawboned +jawbones +jawboning +jawbreaker +jawbreaker's +jawbreakers +jawed +jawing +jaws +jay +jay's +jays +jaywalk +jaywalked +jaywalker +jaywalker's +jaywalkers +jaywalking +jaywalks +jazz +jazz's +jazzed +jazzes +jazzier +jazziest +jazzing +jazzy +jealous +jealousies +jealously +jealousy +jealousy's +jeans +jeans's +jeep +jeep's +jeeps +jeer +jeer's +jeered +jeering +jeeringly +jeers +jeez +jehad +jehad's +jehads +jejune +jell +jelled +jellied +jellies +jelling +jello +jello's +jells +jelly +jelly's +jellybean +jellybean's +jellybeans +jellyfish +jellyfish's +jellyfishes +jellying +jeopardize +jeopardized +jeopardizes +jeopardizing +jeopardy +jeopardy's +jeremiad +jeremiad's +jeremiads +jerk +jerk's +jerked +jerkier +jerkiest +jerkily +jerkin +jerkin's +jerking +jerkins +jerks +jerkwater +jerky +jerky's +jersey +jersey's +jerseys +jessamine +jessamine's +jessamines +jest +jest's +jested +jester +jester's +jesters +jesting +jests +jet +jet's +jets +jetsam +jetsam's +jetted +jetties +jetting +jettison +jettison's +jettisoned +jettisoning +jettisons +jetty +jetty's +jewel +jewel's +jeweled +jeweler +jeweler's +jewelers +jeweling +jewelled +jeweller +jeweller's +jewellers +jewelling +jewelries +jewelry +jewelry's +jewels +jib +jib's +jibbed +jibbing +jibe +jibe's +jibed +jibes +jibing +jibs +jiffies +jiffy +jiffy's +jig +jig's +jigged +jigger +jigger's +jiggered +jiggering +jiggers +jigging +jiggle +jiggle's +jiggled +jiggles +jiggling +jigs +jigsaw +jigsaw's +jigsawed +jigsawing +jigsawn +jigsaws +jihad +jihad's +jihads +jilt +jilt's +jilted +jilting +jilts +jimmied +jimmies +jimmy +jimmy's +jimmying +jingle +jingle's +jingled +jingles +jingling +jingoism +jingoism's +jingoist +jingoist's +jingoistic +jingoists +jinn +jinn's +jinni +jinni's +jinnis +jinns +jinricksha +jinricksha's +jinrickshas +jinrikisha +jinrikisha's +jinrikishas +jinx +jinx's +jinxed +jinxes +jinxing +jitney +jitney's +jitneys +jitterbug +jitterbug's +jitterbugged +jitterbugging +jitterbugs +jitterier +jitteriest +jitters +jitters's +jittery +jiujitsu +jiujitsu's +jive +jive's +jived +jives +jiving +job +job's +jobbed +jobber +jobber's +jobbers +jobbing +jobless +joblessness +joblessness's +jobs +jock +jock's +jockey +jockey's +jockeyed +jockeying +jockeys +jocks +jockstrap +jockstrap's +jockstraps +jocose +jocosely +jocosity +jocosity's +jocular +jocularity +jocularity's +jocularly +jocund +jocundity +jocundity's +jocundly +jodhpurs +jodhpurs's +jog +jog's +jogged +jogger +jogger's +joggers +jogging +jogging's +joggle +joggle's +joggled +joggles +joggling +jogs +john +john's +johns +join +join's +joined +joiner +joiner's +joiners +joining +joins +joint +joint's +jointed +jointing +jointly +joints +joist +joist's +joists +joke +joke's +joked +joker +joker's +jokers +jokes +joking +jokingly +jollied +jollier +jollies +jolliest +jolliness +jolliness's +jollity +jollity's +jolly +jolly's +jollying +jolt +jolt's +jolted +jolting +jolts +jonquil +jonquil's +jonquils +josh +josh's +joshed +joshes +joshing +jostle +jostle's +jostled +jostles +jostling +jot +jot's +jots +jotted +jotting +jotting's +jottings +joule +joule's +joules +jounce +jounce's +jounced +jounces +jouncing +journal +journal's +journalese +journalese's +journalism +journalism's +journalist +journalist's +journalistic +journalists +journals +journey +journey's +journeyed +journeying +journeyman +journeyman's +journeymen +journeys +joust +joust's +jousted +jousting +jousts +jovial +joviality +joviality's +jovially +jowl +jowl's +jowls +joy +joy's +joyed +joyful +joyfuller +joyfullest +joyfully +joyfulness +joyfulness's +joying +joyless +joyous +joyously +joyousness +joyousness's +joyridden +joyride +joyride's +joyrider +joyrider's +joyriders +joyrides +joyriding +joyriding's +joyrode +joys +joystick +joystick's +joysticks +jubilant +jubilantly +jubilation +jubilation's +jubilee +jubilee's +jubilees +judge +judge's +judged +judgement +judgement's +judgemental +judgements +judges +judgeship +judgeship's +judging +judgment +judgment's +judgmental +judgments +judicature +judicature's +judicial +judicially +judiciaries +judiciary +judiciary's +judicious +judiciously +judiciousness +judiciousness's +judo +judo's +jug +jug's +jugged +juggernaut +juggernaut's +juggernauts +jugging +juggle +juggle's +juggled +juggler +juggler's +jugglers +juggles +juggling +jugs +jugular +jugular's +jugulars +juice +juice's +juiced +juicer +juicer's +juicers +juices +juicier +juiciest +juiciness +juiciness's +juicing +juicy +jujitsu +jujitsu's +jujube +jujube's +jujubes +jujutsu +jujutsu's +jukebox +jukebox's +jukeboxes +julep +julep's +juleps +julienne +jumble +jumble's +jumbled +jumbles +jumbling +jumbo +jumbo's +jumbos +jump +jump's +jumped +jumper +jumper's +jumpers +jumpier +jumpiest +jumpiness +jumpiness's +jumping +jumps +jumpsuit +jumpsuit's +jumpsuits +jumpy +junco +junco's +juncoes +juncos +junction +junction's +junctions +juncture +juncture's +junctures +jungle +jungle's +jungles +junior +junior's +juniors +juniper +juniper's +junipers +junk +junk's +junked +junker +junker's +junkers +junket +junket's +junketed +junketing +junkets +junkie +junkie's +junkier +junkies +junkiest +junking +junks +junky +junky's +junkyard +junkyard's +junkyards +junta +junta's +juntas +juridical +juries +jurisdiction +jurisdiction's +jurisdictional +jurisprudence +jurisprudence's +jurist +jurist's +jurists +juror +juror's +jurors +jury +jury's +just +juster +justest +justice +justice's +justices +justifiable +justifiably +justification +justification's +justifications +justified +justifies +justify +justifying +justly +justness +justness's +jut +jut's +jute +jute's +juts +jutted +jutting +juvenile +juvenile's +juveniles +juxtapose +juxtaposed +juxtaposes +juxtaposing +juxtaposition +juxtaposition's +juxtapositions +k +kHz +kW +kabob +kabob's +kabobs +kaboom +kaftan +kaftan's +kaftans +kale +kale's +kaleidoscope +kaleidoscope's +kaleidoscopes +kaleidoscopic +kamikaze +kamikaze's +kamikazes +kangaroo +kangaroo's +kangaroos +kaolin +kaolin's +kapok +kapok's +kaput +karakul +karakul's +karaoke +karaoke's +karaokes +karat +karat's +karate +karate's +karats +karma +karma's +katydid +katydid's +katydids +kayak +kayak's +kayaked +kayaking +kayaks +kazoo +kazoo's +kazoos +kc +kebab +kebab's +kebabs +kebob +kebob's +kebobs +keel +keel's +keeled +keeling +keels +keen +keen's +keened +keener +keenest +keening +keenly +keenness +keenness's +keens +keep +keep's +keeper +keeper's +keepers +keeping +keeping's +keeps +keepsake +keepsake's +keepsakes +keg +keg's +kegs +kelp +kelp's +ken +ken's +kenned +kennel +kennel's +kenneled +kenneling +kennelled +kennelling +kennels +kenning +kens +kept +keratin +keratin's +kerchief +kerchief's +kerchiefs +kerchieves +kernel +kernel's +kernels +kerosene +kerosene's +kerosine +kerosine's +kestrel +kestrel's +kestrels +ketch +ketch's +ketches +ketchup +ketchup's +kettle +kettle's +kettledrum +kettledrum's +kettledrums +kettles +key +key's +keyboard +keyboard's +keyboarded +keyboarder +keyboarder's +keyboarders +keyboarding +keyboards +keyed +keyhole +keyhole's +keyholes +keying +keynote +keynote's +keynoted +keynotes +keynoting +keypunch +keypunch's +keypunched +keypunches +keypunching +keys +keystone +keystone's +keystones +keystroke +keystroke's +keystrokes +keyword +keyword's +keywords +khaki +khaki's +khakis +khan +khan's +khans +kibbutz +kibbutz's +kibbutzim +kibitz +kibitzed +kibitzer +kibitzer's +kibitzers +kibitzes +kibitzing +kibosh +kibosh's +kick +kick's +kickback +kickback's +kickbacks +kicked +kicker +kicker's +kickers +kickier +kickiest +kicking +kickoff +kickoff's +kickoffs +kicks +kickstand +kickstand's +kickstands +kicky +kid +kid's +kidded +kidder +kidder's +kidders +kiddie +kiddie's +kiddies +kidding +kiddo +kiddo's +kiddoes +kiddos +kiddy +kiddy's +kidnap +kidnaped +kidnaper +kidnaper's +kidnapers +kidnaping +kidnapped +kidnapper +kidnapper's +kidnappers +kidnapping +kidnapping's +kidnappings +kidnaps +kidney +kidney's +kidneys +kids +kielbasa +kielbasa's +kielbasas +kielbasy +kill +kill's +killdeer +killdeer's +killdeers +killed +killer +killer's +killers +killing +killing's +killings +killjoy +killjoy's +killjoys +kills +kiln +kiln's +kilned +kilning +kilns +kilo +kilo's +kilobyte +kilobyte's +kilobytes +kilocycle +kilocycle's +kilocycles +kilogram +kilogram's +kilograms +kilohertz +kilohertz's +kilohertzes +kilometer +kilometer's +kilometers +kilos +kiloton +kiloton's +kilotons +kilowatt +kilowatt's +kilowatts +kilt +kilt's +kilter +kilter's +kilts +kimono +kimono's +kimonos +kin +kin's +kind +kind's +kinda +kinder +kindergarten +kindergarten's +kindergartener +kindergartener's +kindergarteners +kindergartens +kindergärtner +kindergärtner's +kindergärtners +kindest +kindhearted +kindle +kindled +kindles +kindlier +kindliest +kindliness +kindliness's +kindling +kindling's +kindly +kindness +kindness's +kindnesses +kindred +kindred's +kinds +kinematic +kinematics +kinetic +kinfolk +kinfolk's +kinfolks +kinfolks's +king +king's +kingdom +kingdom's +kingdoms +kingfisher +kingfisher's +kingfishers +kinglier +kingliest +kingly +kingpin +kingpin's +kingpins +kings +kingship +kingship's +kink +kink's +kinked +kinkier +kinkiest +kinking +kinks +kinky +kinship +kinship's +kinsman +kinsman's +kinsmen +kinswoman +kinswoman's +kinswomen +kiosk +kiosk's +kiosks +kipper +kipper's +kippered +kippering +kippers +kismet +kismet's +kiss +kiss's +kissed +kisser +kisser's +kissers +kisses +kissing +kit +kit's +kitchen +kitchen's +kitchenette +kitchenette's +kitchenettes +kitchens +kitchenware +kitchenware's +kite +kite's +kited +kites +kith +kith's +kiting +kits +kitsch +kitsch's +kitschy +kitten +kitten's +kittenish +kittens +kitties +kitty +kitty's +kiwi +kiwi's +kiwis +kleptomania +kleptomania's +kleptomaniac +kleptomaniac's +kleptomaniacs +klutz +klutz's +klutzes +klutzier +klutziest +klutzy +knack +knack's +knacker +knacks +knackwurst +knackwurst's +knackwursts +knapsack +knapsack's +knapsacks +knave +knave's +knavery +knavery's +knaves +knavish +knead +kneaded +kneader +kneader's +kneaders +kneading +kneads +knee +knee's +kneecap +kneecap's +kneecapped +kneecapping +kneecaps +kneed +kneeing +kneel +kneeled +kneeling +kneels +knees +knell +knell's +knelled +knelling +knells +knelt +knew +knickers +knickers's +knickknack +knickknack's +knickknacks +knife +knife's +knifed +knifes +knifing +knight +knight's +knighted +knighthood +knighthood's +knighthoods +knighting +knightly +knights +knit +knit's +knits +knitted +knitter +knitter's +knitters +knitting +knitting's +knitwear +knitwear's +knives +knob +knob's +knobbier +knobbiest +knobby +knobs +knock +knock's +knocked +knocker +knocker's +knockers +knocking +knockout +knockout's +knockouts +knocks +knockwurst +knockwurst's +knockwursts +knoll +knoll's +knolls +knot +knot's +knothole +knothole's +knotholes +knots +knotted +knottier +knottiest +knotting +knotty +know +knowable +knowing +knowingly +knowings +knowledge +knowledge's +knowledgeable +knowledgeably +known +knows +knuckle +knuckle's +knuckled +knucklehead +knucklehead's +knuckleheads +knuckles +knuckling +koala +koala's +koalas +kohlrabi +kohlrabi's +kohlrabies +kook +kook's +kookaburra +kookaburra's +kookaburras +kookie +kookier +kookiest +kookiness +kookiness's +kooks +kooky +kopeck +kopeck's +kopecks +kopek +kopek's +kopeks +kosher +koshered +koshering +koshers +kowtow +kowtow's +kowtowed +kowtowing +kowtows +krone +krone's +kroner +kronor +krypton +krypton's +króna +króna's +krónur +ks +kudos +kudos's +kudzu +kudzu's +kudzus +kumquat +kumquat's +kumquats +l +la +la's +lab +lab's +label +label's +labeled +labeling +labelled +labelling +labels +labia +labial +labial's +labials +labium +labium's +labor +labor's +laboratories +laboratory +laboratory's +labored +laborer +laborer's +laborers +laboring +laborious +laboriously +labors +labs +laburnum +laburnum's +laburnums +labyrinth +labyrinth's +labyrinthine +labyrinths +lace +lace's +laced +lacerate +lacerated +lacerates +lacerating +laceration +laceration's +lacerations +laces +lachrymal +lachrymose +lacier +laciest +lacing +lack +lack's +lackadaisical +lackadaisically +lacked +lackey +lackey's +lackeys +lacking +lackluster +lacks +laconic +laconically +lacquer +lacquer's +lacquered +lacquering +lacquers +lacrimal +lacrosse +lacrosse's +lactate +lactated +lactates +lactating +lactation +lactation's +lactic +lactose +lactose's +lacuna +lacuna's +lacunae +lacunas +lacy +lad +lad's +ladder +ladder's +laddered +laddering +ladders +laddie +laddie's +laddies +lade +laded +laden +lades +ladies +lading +lading's +ladings +ladle +ladle's +ladled +ladles +ladling +lads +lady +lady's +ladybird +ladybird's +ladybirds +ladybug +ladybug's +ladybugs +ladyfinger +ladyfinger's +ladyfingers +ladylike +ladyship +ladyship's +lag +lag's +lager +lager's +lagers +laggard +laggard's +laggards +lagged +lagging +lagniappe +lagniappe's +lagniappes +lagoon +lagoon's +lagoons +lags +laid +lain +lair +lair's +lairs +laity +laity's +lake +lake's +lakes +lallygag +lallygagged +lallygagging +lallygags +lam +lam's +lama +lama's +lamas +lamaseries +lamasery +lamasery's +lamb +lamb's +lambast +lambaste +lambasted +lambastes +lambasting +lambasts +lambda +lambed +lambent +lambing +lambkin +lambkin's +lambkins +lambs +lambskin +lambskin's +lambskins +lame +lame's +lamebrain +lamebrain's +lamebrains +lamed +lamely +lameness +lameness's +lament +lament's +lamentable +lamentably +lamentation +lamentation's +lamentations +lamented +lamenting +laments +lamer +lames +lamest +laminate +laminate's +laminated +laminates +laminating +lamination +lamination's +laming +lammed +lamming +lamp +lamp's +lampblack +lampblack's +lampoon +lampoon's +lampooned +lampooning +lampoons +lamppost +lamppost's +lampposts +lamprey +lamprey's +lampreys +lamps +lampshade +lampshade's +lampshades +lams +lance +lance's +lanced +lancer +lancer's +lancers +lances +lancet +lancet's +lancets +lancing +land +land's +landed +lander +landfall +landfall's +landfalls +landfill +landfill's +landfills +landholder +landholder's +landholders +landing +landing's +landings +landladies +landlady +landlady's +landlocked +landlord +landlord's +landlords +landlubber +landlubber's +landlubbers +landmark +landmark's +landmarks +landmass +landmass's +landmasses +landowner +landowner's +landowners +lands +landscape +landscape's +landscaped +landscaper +landscaper's +landscapers +landscapes +landscaping +landslid +landslidden +landslide +landslide's +landslides +landsliding +landward +landwards +lane +lane's +lanes +language +language's +languages +languid +languidly +languish +languished +languishes +languishing +languor +languor's +languorous +languorously +languors +lank +lanker +lankest +lankier +lankiest +lankiness +lankiness's +lanky +lanolin +lanolin's +lantern +lantern's +lanterns +lanyard +lanyard's +lanyards +lap +lap's +lapel +lapel's +lapels +lapidaries +lapidary +lapidary's +lapped +lapping +laps +lapse +lapse's +lapsed +lapses +lapsing +laptop +laptop's +laptops +lapwing +lapwing's +lapwings +larboard +larboard's +larboards +larcenies +larcenous +larceny +larceny's +larch +larch's +larches +lard +lard's +larded +larder +larder's +larders +larding +lards +large +large's +largely +largeness +largeness's +larger +larges +largess +largess's +largesse +largesse's +largest +largo +largo's +largos +lariat +lariat's +lariats +lark +lark's +larked +larking +larks +larkspur +larkspur's +larkspurs +larva +larva's +larvae +larval +larvas +larynges +laryngitis +laryngitis's +larynx +larynx's +larynxes +lasagna +lasagna's +lasagnas +lasagne +lasagne's +lasagnes +lascivious +lasciviously +lasciviousness +lasciviousness's +laser +laser's +lasers +lash +lash's +lashed +lashes +lashing +lass +lass's +lasses +lassie +lassie's +lassies +lassitude +lassitude's +lasso +lasso's +lassoed +lassoes +lassoing +lassos +last +last's +lasted +lasting +lastingly +lastly +lasts +latch +latch's +latched +latches +latching +late +latecomer +latecomer's +latecomers +lately +latency +latency's +lateness +lateness's +latent +later +lateral +lateral's +lateraled +lateraling +lateralled +lateralling +laterally +laterals +latest +latest's +latex +latex's +lath +lath's +lathe +lathe's +lathed +lather +lather's +lathered +lathering +lathers +lathes +lathing +laths +latitude +latitude's +latitudes +latitudinal +latrine +latrine's +latrines +lats +latter +latter's +latterly +lattice +lattice's +latticed +lattices +latticework +latticework's +latticeworks +laud +laud's +laudable +laudably +laudanum +laudanum's +laudatory +lauded +lauding +lauds +laugh +laugh's +laughable +laughably +laughed +laughing +laughingly +laughingstock +laughingstock's +laughingstocks +laughs +laughter +laughter's +launch +launch's +launched +launcher +launcher's +launchers +launches +launching +launder +laundered +launderer +launderer's +launderers +laundering +launders +laundress +laundress's +laundresses +laundries +laundry +laundry's +laundryman +laundryman's +laundrymen +laureate +laureate's +laureates +laurel +laurel's +laurels +lava +lava's +lavatories +lavatory +lavatory's +lavender +lavender's +lavenders +lavish +lavished +lavisher +lavishes +lavishest +lavishing +lavishly +lavishness +lavishness's +law +law's +lawbreaker +lawbreaker's +lawbreakers +lawful +lawfully +lawfulness +lawfulness's +lawgiver +lawgiver's +lawgivers +lawless +lawlessly +lawlessness +lawlessness's +lawmaker +lawmaker's +lawmakers +lawn +lawn's +lawns +lawrencium +lawrencium's +laws +lawsuit +lawsuit's +lawsuits +lawyer +lawyer's +lawyers +lax +laxative +laxative's +laxatives +laxer +laxest +laxity +laxity's +laxly +laxness +laxness's +lay +lay's +layaway +layaway's +layer +layer's +layered +layering +layers +layette +layette's +layettes +laying +layman +layman's +laymen +layoff +layoff's +layoffs +layout +layout's +layouts +layover +layover's +layovers +laypeople +layperson +layperson's +laypersons +lays +laywoman +laywoman's +laywomen +laze +laze's +lazed +lazes +lazied +lazier +lazies +laziest +lazily +laziness +laziness's +lazing +lazy +lazybones +lazybones's +lazying +lea +lea's +leach +leached +leaches +leaching +lead +lead's +leaded +leaden +leader +leader's +leaders +leadership +leadership's +leading +leading's +leads +leaf +leaf's +leafed +leafier +leafiest +leafing +leafless +leaflet +leaflet's +leafleted +leafleting +leaflets +leafletted +leafletting +leafs +leafy +league +league's +leagued +leagues +leaguing +leak +leak's +leakage +leakage's +leakages +leaked +leakier +leakiest +leaking +leaks +leaky +lean +lean's +leaned +leaner +leanest +leaning +leaning's +leanings +leanness +leanness's +leans +leap +leap's +leaped +leapfrog +leapfrog's +leapfrogged +leapfrogging +leapfrogs +leaping +leaps +leapt +learn +learned +learner +learner's +learners +learning +learning's +learns +learnt +leas +lease +lease's +leased +leasehold +leasehold's +leaseholder +leaseholder's +leaseholders +leaseholds +leases +leash +leash's +leashed +leashes +leashing +leasing +least +least's +leastwise +leather +leather's +leatherneck +leatherneck's +leathernecks +leathers +leathery +leave +leave's +leaved +leaven +leaven's +leavened +leavening +leavening's +leavens +leaves +leaving +leavings +leavings's +lecher +lecher's +lecherous +lecherously +lechers +lechery +lechery's +lecithin +lecithin's +lectern +lectern's +lecterns +lecture +lecture's +lectured +lecturer +lecturer's +lecturers +lectures +lecturing +led +ledge +ledge's +ledger +ledger's +ledgers +ledges +lee +lee's +leech +leech's +leeched +leeches +leeching +leek +leek's +leeks +leer +leer's +leered +leerier +leeriest +leering +leers +leery +lees +leeward +leeward's +leewards +leeway +leeway's +left +left's +lefter +leftest +leftie +leftie's +lefties +leftism +leftism's +leftist +leftist's +leftists +leftmost +leftover +leftover's +leftovers +lefts +leftwards +lefty +lefty's +leg +leg's +legacies +legacy +legacy's +legal +legal's +legalese +legalese's +legalism +legalism's +legalisms +legalistic +legality +legality's +legalization +legalization's +legalize +legalized +legalizes +legalizing +legally +legals +legate +legate's +legatee +legatee's +legatees +legates +legation +legation's +legations +legato +legato's +legatos +legend +legend's +legendary +legends +legerdemain +legerdemain's +legged +leggier +leggiest +leggin +leggin's +legging +legging's +leggings +leggins +leggy +legibility +legibility's +legible +legibly +legion +legion's +legionnaire +legionnaire's +legionnaires +legions +legislate +legislated +legislates +legislating +legislation +legislation's +legislative +legislator +legislator's +legislators +legislature +legislature's +legislatures +legit +legitimacy +legitimacy's +legitimate +legitimated +legitimately +legitimates +legitimating +legitimize +legitimized +legitimizes +legitimizing +legless +legman +legman's +legmen +legroom +legroom's +legrooms +legs +legume +legume's +legumes +leguminous +legwork +legwork's +lei +lei's +leis +leisure +leisure's +leisurely +leitmotif +leitmotif's +leitmotifs +lemma +lemmas +lemme +lemming +lemming's +lemmings +lemon +lemon's +lemonade +lemonade's +lemons +lemony +lemur +lemur's +lemurs +lend +lender +lender's +lenders +lending +lends +length +length's +lengthen +lengthened +lengthening +lengthens +lengthier +lengthiest +lengthily +lengths +lengthways +lengthwise +lengthy +leniency +leniency's +lenient +leniently +lens +lens's +lenses +lent +lentil +lentil's +lentils +leonine +leopard +leopard's +leopards +leotard +leotard's +leotards +leper +leper's +lepers +leprechaun +leprechaun's +leprechauns +leprosy +leprosy's +leprous +lept +lesbian +lesbian's +lesbianism +lesbianism's +lesbians +lesion +lesion's +lesions +less +less's +lessee +lessee's +lessees +lessen +lessened +lessening +lessens +lesser +lesson +lesson's +lessons +lessor +lessor's +lessors +lest +let +let's +letdown +letdown's +letdowns +lethal +lethally +lethargic +lethargically +lethargy +lethargy's +lets +letter +letter's +letterbox +lettered +letterhead +letterhead's +letterheads +lettering +lettering's +letters +letting +lettuce +lettuce's +lettuces +letup +letup's +letups +leukemia +leukemia's +leukocyte +leukocyte's +leukocytes +levee +levee's +levees +level +level's +leveled +leveler +leveler's +levelers +levelheaded +levelheadedness +levelheadedness's +leveling +levelled +leveller's +levellers +levelling +levelness +levelness's +levels +lever +lever's +leverage +leverage's +leveraged +leverages +leveraging +levered +levering +levers +leviathan +leviathan's +leviathans +levied +levies +levitate +levitated +levitates +levitating +levitation +levitation's +levity +levity's +levy +levy's +levying +lewd +lewder +lewdest +lewdly +lewdness +lewdness's +lexica +lexical +lexicographer +lexicographer's +lexicographers +lexicography +lexicography's +lexicon +lexicon's +lexicons +liabilities +liability +liability's +liable +liaise +liaised +liaises +liaising +liaison +liaison's +liaisons +liar +liar's +liars +lib +lib's +libation +libation's +libations +libel +libel's +libeled +libeler +libeler's +libelers +libeling +libelled +libeller +libeller's +libellers +libelling +libellous +libelous +libels +liberal +liberal's +liberalism +liberalism's +liberality +liberality's +liberalization +liberalization's +liberalizations +liberalize +liberalized +liberalizes +liberalizing +liberally +liberals +liberate +liberated +liberates +liberating +liberation +liberation's +liberator +liberator's +liberators +libertarian +libertarian's +libertarians +liberties +libertine +libertine's +libertines +liberty +liberty's +libidinous +libido +libido's +libidos +librarian +librarian's +librarians +libraries +library +library's +libretti +librettist +librettist's +librettists +libretto +libretto's +librettos +lice +licence +licence's +licenced +licences +licencing +license +license's +licensed +licensee +licensee's +licensees +licenses +licensing +licentiate +licentiate's +licentiates +licentious +licentiously +licentiousness +licentiousness's +lichee +lichee's +lichees +lichen +lichen's +lichens +licit +lick +lick's +licked +licking +licking's +lickings +licks +licorice +licorice's +licorices +lid +lid's +lidded +lids +lie +lie's +lied +lief +liefer +liefest +liege +liege's +lieges +lien +lien's +liens +lies +lieu +lieu's +lieutenancy +lieutenancy's +lieutenant +lieutenant's +lieutenants +life +life's +lifeblood +lifeblood's +lifeboat +lifeboat's +lifeboats +lifeforms +lifeguard +lifeguard's +lifeguards +lifeless +lifelike +lifeline +lifeline's +lifelines +lifelong +lifer +lifer's +lifers +lifesaver +lifesaver's +lifesavers +lifesaving +lifesaving's +lifespan +lifespans +lifestyle +lifestyle's +lifestyles +lifetime +lifetime's +lifetimes +lifework +lifework's +lifeworks +lift +lift's +lifted +lifting +liftoff +liftoff's +liftoffs +lifts +ligament +ligament's +ligaments +ligature +ligature's +ligatured +ligatures +ligaturing +light +light's +lighted +lighten +lightened +lightening +lightens +lighter +lighter's +lighters +lightest +lightheaded +lighthearted +lightheartedly +lightheartedness +lightheartedness's +lighthouse +lighthouse's +lighthouses +lighting +lighting's +lightly +lightness +lightness's +lightning +lightning's +lightninged +lightnings +lights +lightweight +lightweight's +lightweights +lignite +lignite's +likable +likableness +likableness's +like +like's +likeable +likeableness +likeableness's +liked +likelier +likeliest +likelihood +likelihood's +likelihoods +likely +liken +likened +likeness +likeness's +likenesses +likening +likens +liker +likes +likest +likewise +liking +liking's +lilac +lilac's +lilacs +lilies +lilt +lilt's +lilted +lilting +lilts +lily +lily's +limb +limb's +limber +limbered +limbering +limbers +limbless +limbo +limbo's +limbos +limbs +lime +lime's +limeade +limeade's +limeades +limed +limelight +limelight's +limerick +limerick's +limericks +limes +limestone +limestone's +limier +limiest +liming +limit +limit's +limitation +limitation's +limitations +limited +limiting +limitings +limitless +limits +limn +limned +limning +limns +limo +limo's +limos +limousine +limousine's +limousines +limp +limp's +limped +limper +limpest +limpet +limpet's +limpets +limpid +limpidity +limpidity's +limpidly +limping +limply +limpness +limpness's +limps +limy +linage +linage's +linchpin +linchpin's +linchpins +linden +linden's +lindens +line +line's +lineage +lineage's +lineages +lineal +lineally +lineament +lineament's +lineaments +linear +linearly +linebacker +linebacker's +linebackers +lined +linefeed +lineman +lineman's +linemen +linen +linen's +linens +linens's +liner +liner's +liners +lines +linesman +linesman's +linesmen +lineup +lineup's +lineups +linger +lingered +lingerer +lingerer's +lingerers +lingerie +lingerie's +lingering +lingeringly +lingerings +lingers +lingo +lingo's +lingoes +lingos +lingual +linguist +linguist's +linguistic +linguistics +linguistics's +linguists +liniment +liniment's +liniments +lining +lining's +linings +link +link's +linkage +linkage's +linkages +linked +linker +linking +links +linkup +linkup's +linkups +linnet +linnet's +linnets +linoleum +linoleum's +linseed +linseed's +lint +lint's +lintel +lintel's +lintels +lion +lion's +lioness +lioness's +lionesses +lionhearted +lionize +lionized +lionizes +lionizing +lions +lip +lip's +lipid +lipid's +lipids +liposuction +liposuction's +lipread +lipreading +lipreading's +lipreads +lips +lipstick +lipstick's +lipsticked +lipsticking +lipsticks +liquefaction +liquefaction's +liquefied +liquefies +liquefy +liquefying +liqueur +liqueur's +liqueurs +liquid +liquid's +liquidate +liquidated +liquidates +liquidating +liquidation +liquidation's +liquidations +liquidator +liquidator's +liquidators +liquidity +liquidity's +liquidize +liquidized +liquidizes +liquidizing +liquids +liquified +liquifies +liquify +liquifying +liquor +liquor's +liquored +liquoring +liquors +lira +lira's +liras +lire +lisle +lisle's +lisp +lisp's +lisped +lisping +lisps +lissom +lissome +list +list's +listed +listen +listen's +listened +listener +listener's +listeners +listening +listens +listing +listing's +listings +listless +listlessly +listlessness +listlessness's +lists +lit +litanies +litany +litany's +litchi +litchi's +litchis +lite +liter +liter's +literacy +literacy's +literal +literal's +literally +literals +literary +literate +literate's +literates +literati +literati's +literature +literature's +liters +lithe +lither +lithest +lithium +lithium's +lithograph +lithograph's +lithographed +lithographer +lithographer's +lithographers +lithographic +lithographing +lithographs +lithography +lithography's +lithosphere +lithosphere's +lithospheres +litigant +litigant's +litigants +litigate +litigated +litigates +litigating +litigation +litigation's +litigious +litigiousness +litigiousness's +litmus +litmus's +litter +litter's +litterbug +litterbug's +litterbugs +littered +littering +litters +little +little's +littleness +littleness's +littler +littlest +littoral +littoral's +littorals +liturgical +liturgies +liturgy +liturgy's +livability +livability's +livable +live +liveable +lived +livelier +liveliest +livelihood +livelihood's +livelihoods +liveliness +liveliness's +livelong +livelongs +lively +liven +livened +livening +livens +liver +liver's +liveried +liveries +livers +liverwurst +liverwurst's +livery +livery's +lives +livest +livestock +livestock's +livid +lividly +living +living's +livings +lizard +lizard's +lizards +llama +llama's +llamas +llano +llano's +llanos +lo +load +load's +loadable +loaded +loader +loader's +loaders +loading +loads +loadstar +loadstar's +loadstars +loadstone +loadstone's +loadstones +loaf +loaf's +loafed +loafer +loafer's +loafers +loafing +loafs +loam +loam's +loamier +loamiest +loamy +loan +loan's +loaned +loaner +loaner's +loaners +loaning +loans +loanword +loanword's +loanwords +loath +loathe +loathed +loathes +loathing +loathing's +loathings +loathsome +loathsomeness +loathsomeness's +loaves +lob +lob's +lobbed +lobbied +lobbies +lobbing +lobby +lobby's +lobbying +lobbyist +lobbyist's +lobbyists +lobe +lobe's +lobed +lobes +lobotomies +lobotomy +lobotomy's +lobs +lobster +lobster's +lobsters +local +local's +locale +locale's +locales +localities +locality +locality's +localization +localization's +localize +localized +localizes +localizing +locally +locals +locate +located +locates +locating +location +location's +locations +loci +lock +lock's +lockable +locked +locker +locker's +lockers +locket +locket's +lockets +locking +lockjaw +lockjaw's +lockout +lockout's +lockouts +locks +locksmith +locksmith's +locksmiths +lockstep +lockstep's +lockup +lockup's +lockups +loco +locomotion +locomotion's +locomotive +locomotive's +locomotives +locoweed +locoweed's +locoweeds +locus +locus's +locust +locust's +locusts +locution +locution's +locutions +lode +lode's +lodes +lodestar +lodestar's +lodestars +lodestone +lodestone's +lodestones +lodge +lodge's +lodged +lodger +lodger's +lodgers +lodges +lodging +lodging's +lodgings +lodgings's +loft +loft's +lofted +loftier +loftiest +loftily +loftiness +loftiness's +lofting +lofts +lofty +log +log's +loganberries +loganberry +loganberry's +logarithm +logarithm's +logarithmic +logarithms +logbook +logbook's +logbooks +loge +loge's +loges +logged +logger +logger's +loggerhead +loggerhead's +loggerheads +loggers +logging +logging's +logic +logic's +logical +logically +logician +logician's +logicians +logistic +logistical +logistically +logistics +logistics's +logjam +logjam's +logjams +logo +logo's +logos +logotype +logotype's +logotypes +logrolling +logrolling's +logs +loin +loin's +loincloth +loincloth's +loincloths +loins +loiter +loitered +loiterer +loiterer's +loiterers +loitering +loiters +loll +lolled +lolling +lollipop +lollipop's +lollipops +lolls +lollygag +lollygagged +lollygagging +lollygags +lollypop +lollypop's +lollypops +lone +lonelier +loneliest +loneliness +loneliness's +lonely +loner +loner's +loners +lonesome +long +long's +longboat +longboat's +longboats +longed +longer +longest +longevity +longevity's +longhair +longhair's +longhairs +longhand +longhand's +longhorn +longhorn's +longhorns +longing +longing's +longingly +longings +longish +longitude +longitude's +longitudes +longitudinal +longitudinally +longs +longshoreman +longshoreman's +longshoremen +longtime +loofah +look +look's +lookalike +lookalike's +lookalikes +looked +looking +lookout +lookout's +lookouts +looks +loom +loom's +loomed +looming +looms +loon +loon's +looney +looney's +looneyier +looneyies +looneys +loonier +loonies +looniest +loons +loony +loony's +loop +loop's +looped +loophole +loophole's +loopholes +loopier +loopiest +looping +loops +loopy +loose +loosed +loosely +loosen +loosened +looseness +looseness's +loosening +loosens +looser +looses +loosest +loosing +loot +loot's +looted +looter +looter's +looters +looting +loots +lop +lope +lope's +loped +lopes +loping +lopped +lopping +lops +lopsided +lopsidedly +lopsidedness +lopsidedness's +loquacious +loquacity +loquacity's +lord +lord's +lorded +lording +lordlier +lordliest +lordly +lords +lordship +lordship's +lordships +lore +lore's +lorgnette +lorgnette's +lorgnettes +lorn +lorries +lorry +lorry's +lose +loser +loser's +losers +loses +losing +loss +loss's +losses +lost +lot +lot's +loth +lotion +lotion's +lotions +lots +lotteries +lottery +lottery's +lotto +lotto's +lotus +lotus's +lotuses +loud +louder +loudest +loudly +loudmouth +loudmouth's +loudmouthed +loudmouths +loudness +loudness's +loudspeaker +loudspeaker's +loudspeakers +lounge +lounge's +lounged +lounges +lounging +louse +louse's +louses +lousier +lousiest +lousiness +lousiness's +lousy +lout +lout's +loutish +louts +louver +louver's +louvered +louvers +louvred +lovable +love +love's +loveable +lovebird +lovebird's +lovebirds +loved +loveless +lovelier +lovelies +loveliest +loveliness +loveliness's +lovelorn +lovely +lovely's +lovemaking +lovemaking's +lover +lover's +lovers +loves +lovesick +loving +lovingly +low +low's +lowbrow +lowbrow's +lowbrows +lowdown +lowdown's +lowed +lower +lowercase +lowercase's +lowered +lowering +lowers +lowest +lowing +lowish +lowland +lowland's +lowlands +lowlier +lowliest +lowliness +lowliness's +lowly +lowness +lowness's +lows +lox +lox's +loxes +loyal +loyaler +loyalest +loyalist +loyalist's +loyalists +loyaller +loyallest +loyally +loyalties +loyalty +loyalty's +lozenge +lozenge's +lozenges +ls +luau +luau's +luaus +lubber +lubber's +lubbers +lube +lube's +lubed +lubes +lubing +lubricant +lubricant's +lubricants +lubricate +lubricated +lubricates +lubricating +lubrication +lubrication's +lubricator +lubricator's +lubricators +lucid +lucidity +lucidity's +lucidly +lucidness +lucidness's +luck +luck's +lucked +luckier +luckiest +luckily +luckiness +luckiness's +lucking +luckless +lucks +lucky +lucrative +lucratively +lucre +lucre's +ludicrous +ludicrously +ludicrousness +ludicrousness's +lug +lug's +luggage +luggage's +lugged +lugging +lugs +lugubrious +lugubriously +lugubriousness +lugubriousness's +lukewarm +lull +lull's +lullabies +lullaby +lullaby's +lulled +lulling +lulls +lumbago +lumbago's +lumbar +lumber +lumber's +lumbered +lumbering +lumbering's +lumberjack +lumberjack's +lumberjacks +lumberman +lumberman's +lumbermen +lumbers +lumberyard +lumberyard's +lumberyards +luminaries +luminary +luminary's +luminescence +luminescence's +luminescent +luminosity +luminosity's +luminous +luminously +lummox +lummox's +lummoxes +lump +lump's +lumped +lumpier +lumpiest +lumpiness +lumpiness's +lumping +lumpish +lumps +lumpy +lunacies +lunacy +lunacy's +lunar +lunatic +lunatic's +lunatics +lunch +lunch's +lunchbox +lunched +luncheon +luncheon's +luncheonette +luncheonette's +luncheonettes +luncheons +lunches +lunching +lunchroom +lunchroom's +lunchrooms +lunchtime +lunchtime's +lunchtimes +lung +lung's +lunge +lunge's +lunged +lunges +lunging +lungs +lupin +lupin's +lupine +lupine's +lupines +lupins +lupus +lupus's +lurch +lurch's +lurched +lurches +lurching +lure +lure's +lured +lures +lurid +luridly +luridness +luridness's +luring +lurk +lurked +lurking +lurks +luscious +lusciously +lusciousness +lusciousness's +lush +lush's +lusher +lushes +lushest +lushness +lushness's +lust +lust's +lusted +luster +luster's +lustful +lustfully +lustier +lustiest +lustily +lustiness +lustiness's +lusting +lustre +lustre's +lustrous +lusts +lusty +lute +lute's +lutes +luxuriance +luxuriance's +luxuriant +luxuriantly +luxuriate +luxuriated +luxuriates +luxuriating +luxuries +luxurious +luxuriously +luxuriousness +luxuriousness's +luxury +luxury's +lyceum +lyceum's +lyceums +lychee +lychee's +lychees +lye +lye's +lying +lying's +lymph +lymph's +lymphatic +lymphatic's +lymphatics +lymphoma +lymphoma's +lymphomas +lymphomata +lynch +lynched +lynches +lynching +lynching's +lynchings +lynchpin +lynchpin's +lynchpins +lynx +lynx's +lynxes +lyre +lyre's +lyres +lyric +lyric's +lyrical +lyrically +lyricist +lyricist's +lyricists +lyrics +m +ma +ma'am +ma's +macabre +macadam +macadam's +macaroni +macaroni's +macaronies +macaronis +macaroon +macaroon's +macaroons +macaw +macaw's +macaws +mace +mace's +maced +macerate +macerated +macerates +macerating +maceration +maceration's +maces +machete +machete's +machetes +machination +machination's +machinations +machine +machine's +machined +machinery +machinery's +machines +machining +machinist +machinist's +machinists +machismo +machismo's +macho +macho's +macing +macintosh +macintosh's +macintoshes +mackerel +mackerel's +mackerels +mackinaw +mackinaw's +mackinaws +mackintosh +mackintosh's +mackintoshes +macramé +macramé's +macro +macro's +macrobiotic +macrobiotics +macrobiotics's +macrocosm +macrocosm's +macrocosms +macron +macron's +macrons +macros +macroscopic +mad +mad's +madam +madam's +madame +madame's +madams +madcap +madcap's +madcaps +madden +maddened +maddening +maddeningly +maddens +madder +madder's +madders +maddest +made +mademoiselle +mademoiselle's +mademoiselles +madhouse +madhouse's +madhouses +madly +madman +madman's +madmen +madness +madness's +madras +madras's +madrases +madrigal +madrigal's +madrigals +mads +madwoman +madwoman's +madwomen +maelstrom +maelstrom's +maelstroms +maestri +maestro +maestro's +maestros +magazine +magazine's +magazines +magenta +magenta's +maggot +maggot's +maggots +magic +magic's +magical +magically +magician +magician's +magicians +magisterial +magisterially +magistrate +magistrate's +magistrates +magma +magma's +magnanimity +magnanimity's +magnanimous +magnanimously +magnate +magnate's +magnates +magnesia +magnesia's +magnesium +magnesium's +magnet +magnet's +magnetic +magnetically +magnetism +magnetism's +magnetization +magnetization's +magnetize +magnetized +magnetizes +magnetizing +magneto +magneto's +magnetos +magnetosphere +magnets +magnification +magnification's +magnifications +magnificence +magnificence's +magnificent +magnificently +magnified +magnifier +magnifier's +magnifiers +magnifies +magnify +magnifying +magnitude +magnitude's +magnitudes +magnolia +magnolia's +magnolias +magnum +magnum's +magnums +magpie +magpie's +magpies +maharaja +maharaja's +maharajah +maharajah's +maharajahs +maharajas +maharanee +maharanee's +maharanees +maharani +maharani's +maharanis +maharishi +maharishi's +maharishis +mahatma +mahatma's +mahatmas +mahjong +mahjong's +mahoganies +mahogany +mahogany's +maid +maid's +maiden +maiden's +maidenhair +maidenhair's +maidenhead +maidenhead's +maidenheads +maidenhood +maidenhood's +maidenly +maidens +maids +maidservant +maidservant's +maidservants +mail +mail's +mailbox +mailbox's +mailboxes +mailed +mailer +mailer's +mailers +mailing +mailing's +mailings +mailman +mailman's +mailmen +mails +maim +maimed +maiming +maims +main +main's +mainframe +mainframe's +mainframes +mainland +mainland's +mainlands +mainline +mainline's +mainlined +mainlines +mainlining +mainly +mainmast +mainmast's +mainmasts +mains +mainsail +mainsail's +mainsails +mainspring +mainspring's +mainsprings +mainstay +mainstay's +mainstays +mainstream +mainstream's +mainstreamed +mainstreaming +mainstreams +maintain +maintainability +maintainable +maintained +maintainer +maintainers +maintaining +maintains +maintenance +maintenance's +maize +maize's +maizes +majestic +majestically +majesties +majesty +majesty's +major +major's +majored +majorette +majorette's +majorettes +majoring +majorities +majority +majority's +majorly +majors +make +make's +maker +maker's +makers +makes +makeshift +makeshift's +makeshifts +makeup +makeup's +makeups +making +making's +makings +maladies +maladjusted +maladjustment +maladjustment's +maladroit +malady +malady's +malaise +malaise's +malapropism +malapropism's +malapropisms +malaria +malaria's +malarial +malarkey +malarkey's +malcontent +malcontent's +malcontents +male +male's +malediction +malediction's +maledictions +malefactor +malefactor's +malefactors +maleness +maleness's +males +malevolence +malevolence's +malevolent +malevolently +malfeasance +malfeasance's +malformation +malformation's +malformations +malformed +malfunction +malfunction's +malfunctioned +malfunctioning +malfunctions +malice +malice's +malicious +maliciously +malign +malignancies +malignancy +malignancy's +malignant +malignantly +maligned +maligning +malignity +malignity's +maligns +malinger +malingered +malingerer +malingerer's +malingerers +malingering +malingers +mall +mall's +mallard +mallard's +mallards +malleability +malleability's +malleable +mallet +mallet's +mallets +mallow +mallow's +mallows +malls +malnourished +malnutrition +malnutrition's +malodorous +malpractice +malpractice's +malpractices +malt +malt's +malted +malted's +malteds +malting +maltreat +maltreated +maltreating +maltreatment +maltreatment's +maltreats +malts +mama +mama's +mamas +mambo +mambo's +mamboed +mamboing +mambos +mamma +mamma's +mammal +mammal's +mammalian +mammalian's +mammalians +mammals +mammary +mammas +mammogram +mammogram's +mammograms +mammography +mammography's +mammon +mammon's +mammoth +mammoth's +mammoths +man +man's +manacle +manacle's +manacled +manacles +manacling +manage +manageability +manageability's +manageable +managed +management +management's +manager +manager's +managerial +managers +manages +managing +manatee +manatee's +manatees +mandarin +mandarin's +mandarins +mandate +mandate's +mandated +mandates +mandating +mandatory +mandible +mandible's +mandibles +mandolin +mandolin's +mandolins +mandrake +mandrake's +mandrakes +mandrill +mandrill's +mandrills +mane +mane's +manes +maneuver +maneuver's +maneuverability +maneuverability's +maneuverable +maneuvered +maneuvering +maneuvers +manful +manfully +manganese +manganese's +mange +mange's +manger +manger's +mangers +mangier +mangiest +mangle +mangle's +mangled +mangles +mangling +mango +mango's +mangoes +mangos +mangrove +mangrove's +mangroves +mangy +manhandle +manhandled +manhandles +manhandling +manhole +manhole's +manholes +manhood +manhood's +manhunt +manhunt's +manhunts +mania +mania's +maniac +maniac's +maniacal +maniacs +manias +manic +manic's +manics +manicure +manicure's +manicured +manicures +manicuring +manicurist +manicurist's +manicurists +manifest +manifest's +manifestation +manifestation's +manifestations +manifested +manifesting +manifestly +manifesto +manifesto's +manifestoes +manifestos +manifests +manifold +manifold's +manifolded +manifolding +manifolds +manikin +manikin's +manikins +manipulate +manipulated +manipulates +manipulating +manipulation +manipulation's +manipulations +manipulative +manipulator +manipulator's +manipulators +mankind +mankind's +manlier +manliest +manliness +manliness's +manly +manna +manna's +manned +mannequin +mannequin's +mannequins +manner +manner's +mannered +mannerism +mannerism's +mannerisms +mannerly +manners +mannikin +mannikin's +mannikins +manning +mannish +mannishly +mannishness +mannishness's +manor +manor's +manorial +manors +manpower +manpower's +manqué +mans +mansard +mansard's +mansards +manse +manse's +manservant +manservant's +manses +mansion +mansion's +mansions +manslaughter +manslaughter's +mantel +mantel's +mantelpiece +mantelpiece's +mantelpieces +mantels +mantes +mantilla +mantilla's +mantillas +mantis +mantis's +mantises +mantissa +mantle +mantle's +mantled +mantlepiece +mantlepieces +mantles +mantling +mantra +mantra's +mantras +manual +manual's +manually +manuals +manufacture +manufacture's +manufactured +manufacturer +manufacturer's +manufacturers +manufactures +manufacturing +manufacturing's +manumit +manumits +manumitted +manumitting +manure +manure's +manured +manures +manuring +manuscript +manuscript's +manuscripts +many +many's +manège +manège's +map +map's +maple +maple's +maples +mapped +mapper +mapping +mappings +maps +mar +marabou +marabou's +marabous +maraca +maraca's +maracas +marathon +marathon's +marathoner +marathoner's +marathoners +marathons +maraud +marauded +marauder +marauder's +marauders +marauding +marauds +marble +marble's +marbled +marbles +marbling +marbling's +march +march's +marched +marcher +marcher's +marchers +marches +marching +marchioness +marchioness's +marchionesses +mare +mare's +mares +margarine +margarine's +margarita +margarita's +margaritas +margin +margin's +marginal +marginalia +marginalia's +marginally +margins +maria +maria's +mariachi +mariachi's +mariachis +marigold +marigold's +marigolds +marihuana +marihuana's +marijuana +marijuana's +marimba +marimba's +marimbas +marina +marina's +marinade +marinade's +marinaded +marinades +marinading +marinas +marinate +marinated +marinates +marinating +marine +marine's +mariner +mariner's +mariners +marines +marionette +marionette's +marionettes +marital +maritime +marjoram +marjoram's +mark +mark's +markdown +markdown's +markdowns +marked +markedly +marker +marker's +markers +market +market's +marketability +marketability's +marketable +marketed +marketer +marketer's +marketers +marketing +marketing's +marketplace +marketplace's +marketplaces +markets +marking +marking's +markings +marks +marksman +marksman's +marksmanship +marksmanship's +marksmen +markup +markup's +markups +marlin +marlin's +marlins +marmalade +marmalade's +marmoset +marmoset's +marmosets +marmot +marmot's +marmots +maroon +maroon's +marooned +marooning +maroons +marquee +marquee's +marquees +marquess +marquess's +marquesses +marquetry +marquetry's +marquis +marquis's +marquise +marquise's +marquises +marred +marriage +marriage's +marriageable +marriages +married +married's +marrieds +marries +marring +marrow +marrow's +marrows +marry +marrying +mars +marsh +marsh's +marshal +marshal's +marshaled +marshaling +marshalled +marshalling +marshals +marshes +marshier +marshiest +marshmallow +marshmallow's +marshmallows +marshy +marsupial +marsupial's +marsupials +mart +mart's +marten +marten's +martens +martial +martin +martin's +martinet +martinet's +martinets +martini +martini's +martinis +martins +marts +martyr +martyr's +martyrdom +martyrdom's +martyred +martyring +martyrs +marvel +marvel's +marveled +marveling +marvelled +marvelling +marvellously +marvelous +marvelously +marvels +marzipan +marzipan's +mas +mascara +mascara's +mascaraed +mascaraing +mascaras +mascot +mascot's +mascots +masculine +masculine's +masculines +masculinity +masculinity's +mash +mash's +mashed +masher +masher's +mashers +mashes +mashing +mask +mask's +masked +masking +masks +masochism +masochism's +masochist +masochist's +masochistic +masochists +mason +mason's +masonic +masonry +masonry's +masons +masque +masque's +masquerade +masquerade's +masqueraded +masquerader +masquerader's +masqueraders +masquerades +masquerading +masques +mass +mass's +massacre +massacre's +massacred +massacres +massacring +massage +massage's +massaged +massages +massaging +massed +masses +masseur +masseur's +masseurs +masseuse +masseuse's +masseuses +massing +massive +massively +massiveness +massiveness's +mast +mast's +mastectomies +mastectomy +mastectomy's +master +master's +mastered +masterful +masterfully +mastering +masterly +mastermind +mastermind's +masterminded +masterminding +masterminds +masterpiece +masterpiece's +masterpieces +masters +masterstroke +masterstroke's +masterstrokes +masterwork +masterwork's +masterworks +mastery +mastery's +masthead +masthead's +mastheads +masticate +masticated +masticates +masticating +mastication +mastication's +mastiff +mastiff's +mastiffs +mastodon +mastodon's +mastodons +mastoid +mastoid's +mastoids +masts +masturbate +masturbated +masturbates +masturbating +masturbation +masturbation's +mat +mat's +matador +matador's +matadors +match +match's +matchbook +matchbook's +matchbooks +matchbox +matchbox's +matchboxes +matched +matches +matching +matchless +matchmaker +matchmaker's +matchmakers +matchmaking +matchmaking's +matchstick +matchstick's +matchsticks +mate +mate's +mated +material +material's +materialism +materialism's +materialist +materialist's +materialistic +materialistically +materialists +materialization +materialization's +materialize +materialized +materializes +materializing +materially +materials +maternal +maternally +maternity +maternity's +mates +math +math's +mathematical +mathematically +mathematician +mathematician's +mathematicians +mathematics +mathematics's +mating +matins +matins's +matinée +matinée's +matinées +matriarch +matriarch's +matriarchal +matriarchies +matriarchs +matriarchy +matriarchy's +matrices +matricide +matricide's +matricides +matriculate +matriculated +matriculates +matriculating +matriculation +matriculation's +matrimonial +matrimony +matrimony's +matrix +matrix's +matrixes +matron +matron's +matronly +matrons +mats +matt +matte +matte's +matted +matter +matter's +mattered +mattering +matters +mattes +matting +matting's +mattock +mattock's +mattocks +mattress +mattress's +mattresses +matts +maturation +maturation's +mature +matured +maturely +maturer +matures +maturest +maturing +maturities +maturity +maturity's +matzo +matzo's +matzoh +matzoh's +matzohs +matzos +matzot +matzoth +matériel +matériel's +maudlin +maul +maul's +mauled +mauling +mauls +maunder +maundered +maundering +maunders +mausolea +mausoleum +mausoleum's +mausoleums +mauve +mauve's +maven +maven's +mavens +maverick +maverick's +mavericks +mavin +mavin's +mavins +maw +maw's +mawkish +mawkishly +maws +max's +maxed +maxes +maxilla +maxilla's +maxillae +maxillary +maxillas +maxim +maxim's +maxima +maximal +maximally +maximization +maximization's +maximize +maximized +maximizes +maximizing +maxims +maximum +maximum's +maximums +maxing +may +may's +maybe +maybe's +maybes +mayday +mayday's +maydays +mayflies +mayflower +mayflower's +mayflowers +mayfly +mayfly's +mayhem +mayhem's +mayo +mayo's +mayonnaise +mayonnaise's +mayor +mayor's +mayoral +mayoralty +mayoralty's +mayors +maypole +maypole's +maypoles +maze +maze's +mazes +mazourka +mazourka's +mazourkas +mazurka +mazurka's +mazurkas +me +mead +mead's +meadow +meadow's +meadowlark +meadowlark's +meadowlarks +meadows +meager +meagerly +meagerness +meagerness's +meal +meal's +mealier +mealiest +meals +mealtime +mealtime's +mealtimes +mealy +mean +mean's +meander +meander's +meandered +meandering +meanders +meaner +meanest +meaning +meaning's +meaningful +meaningfully +meaningless +meanings +meanly +meanness +meanness's +means +meant +meantime +meantime's +meanwhile +meanwhile's +measles +measles's +measlier +measliest +measly +measurable +measurably +measure +measure's +measured +measureless +measurement +measurement's +measurements +measures +measuring +meat +meat's +meatball +meatball's +meatballs +meatier +meatiest +meatloaf +meatloaf's +meatloaves +meats +meaty +mecca +mecca's +meccas +mechanic +mechanic's +mechanical +mechanically +mechanics +mechanics's +mechanism +mechanism's +mechanisms +mechanistic +mechanization +mechanization's +mechanize +mechanized +mechanizes +mechanizing +medal +medal's +medalist +medalist's +medalists +medallion +medallion's +medallions +medals +meddle +meddled +meddler +meddler's +meddlers +meddles +meddlesome +meddling +media +media's +mediaeval +medial +median +median's +medians +medias +mediate +mediated +mediates +mediating +mediation +mediation's +mediator +mediator's +mediators +medic +medic's +medical +medical's +medically +medicals +medicate +medicated +medicates +medicating +medication +medication's +medications +medicinal +medicinally +medicine +medicine's +medicines +medics +medieval +mediocre +mediocrities +mediocrity +mediocrity's +meditate +meditated +meditates +meditating +meditation +meditation's +meditations +meditative +meditatively +medium +medium's +mediums +medley +medley's +medleys +medulla +medulla's +medullae +medullas +meek +meeker +meekest +meekly +meekness +meekness's +meet +meet's +meeting +meeting's +meetinghouse +meetinghouse's +meetinghouses +meetings +meets +meg +megabyte +megabyte's +megabytes +megacycle +megacycle's +megacycles +megahertz +megahertz's +megahertzes +megalith +megalith's +megaliths +megalomania +megalomania's +megalomaniac +megalomaniac's +megalomaniacs +megalopolis +megalopolis's +megalopolises +megaphone +megaphone's +megaphoned +megaphones +megaphoning +megapixel +megapixel's +megapixels +megaton +megaton's +megatons +megs +melancholia +melancholia's +melancholic +melancholics +melancholy +melancholy's +melange +melange's +melanges +melanin +melanin's +melanoma +melanoma's +melanomas +melanomata +meld +meld's +melded +melding +melds +mellifluous +mellifluously +mellow +mellowed +mellower +mellowest +mellowing +mellowness +mellowness's +mellows +melodic +melodically +melodies +melodious +melodiously +melodiousness +melodiousness's +melodrama +melodrama's +melodramas +melodramatic +melodramatically +melody +melody's +melon +melon's +melons +melt +melt's +meltdown +meltdown's +meltdowns +melted +melting +melts +member +member's +members +membership +membership's +memberships +membrane +membrane's +membranes +membranous +memento +memento's +mementoes +mementos +memo +memo's +memoir +memoir's +memoirs +memorabilia +memorabilia's +memorable +memorably +memoranda +memorandum +memorandum's +memorandums +memorial +memorial's +memorialize +memorialized +memorializes +memorializing +memorials +memories +memorization +memorization's +memorize +memorized +memorizes +memorizing +memory +memory's +memos +men +menace +menace's +menaced +menaces +menacing +menacingly +menage +menage's +menagerie +menagerie's +menageries +menages +mend +mend's +mendacious +mendacity +mendacity's +mended +mender +mender's +menders +mendicant +mendicant's +mendicants +mending +mends +menfolk +menfolk's +menhaden +menhaden's +menhadens +menial +menial's +menially +menials +meningitis +meningitis's +menopausal +menopause +menopause's +menorah +menorah's +menorahs +menservants +menses +menses's +menstrual +menstruate +menstruated +menstruates +menstruating +menstruation +menstruation's +menswear +menswear's +mental +mentalities +mentality +mentality's +mentally +menthol +menthol's +mentholated +mention +mention's +mentioned +mentioning +mentions +mentor +mentor's +mentored +mentoring +mentors +menu +menu's +menus +meow +meow's +meowed +meowing +meows +mercantile +mercenaries +mercenary +mercenary's +mercerize +mercerized +mercerizes +mercerizing +merchandise +merchandise's +merchandised +merchandises +merchandising +merchandize +merchandized +merchandizes +merchandizing +merchant +merchant's +merchantman +merchantman's +merchantmen +merchants +mercies +merciful +mercifully +merciless +mercilessly +mercurial +mercuric +mercury +mercury's +mercy +mercy's +mere +mere's +merely +meres +merest +meretricious +merganser +merganser's +mergansers +merge +merged +merger +merger's +mergers +merges +merging +meridian +meridian's +meridians +meringue +meringue's +meringues +merino +merino's +merinos +merit +merit's +merited +meriting +meritocracies +meritocracy +meritocracy's +meritorious +meritoriously +merits +mermaid +mermaid's +mermaids +merman +merman's +mermen +merrier +merriest +merrily +merriment +merriment's +merriness +merriness's +merry +merrymaker +merrymaker's +merrymakers +merrymaking +merrymaking's +mes +mesa +mesa's +mesas +mescal +mescal's +mescaline +mescaline's +mescals +mesdames +mesdemoiselles +mesh +mesh's +meshed +meshes +meshing +mesmerism +mesmerism's +mesmerize +mesmerized +mesmerizes +mesmerizing +mesquite +mesquite's +mesquites +mess +mess's +message +message's +messages +messed +messenger +messenger's +messengers +messes +messiah +messiah's +messiahs +messier +messiest +messieurs +messily +messiness +messiness's +messing +messy +mestizo +mestizo's +mestizoes +mestizos +met +metabolic +metabolism +metabolism's +metabolisms +metabolize +metabolized +metabolizes +metabolizing +metacarpal +metacarpal's +metacarpals +metacarpi +metacarpus +metacarpus's +metal +metal's +metallic +metallurgical +metallurgist +metallurgist's +metallurgists +metallurgy +metallurgy's +metals +metamorphic +metamorphism +metamorphism's +metamorphose +metamorphosed +metamorphoses +metamorphosing +metamorphosis +metamorphosis's +metaphor +metaphor's +metaphorical +metaphorically +metaphors +metaphysical +metaphysics +metaphysics's +metastases +metastasis +metastasis's +metastasize +metastasized +metastasizes +metastasizing +metatarsal +metatarsal's +metatarsals +mete +mete's +meted +meteor +meteor's +meteoric +meteorite +meteorite's +meteorites +meteoroid +meteoroid's +meteoroids +meteorological +meteorologist +meteorologist's +meteorologists +meteorology +meteorology's +meteors +meter +meter's +metered +metering +meters +metes +methadon +methadon's +methadone +methadone's +methane +methane's +methanol +methanol's +methinks +method +method's +methodical +methodically +methodological +methodologies +methodology +methodology's +methods +methought +meticulous +meticulously +meticulousness +meticulousness's +meting +metric +metrical +metrically +metrication +metrication's +metrics +metro +metro's +metronome +metronome's +metronomes +metropolis +metropolis's +metropolises +metropolitan +metros +mettle +mettle's +mettlesome +mew +mew's +mewed +mewing +mewl +mewled +mewling +mewls +mews +mews's +mezzanine +mezzanine's +mezzanines +mi +mi's +miaow +miaow's +miaowed +miaowing +miaows +miasma +miasma's +miasmas +miasmata +mica +mica's +mice +micra +microbe +microbe's +microbes +microbiologist +microbiologist's +microbiologists +microbiology +microbiology's +microchip +microchip's +microchips +microcode +microcomputer +microcomputer's +microcomputers +microcosm +microcosm's +microcosms +microeconomics +microeconomics's +microfiche +microfiche's +microfiches +microfilm +microfilm's +microfilmed +microfilming +microfilms +micrometer +micrometer's +micrometers +micron +micron's +microns +microorganism +microorganism's +microorganisms +microphone +microphone's +microphones +microprocessor +microprocessor's +microprocessors +microscope +microscope's +microscopes +microscopic +microscopically +microscopy +microscopy's +microsecond +microsecond's +microseconds +microsurgery +microsurgery's +microwave +microwave's +microwaved +microwaves +microwaving +mid +midair +midair's +midday +midday's +middies +middle +middle's +middlebrow +middlebrow's +middlebrows +middleman +middleman's +middlemen +middles +middleweight +middleweight's +middleweights +middling +middy +middy's +midge +midge's +midges +midget +midget's +midgets +midland +midland's +midlands +midmost +midnight +midnight's +midpoint +midpoint's +midpoints +midriff +midriff's +midriffs +midshipman +midshipman's +midshipmen +midst +midst's +midstream +midstream's +midsummer +midsummer's +midterm +midterm's +midterms +midtown +midtown's +midway +midway's +midways +midweek +midweek's +midweeks +midwife +midwife's +midwifed +midwiferies +midwifery +midwifery's +midwifes +midwifing +midwinter +midwinter's +midwived +midwives +midwiving +midyear +midyear's +midyears +mien +mien's +miens +miff +miffed +miffing +miffs +might +might's +mightier +mightiest +mightily +mightiness +mightiness's +mighty +migraine +migraine's +migraines +migrant +migrant's +migrants +migrate +migrated +migrates +migrating +migration +migration's +migrations +migratory +mike +mike's +miked +mikes +miking +mil +mil's +milch +mild +mild's +milder +mildest +mildew +mildew's +mildewed +mildewing +mildews +mildly +mildness +mildness's +mile +mile's +mileage +mileage's +mileages +milepost +milepost's +mileposts +miler +miler's +milers +miles +milestone +milestone's +milestones +milieu +milieu's +milieus +milieux +militancy +militancy's +militant +militant's +militantly +militants +militaries +militarily +militarism +militarism's +militarist +militarist's +militaristic +militarists +militarization +militarization's +militarize +militarized +militarizes +militarizing +military +military's +militate +militated +militates +militating +militia +militia's +militiaman +militiaman's +militiamen +militias +milk +milk's +milked +milker +milkier +milkiest +milkiness +milkiness's +milking +milkmaid +milkmaid's +milkmaids +milkman +milkman's +milkmen +milks +milkshake +milkshake's +milkshakes +milksop +milksop's +milksops +milkweed +milkweed's +milkweeds +milky +mill +mill's +millage +millage's +milled +millennia +millennial +millennium +millennium's +millenniums +millepede +millepede's +millepedes +miller +miller's +millers +millet +millet's +milligram +milligram's +milligrams +milliliter +milliliter's +milliliters +millimeter +millimeter's +millimeters +milliner +milliner's +milliners +millinery +millinery's +milling +million +million's +millionaire +millionaire's +millionaires +millions +millionth +millionth's +millionths +millipede +millipede's +millipedes +millisecond +millisecond's +milliseconds +millrace +millrace's +millraces +mills +millstone +millstone's +millstones +milquetoast +milquetoast's +milquetoasts +mils +mime +mime's +mimed +mimeograph +mimeograph's +mimeographed +mimeographing +mimeographs +mimes +mimetic +mimic +mimic's +mimicked +mimicking +mimicries +mimicry +mimicry's +mimics +miming +mimosa +mimosa's +mimosas +minaret +minaret's +minarets +minatory +mince +mince's +minced +mincemeat +mincemeat's +minces +mincing +mind +mind's +mindbogglingly +minded +mindedness +mindful +mindfully +mindfulness +mindfulness's +minding +mindless +mindlessly +mindlessness +mindlessness's +minds +mine +mine's +mined +minefield +minefield's +minefields +miner +miner's +mineral +mineral's +mineralogist +mineralogist's +mineralogists +mineralogy +mineralogy's +minerals +miners +mines +minestrone +minestrone's +minesweeper +minesweeper's +minesweepers +mingle +mingled +mingles +mingling +mini +mini's +miniature +miniature's +miniatures +miniaturist +miniaturist's +miniaturists +miniaturization +miniaturization's +miniaturize +miniaturized +miniaturizes +miniaturizing +minibike +minibike's +minibikes +minibus +minibus's +minibuses +minibusses +minicam +minicam's +minicams +minicomputer +minicomputer's +minicomputers +minim +minim's +minima +minimal +minimalism +minimalism's +minimalist +minimalist's +minimalists +minimally +minimization +minimize +minimized +minimizes +minimizing +minims +minimum +minimum's +minimums +mining +mining's +minion +minion's +minions +minis +miniscule +miniscule's +miniscules +miniseries +miniseries's +miniskirt +miniskirt's +miniskirts +minister +minister's +ministered +ministerial +ministering +ministers +ministrant +ministrant's +ministrants +ministration +ministration's +ministrations +ministries +ministry +ministry's +minivan +minivan's +minivans +mink +mink's +minks +minnow +minnow's +minnows +minor +minor's +minored +minoring +minorities +minority +minority's +minors +minster +minstrel +minstrel's +minstrels +mint +mint's +minted +mintier +mintiest +minting +mints +minty +minuend +minuend's +minuends +minuet +minuet's +minuets +minus +minus's +minuscule +minuscule's +minuscules +minuses +minute +minute's +minuted +minutely +minuteman +minuteman's +minutemen +minuteness +minuteness's +minuter +minutes +minutest +minutia +minutia's +minutiae +minuting +minx +minx's +minxes +miracle +miracle's +miracles +miraculous +miraculously +mirage +mirage's +mirages +mire +mire's +mired +mires +miring +mirror +mirror's +mirrored +mirroring +mirrors +mirth +mirth's +mirthful +mirthfully +mirthless +misadventure +misadventure's +misadventures +misalignment +misalliance +misalliance's +misalliances +misanthrope +misanthrope's +misanthropes +misanthropic +misanthropist +misanthropist's +misanthropists +misanthropy +misanthropy's +misapplication +misapplication's +misapplied +misapplies +misapply +misapplying +misapprehend +misapprehended +misapprehending +misapprehends +misapprehension +misapprehension's +misapprehensions +misappropriate +misappropriated +misappropriates +misappropriating +misappropriation +misappropriation's +misappropriations +misbegotten +misbehave +misbehaved +misbehaves +misbehaving +misbehavior +misbehavior's +miscalculate +miscalculated +miscalculates +miscalculating +miscalculation +miscalculation's +miscalculations +miscall +miscalled +miscalling +miscalls +miscarriage +miscarriage's +miscarriages +miscarried +miscarries +miscarry +miscarrying +miscast +miscasting +miscasts +miscegenation +miscegenation's +miscellaneous +miscellanies +miscellany +miscellany's +mischance +mischance's +mischances +mischief +mischief's +mischievous +mischievously +mischievousness +mischievousness's +misconceive +misconceived +misconceives +misconceiving +misconception +misconception's +misconceptions +misconduct +misconduct's +misconducted +misconducting +misconducts +misconstruction +misconstruction's +misconstructions +misconstrue +misconstrued +misconstrues +misconstruing +miscount +miscount's +miscounted +miscounting +miscounts +miscreant +miscreant's +miscreants +miscue +miscue's +miscued +miscues +miscuing +misdeal +misdeal's +misdealing +misdeals +misdealt +misdeed +misdeed's +misdeeds +misdemeanor +misdemeanor's +misdemeanors +misdiagnose +misdiagnosed +misdiagnoses +misdiagnosing +misdiagnosis +misdiagnosis's +misdid +misdirect +misdirected +misdirecting +misdirection +misdirection's +misdirects +misdo +misdoes +misdoing +misdoing's +misdoings +misdone +miser +miser's +miserable +miserably +miseries +miserliness +miserliness's +miserly +misers +misery +misery's +misfeasance +misfeasance's +misfire +misfire's +misfired +misfires +misfiring +misfit +misfit's +misfits +misfitted +misfitting +misfortune +misfortune's +misfortunes +misgiving +misgiving's +misgivings +misgovern +misgoverned +misgoverning +misgoverns +misguide +misguided +misguidedly +misguides +misguiding +mishandle +mishandled +mishandles +mishandling +mishap +mishap's +mishaps +mishmash +mishmash's +mishmashes +misidentified +misidentifies +misidentify +misidentifying +misinform +misinformation +misinformation's +misinformed +misinforming +misinforms +misinterpret +misinterpretation +misinterpretation's +misinterpretations +misinterpreted +misinterpreting +misinterprets +misjudge +misjudged +misjudgement +misjudgement's +misjudgements +misjudges +misjudging +misjudgment +misjudgment's +misjudgments +mislaid +mislay +mislaying +mislays +mislead +misleading +misleads +misled +mismanage +mismanaged +mismanagement +mismanagement's +mismanages +mismanaging +mismatch +mismatch's +mismatched +mismatches +mismatching +misnomer +misnomer's +misnomers +misogynist +misogynist's +misogynistic +misogynists +misogyny +misogyny's +misplace +misplaced +misplaces +misplacing +misplay +misplay's +misplayed +misplaying +misplays +misprint +misprint's +misprinted +misprinting +misprints +mispronounce +mispronounced +mispronounces +mispronouncing +mispronunciation +mispronunciation's +mispronunciations +misquotation +misquotation's +misquotations +misquote +misquote's +misquoted +misquotes +misquoting +misread +misreading +misreading's +misreadings +misreads +misrepresent +misrepresentation +misrepresentation's +misrepresentations +misrepresented +misrepresenting +misrepresents +misrule +misrule's +misruled +misrules +misruling +miss +miss's +missal +missal's +missals +missed +misses +misshapen +missile +missile's +missilery +missilery's +missiles +missing +mission +mission's +missionaries +missionary +missionary's +missions +missive +missive's +missives +misspell +misspelled +misspelling +misspelling's +misspellings +misspells +misspelt +misspend +misspending +misspends +misspent +misstate +misstated +misstatement +misstatement's +misstatements +misstates +misstating +misstep +misstep's +missteps +mist +mist's +mistake +mistake's +mistaken +mistakenly +mistakes +mistaking +misted +mister +mister's +misters +mistier +mistiest +mistily +mistime +mistimed +mistimes +mistiming +mistiness +mistiness's +misting +mistletoe +mistletoe's +mistook +mistranslated +mistreat +mistreated +mistreating +mistreatment +mistreatment's +mistreats +mistress +mistress's +mistresses +mistrial +mistrial's +mistrials +mistrust +mistrust's +mistrusted +mistrustful +mistrusting +mistrusts +mists +misty +mistype +mistypes +mistyping +misunderstand +misunderstanding +misunderstanding's +misunderstandings +misunderstands +misunderstood +misuse +misuse's +misused +misuses +misusing +mite +mite's +miter +miter's +mitered +mitering +miters +mites +mitigate +mitigated +mitigates +mitigating +mitigation +mitigation's +mitosis +mitosis's +mitt +mitt's +mitten +mitten's +mittens +mitts +mix +mix's +mixed +mixer +mixer's +mixers +mixes +mixing +mixture +mixture's +mixtures +mizzen +mizzen's +mizzenmast +mizzenmast's +mizzenmasts +mizzens +mnemonic +mnemonic's +mnemonics +moan +moan's +moaned +moaning +moans +moat +moat's +moats +mob +mob's +mobbed +mobbing +mobile +mobile's +mobiles +mobility +mobility's +mobilization +mobilization's +mobilizations +mobilize +mobilized +mobilizes +mobilizing +mobs +mobster +mobster's +mobsters +moccasin +moccasin's +moccasins +mocha +mocha's +mock +mocked +mocker +mocker's +mockeries +mockers +mockery +mockery's +mocking +mockingbird +mockingbird's +mockingbirds +mockingly +mocks +mod +mod's +modal +modal's +modals +mode +mode's +model +model's +modeled +modeling +modeling's +modelings +modelled +modelling +models +modem +modem's +modems +moderate +moderate's +moderated +moderately +moderates +moderating +moderation +moderation's +moderator +moderator's +moderators +modern +modern's +modernism +modernism's +modernist +modernist's +modernistic +modernists +modernity +modernity's +modernization +modernization's +modernize +modernized +modernizes +modernizing +moderns +modes +modest +modestly +modesty +modesty's +modicum +modicum's +modicums +modifiable +modification +modification's +modifications +modified +modifier +modifier's +modifiers +modifies +modify +modifying +modish +modishly +mods +modular +modulate +modulated +modulates +modulating +modulation +modulation's +modulations +modulator +modulator's +modulators +module +module's +modules +modulus +mogul +mogul's +moguls +mohair +mohair's +moieties +moiety +moiety's +moire +moire's +moires +moist +moisten +moistened +moistening +moistens +moister +moistest +moistly +moistness +moistness's +moisture +moisture's +moisturize +moisturized +moisturizer +moisturizer's +moisturizers +moisturizes +moisturizing +molar +molar's +molars +molasses +molasses's +mold +mold's +molded +molder +molder's +moldered +moldering +molders +moldier +moldiest +moldiness +moldiness's +molding +molding's +moldings +molds +moldy +mole +mole's +molecular +molecule +molecule's +molecules +molehill +molehill's +molehills +moles +moleskin +moleskin's +molest +molestation +molestation's +molested +molester +molester's +molesters +molesting +molests +moll +moll's +mollification +mollification's +mollified +mollifies +mollify +mollifying +molls +mollusc +mollusc's +molluscs +mollusk +mollusk's +mollusks +mollycoddle +mollycoddle's +mollycoddled +mollycoddles +mollycoddling +molt +molt's +molted +molten +molting +molts +molybdenum +molybdenum's +mom +mom's +moment +moment's +momentarily +momentary +momentous +momentousness +momentousness's +moments +momentum +momentum's +momma +momma's +mommas +mommies +mommy +mommy's +moms +monarch +monarch's +monarchic +monarchical +monarchies +monarchism +monarchism's +monarchist +monarchist's +monarchists +monarchs +monarchy +monarchy's +monasteries +monastery +monastery's +monastic +monastic's +monasticism +monasticism's +monastics +monaural +monetarily +monetarism +monetary +money +money's +moneybag +moneybag's +moneybags +moneyed +moneymaker +moneymaker's +moneymakers +moneymaking +moneymaking's +mongeese +monger +monger's +mongered +mongering +mongers +mongolism +mongolism's +mongoose +mongoose's +mongooses +mongrel +mongrel's +mongrels +monicker +monicker's +monickers +monied +monies +moniker +moniker's +monikers +monitor +monitor's +monitored +monitoring +monitors +monk +monk's +monkey +monkey's +monkeyed +monkeying +monkeys +monkeyshine +monkeyshine's +monkeyshines +monks +mono +mono's +monochromatic +monochrome +monochrome's +monochromes +monocle +monocle's +monocles +monocotyledon +monocotyledon's +monocotyledons +monogamous +monogamy +monogamy's +monogram +monogram's +monogrammed +monogramming +monograms +monograph +monograph's +monographs +monolingual +monolingual's +monolinguals +monolith +monolith's +monolithic +monoliths +monolog +monolog's +monologs +monologue +monologue's +monologues +monomania +monomania's +monomaniac +monomaniac's +monomaniacs +mononucleosis +mononucleosis's +monophonic +monopolies +monopolist +monopolist's +monopolistic +monopolists +monopolization +monopolization's +monopolize +monopolized +monopolizes +monopolizing +monopoly +monopoly's +monorail +monorail's +monorails +monosyllabic +monosyllable +monosyllable's +monosyllables +monotheism +monotheism's +monotheist +monotheist's +monotheistic +monotheists +monotone +monotone's +monotones +monotonic +monotonically +monotonous +monotonously +monotony +monotony's +monoxide +monoxide's +monoxides +monsieur +monsieur's +monsignor +monsignor's +monsignori +monsignors +monsoon +monsoon's +monsoons +monster +monster's +monsters +monstrance +monstrance's +monstrances +monstrosities +monstrosity +monstrosity's +monstrous +monstrously +montage +montage's +montages +month +month's +monthlies +monthly +monthly's +months +monument +monument's +monumental +monumentally +monuments +moo +moo's +mooch +mooch's +mooched +moocher +moocher's +moochers +mooches +mooching +mood +mood's +moodier +moodiest +moodily +moodiness +moodiness's +moods +moody +mooed +mooing +moon +moon's +moonbeam +moonbeam's +moonbeams +mooned +mooning +moonlight +moonlight's +moonlighted +moonlighter +moonlighter's +moonlighters +moonlighting +moonlighting's +moonlights +moonlit +moons +moonscape +moonscape's +moonscapes +moonshine +moonshine's +moonshines +moonshot +moonshot's +moonshots +moonstone +moonstone's +moonstones +moonstruck +moor +moor's +moored +mooring +mooring's +moorings +moorland +moors +moos +moose +moose's +moot +mooted +mooting +moots +mop +mop's +mope +mope's +moped +moped's +mopeds +mopes +moping +mopped +moppet +moppet's +moppets +mopping +mops +moraine +moraine's +moraines +moral +moral's +morale +morale's +moralist +moralist's +moralistic +moralists +moralities +morality +morality's +moralize +moralized +moralizes +moralizing +morally +morals +morass +morass's +morasses +moratoria +moratorium +moratorium's +moratoriums +moray +moray's +morays +morbid +morbidity +morbidity's +morbidly +mordant +mordant's +mordants +more +more's +moreover +mores +mores's +morgue +morgue's +morgues +moribund +morn +morn's +morning +morning's +mornings +morns +morocco +morocco's +moron +moron's +moronic +morons +morose +morosely +moroseness +moroseness's +morpheme +morpheme's +morphemes +morphine +morphine's +morphological +morphology +morphology's +morrow +morrow's +morrows +morsel +morsel's +morsels +mortal +mortal's +mortality +mortality's +mortally +mortals +mortar +mortar's +mortarboard +mortarboard's +mortarboards +mortared +mortaring +mortars +mortgage +mortgage's +mortgaged +mortgagee +mortgagee's +mortgagees +mortgager +mortgager's +mortgagers +mortgages +mortgaging +mortgagor +mortgagor's +mortgagors +mortice +mortice's +morticed +mortices +mortician +mortician's +morticians +morticing +mortification +mortification's +mortified +mortifies +mortify +mortifying +mortise +mortise's +mortised +mortises +mortising +mortuaries +mortuary +mortuary's +mosaic +mosaic's +mosaics +mosey +moseyed +moseying +moseys +mosque +mosque's +mosques +mosquito +mosquito's +mosquitoes +mosquitos +moss +moss's +mosses +mossier +mossiest +mossy +most +most's +mostly +mote +mote's +motel +motel's +motels +motes +moth +moth's +mothball +mothball's +mothballed +mothballing +mothballs +mother +mother's +motherboard +motherboard's +motherboards +mothered +motherfucker +motherfucker's +motherfuckers +motherfucking +motherhood +motherhood's +mothering +motherland +motherland's +motherlands +motherless +motherliness +motherliness's +motherly +mothers +moths +motif +motif's +motifs +motile +motiles +motion +motion's +motioned +motioning +motionless +motions +motivate +motivated +motivates +motivating +motivation +motivation's +motivational +motivations +motivator +motivator's +motivators +motive +motive's +motives +motley +motley's +motleys +motlier +motliest +motocross +motocross's +motocrosses +motor +motor's +motorbike +motorbike's +motorbiked +motorbikes +motorbiking +motorboat +motorboat's +motorboats +motorcade +motorcade's +motorcades +motorcar +motorcar's +motorcars +motorcycle +motorcycle's +motorcycled +motorcycles +motorcycling +motorcyclist +motorcyclist's +motorcyclists +motored +motoring +motorist +motorist's +motorists +motorize +motorized +motorizes +motorizing +motorman +motorman's +motormen +motormouth +motormouth's +motormouths +motors +motorway +motorway's +motorways +mottle +mottled +mottles +mottling +motto +motto's +mottoes +mottos +mound +mound's +mounded +mounding +mounds +mount +mount's +mountain +mountain's +mountaineer +mountaineer's +mountaineered +mountaineering +mountaineering's +mountaineers +mountainous +mountains +mountainside +mountainside's +mountainsides +mountaintop +mountaintop's +mountaintops +mountebank +mountebank's +mountebanks +mounted +mounting +mounting's +mountings +mounts +mourn +mourned +mourner +mourner's +mourners +mournful +mournfully +mournfulness +mournfulness's +mourning +mourning's +mourns +mouse +mouse's +moused +mouser +mouser's +mousers +mouses +mousetrap +mousetrap's +mousetrapped +mousetrapping +mousetraps +mousey +mousier +mousiest +mousiness +mousiness's +mousing +mousse +mousse's +moussed +mousses +moussing +moustache +moustache's +moustaches +mousy +mouth +mouth's +mouthed +mouthful +mouthful's +mouthfuls +mouthing +mouthpiece +mouthpiece's +mouthpieces +mouths +mouthwash +mouthwash's +mouthwashes +mouthwatering +movable +movable's +movables +move +move's +moveable +moveable's +moveables +moved +movement +movement's +movements +mover +mover's +movers +moves +movie +movie's +movies +moving +movingly +mow +mow's +mowed +mower +mower's +mowers +mowing +mown +mows +mozzarella +mozzarella's +ms +mu +much +much's +mucilage +mucilage's +muck +muck's +mucked +muckier +muckiest +mucking +muckrake +muckraked +muckraker +muckraker's +muckrakers +muckrakes +muckraking +mucks +mucky +mucous +mucus +mucus's +mud +mud's +muddied +muddier +muddies +muddiest +muddiness +muddiness's +muddle +muddle's +muddled +muddles +muddling +muddy +muddying +mudguard +mudguard's +mudguards +mudslide +mudslide's +mudslides +mudslinger +mudslinger's +mudslingers +mudslinging +mudslinging's +muesli +muezzin +muezzin's +muezzins +muff +muff's +muffed +muffin +muffin's +muffing +muffins +muffle +muffled +muffler +muffler's +mufflers +muffles +muffling +muffs +mufti +mufti's +muftis +mug +mug's +mugged +mugger +mugger's +muggers +muggier +muggiest +mugginess +mugginess's +mugging +mugging's +muggings +muggy +mugs +mukluk +mukluk's +mukluks +mulatto +mulatto's +mulattoes +mulattos +mulberries +mulberry +mulberry's +mulch +mulch's +mulched +mulches +mulching +mule +mule's +mules +muleteer +muleteer's +muleteers +mulish +mulishly +mulishness +mulishness's +mull +mullah +mullah's +mullahs +mulled +mullet +mullet's +mullets +mulligatawny +mulligatawny's +mulling +mullion +mullion's +mullions +mulls +multicolored +multicultural +multiculturalism +multiculturalism's +multidimensional +multifaceted +multifarious +multifariousness +multifariousness's +multilateral +multilingual +multimedia +multimedia's +multimillionaire +multimillionaire's +multimillionaires +multinational +multinational's +multinationals +multiple +multiple's +multiples +multiplex +multiplex's +multiplexed +multiplexer +multiplexer's +multiplexers +multiplexes +multiplexing +multiplexor +multiplexor's +multiplexors +multiplicand +multiplicand's +multiplicands +multiplication +multiplication's +multiplications +multiplicative +multiplicities +multiplicity +multiplicity's +multiplied +multiplier +multiplier's +multipliers +multiplies +multiply +multiplying +multiprocessing +multipurpose +multiracial +multitasking +multitude +multitude's +multitudes +multitudinous +multivariate +multivitamin +multivitamin's +multivitamins +mum +mum's +mumble +mumble's +mumbled +mumbler +mumbler's +mumblers +mumbles +mumbling +mummer +mummer's +mummers +mummery +mummery's +mummies +mummification +mummification's +mummified +mummifies +mummify +mummifying +mummy +mummy's +mumps +mumps's +mums +munch +munched +munches +munchies +munchies's +munching +mundane +mundanely +municipal +municipal's +municipalities +municipality +municipality's +municipally +municipals +munificence +munificence's +munificent +munition +munition's +munitions +mural +mural's +muralist +muralist's +muralists +murals +murder +murder's +murdered +murderer +murderer's +murderers +murderess +murderess's +murderesses +murdering +murderous +murderously +murders +murk +murk's +murkier +murkiest +murkily +murkiness +murkiness's +murks +murky +murmur +murmur's +murmured +murmuring +murmurs +muscat +muscatel +muscatel's +muscatels +muscle +muscle's +muscled +muscles +muscling +muscular +muscularity +muscularity's +musculature +musculature's +muse +muse's +mused +muses +museum +museum's +museums +mush +mush's +mushed +mushes +mushier +mushiest +mushiness +mushiness's +mushing +mushroom +mushroom's +mushroomed +mushrooming +mushrooms +mushy +music +music's +musical +musical's +musicale +musicale's +musicales +musically +musicals +musician +musician's +musicians +musicianship +musicianship's +musicologist +musicologist's +musicologists +musicology +musicology's +musing +musing's +musings +musk +musk's +muskellunge +muskellunge's +muskellunges +musket +musket's +musketeer +musketeer's +musketeers +musketry +musketry's +muskets +muskier +muskiest +muskiness +muskiness's +muskmelon +muskmelon's +muskmelons +muskrat +muskrat's +muskrats +musky +muslin +muslin's +muss +muss's +mussed +mussel +mussel's +mussels +musses +mussier +mussiest +mussing +mussy +must +must's +mustache +mustache's +mustaches +mustang +mustang's +mustangs +mustard +mustard's +muster +muster's +mustered +mustering +musters +mustier +mustiest +mustiness +mustiness's +mustn't +musts +musty +mutability +mutability's +mutable +mutant +mutant's +mutants +mutate +mutated +mutates +mutating +mutation +mutation's +mutations +mute +mute's +muted +mutely +muteness +muteness's +muter +mutes +mutest +mutilate +mutilated +mutilates +mutilating +mutilation +mutilation's +mutilations +mutineer +mutineer's +mutineers +muting +mutinied +mutinies +mutinous +mutinously +mutiny +mutiny's +mutinying +mutt +mutt's +mutter +mutter's +muttered +muttering +mutters +mutton +mutton's +mutts +mutual +mutuality +mutuality's +mutually +muumuu +muumuu's +muumuus +muzzle +muzzle's +muzzled +muzzles +muzzling +my +myna +myna's +mynah +mynah's +mynahes +mynahs +mynas +myopia +myopia's +myopic +myriad +myriad's +myriads +myrrh +myrrh's +myrtle +myrtle's +myrtles +mys +myself +mysteries +mysterious +mysteriously +mysteriousness +mysteriousness's +mystery +mystery's +mystic +mystic's +mystical +mystically +mysticism +mysticism's +mystics +mystification +mystification's +mystified +mystifies +mystify +mystifying +mystique +mystique's +myth +myth's +mythic +mythical +mythological +mythologies +mythologist +mythologist's +mythologists +mythology +mythology's +myths +métier +métier's +métiers +mêlée +mêlée's +mêlées +n +nab +nabbed +nabbing +nabob +nabob's +nabobs +nabs +nacho +nacho's +nachos +nacre +nacre's +nadir +nadir's +nadirs +nag +nag's +nagged +nagging +nags +naiad +naiad's +naiades +naiads +nail +nail's +nailbrush +nailbrush's +nailbrushes +nailed +nailing +nails +naive +naively +naiver +naivest +naivety +naiveté +naiveté's +naked +nakedly +nakedness +nakedness's +name +name's +named +nameless +namely +names +namesake +namesake's +namesakes +naming +nannies +nanny +nanny's +nanosecond +nanosecond's +nanoseconds +nap +nap's +napalm +napalm's +napalmed +napalming +napalms +nape +nape's +napes +naphtha +naphtha's +naphthalene +naphthalene's +napkin +napkin's +napkins +napped +nappier +nappies +nappiest +napping +nappy +nappy's +naps +narc +narc's +narcissi +narcissism +narcissism's +narcissist +narcissist's +narcissistic +narcissists +narcissus +narcissus's +narcissuses +narcosis +narcosis's +narcotic +narcotic's +narcotics +narcs +nark +nark's +narked +narking +narks +narrate +narrated +narrates +narrating +narration +narration's +narrations +narrative +narrative's +narratives +narrator +narrator's +narrators +narrow +narrow's +narrowed +narrower +narrowest +narrowing +narrowly +narrowness +narrowness's +narrows +narwhal +narwhal's +narwhals +nary +nasal +nasal's +nasalize +nasalized +nasalizes +nasalizing +nasally +nasals +nascent +nastier +nastiest +nastily +nastiness +nastiness's +nasturtium +nasturtium's +nasturtiums +nasty +natal +nation +nation's +national +national's +nationalism +nationalism's +nationalist +nationalist's +nationalistic +nationalists +nationalities +nationality +nationality's +nationalization +nationalization's +nationalizations +nationalize +nationalized +nationalizes +nationalizing +nationally +nationals +nations +nationwide +native +native's +natives +nativities +nativity +nativity's +nattier +nattiest +nattily +natty +natural +natural's +naturalism +naturalism's +naturalist +naturalist's +naturalistic +naturalists +naturalization +naturalization's +naturalize +naturalized +naturalizes +naturalizing +naturally +naturalness +naturalness's +naturals +nature +nature's +natures +naught +naught's +naughtier +naughtiest +naughtily +naughtiness +naughtiness's +naughts +naughty +nausea +nausea's +nauseate +nauseated +nauseates +nauseating +nauseatingly +nauseous +nautical +nautically +nautili +nautilus +nautilus's +nautiluses +naval +nave +nave's +navel +navel's +navels +naves +navies +navigability +navigability's +navigable +navigate +navigated +navigates +navigating +navigation +navigation's +navigational +navigator +navigator's +navigators +navy +navy's +nay +nay's +nays +naysayer +naysayer's +naysayers +ne'er +near +nearby +neared +nearer +nearest +nearing +nearly +nearness +nearness's +nears +nearsighted +nearsightedness +nearsightedness's +neat +neater +neatest +neath +neatly +neatness +neatness's +nebula +nebula's +nebulae +nebular +nebulas +nebulous +necessaries +necessarily +necessary +necessary's +necessitate +necessitated +necessitates +necessitating +necessities +necessity +necessity's +neck +neck's +necked +neckerchief +neckerchief's +neckerchiefs +neckerchieves +necking +necklace +necklace's +necklaces +neckline +neckline's +necklines +necks +necktie +necktie's +neckties +necromancer +necromancer's +necromancers +necromancy +necromancy's +necrophilia +necrosis +necrosis's +nectar +nectar's +nectarine +nectarine's +nectarines +need +need's +needed +needful +needier +neediest +neediness +neediness's +needing +needle +needle's +needled +needlepoint +needlepoint's +needles +needless +needlessly +needlework +needlework's +needling +needn't +needs +needy +nefarious +nefariously +nefariousness +nefariousness's +negate +negated +negates +negating +negation +negation's +negations +negative +negative's +negatived +negatively +negatives +negativing +negativity +negativity's +neglect +neglect's +neglected +neglectful +neglectfully +neglecting +neglects +neglig +neglig's +negligee +negligee's +negligees +negligence +negligence's +negligent +negligently +negligible +negligibly +negligs +negotiable +negotiate +negotiated +negotiates +negotiating +negotiation +negotiation's +negotiations +negotiator +negotiator's +negotiators +neigh +neigh's +neighbor +neighbor's +neighbored +neighborhood +neighborhood's +neighborhoods +neighboring +neighborliness +neighborliness's +neighborly +neighbors +neighed +neighing +neighs +neither +nematode +nematode's +nematodes +nemeses +nemesis +nemesis's +neoclassic +neoclassical +neoclassicism +neoclassicism's +neocolonialism +neocolonialism's +neodymium +neodymium's +neologism +neologism's +neologisms +neon +neon's +neonatal +neonate +neonate's +neonates +neophyte +neophyte's +neophytes +neoprene +neoprene's +nephew +nephew's +nephews +nephritis +nephritis's +nepotism +nepotism's +neptunium +neptunium's +nerd +nerd's +nerdier +nerdiest +nerds +nerdy +nerve +nerve's +nerved +nerveless +nervelessly +nerves +nervier +nerviest +nerving +nervous +nervously +nervousness +nervousness's +nervy +nest +nest's +nested +nesting +nestle +nestled +nestles +nestling +nestling's +nestlings +nests +net +net's +nether +nethermost +nets +netted +netting +netting's +nettle +nettle's +nettled +nettles +nettlesome +nettling +network +network's +networked +networking +networking's +networks +neural +neuralgia +neuralgia's +neuralgic +neuritis +neuritis's +neurological +neurologist +neurologist's +neurologists +neurology +neurology's +neuron +neuron's +neurons +neuroses +neurosis +neurosis's +neurosurgery +neurosurgery's +neurotic +neurotic's +neurotically +neurotics +neurotransmitter +neurotransmitter's +neurotransmitters +neuter +neuter's +neutered +neutering +neuters +neutral +neutral's +neutrality +neutrality's +neutralization +neutralization's +neutralize +neutralized +neutralizer +neutralizer's +neutralizers +neutralizes +neutralizing +neutrally +neutrals +neutrino +neutrino's +neutrinos +neutron +neutron's +neutrons +never +nevermore +nevertheless +new +new's +newbie +newbie's +newbies +newborn +newborn's +newborns +newcomer +newcomer's +newcomers +newel +newel's +newels +newer +newest +newfangled +newly +newlywed +newlywed's +newlyweds +newness +newness's +news +news's +newsagents +newsboy +newsboy's +newsboys +newscast +newscast's +newscaster +newscaster's +newscasters +newscasts +newsflash +newsier +newsiest +newsletter +newsletter's +newsletters +newsman +newsman's +newsmen +newspaper +newspaper's +newspaperman +newspaperman's +newspapermen +newspapers +newspaperwoman +newspaperwoman's +newspaperwomen +newsprint +newsprint's +newsreel +newsreel's +newsreels +newsstand +newsstand's +newsstands +newsworthier +newsworthiest +newsworthy +newsy +newt +newt's +newton +newton's +newtons +newts +next +next's +nexus +nexus's +nexuses +niacin +niacin's +nib +nib's +nibble +nibble's +nibbled +nibbler +nibbler's +nibblers +nibbles +nibbling +nibs +nice +nicely +niceness +niceness's +nicer +nicest +niceties +nicety +nicety's +niche +niche's +niches +nick +nick's +nicked +nickel +nickel's +nickelodeon +nickelodeon's +nickelodeons +nickels +nicking +nicknack +nicknack's +nicknacks +nickname +nickname's +nicknamed +nicknames +nicknaming +nicks +nicotine +nicotine's +niece +niece's +nieces +niftier +niftiest +nifty +niggard +niggard's +niggardliness +niggardliness's +niggardly +niggards +nigger +nigger's +niggers +niggle +niggle's +niggled +niggles +niggling +nigh +nigher +nighest +night +night's +nightcap +nightcap's +nightcaps +nightclothes +nightclothes's +nightclub +nightclub's +nightclubbed +nightclubbing +nightclubs +nightfall +nightfall's +nightgown +nightgown's +nightgowns +nighthawk +nighthawk's +nighthawks +nightie +nightie's +nighties +nightingale +nightingale's +nightingales +nightlife +nightlife's +nightly +nightmare +nightmare's +nightmares +nightmarish +nights +nightshade +nightshade's +nightshades +nightshirt +nightshirt's +nightshirts +nightstick +nightstick's +nightsticks +nighttime +nighttime's +nighty +nighty's +nihilism +nihilism's +nihilist +nihilist's +nihilistic +nihilists +nil +nil's +nimbi +nimble +nimbleness +nimbleness's +nimbler +nimblest +nimbly +nimbus +nimbus's +nimbuses +nincompoop +nincompoop's +nincompoops +nine +nine's +ninepin +ninepin's +ninepins +ninepins's +nines +nineteen +nineteen's +nineteens +nineteenth +nineteenth's +nineteenths +nineties +ninetieth +ninetieth's +ninetieths +ninety +ninety's +ninja +ninja's +ninjas +ninnies +ninny +ninny's +ninth +ninth's +ninths +nip +nip's +nipped +nipper +nipper's +nippers +nippier +nippiest +nipping +nipple +nipple's +nipples +nippy +nips +nirvana +nirvana's +nit +nit's +nite +nite's +niter +niter's +nites +nitpick +nitpicked +nitpicker +nitpicker's +nitpickers +nitpicking +nitpicks +nitrate +nitrate's +nitrated +nitrates +nitrating +nitrogen +nitrogen's +nitrogenous +nitroglycerin +nitroglycerin's +nitroglycerine +nitroglycerine's +nits +nitwit +nitwit's +nitwits +nix +nix's +nixed +nixes +nixing +no +no's +nobility +nobility's +noble +noble's +nobleman +nobleman's +noblemen +nobleness +nobleness's +nobler +nobles +noblest +noblewoman +noblewoman's +noblewomen +nobly +nobodies +nobody +nobody's +nocturnal +nocturnally +nocturne +nocturne's +nocturnes +nod +nod's +nodal +nodded +nodding +noddy +node +node's +nodes +nods +nodular +nodule +nodule's +nodules +noel +noel's +noels +noes +noggin +noggin's +noggins +noise +noise's +noised +noiseless +noiselessly +noiselessness +noiselessness's +noisemaker +noisemaker's +noisemakers +noises +noisier +noisiest +noisily +noisiness +noisiness's +noising +noisome +noisy +nomad +nomad's +nomadic +nomads +nomenclature +nomenclature's +nomenclatures +nominal +nominally +nominate +nominated +nominates +nominating +nomination +nomination's +nominations +nominative +nominative's +nominatives +nominee +nominee's +nominees +non +nonabrasive +nonabsorbent +nonabsorbent's +nonabsorbents +nonagenarian +nonagenarian's +nonagenarians +nonalcoholic +nonaligned +nonbeliever +nonbeliever's +nonbelievers +nonbreakable +nonce +nonce's +nonchalance +nonchalance's +nonchalant +nonchalantly +noncom +noncom's +noncombatant +noncombatant's +noncombatants +noncommercial +noncommercial's +noncommercials +noncommittal +noncommittally +noncompetitive +noncompliance +noncompliance's +noncoms +nonconductor +nonconductor's +nonconductors +nonconformist +nonconformist's +nonconformists +nonconformity +nonconformity's +noncontagious +noncooperation +noncooperation's +nondairy +nondeductible +nondeductible's +nondenominational +nondescript +nondrinker +nondrinker's +nondrinkers +none +nonempty +nonentities +nonentity +nonentity's +nonessential +nonesuch +nonesuch's +nonesuches +nonetheless +nonevent +nonevent's +nonevents +nonexempt +nonexempt's +nonexistence +nonexistence's +nonexistent +nonfat +nonfatal +nonfiction +nonfiction's +nonflammable +nongovernmental +nonhazardous +nonhuman +nonindustrial +noninterference +noninterference's +nonintervention +nonintervention's +nonjudgmental +nonliving +nonliving's +nonmalignant +nonmember +nonmember's +nonmembers +nonnegotiable +nonobjective +nonpareil +nonpareil's +nonpareils +nonpartisan +nonpartisan's +nonpartisans +nonpayment +nonpayment's +nonpayments +nonphysical +nonplus +nonplused +nonpluses +nonplusing +nonplussed +nonplusses +nonplussing +nonpoisonous +nonpolitical +nonpolluting +nonprescription +nonproductive +nonprofessional +nonprofessional's +nonprofessionals +nonprofit +nonprofit's +nonprofits +nonproliferation +nonproliferation's +nonrefillable +nonrefundable +nonrenewable +nonrepresentational +nonresident +nonresident's +nonresidents +nonrestrictive +nonreturnable +nonreturnable's +nonreturnables +nonrigid +nonscheduled +nonseasonal +nonsectarian +nonsense +nonsense's +nonsensical +nonsensically +nonsexist +nonskid +nonsmoker +nonsmoker's +nonsmokers +nonsmoking +nonstandard +nonstick +nonstop +nonsupport +nonsupport's +nontaxable +nontechnical +nontoxic +nontransferable +nontrivial +nonunion +nonuser +nonuser's +nonusers +nonverbal +nonviolence +nonviolence's +nonviolent +nonvoting +nonwhite +nonwhite's +nonwhites +nonzero +noodle +noodle's +noodled +noodles +noodling +nook +nook's +nooks +noon +noon's +noonday +noonday's +noontime +noontime's +noose +noose's +nooses +nope +nor +norm +norm's +normal +normal's +normalcy +normalcy's +normality +normality's +normalization +normalization's +normalize +normalized +normalizes +normalizing +normally +normative +norms +north +north's +northbound +northeast +northeast's +northeaster +northeaster's +northeasterly +northeastern +northeasters +northeastward +northerlies +northerly +northerly's +northern +northerner +northerner's +northerners +northernmost +northward +northwards +northwest +northwest's +northwesterly +northwestern +northwestward +nose +nose's +nosebleed +nosebleed's +nosebleeds +nosed +nosedive +nosedive's +nosedived +nosedives +nosediving +nosedove +nosegay +nosegay's +nosegays +noses +nosey +nosh +nosh's +noshed +noshes +noshing +nosier +nosiest +nosiness +nosiness's +nosing +nostalgia +nostalgia's +nostalgic +nostalgically +nostril +nostril's +nostrils +nostrum +nostrum's +nostrums +nosy +not +notable +notable's +notables +notably +notaries +notarize +notarized +notarizes +notarizing +notary +notary's +notation +notation's +notations +notch +notch's +notched +notches +notching +note +note's +notebook +notebook's +notebooks +noted +notepad +notepaper +notes +noteworthy +nothing +nothing's +nothingness +nothingness's +nothings +notice +notice's +noticeable +noticeably +noticeboard +noticeboards +noticed +notices +noticing +notification +notification's +notifications +notified +notifies +notify +notifying +noting +notion +notion's +notional +notionally +notions +notoriety +notoriety's +notorious +notoriously +notwithstanding +nougat +nougat's +nougats +nought +nought's +noughts +noun +noun's +nouns +nourish +nourished +nourishes +nourishing +nourishment +nourishment's +nous +nova +nova's +novae +novas +novel +novel's +novelette +novelette's +novelettes +novelist +novelist's +novelists +novella +novella's +novellas +novelle +novels +novelties +novelty +novelty's +novice +novice's +novices +novitiate +novitiate's +novitiates +now +now's +nowadays +nowadays's +noway +nowhere +nowhere's +nowise +noxious +nozzle +nozzle's +nozzles +nth +nu +nuance +nuance's +nuanced +nuances +nub +nub's +nubile +nubs +nuclear +nuclei +nucleic +nucleus +nucleus's +nucleuses +nude +nude's +nuder +nudes +nudest +nudge +nudge's +nudged +nudges +nudging +nudism +nudism's +nudist +nudist's +nudists +nudity +nudity's +nugget +nugget's +nuggets +nuisance +nuisance's +nuisances +nuke +nuke's +nuked +nukes +nuking +null +nullification +nullification's +nullified +nullifies +nullify +nullifying +nullity +nullity's +nulls +numb +numbed +number +number's +numbered +numbering +numberless +numbers +numbest +numbing +numbly +numbness +numbness's +numbs +numbskull +numbskull's +numbskulls +numeracy +numeral +numeral's +numerals +numerate +numerated +numerates +numerating +numeration +numeration's +numerations +numerator +numerator's +numerators +numeric +numerical +numerically +numerology +numerology's +numerous +numismatic +numismatics +numismatics's +numismatist +numismatist's +numismatists +numskull +numskull's +numskulls +nun +nun's +nuncio +nuncio's +nuncios +nunneries +nunnery +nunnery's +nuns +nuptial +nuptial's +nuptials +nurse +nurse's +nursed +nursemaid +nursemaid's +nursemaids +nurseries +nursery +nursery's +nurseryman +nurseryman's +nurserymen +nurses +nursing +nursing's +nurture +nurture's +nurtured +nurtures +nurturing +nut +nut's +nutcracker +nutcracker's +nutcrackers +nuthatch +nuthatch's +nuthatches +nutmeat +nutmeat's +nutmeats +nutmeg +nutmeg's +nutmegs +nutria +nutria's +nutrias +nutrient +nutrient's +nutrients +nutriment +nutriment's +nutriments +nutrition +nutrition's +nutritional +nutritionally +nutritionist +nutritionist's +nutritionists +nutritious +nutritive +nuts +nutshell +nutshell's +nutshells +nutted +nuttier +nuttiest +nuttiness +nuttiness's +nutting +nutty +nuzzle +nuzzle's +nuzzled +nuzzles +nuzzling +nylon +nylon's +nylons +nylons's +nymph +nymph's +nymphomania +nymphomania's +nymphomaniac +nymphomaniac's +nymphomaniacs +nymphs +née +o +o'clock +o'er +oaf +oaf's +oafish +oafs +oak +oak's +oaken +oaks +oakum +oakum's +oar +oar's +oared +oaring +oarlock +oarlock's +oarlocks +oars +oarsman +oarsman's +oarsmen +oases +oasis +oasis's +oat +oat's +oaten +oath +oath's +oaths +oatmeal +oatmeal's +oats +oats's +obduracy +obduracy's +obdurate +obdurately +obedience +obedience's +obedient +obediently +obeisance +obeisance's +obeisances +obeisant +obelisk +obelisk's +obelisks +obese +obesity +obesity's +obey +obeyed +obeying +obeys +obfuscate +obfuscated +obfuscates +obfuscating +obfuscation +obfuscation's +obit +obit's +obits +obituaries +obituary +obituary's +object +object's +objected +objecting +objection +objection's +objectionable +objectionably +objections +objective +objective's +objectively +objectiveness +objectiveness's +objectives +objectivity +objectivity's +objector +objector's +objectors +objects +oblate +oblation +oblation's +oblations +obligate +obligated +obligates +obligating +obligation +obligation's +obligations +obligatory +oblige +obliged +obliges +obliging +obligingly +oblique +oblique's +obliquely +obliqueness +obliqueness's +obliques +obliterate +obliterated +obliterates +obliterating +obliteration +obliteration's +oblivion +oblivion's +oblivious +obliviously +obliviousness +obliviousness's +oblong +oblong's +oblongs +obloquy +obloquy's +obnoxious +obnoxiously +oboe +oboe's +oboes +oboist +oboist's +oboists +obscene +obscenely +obscener +obscenest +obscenities +obscenity +obscenity's +obscure +obscured +obscurely +obscurer +obscures +obscurest +obscuring +obscurities +obscurity +obscurity's +obsequies +obsequious +obsequiously +obsequiousness +obsequiousness's +obsequy +obsequy's +observable +observably +observance +observance's +observances +observant +observantly +observation +observation's +observational +observations +observatories +observatory +observatory's +observe +observed +observer +observer's +observers +observes +observing +obsess +obsessed +obsesses +obsessing +obsession +obsession's +obsessions +obsessive +obsessive's +obsessively +obsessives +obsidian +obsidian's +obsolescence +obsolescence's +obsolescent +obsolete +obsoleted +obsoletes +obsoleting +obstacle +obstacle's +obstacles +obstetric +obstetrical +obstetrician +obstetrician's +obstetricians +obstetrics +obstetrics's +obstinacy +obstinacy's +obstinate +obstinately +obstreperous +obstruct +obstructed +obstructing +obstruction +obstruction's +obstructionist +obstructionist's +obstructionists +obstructions +obstructive +obstructively +obstructiveness +obstructiveness's +obstructs +obtain +obtainable +obtained +obtaining +obtains +obtrude +obtruded +obtrudes +obtruding +obtrusive +obtrusively +obtrusiveness +obtrusiveness's +obtuse +obtusely +obtuseness +obtuseness's +obtuser +obtusest +obverse +obverse's +obverses +obviate +obviated +obviates +obviating +obvious +obviously +obviousness +obviousness's +ocarina +ocarina's +ocarinas +occasion +occasion's +occasional +occasionally +occasioned +occasioning +occasions +occidental +occidental's +occidentals +occlude +occluded +occludes +occluding +occlusion +occlusion's +occlusions +occult +occult's +occupancy +occupancy's +occupant +occupant's +occupants +occupation +occupation's +occupational +occupations +occupied +occupies +occupy +occupying +occur +occurred +occurrence +occurrence's +occurrences +occurring +occurs +ocean +ocean's +oceangoing +oceanic +oceanic's +oceanographer +oceanographer's +oceanographers +oceanographic +oceanography +oceanography's +oceans +ocelot +ocelot's +ocelots +ocher +ocher's +ochre +ochre's +octagon +octagon's +octagonal +octagons +octal +octane +octane's +octave +octave's +octaves +octet +octet's +octets +octette +octette's +octettes +octogenarian +octogenarian's +octogenarians +octopi +octopus +octopus's +octopuses +ocular +ocular's +oculars +oculist +oculist's +oculists +odd +oddball +oddball's +oddballs +odder +oddest +oddities +oddity +oddity's +oddly +oddness +oddness's +odds +odds's +ode +ode's +odes +odious +odiously +odium +odium's +odometer +odometer's +odometers +odor +odor's +odoriferous +odorless +odorous +odors +odyssey +odyssey's +odysseys +of +off +offal +offal's +offbeat +offbeat's +offbeats +offed +offend +offended +offender +offender's +offenders +offending +offends +offense +offense's +offenses +offensive +offensive's +offensively +offensiveness +offensiveness's +offensives +offer +offer's +offered +offering +offering's +offerings +offers +offertories +offertory +offertory's +offhand +offhandedly +office +office's +officeholder +officeholder's +officeholders +officer +officer's +officers +offices +official +official's +officialdom +officialdom's +officially +officials +officiate +officiated +officiates +officiating +officious +officiously +officiousness +officiousness's +offing +offing's +offings +offload +offs +offset +offset's +offsets +offsetting +offshoot +offshoot's +offshoots +offshore +offside +offspring +offspring's +offsprings +offstage +offstages +oft +often +oftener +oftenest +oftentimes +ogle +ogle's +ogled +ogles +ogling +ogre +ogre's +ogres +oh +oh's +ohm +ohm's +ohms +oho +ohs +oil +oil's +oilcloth +oilcloth's +oilcloths +oiled +oilfield +oilfields +oilier +oiliest +oiliness +oiliness's +oiling +oils +oilskin +oilskin's +oily +oink +oink's +oinked +oinking +oinks +ointment +ointment's +ointments +okay +okay's +okayed +okaying +okays +okra +okra's +okras +old +old's +olden +older +oldest +oldie +oldie's +oldies +oleaginous +oleander +oleander's +oleanders +oleo +oleo's +oleomargarine +oleomargarine's +olfactories +olfactory +olfactory's +oligarch +oligarch's +oligarchic +oligarchies +oligarchs +oligarchy +oligarchy's +olive +olive's +olives +ombudsman +ombudsman's +ombudsmen +omega +omega's +omegas +omelet +omelet's +omelets +omelette +omelette's +omelettes +omen +omen's +omens +ominous +ominously +omission +omission's +omissions +omit +omits +omitted +omitting +omnibus +omnibus's +omnibuses +omnibusses +omnipotence +omnipotence's +omnipotent +omnipresence +omnipresence's +omnipresent +omniscience +omniscience's +omniscient +omnivore +omnivore's +omnivores +omnivorous +on +once +once's +oncology +oncology's +oncoming +one +one's +oneness +oneness's +onerous +ones +oneself +onetime +ongoing +onion +onion's +onions +onionskin +onionskin's +online +onlooker +onlooker's +onlookers +only +onomatopoeia +onomatopoeia's +onomatopoeic +onrush +onrush's +onrushes +onrushing +onset +onset's +onsets +onshore +onslaught +onslaught's +onslaughts +onto +onus +onus's +onuses +onward +onwards +onyx +onyx's +onyxes +oodles +oodles's +oops +ooze +ooze's +oozed +oozes +oozing +opacity +opacity's +opal +opal's +opalescence +opalescence's +opalescent +opals +opaque +opaqued +opaquely +opaqueness +opaqueness's +opaquer +opaques +opaquest +opaquing +open +open's +opened +opener +opener's +openers +openest +openhanded +opening +opening's +openings +openly +openness +openness's +opens +openwork +openwork's +opera +opera's +operable +operand +operands +operas +operate +operated +operates +operatic +operating +operation +operation's +operational +operationally +operations +operative +operative's +operatives +operator +operator's +operators +operetta +operetta's +operettas +ophthalmic +ophthalmologist +ophthalmologist's +ophthalmologists +ophthalmology +ophthalmology's +opiate +opiate's +opiates +opine +opined +opines +opining +opinion +opinion's +opinionated +opinions +opium +opium's +opossum +opossum's +opossums +opponent +opponent's +opponents +opportune +opportunism +opportunism's +opportunist +opportunist's +opportunistic +opportunists +opportunities +opportunity +opportunity's +oppose +opposed +opposes +opposing +opposite +opposite's +opposites +opposition +opposition's +oppress +oppressed +oppresses +oppressing +oppression +oppression's +oppressive +oppressively +oppressor +oppressor's +oppressors +opprobrious +opprobrium +opprobrium's +opt +opted +optic +optic's +optical +optically +optician +optician's +opticians +optics +optics's +optima +optimal +optimism +optimism's +optimist +optimist's +optimistic +optimistically +optimists +optimization +optimize +optimized +optimizer +optimizes +optimizing +optimum +optimum's +optimums +opting +option +option's +optional +optionally +optioned +optioning +options +optometrist +optometrist's +optometrists +optometry +optometry's +opts +opulence +opulence's +opulent +opus +opus's +opuses +or +oracle +oracle's +oracles +oracular +oral +oral's +orally +orals +orange +orange's +orangeade +orangeade's +orangeades +oranges +orangutan +orangutan's +orangutang +orangutang's +orangutangs +orangutans +orate +orated +orates +orating +oration +oration's +orations +orator +orator's +oratorical +oratories +oratorio +oratorio's +oratorios +orators +oratory +oratory's +orb +orb's +orbit +orbit's +orbital +orbital's +orbitals +orbited +orbiting +orbits +orbs +orchard +orchard's +orchards +orchestra +orchestra's +orchestral +orchestras +orchestrate +orchestrated +orchestrates +orchestrating +orchestration +orchestration's +orchestrations +orchid +orchid's +orchids +ordain +ordained +ordaining +ordains +ordeal +ordeal's +ordeals +order +order's +ordered +ordering +orderings +orderlies +orderliness +orderliness's +orderly +orderly's +orders +ordinal +ordinal's +ordinals +ordinance +ordinance's +ordinances +ordinaries +ordinarily +ordinariness +ordinariness's +ordinary +ordinary's +ordination +ordination's +ordinations +ordnance +ordnance's +ordure +ordure's +ore +ore's +oregano +oregano's +ores +organ +organ's +organdie +organdie's +organdy +organdy's +organelle +organelle's +organelles +organic +organic's +organically +organics +organism +organism's +organisms +organist +organist's +organists +organization +organization's +organizational +organizations +organize +organized +organizer +organizer's +organizers +organizes +organizing +organs +orgasm +orgasm's +orgasmic +orgasms +orgiastic +orgies +orgy +orgy's +orient +orient's +oriental +oriental's +orientals +orientate +orientated +orientates +orientating +orientation +orientation's +orientations +oriented +orienting +orients +orifice +orifice's +orifices +origami +origami's +origin +origin's +original +original's +originality +originality's +originally +originals +originate +originated +originates +originating +origination +origination's +originator +originator's +originators +origins +oriole +oriole's +orioles +ormolu +ormolu's +ornament +ornament's +ornamental +ornamentation +ornamentation's +ornamented +ornamenting +ornaments +ornate +ornately +ornateness +ornateness's +ornerier +orneriest +ornery +ornithologist +ornithologist's +ornithologists +ornithology +ornithology's +orotund +orphan +orphan's +orphanage +orphanage's +orphanages +orphaned +orphaning +orphans +orthodontia +orthodontia's +orthodontic +orthodontics +orthodontics's +orthodontist +orthodontist's +orthodontists +orthodox +orthodoxies +orthodoxy +orthodoxy's +orthogonal +orthogonality +orthographic +orthographies +orthography +orthography's +orthopaedic +orthopaedics +orthopaedics's +orthopaedist +orthopaedist's +orthopaedists +orthopedic +orthopedics +orthopedics's +orthopedist +orthopedist's +orthopedists +oscillate +oscillated +oscillates +oscillating +oscillation +oscillation's +oscillations +oscillator +oscillator's +oscillators +oscilloscope +oscilloscope's +oscilloscopes +osier +osier's +osiers +osmosis +osmosis's +osmotic +osprey +osprey's +ospreys +ossification +ossification's +ossified +ossifies +ossify +ossifying +ostensible +ostensibly +ostentation +ostentation's +ostentatious +ostentatiously +osteopath +osteopath's +osteopaths +osteopathy +osteopathy's +osteoporosis +osteoporosis's +ostracism +ostracism's +ostracize +ostracized +ostracizes +ostracizing +ostrich +ostrich's +ostriches +other +others +otherwise +otherworldly +otiose +otter +otter's +otters +ottoman +ottoman's +ottomans +ouch +ought +ounce +ounce's +ounces +our +ours +ourselves +oust +ousted +ouster +ouster's +ousters +ousting +ousts +out +out's +outage +outage's +outages +outback +outback's +outbacks +outbalance +outbalanced +outbalances +outbalancing +outbid +outbidding +outbids +outbound +outbreak +outbreak's +outbreaks +outbuilding +outbuilding's +outbuildings +outburst +outburst's +outbursts +outcast +outcast's +outcasts +outclass +outclassed +outclasses +outclassing +outcome +outcome's +outcomes +outcries +outcrop +outcrop's +outcropped +outcropping +outcropping's +outcroppings +outcrops +outcry +outcry's +outdated +outdid +outdistance +outdistanced +outdistances +outdistancing +outdo +outdoes +outdoing +outdone +outdoor +outdoors +outdoors's +outed +outer +outermost +outfield +outfield's +outfielder +outfielder's +outfielders +outfields +outfit +outfit's +outfits +outfitted +outfitter +outfitter's +outfitters +outfitting +outflank +outflanked +outflanking +outflanks +outfox +outfoxed +outfoxes +outfoxing +outgo +outgo's +outgoes +outgoing +outgrew +outgrow +outgrowing +outgrown +outgrows +outgrowth +outgrowth's +outgrowths +outhouse +outhouse's +outhouses +outing +outing's +outings +outlaid +outlandish +outlandishly +outlast +outlasted +outlasting +outlasts +outlaw +outlaw's +outlawed +outlawing +outlaws +outlay +outlay's +outlaying +outlays +outlet +outlet's +outlets +outline +outline's +outlined +outlines +outlining +outlive +outlived +outlives +outliving +outlook +outlook's +outlooks +outlying +outmaneuver +outmaneuvered +outmaneuvering +outmaneuvers +outmanoeuvre +outmanoeuvred +outmanoeuvres +outmanoeuvring +outmoded +outnumber +outnumbered +outnumbering +outnumbers +outpatient +outpatient's +outpatients +outperform +outperformed +outperforming +outperforms +outplacement +outplacement's +outplay +outplayed +outplaying +outplays +outpost +outpost's +outposts +outpouring +outpouring's +outpourings +output +output's +outputs +outputted +outputting +outrage +outrage's +outraged +outrageous +outrageously +outrages +outraging +outran +outrank +outranked +outranking +outranks +outreach +outreach's +outreached +outreaches +outreaching +outrider +outrider's +outriders +outrigger +outrigger's +outriggers +outright +outrun +outrunning +outruns +outré +outs +outsell +outselling +outsells +outset +outset's +outsets +outshine +outshined +outshines +outshining +outshone +outside +outside's +outsider +outsider's +outsiders +outsides +outsize +outsize's +outsized +outsizes +outskirt +outskirt's +outskirts +outsmart +outsmarted +outsmarting +outsmarts +outsold +outsource +outsourced +outsources +outsourcing +outsourcing's +outspoken +outspokenly +outspokenness +outspokenness's +outspread +outspreading +outspreads +outstanding +outstandingly +outstation +outstation's +outstations +outstay +outstayed +outstaying +outstays +outstretch +outstretched +outstretches +outstretching +outstrip +outstripped +outstripping +outstrips +outstript +outtake +outtake's +outtakes +outvote +outvoted +outvotes +outvoting +outward +outwardly +outwards +outwear +outwearing +outwears +outweigh +outweighed +outweighing +outweighs +outwit +outwits +outwitted +outwitting +outwore +outworn +ova +oval +oval's +ovals +ovarian +ovaries +ovary +ovary's +ovation +ovation's +ovations +oven +oven's +ovens +over +over's +overabundance +overabundance's +overabundant +overachieve +overachieved +overachiever +overachiever's +overachievers +overachieves +overachieving +overact +overacted +overacting +overactive +overacts +overage +overage's +overages +overall +overall's +overalls +overalls's +overambitious +overanxious +overate +overawe +overawed +overawes +overawing +overbalance +overbalance's +overbalanced +overbalances +overbalancing +overbear +overbearing +overbears +overbite +overbite's +overbites +overblown +overboard +overbook +overbooked +overbooking +overbooks +overbore +overborne +overburden +overburdened +overburdening +overburdens +overcame +overcast +overcast's +overcasting +overcasts +overcautious +overcharge +overcharge's +overcharged +overcharges +overcharging +overcoat +overcoat's +overcoats +overcome +overcomes +overcoming +overcompensate +overcompensated +overcompensates +overcompensating +overcompensation +overcompensation's +overconfident +overcook +overcooked +overcooking +overcooks +overcrowd +overcrowded +overcrowding +overcrowds +overdid +overdo +overdoes +overdoing +overdone +overdose +overdose's +overdosed +overdoses +overdosing +overdraft +overdraft's +overdrafts +overdraw +overdrawing +overdrawn +overdraws +overdress +overdress's +overdressed +overdresses +overdressing +overdrew +overdrive +overdrive's +overdue +overeager +overeat +overeaten +overeating +overeats +overemphasize +overemphasized +overemphasizes +overemphasizing +overenthusiastic +overestimate +overestimate's +overestimated +overestimates +overestimating +overexpose +overexposed +overexposes +overexposing +overexposure +overexposure's +overextend +overextended +overextending +overextends +overflow +overflow's +overflowed +overflowing +overflows +overfull +overgenerous +overgrew +overgrow +overgrowing +overgrown +overgrows +overgrowth +overgrowth's +overhand +overhand's +overhands +overhang +overhang's +overhanging +overhangs +overhaul +overhaul's +overhauled +overhauling +overhauls +overhead +overhead's +overheads +overhear +overheard +overhearing +overhears +overheat +overheated +overheating +overheats +overhung +overindulge +overindulged +overindulgence +overindulgence's +overindulges +overindulging +overjoy +overjoyed +overjoying +overjoys +overkill +overkill's +overlaid +overlain +overland +overlap +overlap's +overlapped +overlapping +overlaps +overlay +overlay's +overlaying +overlays +overlie +overlies +overload +overload's +overloaded +overloading +overloads +overlong +overlook +overlook's +overlooked +overlooking +overlooks +overlord +overlord's +overlords +overly +overlying +overmuch +overmuches +overnight +overnight's +overnights +overpaid +overpass +overpass's +overpasses +overpay +overpaying +overpays +overplay +overplayed +overplaying +overplays +overpopulate +overpopulated +overpopulates +overpopulating +overpopulation +overpopulation's +overpower +overpowered +overpowering +overpowers +overprice +overpriced +overprices +overpricing +overprint +overprinted +overprinting +overprints +overproduce +overproduced +overproduces +overproducing +overproduction +overproduction's +overprotective +overqualified +overran +overrate +overrated +overrates +overrating +overreach +overreached +overreaches +overreaching +overreact +overreacted +overreacting +overreaction +overreaction's +overreactions +overreacts +overridden +override +override's +overrides +overriding +overripe +overripe's +overrode +overrule +overruled +overrules +overruling +overrun +overrun's +overrunning +overruns +overs +oversampling +oversaw +overseas +oversee +overseeing +overseen +overseer +overseer's +overseers +oversees +oversell +overselling +oversells +oversensitive +oversexed +overshadow +overshadowed +overshadowing +overshadows +overshoe +overshoe's +overshoes +overshoot +overshooting +overshoots +overshot +oversight +oversight's +oversights +oversimplification +oversimplification's +oversimplifications +oversimplified +oversimplifies +oversimplify +oversimplifying +oversize +oversized +oversleep +oversleeping +oversleeps +overslept +oversold +overspecialize +overspecialized +overspecializes +overspecializing +overspend +overspending +overspends +overspent +overspill +overspread +overspreading +overspreads +overstate +overstated +overstatement +overstatement's +overstatements +overstates +overstating +overstay +overstayed +overstaying +overstays +overstep +overstepped +overstepping +oversteps +overstock +overstocked +overstocking +overstocks +overstuffed +oversupplied +oversupplies +oversupply +oversupplying +overt +overtake +overtaken +overtakes +overtaking +overtax +overtaxed +overtaxes +overtaxing +overthrew +overthrow +overthrow's +overthrowing +overthrown +overthrows +overtime +overtime's +overtimes +overtly +overtone +overtone's +overtones +overtook +overture +overture's +overtures +overturn +overturned +overturning +overturns +overuse +overuse's +overused +overuses +overusing +overview +overview's +overviews +overweening +overweight +overweight's +overwhelm +overwhelmed +overwhelming +overwhelmingly +overwhelms +overwork +overwork's +overworked +overworking +overworks +overwrite +overwrites +overwriting +overwritten +overwrought +overzealous +oviduct +oviduct's +oviducts +oviparous +ovoid +ovoid's +ovoids +ovulate +ovulated +ovulates +ovulating +ovulation +ovulation's +ovule +ovule's +ovules +ovum +ovum's +ow +owe +owed +owes +owing +owl +owl's +owlet +owlet's +owlets +owlish +owls +own +owned +owner +owner's +owners +ownership +ownership's +owning +owns +ox +ox's +oxbow +oxbow's +oxbows +oxen +oxford +oxford's +oxfords +oxidation +oxidation's +oxide +oxide's +oxides +oxidize +oxidized +oxidizer +oxidizer's +oxidizers +oxidizes +oxidizing +oxyacetylene +oxyacetylene's +oxygen +oxygen's +oxygenate +oxygenated +oxygenates +oxygenating +oxygenation +oxygenation's +oxymora +oxymoron +oxymoron's +oxymorons +oyster +oyster's +oysters +ozone +ozone's +p +pH +pa +pa's +pace +pace's +paced +pacemaker +pacemaker's +pacemakers +paces +pacesetter +pacesetter's +pacesetters +pachyderm +pachyderm's +pachyderms +pacific +pacifically +pacification +pacification's +pacified +pacifier +pacifier's +pacifiers +pacifies +pacifism +pacifism's +pacifist +pacifist's +pacifists +pacify +pacifying +pacing +pack +pack's +package +package's +packaged +packages +packaging +packaging's +packed +packer +packer's +packers +packet +packet's +packets +packing +packing's +packs +pact +pact's +pacts +pad +pad's +padded +paddies +padding +padding's +paddle +paddle's +paddled +paddles +paddling +paddock +paddock's +paddocked +paddocking +paddocks +paddy +paddy's +padlock +padlock's +padlocked +padlocking +padlocks +padre +padre's +padres +pads +paean +paean's +paeans +pagan +pagan's +paganism +paganism's +pagans +page +page's +pageant +pageant's +pageantry +pageantry's +pageants +paged +pager +pager's +pagers +pages +paginate +paginated +paginates +paginating +pagination +pagination's +paging +pagoda +pagoda's +pagodas +paid +pail +pail's +pailful +pailful's +pailfuls +pails +pailsful +pain +pain's +pained +painful +painfuller +painfullest +painfully +paining +painkiller +painkiller's +painkillers +painless +painlessly +pains +painstaking +painstaking's +painstakingly +paint +paint's +paintbrush +paintbrush's +paintbrushes +painted +painter +painter's +painters +painting +painting's +paintings +paints +paintwork +pair +pair's +paired +pairing +pairs +pairwise +paisley +paisley's +paisleys +pajamas +pajamas's +pal +pal's +palace +palace's +palaces +palatable +palatal +palatal's +palatals +palate +palate's +palates +palatial +palaver +palaver's +palavered +palavering +palavers +pale +pale's +paled +paleface +paleface's +palefaces +paleness +paleness's +paleontologist +paleontologist's +paleontologists +paleontology +paleontology's +paler +pales +palest +palette +palette's +palettes +palimony +palimony's +palimpsest +palimpsest's +palimpsests +palindrome +palindrome's +palindromes +palindromic +paling +paling's +palings +palisade +palisade's +palisades +pall +pall's +palladium +palladium's +pallbearer +pallbearer's +pallbearers +palled +pallet +pallet's +pallets +palliate +palliated +palliates +palliating +palliation +palliation's +palliative +palliative's +palliatives +pallid +palling +pallor +pallor's +palls +palm +palm's +palmed +palmetto +palmetto's +palmettoes +palmettos +palmier +palmiest +palming +palmist +palmist's +palmistry +palmistry's +palmists +palms +palmy +palomino +palomino's +palominos +palpable +palpably +palpate +palpated +palpates +palpating +palpation +palpation's +palpitate +palpitated +palpitates +palpitating +palpitation +palpitation's +palpitations +pals +palsied +palsies +palsy +palsy's +palsying +paltrier +paltriest +paltriness +paltriness's +paltry +pampas +pampas's +pamper +pampered +pampering +pampers +pamphlet +pamphlet's +pamphleteer +pamphleteer's +pamphleteers +pamphlets +pan +pan's +panacea +panacea's +panaceas +panache +panache's +pancake +pancake's +pancaked +pancakes +pancaking +panchromatic +pancreas +pancreas's +pancreases +pancreatic +panda +panda's +pandas +pandemic +pandemic's +pandemics +pandemonium +pandemonium's +pander +pander's +pandered +panderer +panderer's +panderers +pandering +panders +pane +pane's +panegyric +panegyric's +panegyrics +panel +panel's +paneled +paneling +paneling's +panelings +panelist +panelist's +panelists +panelled +panelling +panelling's +panellings +panels +panes +pang +pang's +pangs +panhandle +panhandle's +panhandled +panhandler +panhandler's +panhandlers +panhandles +panhandling +panic +panic's +panicked +panickier +panickiest +panicking +panicky +panics +panier +panier's +paniers +panned +pannier +pannier's +panniers +panning +panoplies +panoply +panoply's +panorama +panorama's +panoramas +panoramic +pans +pansies +pansy +pansy's +pant +pant's +pantaloons +pantaloons's +panted +pantheism +pantheism's +pantheist +pantheist's +pantheistic +pantheists +pantheon +pantheon's +pantheons +panther +panther's +panthers +pantie +pantie's +panties +panting +pantomime +pantomime's +pantomimed +pantomimes +pantomiming +pantries +pantry +pantry's +pants +pantsuit +pantsuit's +pantsuits +panty +panty's +pantyhose +pantyhose's +pap +pap's +papa +papa's +papacies +papacy +papacy's +papal +papas +papaw +papaw's +papaws +papaya +papaya's +papayas +paper +paper's +paperback +paperback's +paperbacks +paperboy +paperboy's +paperboys +papered +papergirl +papergirl's +papergirls +paperhanger +paperhanger's +paperhangers +papering +papers +paperweight +paperweight's +paperweights +paperwork +paperwork's +papery +papilla +papilla's +papillae +papoose +papoose's +papooses +paprika +paprika's +paps +papyri +papyrus +papyrus's +papyruses +par +par's +parable +parable's +parables +parabola +parabola's +parabolas +parabolic +parachute +parachute's +parachuted +parachutes +parachuting +parachutist +parachutist's +parachutists +parade +parade's +paraded +parades +paradigm +paradigm's +paradigmatic +paradigms +parading +paradise +paradise's +paradises +paradox +paradox's +paradoxes +paradoxical +paradoxically +paraffin +paraffin's +paragon +paragon's +paragons +paragraph +paragraph's +paragraphed +paragraphing +paragraphs +parakeet +parakeet's +parakeets +paralegal +paralegal's +paralegals +parallax +parallax's +parallaxes +parallel +parallel's +paralleled +paralleling +parallelism +parallelism's +parallelisms +parallelled +parallelling +parallelogram +parallelogram's +parallelograms +parallels +paralyses +paralysis +paralysis's +paralytic +paralytic's +paralytics +paralyze +paralyzed +paralyzes +paralyzing +paramecia +paramecium +paramecium's +parameciums +paramedic +paramedic's +paramedical +paramedical's +paramedicals +paramedics +parameter +parameter's +parameters +paramilitaries +paramilitary +paramilitary's +paramount +paramour +paramour's +paramours +paranoia +paranoia's +paranoid +paranoid's +paranoids +paranormal +parapet +parapet's +parapets +paraphernalia +paraphernalia's +paraphrase +paraphrase's +paraphrased +paraphrases +paraphrasing +paraplegia +paraplegia's +paraplegic +paraplegic's +paraplegics +paraprofessional +paraprofessional's +paraprofessionals +parapsychology +parapsychology's +parasite +parasite's +parasites +parasitic +parasol +parasol's +parasols +paratrooper +paratrooper's +paratroopers +paratroops +paratroops's +parboil +parboiled +parboiling +parboils +parcel +parcel's +parceled +parceling +parcelled +parcelling +parcels +parch +parched +parches +parching +parchment +parchment's +parchments +pardon +pardon's +pardonable +pardoned +pardoning +pardons +pare +pared +parent +parent's +parentage +parentage's +parental +parented +parentheses +parenthesis +parenthesis's +parenthesize +parenthesized +parenthesizes +parenthesizing +parenthetic +parenthetical +parenthetically +parenthood +parenthood's +parenting +parenting's +parents +pares +parfait +parfait's +parfaits +pariah +pariah's +pariahs +paring +paring's +parings +parish +parish's +parishes +parishioner +parishioner's +parishioners +parity +parity's +park +park's +parka +parka's +parkas +parked +parking +parking's +parks +parkway +parkway's +parkways +parlance +parlance's +parlay +parlay's +parlayed +parlaying +parlays +parley +parley's +parleyed +parleying +parleys +parliament +parliament's +parliamentarian +parliamentarian's +parliamentarians +parliamentary +parliaments +parlor +parlor's +parlors +parochial +parochialism +parochialism's +parodied +parodies +parody +parody's +parodying +parole +parole's +paroled +parolee +parolee's +parolees +paroles +paroling +paroxysm +paroxysm's +paroxysms +parquet +parquet's +parqueted +parqueting +parquetry +parquetry's +parquets +parrakeet +parrakeet's +parrakeets +parred +parricide +parricide's +parricides +parried +parries +parring +parrot +parrot's +parroted +parroting +parrots +parry +parry's +parrying +pars +parse +parsec +parsec's +parsecs +parsed +parser +parses +parsimonious +parsimony +parsimony's +parsing +parsley +parsley's +parsnip +parsnip's +parsnips +parson +parson's +parsonage +parsonage's +parsonages +parsons +part +part's +partake +partaken +partaker +partaker's +partakers +partakes +partaking +parted +parterre +parterre's +parterres +parthenogenesis +parthenogenesis's +partial +partial's +partiality +partiality's +partially +partials +participant +participant's +participants +participate +participated +participates +participating +participation +participation's +participator +participator's +participators +participatory +participial +participial's +participle +participle's +participles +particle +particle's +particles +particular +particular's +particularities +particularity +particularity's +particularization +particularization's +particularize +particularized +particularizes +particularizing +particularly +particulars +particulate +particulate's +particulates +partied +parties +parting +parting's +partings +partisan +partisan's +partisans +partisanship +partisanship's +partition +partition's +partitioned +partitioning +partitions +partizan +partizan's +partizans +partly +partner +partner's +partnered +partnering +partners +partnership +partnership's +partnerships +partook +partridge +partridge's +partridges +parts +parturition +parturition's +partway +party +party's +partying +parvenu +parvenu's +parvenus +pas +paschal +pasha +pasha's +pashas +pass +pass's +passable +passably +passage +passage's +passages +passageway +passageway's +passageways +passbook +passbook's +passbooks +passed +passel +passel's +passels +passenger +passenger's +passengers +passer +passerby +passerby's +passersby +passes +passing +passing's +passion +passion's +passionate +passionately +passionless +passions +passive +passive's +passively +passives +passivity +passivity's +passkey +passkey's +passkeys +passport +passport's +passports +password +password's +passwords +passé +past +past's +pasta +pasta's +pastas +paste +paste's +pasteboard +pasteboard's +pasted +pastel +pastel's +pastels +pastern +pastern's +pasterns +pastes +pasteurization +pasteurization's +pasteurize +pasteurized +pasteurizes +pasteurizing +pastiche +pastiche's +pastiches +pastier +pasties +pastiest +pastime +pastime's +pastimes +pasting +pastor +pastor's +pastoral +pastoral's +pastorals +pastorate +pastorate's +pastorates +pastors +pastrami +pastrami's +pastries +pastry +pastry's +pasts +pasturage +pasturage's +pasture +pasture's +pastured +pastures +pasturing +pasty +pasty's +pat +pat's +patch +patch's +patched +patches +patchier +patchiest +patchiness +patchiness's +patching +patchwork +patchwork's +patchworks +patchy +pate +pate's +patella +patella's +patellae +patellas +patent +patent's +patented +patenting +patently +patents +paternal +paternalism +paternalism's +paternalistic +paternally +paternity +paternity's +pates +path +path's +pathetic +pathetically +pathogen +pathogen's +pathogenic +pathogens +pathological +pathologically +pathologist +pathologist's +pathologists +pathology +pathology's +pathos +pathos's +paths +pathway +pathway's +pathways +patience +patience's +patient +patient's +patienter +patientest +patiently +patients +patina +patina's +patinae +patinas +patine +patio +patio's +patios +patois +patois's +patriarch +patriarch's +patriarchal +patriarchies +patriarchs +patriarchy +patriarchy's +patrician +patrician's +patricians +patricide +patricide's +patricides +patrimonial +patrimonies +patrimony +patrimony's +patriot +patriot's +patriotic +patriotically +patriotism +patriotism's +patriots +patrol +patrol's +patrolled +patrolling +patrolman +patrolman's +patrolmen +patrols +patrolwoman +patrolwoman's +patrolwomen +patron +patron's +patronage +patronage's +patronages +patronize +patronized +patronizes +patronizing +patronizingly +patrons +patronymic +patronymic's +patronymics +pats +patsies +patsy +patsy's +patted +patter +patter's +pattered +pattering +pattern +pattern's +patterned +patterning +patterns +patters +patties +patting +patty +patty's +paucity +paucity's +paunch +paunch's +paunches +paunchier +paunchiest +paunchy +pauper +pauper's +pauperism +pauperism's +pauperize +pauperized +pauperizes +pauperizing +paupers +pause +pause's +paused +pauses +pausing +pave +paved +pavement +pavement's +pavements +paves +pavilion +pavilion's +pavilions +paving +paving's +pavings +paw +paw's +pawed +pawing +pawl +pawl's +pawls +pawn +pawn's +pawnbroker +pawnbroker's +pawnbrokers +pawned +pawning +pawns +pawnshop +pawnshop's +pawnshops +pawpaw +pawpaw's +pawpaws +paws +pay +pay's +payable +paycheck +paycheck's +paychecks +payday +payday's +paydays +payed +payee +payee's +payees +payer +payer's +payers +paying +payload +payload's +payloads +paymaster +paymaster's +paymasters +payment +payment's +payments +payoff +payoff's +payoffs +payroll +payroll's +payrolls +pays +pea +pea's +peace +peace's +peaceable +peaceably +peaceful +peacefully +peacefulness +peacefulness's +peacekeeping +peacekeeping's +peacemaker +peacemaker's +peacemakers +peaces +peacetime +peacetime's +peach +peach's +peaches +peacock +peacock's +peacocks +peafowl +peafowl's +peafowls +peahen +peahen's +peahens +peak +peak's +peaked +peaking +peaks +peal +peal's +pealed +pealing +peals +peanut +peanut's +peanuts +pear +pear's +pearl +pearl's +pearled +pearlier +pearliest +pearling +pearls +pearly +pears +peas +peasant +peasant's +peasantry +peasantry's +peasants +pease +peat +peat's +pebble +pebble's +pebbled +pebbles +pebblier +pebbliest +pebbling +pebbly +pecan +pecan's +pecans +peccadillo +peccadillo's +peccadilloes +peccadillos +peccaries +peccary +peccary's +peck +peck's +pecked +pecking +pecks +pectin +pectin's +pectoral +pectoral's +pectorals +peculiar +peculiarities +peculiarity +peculiarity's +peculiarly +pecuniary +pedagog +pedagog's +pedagogic +pedagogical +pedagogs +pedagogue +pedagogue's +pedagogues +pedagogy +pedagogy's +pedal +pedal's +pedaled +pedaling +pedalled +pedalling +pedals +pedant +pedant's +pedantic +pedantically +pedantry +pedantry's +pedants +peddle +peddled +peddler +peddler's +peddlers +peddles +peddling +pederast +pederast's +pederasts +pederasty +pederasty's +pedestal +pedestal's +pedestals +pedestrian +pedestrian's +pedestrianize +pedestrianized +pedestrianizes +pedestrianizing +pedestrians +pediatric +pediatrician +pediatrician's +pediatricians +pediatrics +pediatrics's +pediatrist +pediatrist's +pediatrists +pedicure +pedicure's +pedicured +pedicures +pedicuring +pedigree +pedigree's +pedigreed +pedigrees +pediment +pediment's +pediments +pedlar +pedlar's +pedlars +pedometer +pedometer's +pedometers +pee +pee's +peed +peeing +peek +peek's +peekaboo +peekaboo's +peeked +peeking +peeks +peel +peel's +peeled +peeling +peeling's +peelings +peels +peep +peep's +peeped +peeper +peeper's +peepers +peephole +peephole's +peepholes +peeping +peeps +peer +peer's +peerage +peerage's +peerages +peered +peering +peerless +peers +pees +peeve +peeve's +peeved +peeves +peeving +peevish +peevishly +peevishness +peevishness's +peewee +peewee's +peewees +peg +peg's +pegged +pegging +pegs +pejorative +pejorative's +pejoratives +pekoe +pekoe's +pelagic +pelican +pelican's +pelicans +pellagra +pellagra's +pellet +pellet's +pelleted +pelleting +pellets +pellucid +pelt +pelt's +pelted +pelting +pelts +pelves +pelvic +pelvis +pelvis's +pelvises +pen +pen's +penal +penalize +penalized +penalizes +penalizing +penalties +penalty +penalty's +penance +penance's +penances +pence +penchant +penchant's +penchants +pencil +pencil's +penciled +penciling +pencilled +pencilling +pencils +pendant +pendant's +pendants +pended +pendent +pendent's +pendents +pending +pends +pendulous +pendulum +pendulum's +pendulums +penes +penetrable +penetrate +penetrated +penetrates +penetrating +penetration +penetration's +penetrations +penetrative +penguin +penguin's +penguins +penicillin +penicillin's +penile +peninsula +peninsula's +peninsular +peninsulas +penis +penis's +penises +penitence +penitence's +penitent +penitent's +penitential +penitentiaries +penitentiary +penitentiary's +penitently +penitents +penknife +penknife's +penknives +penlight +penlight's +penlights +penlite +penlite's +penlites +penmanship +penmanship's +pennant +pennant's +pennants +penned +pennies +penniless +penning +pennon +pennon's +pennons +penny +penny's +pennyweight +pennyweight's +pennyweights +penologist +penologist's +penologists +penology +penology's +pens +pension +pension's +pensioned +pensioner +pensioner's +pensioners +pensioning +pensions +pensive +pensively +pensiveness +pensiveness's +pent +pentagon +pentagon's +pentagonal +pentagons +pentameter +pentameter's +pentameters +pentathlon +pentathlon's +pentathlons +penthouse +penthouse's +penthouses +penultimate +penultimate's +penultimates +penurious +penury +penury's +peon +peon's +peonage +peonage's +peonies +peons +peony +peony's +people +people's +peopled +peoples +peopling +pep +pep's +pepped +pepper +pepper's +peppercorn +peppercorn's +peppercorns +peppered +peppering +peppermint +peppermint's +peppermints +pepperoni +pepperoni's +pepperonis +peppers +peppery +peppier +peppiest +pepping +peppy +peps +pepsin +pepsin's +peptic +peptic's +peptics +per +perambulate +perambulated +perambulates +perambulating +perambulator +perambulator's +perambulators +percale +percale's +percales +perceivable +perceive +perceived +perceives +perceiving +percent +percent's +percentage +percentage's +percentages +percentile +percentile's +percentiles +percents +perceptible +perceptibly +perception +perception's +perceptions +perceptive +perceptively +perceptiveness +perceptiveness's +perceptual +perch +perch's +perchance +perched +perches +perching +percolate +percolated +percolates +percolating +percolation +percolation's +percolator +percolator's +percolators +percussion +percussion's +percussionist +percussionist's +percussionists +perdition +perdition's +peregrination +peregrination's +peregrinations +peremptorily +peremptory +perennial +perennial's +perennially +perennials +perfect +perfect's +perfected +perfecter +perfectest +perfectible +perfecting +perfection +perfection's +perfectionism +perfectionism's +perfectionist +perfectionist's +perfectionists +perfections +perfectly +perfects +perfidies +perfidious +perfidy +perfidy's +perforate +perforated +perforates +perforating +perforation +perforation's +perforations +perforce +perform +performance +performance's +performances +performed +performer +performer's +performers +performing +performs +perfume +perfume's +perfumed +perfumeries +perfumery +perfumery's +perfumes +perfuming +perfunctorily +perfunctory +perhaps +pericardia +pericardium +pericardium's +pericardiums +perigee +perigee's +perigees +perihelia +perihelion +perihelion's +perihelions +peril +peril's +periled +periling +perilled +perilling +perilous +perilously +perils +perimeter +perimeter's +perimeters +period +period's +periodic +periodical +periodical's +periodically +periodicals +periodicity +periodontal +periods +peripatetic +peripatetic's +peripatetics +peripheral +peripheral's +peripherals +peripheries +periphery +periphery's +periphrases +periphrasis +periphrasis's +periscope +periscope's +periscopes +perish +perishable +perishable's +perishables +perished +perishes +perishing +peritonea +peritoneum +peritoneum's +peritoneums +peritonitis +peritonitis's +periwig +periwig's +periwigs +periwinkle +periwinkle's +periwinkles +perjure +perjured +perjurer +perjurer's +perjurers +perjures +perjuries +perjuring +perjury +perjury's +perk +perk's +perked +perkier +perkiest +perkiness +perkiness's +perking +perks +perky +perm +perm's +permafrost +permafrost's +permanence +permanence's +permanent +permanent's +permanently +permanents +permeability +permeability's +permeable +permeate +permeated +permeates +permeating +permed +perming +permissible +permissibly +permission +permission's +permissions +permissive +permissively +permissiveness +permissiveness's +permit +permit's +permits +permitted +permitting +perms +permutation +permutation's +permutations +permute +permuted +permutes +permuting +pernicious +perniciously +peroration +peroration's +perorations +peroxide +peroxide's +peroxided +peroxides +peroxiding +perpendicular +perpendicular's +perpendiculars +perpetrate +perpetrated +perpetrates +perpetrating +perpetration +perpetration's +perpetrator +perpetrator's +perpetrators +perpetual +perpetual's +perpetually +perpetuals +perpetuate +perpetuated +perpetuates +perpetuating +perpetuation +perpetuation's +perpetuity +perpetuity's +perplex +perplexed +perplexes +perplexing +perplexities +perplexity +perplexity's +perquisite +perquisite's +perquisites +persecute +persecuted +persecutes +persecuting +persecution +persecution's +persecutions +persecutor +persecutor's +persecutors +perseverance +perseverance's +persevere +persevered +perseveres +persevering +persiflage +persiflage's +persimmon +persimmon's +persimmons +persist +persisted +persistence +persistence's +persistent +persistently +persisting +persists +persnickety +person +person's +persona +persona's +personable +personae +personage +personage's +personages +personal +personal's +personalities +personality +personality's +personalize +personalized +personalizes +personalizing +personally +personals +personification +personification's +personifications +personified +personifies +personify +personifying +personnel +personnel's +persons +perspective +perspective's +perspectives +perspicacious +perspicacity +perspicacity's +perspicuity +perspicuity's +perspicuous +perspiration +perspiration's +perspire +perspired +perspires +perspiring +persuade +persuaded +persuades +persuading +persuasion +persuasion's +persuasions +persuasive +persuasively +persuasiveness +persuasiveness's +pert +pertain +pertained +pertaining +pertains +perter +pertest +pertinacious +pertinacity +pertinacity's +pertinence +pertinence's +pertinent +pertly +pertness +pertness's +perturb +perturbation +perturbation's +perturbations +perturbed +perturbing +perturbs +perusal +perusal's +perusals +peruse +perused +peruses +perusing +pervade +pervaded +pervades +pervading +pervasive +perverse +perversely +perverseness +perverseness's +perversion +perversion's +perversions +perversity +perversity's +pervert +pervert's +perverted +perverting +perverts +peseta +peseta's +pesetas +peskier +peskiest +pesky +peso +peso's +pesos +pessimism +pessimism's +pessimist +pessimist's +pessimistic +pessimistically +pessimists +pest +pest's +pester +pestered +pestering +pesters +pesticide +pesticide's +pesticides +pestilence +pestilence's +pestilences +pestilent +pestle +pestle's +pestled +pestles +pestling +pests +pet +pet's +petal +petal's +petals +petard +petard's +petards +peter +peter's +petered +petering +peters +petiole +petiole's +petioles +petite +petite's +petites +petition +petition's +petitioned +petitioner +petitioner's +petitioners +petitioning +petitions +petrel +petrel's +petrels +petrifaction +petrifaction's +petrified +petrifies +petrify +petrifying +petrochemical +petrochemical's +petrochemicals +petrol +petrol's +petrolatum +petrolatum's +petroleum +petroleum's +pets +petted +petticoat +petticoat's +petticoats +pettier +pettiest +pettifog +pettifogged +pettifogger +pettifogger's +pettifoggers +pettifogging +pettifogs +pettily +pettiness +pettiness's +petting +petty +petulance +petulance's +petulant +petulantly +petunia +petunia's +petunias +pew +pew's +pewee +pewee's +pewees +pews +pewter +pewter's +pewters +peyote +peyote's +phalanges +phalanx +phalanx's +phalanxes +phalli +phallic +phallus +phallus's +phalluses +phantasied +phantasies +phantasm +phantasm's +phantasmagoria +phantasmagoria's +phantasmagorias +phantasms +phantasy +phantasy's +phantasying +phantom +phantom's +phantoms +pharaoh +pharaoh's +pharaohs +pharmaceutical +pharmaceutical's +pharmaceuticals +pharmacies +pharmacist +pharmacist's +pharmacists +pharmacologist +pharmacologist's +pharmacologists +pharmacology +pharmacology's +pharmacopeia +pharmacopeia's +pharmacopeias +pharmacopoeia +pharmacopoeia's +pharmacopoeias +pharmacy +pharmacy's +pharyngeal +pharynges +pharynx +pharynx's +pharynxes +phase +phase's +phased +phases +phasing +pheasant +pheasant's +pheasants +phenobarbital +phenobarbital's +phenomena +phenomenal +phenomenally +phenomenon +phenomenon's +phenomenons +phenotype +pheromone +pheromone's +pheromones +phial +phial's +phials +philander +philandered +philanderer +philanderer's +philanderers +philandering +philanders +philanthropic +philanthropically +philanthropies +philanthropist +philanthropist's +philanthropists +philanthropy +philanthropy's +philatelic +philatelist +philatelist's +philatelists +philately +philately's +philharmonic +philharmonic's +philharmonics +philippic +philippic's +philippics +philistine +philistine's +philistines +philodendra +philodendron +philodendron's +philodendrons +philological +philologist +philologist's +philologists +philology +philology's +philosopher +philosopher's +philosophers +philosophic +philosophical +philosophically +philosophies +philosophize +philosophized +philosophizes +philosophizing +philosophy +philosophy's +philter +philter's +philters +phish +phished +phisher +phisher's +phishers +phishing +phlebitis +phlebitis's +phlegm +phlegm's +phlegmatic +phlegmatically +phloem +phloem's +phlox +phlox's +phloxes +phobia +phobia's +phobias +phobic +phobic's +phobics +phoebe +phoebe's +phoebes +phoenix +phoenix's +phoenixes +phone +phone's +phoned +phoneme +phoneme's +phonemes +phonemic +phones +phonetic +phonetically +phonetician +phonetician's +phoneticians +phonetics +phonetics's +phoney +phoney's +phoneyed +phoneying +phoneys +phonic +phonically +phonics +phonics's +phonied +phonier +phonies +phoniest +phoniness +phoniness's +phoning +phonograph +phonograph's +phonographs +phonological +phonologist +phonologist's +phonologists +phonology +phonology's +phony +phony's +phonying +phooey +phosphate +phosphate's +phosphates +phosphor +phosphor's +phosphorescence +phosphorescence's +phosphorescent +phosphoric +phosphors +phosphorus +phosphorus's +photo +photo's +photocopied +photocopier +photocopier's +photocopiers +photocopies +photocopy +photocopy's +photocopying +photoed +photoelectric +photogenic +photograph +photograph's +photographed +photographer +photographer's +photographers +photographic +photographically +photographing +photographs +photography +photography's +photoing +photojournalism +photojournalism's +photojournalist +photojournalist's +photojournalists +photon +photon's +photons +photos +photosensitive +photosynthesis +photosynthesis's +phototypesetter +phototypesetting +phrasal +phrase +phrase's +phrased +phraseology +phraseology's +phrases +phrasing +phrasing's +phrasings +phrenology +phrenology's +phyla +phylum +phylum's +physic +physic's +physical +physical's +physically +physicals +physician +physician's +physicians +physicist +physicist's +physicists +physicked +physicking +physics +physics's +physiognomies +physiognomy +physiognomy's +physiological +physiologist +physiologist's +physiologists +physiology +physiology's +physiotherapist +physiotherapist's +physiotherapists +physiotherapy +physiotherapy's +physique +physique's +physiques +pi +pi's +pianissimi +pianissimo +pianissimo's +pianissimos +pianist +pianist's +pianists +piano +piano's +pianoforte +pianoforte's +pianofortes +pianos +piazza +piazza's +piazzas +piazze +pica +pica's +picaresque +picayune +piccalilli +piccalilli's +piccolo +piccolo's +piccolos +pick +pick's +pickaback +pickaback's +pickabacked +pickabacking +pickabacks +pickax +pickax's +pickaxe +pickaxe's +pickaxed +pickaxes +pickaxing +picked +picker +picker's +pickerel +pickerel's +pickerels +pickers +picket +picket's +picketed +picketing +pickets +pickier +pickiest +picking +pickings +pickings's +pickle +pickle's +pickled +pickles +pickling +pickpocket +pickpocket's +pickpockets +picks +pickup +pickup's +pickups +picky +picnic +picnic's +picnicked +picnicker +picnicker's +picnickers +picnicking +picnics +pictograph +pictograph's +pictographs +pictorial +pictorial's +pictorially +pictorials +picture +picture's +pictured +pictures +picturesque +picturing +piddle +piddle's +piddled +piddles +piddling +pidgin +pidgin's +pidgins +pie +pie's +piebald +piebald's +piebalds +piece +piece's +pieced +piecemeal +pieces +piecework +piecework's +piecing +pied +pieing +pier +pier's +pierce +pierced +pierces +piercing +piercing's +piercingly +piercings +piers +pies +piety +piety's +piffle +piffle's +pig +pig's +pigeon +pigeon's +pigeonhole +pigeonhole's +pigeonholed +pigeonholes +pigeonholing +pigeons +pigged +piggier +piggies +piggiest +pigging +piggish +piggishness +piggishness's +piggy +piggy's +piggyback +piggyback's +piggybacked +piggybacking +piggybacks +pigheaded +piglet +piglet's +piglets +pigment +pigment's +pigmentation +pigmentation's +pigments +pigmies +pigmy +pigmy's +pigpen +pigpen's +pigpens +pigs +pigskin +pigskin's +pigskins +pigsties +pigsty +pigsty's +pigtail +pigtail's +pigtails +piing +pike +pike's +piked +piker +piker's +pikers +pikes +piking +pilaf +pilaf's +pilaff +pilaff's +pilaffs +pilafs +pilaster +pilaster's +pilasters +pilau +pilau's +pilaus +pilaw +pilaw's +pilaws +pilchard +pilchard's +pilchards +pile +pile's +piled +piles +pileup +pileup's +pileups +pilfer +pilfered +pilferer +pilferer's +pilferers +pilfering +pilfers +pilgrim +pilgrim's +pilgrimage +pilgrimage's +pilgrimages +pilgrims +piling +piling's +pilings +pill +pill's +pillage +pillage's +pillaged +pillages +pillaging +pillar +pillar's +pillars +pillbox +pillbox's +pillboxes +pilled +pilling +pillion +pillion's +pillions +pilloried +pillories +pillory +pillory's +pillorying +pillow +pillow's +pillowcase +pillowcase's +pillowcases +pillowed +pillowing +pillows +pills +pilot +pilot's +piloted +pilothouse +pilothouse's +pilothouses +piloting +pilots +pimento +pimento's +pimentos +pimiento +pimiento's +pimientos +pimp +pimp's +pimped +pimpernel +pimpernel's +pimpernels +pimping +pimple +pimple's +pimples +pimplier +pimpliest +pimply +pimps +pin +pin's +pinafore +pinafore's +pinafores +pinball +pinball's +pincer +pincer's +pincers +pinch +pinch's +pinched +pinches +pinching +pincushion +pincushion's +pincushions +pine +pine's +pineapple +pineapple's +pineapples +pined +pines +pinfeather +pinfeather's +pinfeathers +ping +ping's +pinged +pinging +pings +pinhead +pinhead's +pinheads +pinhole +pinhole's +pinholes +pining +pinion +pinion's +pinioned +pinioning +pinions +pink +pink's +pinked +pinker +pinkest +pinkeye +pinkeye's +pinkie +pinkie's +pinkies +pinking +pinkish +pinks +pinky +pinky's +pinnacle +pinnacle's +pinnacles +pinnate +pinned +pinning +pinochle +pinochle's +pinpoint +pinpoint's +pinpointed +pinpointing +pinpoints +pinprick +pinprick's +pinpricks +pins +pinstripe +pinstripe's +pinstriped +pinstripes +pint +pint's +pinto +pinto's +pintoes +pintos +pints +pinup +pinup's +pinups +pinwheel +pinwheel's +pinwheeled +pinwheeling +pinwheels +pioneer +pioneer's +pioneered +pioneering +pioneers +pious +piously +pip +pip's +pipe +pipe's +piped +pipeline +pipeline's +pipelines +piper +piper's +pipers +pipes +piping +piping's +pipit +pipit's +pipits +pipped +pippin +pippin's +pipping +pippins +pips +pipsqueak +pipsqueak's +pipsqueaks +piquancy +piquancy's +piquant +pique +pique's +piqued +piques +piquing +piracy +piracy's +piranha +piranha's +piranhas +pirate +pirate's +pirated +pirates +piratical +pirating +pirouette +pirouette's +pirouetted +pirouettes +pirouetting +pis +piscatorial +piss +piss's +pissed +pisses +pissing +pistachio +pistachio's +pistachios +pistil +pistil's +pistillate +pistils +pistol +pistol's +pistols +piston +piston's +pistons +pit +pit's +pita +pita's +pitch +pitch's +pitchblende +pitchblende's +pitched +pitcher +pitcher's +pitchers +pitches +pitchfork +pitchfork's +pitchforked +pitchforking +pitchforks +pitching +pitchman +pitchman's +pitchmen +piteous +piteously +pitfall +pitfall's +pitfalls +pith +pith's +pithier +pithiest +pithily +pithy +pitiable +pitiably +pitied +pities +pitiful +pitifully +pitiless +pitilessly +piton +piton's +pitons +pits +pittance +pittance's +pittances +pitted +pitting +pituitaries +pituitary +pituitary's +pity +pity's +pitying +pivot +pivot's +pivotal +pivoted +pivoting +pivots +pixel +pixel's +pixels +pixie +pixie's +pixies +pixy +pixy's +pizazz +pizazz's +pizza +pizza's +pizzas +pizzazz +pizzazz's +pizzeria +pizzeria's +pizzerias +pizzicati +pizzicato +pizzicato's +pizzicatos +pj's +placard +placard's +placarded +placarding +placards +placate +placated +placates +placating +placation +placation's +place +place's +placebo +placebo's +placebos +placed +placeholder +placement +placement's +placements +placenta +placenta's +placentae +placental +placentals +placentas +placer +placer's +placers +places +placid +placidity +placidity's +placidly +placing +placket +placket's +plackets +plagiarism +plagiarism's +plagiarisms +plagiarist +plagiarist's +plagiarists +plagiarize +plagiarized +plagiarizes +plagiarizing +plague +plague's +plagued +plagues +plaguing +plaice +plaid +plaid's +plaids +plain +plain's +plainclothes +plainclothesman +plainclothesman's +plainclothesmen +plainer +plainest +plainly +plainness +plainness's +plains +plaint +plaint's +plaintiff +plaintiff's +plaintiffs +plaintive +plaintively +plaints +plait +plait's +plaited +plaiting +plaits +plan +plan's +planar +plane +plane's +planed +planes +planet +planet's +planetaria +planetarium +planetarium's +planetariums +planetary +planets +plangent +planing +plank +plank's +planked +planking +planking's +planks +plankton +plankton's +planned +planner +planner's +planners +planning +plannings +plans +plant +plant's +plantain +plantain's +plantains +plantation +plantation's +plantations +planted +planter +planter's +planters +planting +planting's +plantings +plants +plaque +plaque's +plaques +plasma +plasma's +plaster +plaster's +plasterboard +plasterboard's +plastered +plasterer +plasterer's +plasterers +plastering +plasters +plastic +plastic's +plasticity +plasticity's +plastics +plate +plate's +plateau +plateau's +plateaued +plateauing +plateaus +plateaux +plated +plateful +plateful's +platefuls +platelet +platelet's +platelets +platen +platen's +platens +plates +platform +platform's +platformed +platforming +platforms +plating +plating's +platinum +platinum's +platitude +platitude's +platitudes +platitudinous +platonic +platoon +platoon's +platooned +platooning +platoons +platter +platter's +platters +platypi +platypus +platypus's +platypuses +plaudit +plaudit's +plaudits +plausibility +plausibility's +plausible +plausibly +play +play's +playable +playact +playacted +playacting +playacting's +playacts +playback +playback's +playbacks +playbill +playbill's +playbills +playboy +playboy's +playboys +played +player +player's +players +playful +playfully +playfulness +playfulness's +playgoer +playgoer's +playgoers +playground +playground's +playgrounds +playhouse +playhouse's +playhouses +playing +playmate +playmate's +playmates +playoff +playoff's +playoffs +playpen +playpen's +playpens +playroom +playroom's +playrooms +plays +plaything +plaything's +playthings +playwright +playwright's +playwrights +plaza +plaza's +plazas +plea +plea's +plead +pleaded +pleader +pleader's +pleaders +pleading +pleads +pleas +pleasant +pleasanter +pleasantest +pleasantly +pleasantness +pleasantness's +pleasantries +pleasantry +pleasantry's +please +pleased +pleases +pleasing +pleasingly +pleasings +pleasurable +pleasurably +pleasure +pleasure's +pleasured +pleasures +pleasuring +pleat +pleat's +pleated +pleating +pleats +plebeian +plebeian's +plebeians +plebiscite +plebiscite's +plebiscites +plectra +plectrum +plectrum's +plectrums +pled +pledge +pledge's +pledged +pledges +pledging +plenaries +plenary +plenary's +plenipotentiaries +plenipotentiary +plenipotentiary's +plenitude +plenitude's +plenitudes +plenteous +plentiful +plentifully +plenty +plenty's +plethora +plethora's +pleurisy +pleurisy's +plexus +plexus's +plexuses +pliability +pliability's +pliable +pliancy +pliancy's +pliant +plied +pliers +pliers's +plies +plight +plight's +plighted +plighting +plights +plinth +plinth's +plinths +plod +plodded +plodder +plodder's +plodders +plodding +ploddings +plods +plop +plop's +plopped +plopping +plops +plot +plot's +plots +plotted +plotter +plotter's +plotters +plotting +plough +plough's +ploughed +ploughing +ploughs +ploughshare +ploughshare's +ploughshares +plover +plover's +plovers +plow +plow's +plowed +plowing +plowman +plowman's +plowmen +plows +plowshare +plowshare's +plowshares +ploy +ploy's +ploys +pluck +pluck's +plucked +pluckier +pluckiest +pluckiness +pluckiness's +plucking +plucks +plucky +plug +plug's +plugged +plugging +plugin +plugin's +plugins +plugs +plum +plum's +plumage +plumage's +plumb +plumb's +plumbed +plumber +plumber's +plumbers +plumbing +plumbing's +plumbs +plume +plume's +plumed +plumes +pluming +plummer +plummest +plummet +plummet's +plummeted +plummeting +plummets +plump +plump's +plumped +plumper +plumpest +plumping +plumpness +plumpness's +plumps +plums +plunder +plunder's +plundered +plunderer +plunderer's +plunderers +plundering +plunders +plunge +plunge's +plunged +plunger +plunger's +plungers +plunges +plunging +plunk +plunk's +plunked +plunking +plunks +pluperfect +pluperfect's +pluperfects +plural +plural's +pluralism +pluralism's +pluralistic +pluralities +plurality +plurality's +pluralize +pluralized +pluralizes +pluralizing +plurals +plus +plus's +pluses +plush +plush's +plusher +plushest +plushier +plushiest +plushy +plusses +plutocracies +plutocracy +plutocracy's +plutocrat +plutocrat's +plutocratic +plutocrats +plutonium +plutonium's +ply +ply's +plying +plywood +plywood's +pneumatic +pneumatically +pneumonia +pneumonia's +poach +poached +poacher +poacher's +poachers +poaches +poaching +pock +pock's +pocked +pocket +pocket's +pocketbook +pocketbook's +pocketbooks +pocketed +pocketful +pocketful's +pocketfuls +pocketing +pocketknife +pocketknife's +pocketknives +pockets +pocking +pockmark +pockmark's +pockmarked +pockmarking +pockmarks +pocks +pod +pod's +podcast +podded +podding +podia +podiatrist +podiatrist's +podiatrists +podiatry +podiatry's +podium +podium's +podiums +pods +poem +poem's +poems +poesy +poesy's +poet +poet's +poetess +poetess's +poetesses +poetic +poetical +poetically +poetry +poetry's +poets +pogrom +pogrom's +pogroms +poi +poi's +poignancy +poignancy's +poignant +poignantly +poinsettia +poinsettia's +poinsettias +point +point's +pointed +pointedly +pointer +pointer's +pointers +pointier +pointiest +pointillism +pointillism's +pointillist +pointillist's +pointillists +pointing +pointless +pointlessly +pointlessness +pointlessness's +points +pointy +poise +poise's +poised +poises +poising +poison +poison's +poisoned +poisoner +poisoner's +poisoners +poisoning +poisoning's +poisonings +poisonous +poisonously +poisons +poke +poke's +poked +poker +poker's +pokers +pokes +pokey +pokey's +pokeys +pokier +pokiest +poking +poky +pol +pol's +polar +polarities +polarity +polarity's +polarization +polarization's +polarize +polarized +polarizes +polarizing +pole +pole's +polecat +polecat's +polecats +poled +polemic +polemic's +polemical +polemics +poles +polestar +polestar's +polestars +police +police's +policed +policeman +policeman's +policemen +polices +policewoman +policewoman's +policewomen +policies +policing +policy +policy's +policyholder +policyholder's +policyholders +poling +polio +polio's +poliomyelitis +poliomyelitis's +polios +polish +polish's +polished +polisher +polisher's +polishers +polishes +polishing +polite +politely +politeness +politeness's +politer +politesse +politesse's +politest +politic +political +politically +politician +politician's +politicians +politicize +politicized +politicizes +politicizing +politico +politico's +politicoes +politicos +politics +politics's +polities +polity +polity's +polka +polka's +polkaed +polkaing +polkas +poll +poll's +polled +pollen +pollen's +pollinate +pollinated +pollinates +pollinating +pollination +pollination's +polling +polliwog +polliwog's +polliwogs +polls +pollster +pollster's +pollsters +pollutant +pollutant's +pollutants +pollute +polluted +polluter +polluter's +polluters +pollutes +polluting +pollution +pollution's +pollywog +pollywog's +pollywogs +polo +polo's +polonaise +polonaise's +polonaises +polonium +polonium's +pols +poltergeist +poltergeist's +poltergeists +poltroon +poltroon's +poltroons +polyester +polyester's +polyesters +polyethylene +polyethylene's +polygamist +polygamist's +polygamists +polygamous +polygamy +polygamy's +polyglot +polyglot's +polyglots +polygon +polygon's +polygonal +polygons +polygraph +polygraph's +polygraphed +polygraphing +polygraphs +polyhedra +polyhedron +polyhedron's +polyhedrons +polymath +polymath's +polymaths +polymer +polymer's +polymeric +polymerization +polymerization's +polymers +polymorphic +polynomial +polynomial's +polynomials +polyp +polyp's +polyphonic +polyphony +polyphony's +polyps +polystyrene +polystyrene's +polysyllabic +polysyllable +polysyllable's +polysyllables +polytechnic +polytechnic's +polytechnics +polytheism +polytheism's +polytheist +polytheist's +polytheistic +polytheists +polythene +polyunsaturated +pomade +pomade's +pomaded +pomades +pomading +pomegranate +pomegranate's +pomegranates +pommel +pommel's +pommeled +pommeling +pommelled +pommelling +pommels +pomp +pomp's +pompadour +pompadour's +pompadoured +pompadours +pompom +pompom's +pompoms +pompon +pompon's +pompons +pomposity +pomposity's +pompous +pompously +pompousness +pompousness's +poncho +poncho's +ponchos +pond +pond's +ponder +pondered +pondering +ponderous +ponderously +ponders +ponds +pone +pone's +pones +poniard +poniard's +poniards +ponies +pontiff +pontiff's +pontiffs +pontifical +pontificate +pontificate's +pontificated +pontificates +pontificating +pontoon +pontoon's +pontoons +pony +pony's +ponytail +ponytail's +ponytails +pooch +pooch's +pooched +pooches +pooching +poodle +poodle's +poodles +pooh +pooh's +poohed +poohing +poohs +pool +pool's +pooled +pooling +pools +poop +poop's +pooped +pooping +poops +poor +poorer +poorest +poorhouse +poorhouse's +poorhouses +poorly +pop +pop's +popcorn +popcorn's +pope +pope's +popes +popgun +popgun's +popguns +popinjay +popinjay's +popinjays +poplar +poplar's +poplars +poplin +poplin's +popover +popover's +popovers +poppa +poppa's +poppas +popped +poppies +popping +poppy +poppy's +poppycock +poppycock's +pops +populace +populace's +populaces +popular +popularity +popularity's +popularization +popularization's +popularize +popularized +popularizes +popularizing +popularly +populate +populated +populates +populating +population +population's +populations +populism +populism's +populist +populist's +populists +populous +porcelain +porcelain's +porch +porch's +porches +porcine +porcupine +porcupine's +porcupines +pore +pore's +pored +pores +poring +pork +pork's +porn +porn's +porno +porno's +pornographer +pornographer's +pornographers +pornographic +pornography +pornography's +porosity +porosity's +porous +porphyry +porphyry's +porpoise +porpoise's +porpoised +porpoises +porpoising +porridge +porridge's +porringer +porringer's +porringers +port +port's +portability +portability's +portable +portable's +portables +portage +portage's +portaged +portages +portaging +portal +portal's +portals +portcullis +portcullis's +portcullises +ported +portend +portended +portending +portends +portent +portent's +portentous +portentously +portents +porter +porter's +porterhouse +porterhouse's +porterhouses +porters +portfolio +portfolio's +portfolios +porthole +porthole's +portholes +portico +portico's +porticoes +porticos +porting +portion +portion's +portioned +portioning +portions +portlier +portliest +portliness +portliness's +portly +portmanteau +portmanteau's +portmanteaus +portmanteaux +portrait +portrait's +portraitist +portraitist's +portraitists +portraits +portraiture +portraiture's +portray +portrayal +portrayal's +portrayals +portrayed +portraying +portrays +ports +pose +pose's +posed +poser +poser's +posers +poses +poseur +poseur's +poseurs +posh +posher +poshest +posies +posing +posit +posited +positing +position +position's +positional +positioned +positioning +positions +positive +positive's +positively +positives +positivism +positron +positron's +positrons +posits +posse +posse's +posses +possess +possessed +possesses +possessing +possession +possession's +possessions +possessive +possessive's +possessively +possessiveness +possessiveness's +possessives +possessor +possessor's +possessors +possibilities +possibility +possibility's +possible +possible's +possibles +possibly +possum +possum's +possums +post +post's +postage +postage's +postal +postbox +postcard +postcard's +postcards +postcode +postcodes +postdate +postdated +postdates +postdating +postdoc +postdoctoral +posted +poster +poster's +posterior +posterior's +posteriors +posterity +posterity's +posters +postgraduate +postgraduate's +postgraduates +posthaste +posthumous +posthumously +posting +postlude +postlude's +postludes +postman +postman's +postmark +postmark's +postmarked +postmarking +postmarks +postmaster +postmaster's +postmasters +postmen +postmistress +postmistress's +postmistresses +postmodern +postmortem +postmortem's +postmortems +postnatal +postoperative +postpaid +postpartum +postpone +postponed +postponement +postponement's +postponements +postpones +postponing +posts +postscript +postscript's +postscripts +postulate +postulate's +postulated +postulates +postulating +posture +posture's +postured +postures +posturing +postwar +posy +posy's +pot +pot's +potable +potable's +potables +potash +potash's +potassium +potassium's +potato +potato's +potatoes +potbellied +potbellies +potbelly +potbelly's +potboiler +potboiler's +potboilers +potency +potency's +potent +potentate +potentate's +potentates +potential +potential's +potentialities +potentiality +potentiality's +potentially +potentials +potful +potful's +potfuls +potholder +potholder's +potholders +pothole +pothole's +potholes +pothook +pothook's +pothooks +potion +potion's +potions +potluck +potluck's +potlucks +potpie +potpie's +potpies +potpourri +potpourri's +potpourris +pots +potsherd +potsherd's +potsherds +potshot +potshot's +potshots +pottage +pottage's +potted +potter +potter's +pottered +potteries +pottering +potters +pottery +pottery's +pottier +potties +pottiest +potting +potty +potty's +pouch +pouch's +pouched +pouches +pouching +poultice +poultice's +poulticed +poultices +poulticing +poultry +poultry's +pounce +pounce's +pounced +pounces +pouncing +pound +pound's +pounded +pounding +pounds +pour +poured +pouring +pours +pout +pout's +pouted +pouting +pouts +poverty +poverty's +powder +powder's +powdered +powdering +powders +powdery +power +power's +powerboat +powerboat's +powerboats +powered +powerful +powerfully +powerhouse +powerhouse's +powerhouses +powering +powerless +powerlessly +powerlessness +powerlessness's +powers +powwow +powwow's +powwowed +powwowing +powwows +pox +pox's +poxes +practicability +practicability's +practicable +practicably +practical +practical's +practicalities +practicality +practicality's +practically +practicals +practice +practice's +practiced +practices +practicing +practise +practise's +practised +practises +practising +practitioner +practitioner's +practitioners +pragmatic +pragmatic's +pragmatically +pragmatics +pragmatism +pragmatism's +pragmatist +pragmatist's +pragmatists +prairie +prairie's +prairies +praise +praise's +praised +praises +praiseworthiness +praiseworthiness's +praiseworthy +praising +praline +praline's +pralines +pram +prance +prance's +pranced +prancer +prancer's +prancers +prances +prancing +prank +prank's +pranks +prankster +prankster's +pranksters +prate +prate's +prated +prates +pratfall +pratfall's +pratfalls +prating +prattle +prattle's +prattled +prattles +prattling +prawn +prawn's +prawned +prawning +prawns +pray +prayed +prayer +prayer's +prayers +praying +prays +preach +preached +preacher +preacher's +preachers +preaches +preachier +preachiest +preaching +preachy +preamble +preamble's +preambled +preambles +preambling +prearrange +prearranged +prearrangement +prearrangement's +prearranges +prearranging +precarious +precariously +precaution +precaution's +precautionary +precautions +precede +preceded +precedence +precedence's +precedent +precedent's +precedents +precedes +preceding +precept +precept's +preceptor +preceptor's +preceptors +precepts +precinct +precinct's +precincts +preciosity +preciosity's +precious +preciously +preciousness +preciousness's +precipice +precipice's +precipices +precipitant +precipitant's +precipitants +precipitate +precipitate's +precipitated +precipitately +precipitates +precipitating +precipitation +precipitation's +precipitations +precipitous +precipitously +precise +precisely +preciseness +preciseness's +preciser +precises +precisest +precision +precision's +preclude +precluded +precludes +precluding +preclusion +preclusion's +precocious +precociously +precociousness +precociousness's +precocity +precocity's +precognition +preconceive +preconceived +preconceives +preconceiving +preconception +preconception's +preconceptions +precondition +precondition's +preconditioned +preconditioning +preconditions +precursor +precursor's +precursors +predate +predated +predates +predating +predator +predator's +predators +predatory +predecease +predeceased +predeceases +predeceasing +predecessor +predecessor's +predecessors +predefined +predestination +predestination's +predestine +predestined +predestines +predestining +predetermination +predetermination's +predetermine +predetermined +predetermines +predetermining +predicament +predicament's +predicaments +predicate +predicate's +predicated +predicates +predicating +predication +predication's +predicative +predict +predictability +predictable +predictably +predicted +predicting +prediction +prediction's +predictions +predictive +predictor +predicts +predilection +predilection's +predilections +predispose +predisposed +predisposes +predisposing +predisposition +predisposition's +predispositions +predominance +predominance's +predominant +predominantly +predominate +predominated +predominates +predominating +preeminence +preeminence's +preeminent +preeminently +preempt +preempted +preempting +preemption +preemption's +preemptive +preemptively +preempts +preen +preened +preening +preens +preexist +preexisted +preexisting +preexists +prefab +prefab's +prefabbed +prefabbing +prefabricate +prefabricated +prefabricates +prefabricating +prefabrication +prefabrication's +prefabs +preface +preface's +prefaced +prefaces +prefacing +prefatory +prefect +prefect's +prefects +prefecture +prefecture's +prefectures +prefer +preferable +preferably +preference +preference's +preferences +preferential +preferentially +preferment +preferment's +preferred +preferring +prefers +prefigure +prefigured +prefigures +prefiguring +prefix +prefix's +prefixed +prefixes +prefixing +pregnancies +pregnancy +pregnancy's +pregnant +preheat +preheated +preheating +preheats +prehensile +prehistoric +prehistory +prehistory's +prejudge +prejudged +prejudges +prejudging +prejudgment +prejudgment's +prejudgments +prejudice +prejudice's +prejudiced +prejudices +prejudicial +prejudicing +prelate +prelate's +prelates +preliminaries +preliminary +preliminary's +prelude +prelude's +preludes +premarital +premature +prematurely +premeditate +premeditated +premeditates +premeditating +premeditation +premeditation's +premenstrual +premier +premier's +premiere +premiere's +premiered +premieres +premiering +premiers +premise +premise's +premised +premises +premising +premiss +premiss's +premisses +premium +premium's +premiums +premonition +premonition's +premonitions +premonitory +prenatal +preoccupation +preoccupation's +preoccupations +preoccupied +preoccupies +preoccupy +preoccupying +preordain +preordained +preordaining +preordains +prep +prep's +prepackage +prepackaged +prepackages +prepackaging +prepaid +preparation +preparation's +preparations +preparatory +prepare +prepared +preparedness +preparedness's +prepares +preparing +prepay +prepaying +prepayment +prepayment's +prepayments +prepays +preponderance +preponderance's +preponderances +preponderant +preponderate +preponderated +preponderates +preponderating +preposition +preposition's +prepositional +prepositions +prepossess +prepossessed +prepossesses +prepossessing +preposterous +preposterously +prepped +preppie +preppie's +preppier +preppies +preppiest +prepping +preppy +preppy's +preps +prequel +prequel's +prequels +prerecord +prerecorded +prerecording +prerecords +preregister +preregistered +preregistering +preregisters +preregistration +preregistration's +prerequisite +prerequisite's +prerequisites +prerogative +prerogative's +prerogatives +presage +presage's +presaged +presages +presaging +preschool +preschool's +preschooler +preschooler's +preschoolers +preschools +prescience +prescience's +prescient +prescribe +prescribed +prescribes +prescribing +prescription +prescription's +prescriptions +prescriptive +presence +presence's +presences +present +present's +presentable +presentation +presentation's +presentations +presented +presenter +presentiment +presentiment's +presentiments +presenting +presently +presents +preservation +preservation's +preservative +preservative's +preservatives +preserve +preserve's +preserved +preserver +preserver's +preservers +preserves +preserving +preset +presets +presetting +preshrank +preshrink +preshrinking +preshrinks +preshrunk +preshrunken +preside +presided +presidencies +presidency +presidency's +president +president's +presidential +presidents +presides +presiding +press +press's +pressed +presses +pressing +pressing's +pressings +pressman +pressman's +pressmen +pressure +pressure's +pressured +pressures +pressuring +pressurization +pressurization's +pressurize +pressurized +pressurizes +pressurizing +prestige +prestige's +prestigious +presto +presto's +prestos +presumable +presumably +presume +presumed +presumes +presuming +presumption +presumption's +presumptions +presumptive +presumptuous +presumptuously +presumptuousness +presumptuousness's +presuppose +presupposed +presupposes +presupposing +presupposition +presupposition's +presuppositions +preteen +preteen's +preteens +pretence +pretence's +pretences +pretend +pretended +pretender +pretender's +pretenders +pretending +pretends +pretense +pretense's +pretenses +pretension +pretension's +pretensions +pretentious +pretentiously +pretentiousness +pretentiousness's +preterit +preterit's +preterite +preterite's +preterites +preterits +preternatural +pretext +pretext's +pretexts +prettied +prettier +pretties +prettiest +prettified +prettifies +prettify +prettifying +prettily +prettiness +prettiness's +pretty +pretty's +prettying +pretzel +pretzel's +pretzels +prevail +prevailed +prevailing +prevails +prevalence +prevalence's +prevalent +prevaricate +prevaricated +prevaricates +prevaricating +prevarication +prevarication's +prevarications +prevaricator +prevaricator's +prevaricators +prevent +preventable +preventative +preventative's +preventatives +prevented +preventible +preventing +prevention +prevention's +preventive +preventive's +preventives +prevents +preview +preview's +previewed +previewer +previewers +previewing +previews +previous +previously +prevue +prevue's +prevues +prewar +prey +prey's +preyed +preying +preys +price +price's +priced +priceless +prices +pricey +pricier +priciest +pricing +prick +prick's +pricked +pricking +prickle +prickle's +prickled +prickles +pricklier +prickliest +prickling +prickly +pricks +pricy +pride +pride's +prided +prides +priding +pried +pries +priest +priest's +priestess +priestess's +priestesses +priesthood +priesthood's +priesthoods +priestlier +priestliest +priestly +priests +prig +prig's +priggish +prigs +prim +primacy +primacy's +primaeval +primal +primaries +primarily +primary +primary's +primate +primate's +primates +prime +prime's +primed +primer +primer's +primers +primes +primeval +priming +primitive +primitive's +primitively +primitives +primly +primmer +primmest +primness +primness's +primogeniture +primogeniture's +primordial +primp +primped +primping +primps +primrose +primrose's +primroses +prince +prince's +princelier +princeliest +princely +princes +princess +princess's +princesses +principal +principal's +principalities +principality +principality's +principally +principals +principle +principle's +principled +principles +print +print's +printable +printed +printer +printer's +printers +printing +printing's +printings +printout +printout's +printouts +prints +prior +prior's +prioress +prioress's +prioresses +priories +priorities +prioritize +prioritized +prioritizes +prioritizing +priority +priority's +priors +priory +priory's +prism +prism's +prismatic +prisms +prison +prison's +prisoner +prisoner's +prisoners +prisons +prissier +prissiest +prissiness +prissiness's +prissy +pristine +prithee +privacy +privacy's +private +private's +privateer +privateer's +privateers +privately +privater +privates +privatest +privation +privation's +privations +privatization +privatization's +privatizations +privatize +privatized +privatizes +privatizing +privet +privet's +privets +privier +privies +priviest +privilege +privilege's +privileged +privileges +privileging +privy +privy's +prize +prize's +prized +prizefight +prizefight's +prizefighter +prizefighter's +prizefighters +prizefighting +prizefights +prizes +prizing +pro +pro's +proactive +probabilistic +probabilities +probability +probability's +probable +probable's +probables +probably +probate +probate's +probated +probates +probating +probation +probation's +probationary +probationer +probationer's +probationers +probe +probe's +probed +probes +probing +probity +probity's +problem +problem's +problematic +problematical +problematically +problems +proboscides +proboscis +proboscis's +proboscises +procedural +procedure +procedure's +procedures +proceed +proceeded +proceeding +proceeding's +proceedings +proceeds +proceeds's +process +process's +processed +processes +processing +procession +procession's +processional +processional's +processionals +processioned +processioning +processions +processor +processor's +processors +proclaim +proclaimed +proclaiming +proclaims +proclamation +proclamation's +proclamations +proclivities +proclivity +proclivity's +procrastinate +procrastinated +procrastinates +procrastinating +procrastination +procrastination's +procrastinator +procrastinator's +procrastinators +procreate +procreated +procreates +procreating +procreation +procreation's +procreative +proctor +proctor's +proctored +proctoring +proctors +procurator +procurator's +procurators +procure +procured +procurement +procurement's +procurer +procurer's +procurers +procures +procuring +prod +prod's +prodded +prodding +prodigal +prodigal's +prodigality +prodigality's +prodigals +prodigies +prodigious +prodigiously +prodigy +prodigy's +prods +produce +produce's +produced +producer +producer's +producers +produces +producing +product +product's +production +production's +productions +productive +productively +productiveness +productiveness's +productivity +productivity's +products +prof +prof's +profanation +profanation's +profanations +profane +profaned +profanely +profanes +profaning +profanities +profanity +profanity's +profess +professed +professes +professing +profession +profession's +professional +professional's +professionalism +professionalism's +professionally +professionals +professions +professor +professor's +professorial +professors +professorship +professorship's +professorships +proffer +proffer's +proffered +proffering +proffers +proficiency +proficiency's +proficient +proficient's +proficiently +proficients +profile +profile's +profiled +profiles +profiling +profit +profit's +profitability +profitability's +profitable +profitably +profited +profiteer +profiteer's +profiteered +profiteering +profiteers +profiting +profits +profligacy +profligacy's +profligate +profligate's +profligates +proforma +profound +profounder +profoundest +profoundly +profs +profundities +profundity +profundity's +profuse +profusely +profusion +profusion's +profusions +progenitor +progenitor's +progenitors +progeny +progeny's +progesterone +progesterone's +prognoses +prognosis +prognosis's +prognostic +prognostic's +prognosticate +prognosticated +prognosticates +prognosticating +prognostication +prognostication's +prognostications +prognosticator +prognosticator's +prognosticators +prognostics +program +program's +programed +programer +programer's +programers +programing +programmable +programmable's +programmables +programmed +programmer +programmer's +programmers +programming +programming's +programs +progress +progress's +progressed +progresses +progressing +progression +progression's +progressions +progressive +progressive's +progressively +progressives +prohibit +prohibited +prohibiting +prohibition +prohibition's +prohibitionist +prohibitionist's +prohibitionists +prohibitions +prohibitive +prohibitively +prohibitory +prohibits +project +project's +projected +projectile +projectile's +projectiles +projecting +projection +projection's +projectionist +projectionist's +projectionists +projections +projector +projector's +projectors +projects +proletarian +proletarian's +proletarians +proletariat +proletariat's +proliferate +proliferated +proliferates +proliferating +proliferation +proliferation's +prolific +prolifically +prolix +prolixity +prolixity's +prolog +prolog's +prologs +prologue +prologue's +prologues +prolong +prolongation +prolongation's +prolongations +prolonged +prolonging +prolongs +prom +prom's +promenade +promenade's +promenaded +promenades +promenading +prominence +prominence's +prominent +prominently +promiscuity +promiscuity's +promiscuous +promiscuously +promise +promise's +promised +promises +promising +promisingly +promissory +promo +promo's +promontories +promontory +promontory's +promos +promote +promoted +promoter +promoter's +promoters +promotes +promoting +promotion +promotion's +promotional +promotions +prompt +prompt's +prompted +prompter +prompter's +prompters +promptest +prompting +prompting's +promptings +promptly +promptness +promptness's +prompts +proms +promulgate +promulgated +promulgates +promulgating +promulgation +promulgation's +prone +proneness +proneness's +prong +prong's +pronged +pronghorn +pronghorn's +pronghorns +prongs +pronoun +pronoun's +pronounce +pronounceable +pronounced +pronouncement +pronouncement's +pronouncements +pronounces +pronouncing +pronouns +pronto +pronunciation +pronunciation's +pronunciations +proof +proof's +proofed +proofing +proofread +proofreader +proofreader's +proofreaders +proofreading +proofreads +proofs +prop +prop's +propaganda +propaganda's +propagandist +propagandist's +propagandists +propagandize +propagandized +propagandizes +propagandizing +propagate +propagated +propagates +propagating +propagation +propagation's +propane +propane's +propel +propellant +propellant's +propellants +propelled +propellent +propellent's +propellents +propeller +propeller's +propellers +propelling +propels +propensities +propensity +propensity's +proper +proper's +properer +properest +properly +propertied +properties +property +property's +prophecies +prophecy +prophecy's +prophesied +prophesies +prophesy +prophesy's +prophesying +prophet +prophet's +prophetess +prophetess's +prophetesses +prophetic +prophetically +prophets +prophylactic +prophylactic's +prophylactics +prophylaxis +prophylaxis's +propinquity +propinquity's +propitiate +propitiated +propitiates +propitiating +propitiation +propitiation's +propitiatory +propitious +proponent +proponent's +proponents +proportion +proportion's +proportional +proportionality +proportionally +proportionals +proportionate +proportionately +proportioned +proportioning +proportions +proposal +proposal's +proposals +propose +proposed +proposer +proposes +proposing +proposition +proposition's +propositional +propositioned +propositioning +propositions +propound +propounded +propounding +propounds +propped +propping +proprietaries +proprietary +proprietary's +proprietor +proprietor's +proprietors +proprietorship +proprietorship's +proprietress +proprietress's +proprietresses +propriety +propriety's +props +propulsion +propulsion's +propulsive +prorate +prorated +prorates +prorating +pros +prosaic +prosaically +proscenia +proscenium +proscenium's +prosceniums +proscribe +proscribed +proscribes +proscribing +proscription +proscription's +proscriptions +prose +prose's +prosecute +prosecuted +prosecutes +prosecuting +prosecution +prosecution's +prosecutions +prosecutor +prosecutor's +prosecutors +proselyte +proselyte's +proselyted +proselytes +proselyting +proselytize +proselytized +proselytizes +proselytizing +prosier +prosiest +prosodies +prosody +prosody's +prospect +prospect's +prospected +prospecting +prospective +prospector +prospector's +prospectors +prospects +prospectus +prospectus's +prospectuses +prosper +prospered +prospering +prosperity +prosperity's +prosperous +prosperously +prospers +prostate +prostate's +prostates +prostheses +prosthesis +prosthesis's +prosthetic +prostitute +prostitute's +prostituted +prostitutes +prostituting +prostitution +prostitution's +prostrate +prostrated +prostrates +prostrating +prostration +prostration's +prostrations +prosy +protagonist +protagonist's +protagonists +protean +protect +protected +protecting +protection +protection's +protections +protective +protectively +protectiveness +protectiveness's +protector +protector's +protectorate +protectorate's +protectorates +protectors +protects +protein +protein's +proteins +protest +protest's +protestant +protestants +protestation +protestation's +protestations +protested +protester +protester's +protesters +protesting +protestor +protestor's +protestors +protests +protocol +protocol's +protocols +proton +proton's +protons +protoplasm +protoplasm's +protoplasmic +prototype +prototype's +prototypes +prototyping +protozoa +protozoan +protozoan's +protozoans +protozoon +protozoon's +protract +protracted +protracting +protraction +protraction's +protractor +protractor's +protractors +protracts +protrude +protruded +protrudes +protruding +protrusion +protrusion's +protrusions +protuberance +protuberance's +protuberances +protuberant +protégé +protégé's +protégés +proud +prouder +proudest +proudly +provable +provably +prove +proved +proven +provenance +provenance's +provender +provender's +proverb +proverb's +proverbial +proverbially +proverbs +proves +provide +provided +providence +providence's +provident +providential +providentially +providently +provider +provider's +providers +provides +providing +province +province's +provinces +provincial +provincial's +provincialism +provincialism's +provincials +proving +provision +provision's +provisional +provisionally +provisioned +provisioning +provisions +proviso +proviso's +provisoes +provisos +provocation +provocation's +provocations +provocative +provocatively +provoke +provoked +provokes +provoking +provost +provost's +provosts +prow +prow's +prowess +prowess's +prowl +prowl's +prowled +prowler +prowler's +prowlers +prowling +prowls +prows +proxies +proximity +proximity's +proxy +proxy's +prude +prude's +prudence +prudence's +prudent +prudential +prudently +prudery +prudery's +prudes +prudish +prudishly +prune +prune's +pruned +prunes +pruning +prurience +prurience's +prurient +pry +pry's +prying +précis +précis's +précised +précising +psalm +psalm's +psalmist +psalmist's +psalmists +psalms +pseudo +pseudonym +pseudonym's +pseudonyms +pshaw +pshaw's +pshaws +psoriasis +psoriasis's +psst +psych +psych's +psyche +psyche's +psyched +psychedelic +psychedelic's +psychedelics +psyches +psychiatric +psychiatrist +psychiatrist's +psychiatrists +psychiatry +psychiatry's +psychic +psychic's +psychical +psychically +psychics +psyching +psycho +psycho's +psychoanalysis +psychoanalysis's +psychoanalyst +psychoanalyst's +psychoanalysts +psychoanalyze +psychoanalyzed +psychoanalyzes +psychoanalyzing +psychobabble +psychobabble's +psychogenic +psychokinesis +psychological +psychologically +psychologies +psychologist +psychologist's +psychologists +psychology +psychology's +psychopath +psychopath's +psychopathic +psychopaths +psychos +psychoses +psychosis +psychosis's +psychosomatic +psychotherapies +psychotherapist +psychotherapist's +psychotherapists +psychotherapy +psychotherapy's +psychotic +psychotic's +psychotics +psychs +ptarmigan +ptarmigan's +ptarmigans +pterodactyl +pterodactyl's +pterodactyls +ptomaine +ptomaine's +ptomaines +pub +pub's +puberty +puberty's +pubescence +pubescence's +pubescent +pubic +public +public's +publican +publican's +publicans +publication +publication's +publications +publicist +publicist's +publicists +publicity +publicity's +publicize +publicized +publicizes +publicizing +publicly +publish +publishable +published +publisher +publisher's +publishers +publishes +publishing +publishing's +pubs +puck +puck's +pucker +pucker's +puckered +puckering +puckers +puckish +pucks +pudding +pudding's +puddings +puddle +puddle's +puddled +puddles +puddling +pudgier +pudgiest +pudgy +pueblo +pueblo's +pueblos +puerile +puerility +puerility's +puff +puff's +puffball +puffball's +puffballs +puffed +puffer +puffier +puffiest +puffin +puffin's +puffiness +puffiness's +puffing +puffins +puffs +puffy +pug +pug's +pugilism +pugilism's +pugilist +pugilist's +pugilistic +pugilists +pugnacious +pugnaciously +pugnacity +pugnacity's +pugs +puke +puke's +puked +pukes +puking +pulchritude +pulchritude's +pull +pull's +pullback +pullback's +pullbacks +pulled +puller +puller's +pullers +pullet +pullet's +pullets +pulley +pulley's +pulleys +pulling +pullout +pullout's +pullouts +pullover +pullover's +pullovers +pulls +pulmonary +pulp +pulp's +pulped +pulpier +pulpiest +pulping +pulpit +pulpit's +pulpits +pulps +pulpy +pulsar +pulsar's +pulsars +pulsate +pulsated +pulsates +pulsating +pulsation +pulsation's +pulsations +pulse +pulse's +pulsed +pulses +pulsing +pulverization +pulverization's +pulverize +pulverized +pulverizes +pulverizing +puma +puma's +pumas +pumice +pumice's +pumices +pummel +pummeled +pummeling +pummelled +pummelling +pummels +pump +pump's +pumped +pumpernickel +pumpernickel's +pumping +pumpkin +pumpkin's +pumpkins +pumps +pun +pun's +punch +punch's +punched +punches +punchier +punchiest +punching +punchline +punchy +punctilious +punctiliously +punctual +punctuality +punctuality's +punctually +punctuate +punctuated +punctuates +punctuating +punctuation +punctuation's +puncture +puncture's +punctured +punctures +puncturing +pundit +pundit's +pundits +pungency +pungency's +pungent +pungently +punier +puniest +punish +punishable +punished +punishes +punishing +punishment +punishment's +punishments +punitive +punk +punk's +punker +punkest +punks +punned +punning +puns +punster +punster's +punsters +punt +punt's +punted +punter +punter's +punters +punting +punts +puny +pup +pup's +pupa +pupa's +pupae +pupal +pupas +pupil +pupil's +pupils +pupped +puppet +puppet's +puppeteer +puppeteer's +puppeteers +puppetry +puppetry's +puppets +puppies +pupping +puppy +puppy's +pups +purblind +purchasable +purchase +purchase's +purchased +purchaser +purchaser's +purchasers +purchases +purchasing +pure +purebred +purebred's +purebreds +puree +puree's +pureed +pureeing +purees +purely +pureness +pureness's +purer +purest +purgative +purgative's +purgatives +purgatorial +purgatories +purgatory +purgatory's +purge +purge's +purged +purges +purging +purification +purification's +purified +purifier +purifier's +purifiers +purifies +purify +purifying +purism +purism's +purist +purist's +purists +puritan +puritan's +puritanical +puritanically +puritanism +puritanism's +puritans +purity +purity's +purl +purl's +purled +purling +purloin +purloined +purloining +purloins +purls +purple +purple's +purpler +purples +purplest +purplish +purport +purport's +purported +purportedly +purporting +purports +purpose +purpose's +purposed +purposeful +purposefully +purposeless +purposely +purposes +purposing +purr +purr's +purred +purring +purrs +purse +purse's +pursed +purser +purser's +pursers +purses +pursing +pursuance +pursuance's +pursuant +pursue +pursued +pursuer +pursuer's +pursuers +pursues +pursuing +pursuit +pursuit's +pursuits +purulence +purulence's +purulent +purvey +purveyed +purveying +purveyor +purveyor's +purveyors +purveys +purview +purview's +pus +pus's +push +push's +pushcart +pushcart's +pushcarts +pushed +pusher +pusher's +pushers +pushes +pushier +pushiest +pushiness +pushiness's +pushing +pushover +pushover's +pushovers +pushup +pushup's +pushups +pushy +pusillanimity +pusillanimity's +pusillanimous +puss +puss's +pusses +pussier +pussies +pussiest +pussy +pussy's +pussycat +pussycat's +pussycats +pussyfoot +pussyfooted +pussyfooting +pussyfoots +pustule +pustule's +pustules +put +put's +putative +putrefaction +putrefaction's +putrefied +putrefies +putrefy +putrefying +putrescence +putrescence's +putrescent +putrid +puts +putsch +putsch's +putsches +putt +putt's +putted +putter +putter's +puttered +puttering +putters +puttied +putties +putting +putts +putty +putty's +puttying +puzzle +puzzle's +puzzled +puzzlement +puzzlement's +puzzler +puzzler's +puzzlers +puzzles +puzzling +pygmies +pygmy +pygmy's +pylon +pylon's +pylons +pyorrhea +pyorrhea's +pyramid +pyramid's +pyramidal +pyramided +pyramiding +pyramids +pyre +pyre's +pyres +pyrite +pyrite's +pyromania +pyromania's +pyromaniac +pyromaniac's +pyromaniacs +pyrotechnic +pyrotechnics +pyrotechnics's +python +python's +pythons +pyx +pyx's +pyxes +q +qua +quack +quack's +quacked +quackery +quackery's +quacking +quacks +quad +quad's +quadrangle +quadrangle's +quadrangles +quadrangular +quadrant +quadrant's +quadrants +quadraphonic +quadratic +quadrature +quadrennial +quadriceps +quadriceps's +quadricepses +quadrilateral +quadrilateral's +quadrilaterals +quadrille +quadrille's +quadrilles +quadriphonic +quadriplegia +quadriplegia's +quadriplegic +quadriplegic's +quadriplegics +quadruped +quadruped's +quadrupeds +quadruple +quadruple's +quadrupled +quadruples +quadruplet +quadruplet's +quadruplets +quadruplicate +quadruplicate's +quadruplicated +quadruplicates +quadruplicating +quadrupling +quads +quaff +quaff's +quaffed +quaffing +quaffs +quagmire +quagmire's +quagmires +quahaug +quahaug's +quahaugs +quahog +quahog's +quahogs +quail +quail's +quailed +quailing +quails +quaint +quainter +quaintest +quaintly +quaintness +quaintness's +quake +quake's +quaked +quakes +quaking +qualification +qualification's +qualifications +qualified +qualifier +qualifier's +qualifiers +qualifies +qualify +qualifying +qualitative +qualitatively +qualities +quality +quality's +qualm +qualm's +qualms +quandaries +quandary +quandary's +quanta +quantified +quantifier +quantifier's +quantifiers +quantifies +quantify +quantifying +quantitative +quantities +quantity +quantity's +quantum +quantum's +quarantine +quarantine's +quarantined +quarantines +quarantining +quark +quark's +quarks +quarrel +quarrel's +quarreled +quarreling +quarrelled +quarrelling +quarrels +quarrelsome +quarried +quarries +quarry +quarry's +quarrying +quart +quart's +quarter +quarter's +quarterback +quarterback's +quarterbacked +quarterbacking +quarterbacks +quarterdeck +quarterdeck's +quarterdecks +quartered +quarterfinal +quarterfinal's +quarterfinals +quartering +quarterlies +quarterly +quarterly's +quartermaster +quartermaster's +quartermasters +quarters +quartet +quartet's +quartets +quartette +quartette's +quartettes +quarto +quarto's +quartos +quarts +quartz +quartz's +quasar +quasar's +quasars +quash +quashed +quashes +quashing +quasi +quatrain +quatrain's +quatrains +quaver +quaver's +quavered +quavering +quavers +quavery +quay +quay's +quays +queasier +queasiest +queasily +queasiness +queasiness's +queasy +queen +queen's +queened +queening +queenlier +queenliest +queenly +queens +queer +queer's +queered +queerer +queerest +queering +queerly +queerness +queerness's +queers +quell +quelled +quelling +quells +quench +quenched +quenches +quenching +queried +queries +querulous +querulously +query +query's +querying +quest +quest's +quested +questing +question +question's +questionable +questionably +questioned +questioner +questioner's +questioners +questioning +questioningly +questionnaire +questionnaire's +questionnaires +questions +quests +queue +queue's +queued +queues +queuing +quibble +quibble's +quibbled +quibbler +quibbler's +quibblers +quibbles +quibbling +quiche +quiche's +quiches +quick +quick's +quicken +quickened +quickening +quickens +quicker +quickest +quickie +quickie's +quickies +quicklime +quicklime's +quickly +quickness +quickness's +quicksand +quicksand's +quicksands +quicksilver +quicksilver's +quid +quid's +quids +quiescence +quiescence's +quiescent +quiet +quiet's +quieted +quieter +quietest +quieting +quietly +quietness +quietness's +quiets +quietude +quietude's +quietus +quietus's +quietuses +quill +quill's +quills +quilt +quilt's +quilted +quilter +quilter's +quilters +quilting +quilting's +quilts +quince +quince's +quinces +quinine +quinine's +quintessence +quintessence's +quintessences +quintessential +quintet +quintet's +quintets +quintuple +quintuple's +quintupled +quintuples +quintuplet +quintuplet's +quintuplets +quintupling +quip +quip's +quipped +quipping +quips +quire +quire's +quires +quirk +quirk's +quirked +quirkier +quirkiest +quirking +quirks +quirky +quisling +quisling's +quislings +quit +quite +quits +quitted +quitter +quitter's +quitters +quitting +quiver +quiver's +quivered +quivering +quivers +quixotic +quiz +quiz's +quizzed +quizzes +quizzical +quizzically +quizzing +quoit +quoit's +quoited +quoiting +quoits +quondam +quorum +quorum's +quorums +quota +quota's +quotable +quotas +quotation +quotation's +quotations +quote +quote's +quoted +quotes +quoth +quotidian +quotient +quotient's +quotients +quoting +r +rabbi +rabbi's +rabbinate +rabbinate's +rabbinical +rabbis +rabbit +rabbit's +rabbited +rabbiting +rabbits +rabble +rabble's +rabbles +rabid +rabies +rabies's +raccoon +raccoon's +raccoons +race +race's +racecourse +racecourse's +racecourses +raced +racehorse +racehorse's +racehorses +raceme +raceme's +racemes +racer +racer's +racers +races +racetrack +racetrack's +racetracks +raceway +raceway's +raceways +racial +racially +racier +raciest +racily +raciness +raciness's +racing +racing's +racism +racism's +racist +racist's +racists +rack +rack's +racked +racket +racket's +racketed +racketeer +racketeer's +racketeered +racketeering +racketeering's +racketeers +racketing +rackets +racking +racks +raconteur +raconteur's +raconteurs +racoon +racoon's +racoons +racquet +racquet's +racquetball +racquetball's +racquetballs +racquets +racy +radar +radar's +radars +radial +radial's +radially +radials +radiance +radiance's +radiant +radiantly +radiate +radiated +radiates +radiating +radiation +radiation's +radiations +radiator +radiator's +radiators +radical +radical's +radicalism +radicalism's +radically +radicals +radii +radio +radio's +radioactive +radioactivity +radioactivity's +radioed +radiogram +radiogram's +radiograms +radioing +radioisotope +radioisotope's +radioisotopes +radiologist +radiologist's +radiologists +radiology +radiology's +radios +radiotelephone +radiotelephone's +radiotelephones +radiotherapist +radiotherapist's +radiotherapists +radiotherapy +radiotherapy's +radish +radish's +radishes +radium +radium's +radius +radius's +radiuses +radon +radon's +raffia +raffia's +raffish +raffle +raffle's +raffled +raffles +raffling +raft +raft's +rafted +rafter +rafter's +rafters +rafting +rafts +rag +rag's +raga +raga's +ragamuffin +ragamuffin's +ragamuffins +ragas +rage +rage's +raged +rages +ragged +raggeder +raggedest +raggedier +raggediest +raggedly +raggedness +raggedness's +raggedy +ragging +raging +raglan +raglan's +raglans +ragout +ragout's +ragouts +rags +ragtag +ragtags +ragtime +ragtime's +ragweed +ragweed's +raid +raid's +raided +raider +raider's +raiders +raiding +raids +rail +rail's +railed +railing +railing's +railings +railleries +raillery +raillery's +railroad +railroad's +railroaded +railroading +railroads +rails +railway +railway's +railways +raiment +raiment's +rain +rain's +rainbow +rainbow's +rainbows +raincoat +raincoat's +raincoats +raindrop +raindrop's +raindrops +rained +rainfall +rainfall's +rainfalls +rainforest +rainier +rainiest +raining +rainmaker +rainmaker's +rainmakers +rains +rainstorm +rainstorm's +rainstorms +rainwater +rainwater's +rainy +raise +raise's +raised +raises +raisin +raisin's +raising +raisins +raja +raja's +rajah +rajah's +rajahs +rajas +rake +rake's +raked +rakes +raking +rakish +rakishly +rakishness +rakishness's +rallied +rallies +rally +rally's +rallying +ram +ram's +ramble +ramble's +rambled +rambler +rambler's +ramblers +rambles +rambling +rambunctious +rambunctiousness +rambunctiousness's +ramification +ramification's +ramifications +ramified +ramifies +ramify +ramifying +rammed +ramming +ramp +ramp's +rampage +rampage's +rampaged +rampages +rampaging +rampant +rampantly +rampart +rampart's +ramparts +ramps +ramrod +ramrod's +ramrodded +ramrodding +ramrods +rams +ramshackle +ran +ranch +ranch's +ranched +rancher +rancher's +ranchers +ranches +ranching +ranching's +rancid +rancidity +rancidity's +rancor +rancor's +rancorous +rancorously +randier +randiest +random +randomize +randomized +randomizes +randomizing +randomly +randomness +randomness's +randy +rang +range +range's +ranged +ranger +ranger's +rangers +ranges +rangier +rangiest +ranginess +ranginess's +ranging +rangy +rank +rank's +ranked +ranker +rankest +ranking +ranking's +rankings +rankle +rankled +rankles +rankling +rankness +rankness's +ranks +ransack +ransacked +ransacking +ransacks +ransom +ransom's +ransomed +ransoming +ransoms +rant +rant's +ranted +ranter +ranting +rants +rap +rap's +rapacious +rapaciously +rapaciousness +rapaciousness's +rapacity +rapacity's +rape +rape's +raped +rapes +rapid +rapid's +rapider +rapidest +rapidity +rapidity's +rapidly +rapids +rapier +rapier's +rapiers +rapine +rapine's +raping +rapist +rapist's +rapists +rapped +rapper +rapper's +rappers +rapping +rapport +rapport's +rapports +rapprochement +rapprochement's +rapprochements +raps +rapscallion +rapscallion's +rapscallions +rapt +rapture +rapture's +raptures +rapturous +rare +rared +rarefied +rarefies +rarefy +rarefying +rarely +rareness +rareness's +rarer +rares +rarest +raring +rarities +rarity +rarity's +rascal +rascal's +rascally +rascals +rash +rash's +rasher +rasher's +rashers +rashes +rashest +rashly +rashness +rashness's +rasp +rasp's +raspberries +raspberry +raspberry's +rasped +raspier +raspiest +rasping +rasps +raspy +raster +rat +rat's +ratchet +ratchet's +ratcheted +ratcheting +ratchets +rate +rate's +rated +rates +rather +rathskeller +rathskeller's +rathskellers +ratification +ratification's +ratified +ratifies +ratify +ratifying +rating +rating's +ratings +ratio +ratio's +ration +ration's +rational +rational's +rationale +rationale's +rationales +rationalism +rationalism's +rationalist +rationalist's +rationalistic +rationalists +rationality +rationality's +rationalization +rationalization's +rationalizations +rationalize +rationalized +rationalizes +rationalizing +rationally +rationals +rationed +rationing +rations +ratios +rats +rattan +rattan's +rattans +ratted +rattier +rattiest +ratting +rattle +rattle's +rattled +rattler +rattler's +rattlers +rattles +rattlesnake +rattlesnake's +rattlesnakes +rattletrap +rattletrap's +rattletraps +rattling +rattlings +rattrap +rattrap's +rattraps +ratty +raucous +raucously +raucousness +raucousness's +raunchier +raunchiest +raunchiness +raunchiness's +raunchy +ravage +ravage's +ravaged +ravages +ravaging +rave +rave's +raved +ravel +ravel's +raveled +raveling +ravelled +ravelling +ravels +raven +raven's +ravened +ravening +ravenous +ravenously +ravens +raves +ravine +ravine's +ravines +raving +raving's +ravings +ravioli +ravioli's +raviolis +ravish +ravished +ravishes +ravishing +ravishingly +ravishment +ravishment's +raw +raw's +rawboned +rawer +rawest +rawhide +rawhide's +rawness +rawness's +ray +ray's +rayon +rayon's +rays +raze +razed +razes +razing +razor +razor's +razors +razz +razz's +razzed +razzes +razzing +re +re's +reach +reach's +reachable +reached +reaches +reaching +react +reacted +reacting +reaction +reaction's +reactionaries +reactionary +reactionary's +reactions +reactivate +reactivated +reactivates +reactivating +reactivation +reactivation's +reactive +reactor +reactor's +reactors +reacts +read +read's +readabilities +readability +readability's +readable +reader +reader's +readers +readership +readership's +readerships +readied +readier +readies +readiest +readily +readiness +readiness's +reading +reading's +readings +readjust +readjusted +readjusting +readjustment +readjustment's +readjustments +readjusts +readmit +readmits +readmitted +readmitting +readout +readout's +readouts +reads +ready +readying +reaffirm +reaffirmed +reaffirming +reaffirms +reagent +reagent's +reagents +real +real's +realer +reales +realest +realign +realism +realism's +realist +realist's +realistic +realistically +realists +realities +reality +reality's +realizable +realization +realization's +realize +realized +realizes +realizing +reallocate +reallocated +reallocates +reallocating +reallocation +really +realm +realm's +realms +reals +realtor +realtor's +realtors +realty +realty's +ream +ream's +reamed +reamer +reamer's +reamers +reaming +reams +reanimate +reanimated +reanimates +reanimating +reap +reaped +reaper +reaper's +reapers +reaping +reappear +reappearance +reappearance's +reappearances +reappeared +reappearing +reappears +reapplied +reapplies +reapply +reapplying +reappoint +reappointed +reappointing +reappointment +reappointment's +reappoints +reapportion +reapportioned +reapportioning +reapportionment +reapportionment's +reapportions +reappraisal +reappraisal's +reappraisals +reappraise +reappraised +reappraises +reappraising +reaps +rear +rear's +reared +rearing +rearm +rearmament +rearmament's +rearmed +rearming +rearmost +rearms +rearrange +rearranged +rearrangement +rearrangement's +rearrangements +rearranges +rearranging +rears +rearward +rearwards +reason +reason's +reasonable +reasonableness +reasonableness's +reasonably +reasoned +reasoning +reasoning's +reasons +reassemble +reassembled +reassembles +reassembling +reassert +reasserted +reasserting +reasserts +reassess +reassessed +reassesses +reassessing +reassessment +reassessment's +reassessments +reassign +reassigned +reassigning +reassigns +reassurance +reassurance's +reassurances +reassure +reassured +reassures +reassuring +reassuringly +reawaken +reawakened +reawakening +reawakens +rebate +rebate's +rebated +rebates +rebating +rebel +rebel's +rebelled +rebelling +rebellion +rebellion's +rebellions +rebellious +rebelliously +rebelliousness +rebelliousness's +rebels +rebind +rebinding +rebinds +rebirth +rebirth's +rebirths +reborn +rebound +rebound's +rebounded +rebounding +rebounds +rebroadcast +rebroadcast's +rebroadcasted +rebroadcasting +rebroadcasts +rebuff +rebuff's +rebuffed +rebuffing +rebuffs +rebuild +rebuilding +rebuilds +rebuilt +rebuke +rebuke's +rebuked +rebukes +rebuking +rebus +rebus's +rebuses +rebut +rebuts +rebuttal +rebuttal's +rebuttals +rebutted +rebutting +recalcitrance +recalcitrance's +recalcitrant +recall +recall's +recalled +recalling +recalls +recant +recantation +recantation's +recantations +recanted +recanting +recants +recap +recap's +recapitulate +recapitulated +recapitulates +recapitulating +recapitulation +recapitulation's +recapitulations +recapped +recapping +recaps +recapture +recapture's +recaptured +recaptures +recapturing +recast +recast's +recasting +recasts +recede +receded +recedes +receding +receipt +receipt's +receipted +receipting +receipts +receivable +receive +received +receiver +receiver's +receivers +receivership +receivership's +receives +receiving +recent +recenter +recentest +recently +receptacle +receptacle's +receptacles +reception +reception's +receptionist +receptionist's +receptionists +receptions +receptive +receptively +receptiveness +receptiveness's +receptivity +receptivity's +receptor +receptor's +receptors +recess +recess's +recessed +recesses +recessing +recession +recession's +recessional +recessional's +recessionals +recessions +recessive +recessive's +recessives +recharge +recharge's +rechargeable +recharged +recharges +recharging +recheck +recheck's +rechecked +rechecking +rechecks +recherché +recidivism +recidivism's +recidivist +recidivist's +recidivists +recipe +recipe's +recipes +recipient +recipient's +recipients +reciprocal +reciprocal's +reciprocally +reciprocals +reciprocate +reciprocated +reciprocates +reciprocating +reciprocation +reciprocation's +reciprocity +reciprocity's +recital +recital's +recitals +recitation +recitation's +recitations +recitative +recitative's +recitatives +recite +recited +recites +reciting +reckless +recklessly +recklessness +recklessness's +reckon +reckoned +reckoning +reckoning's +reckonings +reckons +reclaim +reclaimed +reclaiming +reclaims +reclamation +reclamation's +reclassified +reclassifies +reclassify +reclassifying +recline +reclined +recliner +recliner's +recliners +reclines +reclining +recluse +recluse's +recluses +reclusive +recognition +recognition's +recognizable +recognizably +recognizance +recognizance's +recognize +recognized +recognizer +recognizes +recognizing +recoil +recoil's +recoiled +recoiling +recoils +recollect +recollected +recollecting +recollection +recollection's +recollections +recollects +recombination +recombine +recombined +recombines +recombining +recommence +recommenced +recommences +recommencing +recommend +recommendation +recommendation's +recommendations +recommended +recommending +recommends +recompense +recompense's +recompensed +recompenses +recompensing +recompilation +recompile +recompiled +recompiling +reconcilable +reconcile +reconciled +reconciles +reconciliation +reconciliation's +reconciliations +reconciling +recondite +recondition +reconditioned +reconditioning +reconditions +reconfiguration +reconfigure +reconfigured +reconnaissance +reconnaissance's +reconnaissances +reconnect +reconnected +reconnecting +reconnects +reconnoiter +reconnoitered +reconnoitering +reconnoiters +reconquer +reconquered +reconquering +reconquers +reconsider +reconsideration +reconsideration's +reconsidered +reconsidering +reconsiders +reconstitute +reconstituted +reconstitutes +reconstituting +reconstruct +reconstructed +reconstructing +reconstruction +reconstruction's +reconstructions +reconstructs +reconvene +reconvened +reconvenes +reconvening +recopied +recopies +recopy +recopying +record +record's +recorded +recorder +recorder's +recorders +recording +recording's +recordings +records +recount +recount's +recounted +recounting +recounts +recoup +recouped +recouping +recoups +recourse +recourse's +recover +recoverable +recovered +recoveries +recovering +recovers +recovery +recovery's +recreant +recreant's +recreants +recreate +recreated +recreates +recreating +recreation +recreation's +recreational +recreations +recriminate +recriminated +recriminates +recriminating +recrimination +recrimination's +recriminations +recrudescence +recrudescence's +recruit +recruit's +recruited +recruiter +recruiter's +recruiters +recruiting +recruitment +recruitment's +recruits +recta +rectal +rectangle +rectangle's +rectangles +rectangular +rectifiable +rectification +rectification's +rectifications +rectified +rectifier +rectifier's +rectifiers +rectifies +rectify +rectifying +rectilinear +rectitude +rectitude's +rector +rector's +rectories +rectors +rectory +rectory's +rectum +rectum's +rectums +recumbent +recuperate +recuperated +recuperates +recuperating +recuperation +recuperation's +recuperative +recur +recurred +recurrence +recurrence's +recurrences +recurrent +recurring +recurs +recursion +recursive +recursively +recyclable +recyclable's +recyclables +recycle +recycle's +recycled +recycles +recycling +recycling's +red +red's +redbreast +redbreast's +redbreasts +redcap +redcap's +redcaps +redcoat +redcoat's +redcoats +redden +reddened +reddening +reddens +redder +reddest +reddish +redecorate +redecorated +redecorates +redecorating +rededicate +rededicated +rededicates +rededicating +redeem +redeemable +redeemed +redeemer +redeemer's +redeemers +redeeming +redeems +redefine +redefined +redefines +redefining +redefinition +redemption +redemption's +redeploy +redeployed +redeploying +redeployment +redeployment's +redeploys +redesign +redesigned +redesigning +redesigns +redevelop +redeveloped +redeveloping +redevelopment +redevelopment's +redevelopments +redevelops +redhead +redhead's +redheaded +redheads +redid +redirect +redirected +redirecting +redirection +redirects +rediscover +rediscovered +rediscovering +rediscovers +rediscovery +rediscovery's +redistribute +redistributed +redistributes +redistributing +redistribution +redistribution's +redistrict +redistricted +redistricting +redistricts +redneck +redneck's +rednecks +redness +redness's +redo +redoes +redoing +redolence +redolence's +redolent +redone +redouble +redoubled +redoubles +redoubling +redoubt +redoubt's +redoubtable +redoubts +redound +redounded +redounding +redounds +redraft +redrafted +redrafting +redrafts +redraw +redrawing +redrawn +redraws +redress +redress's +redressed +redresses +redressing +redrew +reds +redskin +redskin's +redskins +reduce +reduced +reduces +reducing +reduction +reduction's +reductions +redundancies +redundancy +redundancy's +redundant +redundantly +redwood +redwood's +redwoods +reed +reed's +reedier +reediest +reeds +reeducate +reeducated +reeducates +reeducating +reeducation +reeducation's +reedy +reef +reef's +reefed +reefer +reefer's +reefers +reefing +reefs +reek +reek's +reeked +reeking +reeks +reel +reel's +reelect +reelected +reelecting +reelection +reelection's +reelections +reelects +reeled +reeling +reels +reemerge +reemerged +reemerges +reemerging +reemphasize +reemphasized +reemphasizes +reemphasizing +reenact +reenacted +reenacting +reenactment +reenactment's +reenactments +reenacts +reenforce +reenforced +reenforces +reenforcing +reenlist +reenlisted +reenlisting +reenlists +reenter +reentered +reentering +reenters +reentries +reentry +reentry's +reestablish +reestablished +reestablishes +reestablishing +reevaluate +reevaluated +reevaluates +reevaluating +reeve +reeved +reeves +reeving +reexamine +reexamined +reexamines +reexamining +ref +ref's +refashion +refashioned +refashioning +refashions +refectories +refectory +refectory's +refer +referee +referee's +refereed +refereeing +referees +reference +reference's +referenced +references +referencing +referenda +referendum +referendum's +referendums +referent +referential +referral +referral's +referrals +referred +referring +refers +reffed +reffing +refile +refiled +refiles +refiling +refill +refill's +refillable +refilled +refilling +refills +refinance +refinanced +refinances +refinancing +refine +refined +refinement +refinement's +refinements +refiner +refiner's +refineries +refiners +refinery +refinery's +refines +refining +refinish +refinished +refinishes +refinishing +refit +refit's +refits +refitted +refitting +reflect +reflected +reflecting +reflection +reflection's +reflections +reflective +reflector +reflector's +reflectors +reflects +reflex +reflex's +reflexes +reflexive +reflexive's +reflexively +reflexives +refocus +refocused +refocuses +refocusing +refocussed +refocusses +refocussing +reforest +reforestation +reforestation's +reforested +reforesting +reforests +reform +reform's +reformat +reformation +reformation's +reformations +reformatories +reformatory +reformatory's +reformatted +reformatting +reformed +reformer +reformer's +reformers +reforming +reforms +reformulate +reformulated +reformulates +reformulating +refract +refracted +refracting +refraction +refraction's +refractories +refractory +refractory's +refracts +refrain +refrain's +refrained +refraining +refrains +refresh +refreshed +refresher +refresher's +refreshers +refreshes +refreshing +refreshingly +refreshment +refreshment's +refreshments +refreshments's +refrigerant +refrigerant's +refrigerants +refrigerate +refrigerated +refrigerates +refrigerating +refrigeration +refrigeration's +refrigerator +refrigerator's +refrigerators +refs +refuel +refueled +refueling +refuelled +refuelling +refuels +refuge +refuge's +refugee +refugee's +refugees +refuges +refulgence +refulgence's +refulgent +refund +refund's +refundable +refunded +refunding +refunds +refurbish +refurbished +refurbishes +refurbishing +refurbishment +refurbishment's +refurbishments +refurnish +refurnished +refurnishes +refurnishing +refusal +refusal's +refusals +refuse +refuse's +refused +refuses +refusing +refutation +refutation's +refutations +refute +refuted +refutes +refuting +regain +regained +regaining +regains +regal +regale +regaled +regales +regalia +regalia's +regaling +regally +regard +regard's +regarded +regarding +regardless +regards +regards's +regatta +regatta's +regattas +regencies +regency +regency's +regenerate +regenerated +regenerates +regenerating +regeneration +regeneration's +regenerative +regent +regent's +regents +reggae +reggae's +regicide +regicide's +regicides +regime +regime's +regimen +regimen's +regimens +regiment +regiment's +regimental +regimentation +regimentation's +regimented +regimenting +regiments +regimes +region +region's +regional +regionalism +regionalism's +regionalisms +regionally +regions +register +register's +registered +registering +registers +registrant +registrant's +registrants +registrar +registrar's +registrars +registration +registration's +registrations +registries +registry +registry's +regress +regress's +regressed +regresses +regressing +regression +regression's +regressions +regressive +regret +regret's +regretful +regretfully +regrets +regrettable +regrettably +regretted +regretting +regroup +regrouped +regrouping +regroups +regular +regular's +regularity +regularity's +regularize +regularized +regularizes +regularizing +regularly +regulars +regulate +regulated +regulates +regulating +regulation +regulation's +regulations +regulator +regulator's +regulators +regulatory +regurgitate +regurgitated +regurgitates +regurgitating +regurgitation +regurgitation's +rehab +rehab's +rehabbed +rehabbing +rehabilitate +rehabilitated +rehabilitates +rehabilitating +rehabilitation +rehabilitation's +rehabs +rehash +rehash's +rehashed +rehashes +rehashing +rehearsal +rehearsal's +rehearsals +rehearse +rehearsed +rehearses +rehearsing +reheat +reheated +reheating +reheats +rehire +rehired +rehires +rehiring +reign +reign's +reigned +reigning +reigns +reimburse +reimbursed +reimbursement +reimbursement's +reimbursements +reimburses +reimbursing +reimpose +reimposed +reimposes +reimposing +rein +rein's +reincarnate +reincarnated +reincarnates +reincarnating +reincarnation +reincarnation's +reincarnations +reindeer +reindeer's +reindeers +reined +reinforce +reinforced +reinforcement +reinforcement's +reinforcements +reinforces +reinforcing +reining +reinitialize +reinitialized +reins +reinsert +reinserted +reinserting +reinserts +reinstate +reinstated +reinstatement +reinstatement's +reinstates +reinstating +reinterpret +reinterpretation +reinterpretation's +reinterpretations +reinterpreted +reinterpreting +reinterprets +reinvent +reinvented +reinventing +reinvents +reinvest +reinvested +reinvesting +reinvests +reis +reissue +reissue's +reissued +reissues +reissuing +reiterate +reiterated +reiterates +reiterating +reiteration +reiteration's +reiterations +reject +reject's +rejected +rejecting +rejection +rejection's +rejections +rejects +rejoice +rejoiced +rejoices +rejoicing +rejoicing's +rejoicings +rejoin +rejoinder +rejoinder's +rejoinders +rejoined +rejoining +rejoins +rejuvenate +rejuvenated +rejuvenates +rejuvenating +rejuvenation +rejuvenation's +rekindle +rekindled +rekindles +rekindling +relabel +relabeled +relabeling +relabelled +relabelling +relabels +relaid +relapse +relapse's +relapsed +relapses +relapsing +relate +related +relates +relating +relation +relation's +relational +relations +relationship +relationship's +relationships +relative +relative's +relatively +relatives +relativistic +relativity +relativity's +relax +relaxant +relaxant's +relaxants +relaxation +relaxation's +relaxations +relaxed +relaxes +relaxing +relay +relay's +relayed +relaying +relays +relearn +relearned +relearning +relearns +releasable +release +release's +released +releases +releasing +relegate +relegated +relegates +relegating +relegation +relegation's +relent +relented +relenting +relentless +relentlessly +relentlessness +relentlessness's +relents +relevance +relevance's +relevancy +relevancy's +relevant +relevantly +reliability +reliability's +reliable +reliably +reliance +reliance's +reliant +relic +relic's +relics +relied +relief +relief's +reliefs +relies +relieve +relieved +relieves +relieving +religion +religion's +religions +religious +religious's +religiously +relinquish +relinquished +relinquishes +relinquishing +relinquishment +relinquishment's +relish +relish's +relished +relishes +relishing +relive +relived +relives +reliving +reload +reloaded +reloading +reloads +relocatable +relocate +relocated +relocates +relocating +relocation +relocation's +reluctance +reluctance's +reluctant +reluctantly +rely +relying +remade +remain +remainder +remainder's +remaindered +remainders +remained +remaining +remains +remake +remake's +remakes +remaking +remand +remanded +remanding +remands +remark +remark's +remarkable +remarkably +remarked +remarking +remarks +remarriage +remarriage's +remarriages +remarried +remarries +remarry +remarrying +rematch +rematch's +rematches +remediable +remedial +remedied +remedies +remedy +remedy's +remedying +remember +remembered +remembering +remembers +remembrance +remembrance's +remembrances +remind +reminded +reminder +reminder's +reminders +reminding +reminds +reminisce +reminisced +reminiscence +reminiscence's +reminiscences +reminiscent +reminisces +reminiscing +remiss +remission +remission's +remissions +remissness +remissness's +remit +remits +remittance +remittance's +remittances +remitted +remitting +remnant +remnant's +remnants +remodel +remodeled +remodeling +remodelled +remodelling +remodels +remonstrance +remonstrance's +remonstrances +remonstrate +remonstrated +remonstrates +remonstrating +remorse +remorse's +remorseful +remorsefully +remorseless +remorselessly +remote +remote's +remotely +remoteness +remoteness's +remoter +remotes +remotest +remount +remount's +remounted +remounting +remounts +removable +removal +removal's +removals +remove +remove's +removed +remover +remover's +removers +removes +removing +remunerate +remunerated +remunerates +remunerating +remuneration +remuneration's +remunerations +remunerative +renaissance +renaissance's +renaissances +renal +rename +renamed +renames +renaming +renascence +renascence's +renascences +renascent +rend +render +render's +rendered +rendering +rendering's +renderings +renders +rendezvous +rendezvous's +rendezvoused +rendezvouses +rendezvousing +rending +rendition +rendition's +renditions +rends +renegade +renegade's +renegaded +renegades +renegading +renege +reneged +reneges +reneging +renegotiate +renegotiated +renegotiates +renegotiating +renew +renewable +renewal +renewal's +renewals +renewed +renewing +renews +rennet +rennet's +renounce +renounced +renounces +renouncing +renovate +renovated +renovates +renovating +renovation +renovation's +renovations +renovator +renovator's +renovators +renown +renown's +renowned +rent +rent's +rental +rental's +rentals +rented +renter +renter's +renters +renting +rents +renumber +renumbered +renumbering +renumbers +renunciation +renunciation's +renunciations +reoccupied +reoccupies +reoccupy +reoccupying +reoccur +reoccurred +reoccurring +reoccurs +reopen +reopened +reopening +reopens +reorder +reorder's +reordered +reordering +reorders +reorganization +reorganization's +reorganizations +reorganize +reorganized +reorganizes +reorganizing +rep +rep's +repackage +repackaged +repackages +repackaging +repaid +repaint +repainted +repainting +repaints +repair +repair's +repairable +repaired +repairing +repairman +repairman's +repairmen +repairs +reparation +reparation's +reparations +reparations's +repartee +repartee's +repast +repast's +repasts +repatriate +repatriate's +repatriated +repatriates +repatriating +repatriation +repatriation's +repay +repayable +repaying +repayment +repayment's +repayments +repays +repeal +repeal's +repealed +repealing +repeals +repeat +repeat's +repeatable +repeatably +repeated +repeatedly +repeater +repeater's +repeaters +repeating +repeats +repel +repellant +repellant's +repellants +repelled +repellent +repellent's +repellents +repelling +repels +repent +repentance +repentance's +repentant +repented +repenting +repents +repercussion +repercussion's +repercussions +repertoire +repertoire's +repertoires +repertories +repertory +repertory's +repetition +repetition's +repetitions +repetitious +repetitive +rephrase +rephrased +rephrases +rephrasing +replace +replaceable +replaced +replacement +replacement's +replacements +replaces +replacing +replay +replay's +replayed +replaying +replays +replenish +replenished +replenishes +replenishing +replenishment +replenishment's +replete +repleted +repletes +repleting +repletion +repletion's +replica +replica's +replicas +replicate +replicated +replicates +replicating +replication +replication's +replications +replied +replies +reply +reply's +replying +report +report's +reportage +reportage's +reported +reportedly +reporter +reporter's +reporters +reporting +reports +repose +repose's +reposed +reposeful +reposes +reposing +repositories +repository +repository's +repossess +repossessed +repossesses +repossessing +repossession +repossession's +repossessions +reprehend +reprehended +reprehending +reprehends +reprehensible +reprehensibly +represent +representation +representation's +representational +representations +representative +representative's +representatives +represented +representing +represents +repress +repressed +represses +repressing +repression +repression's +repressions +repressive +reprieve +reprieve's +reprieved +reprieves +reprieving +reprimand +reprimand's +reprimanded +reprimanding +reprimands +reprint +reprint's +reprinted +reprinting +reprints +reprisal +reprisal's +reprisals +reprise +reprise's +reprises +reprising +reprized +reproach +reproach's +reproached +reproaches +reproachful +reproachfully +reproaching +reprobate +reprobate's +reprobates +reprocess +reprocessed +reprocesses +reprocessing +reproduce +reproduced +reproduces +reproducible +reproducing +reproduction +reproduction's +reproductions +reproductive +reprogram +reprogramed +reprograming +reprogrammed +reprogramming +reprograms +reproof +reproof's +reproofed +reproofing +reproofs +reprove +reproved +reproves +reproving +reps +reptile +reptile's +reptiles +reptilian +reptilian's +reptilians +republic +republic's +republican +republican's +republicanism +republicanism's +republicans +republics +republish +republished +republishes +republishing +repudiate +repudiated +repudiates +repudiating +repudiation +repudiation's +repudiations +repugnance +repugnance's +repugnant +repulse +repulse's +repulsed +repulses +repulsing +repulsion +repulsion's +repulsive +repulsively +repulsiveness +repulsiveness's +reputable +reputably +reputation +reputation's +reputations +repute +repute's +reputed +reputedly +reputes +reputing +request +request's +requested +requester +requesting +requests +requiem +requiem's +requiems +require +required +requirement +requirement's +requirements +requires +requiring +requisite +requisite's +requisites +requisition +requisition's +requisitioned +requisitioning +requisitions +requital +requital's +requite +requited +requites +requiting +reran +reread +rereading +rereads +reroute +rerouted +reroutes +rerouting +rerun +rerun's +rerunning +reruns +resale +resale's +resales +reschedule +rescheduled +reschedules +rescheduling +rescind +rescinded +rescinding +rescinds +rescission +rescission's +rescue +rescue's +rescued +rescuer +rescuer's +rescuers +rescues +rescuing +research +research's +researched +researcher +researcher's +researchers +researches +researching +resell +reselling +resells +resemblance +resemblance's +resemblances +resemble +resembled +resembles +resembling +resend +resent +resented +resentful +resentfully +resenting +resentment +resentment's +resentments +resents +reservation +reservation's +reservations +reserve +reserve's +reserved +reservedly +reserves +reserving +reservist +reservist's +reservists +reservoir +reservoir's +reservoirs +reset +reset's +resets +resetting +resettle +resettled +resettles +resettling +reshuffle +reshuffle's +reshuffled +reshuffles +reshuffling +reside +resided +residence +residence's +residences +residencies +residency +residency's +resident +resident's +residential +residents +resides +residing +residual +residual's +residuals +residue +residue's +residues +resign +resignation +resignation's +resignations +resigned +resignedly +resigning +resigns +resilience +resilience's +resiliency +resiliency's +resilient +resin +resin's +resinous +resins +resist +resist's +resistance +resistance's +resistances +resistant +resisted +resister +resister's +resisters +resisting +resistor +resistor's +resistors +resists +resold +resolute +resolutely +resoluteness +resoluteness's +resolution +resolution's +resolutions +resolve +resolve's +resolved +resolver +resolves +resolving +resonance +resonance's +resonances +resonant +resonantly +resonate +resonated +resonates +resonating +resonator +resonator's +resonators +resort +resort's +resorted +resorting +resorts +resound +resounded +resounding +resoundingly +resounds +resource +resource's +resourced +resourceful +resourcefully +resourcefulness +resourcefulness's +resources +resourcing +respect +respect's +respectability +respectability's +respectable +respectably +respected +respectful +respectfully +respecting +respective +respectively +respects +respell +respelled +respelling +respells +respelt +respiration +respiration's +respirator +respirator's +respirators +respiratory +respire +respired +respires +respiring +respite +respite's +respites +resplendence +resplendence's +resplendent +resplendently +respond +responded +respondent +respondent's +respondents +responding +responds +response +response's +responses +responsibilities +responsibility +responsibility's +responsible +responsibly +responsive +responsively +responsiveness +responsiveness's +rest +rest's +restart +restart's +restarted +restarting +restarts +restate +restated +restatement +restatement's +restatements +restates +restating +restaurant +restaurant's +restauranteur +restauranteur's +restauranteurs +restaurants +restaurateur +restaurateur's +restaurateurs +rested +restful +restfuller +restfullest +restfully +restfulness +restfulness's +resting +restitution +restitution's +restive +restively +restiveness +restiveness's +restless +restlessly +restlessness +restlessness's +restock +restocked +restocking +restocks +restoration +restoration's +restorations +restorative +restorative's +restoratives +restore +restored +restorer +restorer's +restorers +restores +restoring +restrain +restrained +restraining +restrains +restraint +restraint's +restraints +restrict +restricted +restricting +restriction +restriction's +restrictions +restrictive +restrictively +restricts +restroom +restroom's +restrooms +restructure +restructured +restructures +restructuring +restructuring's +restructurings +rests +restudied +restudies +restudy +restudying +resubmit +resubmits +resubmitted +resubmitting +result +result's +resultant +resultant's +resultants +resulted +resulting +results +resume +resume's +resumed +resumes +resuming +resumption +resumption's +resumptions +resupplied +resupplies +resupply +resupplying +resurface +resurfaced +resurfaces +resurfacing +resurgence +resurgence's +resurgences +resurgent +resurrect +resurrected +resurrecting +resurrection +resurrection's +resurrections +resurrects +resuscitate +resuscitated +resuscitates +resuscitating +resuscitation +resuscitation's +resuscitator +resuscitator's +resuscitators +retail +retail's +retailed +retailer +retailer's +retailers +retailing +retails +retain +retained +retainer +retainer's +retainers +retaining +retains +retake +retake's +retaken +retakes +retaking +retaliate +retaliated +retaliates +retaliating +retaliation +retaliation's +retaliations +retaliatory +retard +retard's +retardant +retardant's +retardants +retardation +retardation's +retarded +retarding +retards +retch +retched +retches +retching +retell +retelling +retells +retention +retention's +retentive +retentiveness +retentiveness's +rethink +rethink's +rethinking +rethinks +rethought +reticence +reticence's +reticent +retina +retina's +retinae +retinal +retinas +retinue +retinue's +retinues +retire +retired +retiree +retiree's +retirees +retirement +retirement's +retirements +retires +retiring +retold +retook +retool +retooled +retooling +retools +retort +retort's +retorted +retorting +retorts +retouch +retouch's +retouched +retouches +retouching +retrace +retraced +retraces +retracing +retract +retractable +retracted +retracting +retraction +retraction's +retractions +retracts +retrain +retrained +retraining +retrains +retread +retread's +retreaded +retreading +retreads +retreat +retreat's +retreated +retreating +retreats +retrench +retrenched +retrenches +retrenching +retrenchment +retrenchment's +retrenchments +retrial +retrial's +retrials +retribution +retribution's +retributions +retributive +retried +retries +retrievable +retrieval +retrieval's +retrievals +retrieve +retrieve's +retrieved +retriever +retriever's +retrievers +retrieves +retrieving +retroactive +retroactively +retrod +retrodden +retrofit +retrofit's +retrofits +retrofitted +retrofitting +retrograde +retrograded +retrogrades +retrograding +retrogress +retrogressed +retrogresses +retrogressing +retrogression +retrogression's +retrogressive +retrorocket +retrorocket's +retrorockets +retrospect +retrospect's +retrospected +retrospecting +retrospection +retrospection's +retrospective +retrospective's +retrospectively +retrospectives +retrospects +retry +retrying +return +return's +returnable +returnable's +returnables +returned +returnee +returnee's +returnees +returning +returns +retype +retyped +retypes +retyping +reunification +reunification's +reunified +reunifies +reunify +reunifying +reunion +reunion's +reunions +reunite +reunited +reunites +reuniting +reupholster +reupholstered +reupholstering +reupholsters +reusable +reuse +reuse's +reused +reuses +reusing +rev +rev's +revaluation +revaluation's +revaluations +revalue +revalued +revalues +revaluing +revamp +revamp's +revamped +revamping +revamps +reveal +revealed +revealing +revealings +reveals +reveille +reveille's +revel +revel's +revelation +revelation's +revelations +reveled +reveler +reveler's +revelers +reveling +revelled +reveller +reveller's +revellers +revelling +revelries +revelry +revelry's +revels +revenge +revenge's +revenged +revengeful +revenges +revenging +revenue +revenue's +revenues +reverberate +reverberated +reverberates +reverberating +reverberation +reverberation's +reverberations +revere +revered +reverence +reverence's +reverenced +reverences +reverencing +reverend +reverend's +reverends +reverent +reverential +reverently +reveres +reverie +reverie's +reveries +revering +reversal +reversal's +reversals +reverse +reverse's +reversed +reverses +reversible +reversing +reversion +reversion's +revert +reverted +reverting +reverts +revery +revery's +review +review's +reviewed +reviewer +reviewer's +reviewers +reviewing +reviews +revile +reviled +revilement +revilement's +reviler +reviler's +revilers +reviles +reviling +revise +revise's +revised +revises +revising +revision +revision's +revisions +revisit +revisited +revisiting +revisits +revitalization +revitalization's +revitalize +revitalized +revitalizes +revitalizing +revival +revival's +revivalist +revivalist's +revivalists +revivals +revive +revived +revives +revivification +revivification's +revivified +revivifies +revivify +revivifying +reviving +revocable +revocation +revocation's +revocations +revokable +revoke +revoked +revokes +revoking +revolt +revolt's +revolted +revolting +revoltingly +revolts +revolution +revolution's +revolutionaries +revolutionary +revolutionary's +revolutionist +revolutionist's +revolutionists +revolutionize +revolutionized +revolutionizes +revolutionizing +revolutions +revolve +revolved +revolver +revolver's +revolvers +revolves +revolving +revs +revue +revue's +revues +revulsion +revulsion's +revved +revving +reward +reward's +rewarded +rewarding +rewards +rewind +rewind's +rewindable +rewinding +rewinds +rewire +rewired +rewires +rewiring +reword +reworded +rewording +rewords +rework +reworked +reworking +reworks +rewound +rewrite +rewrite's +rewrites +rewriting +rewritten +rewrote +rhapsodic +rhapsodies +rhapsodize +rhapsodized +rhapsodizes +rhapsodizing +rhapsody +rhapsody's +rhea +rhea's +rheas +rheostat +rheostat's +rheostats +rhetoric +rhetoric's +rhetorical +rhetorically +rhetorician +rhetorician's +rhetoricians +rheum +rheum's +rheumatic +rheumatic's +rheumatics +rheumatism +rheumatism's +rheumier +rheumiest +rheumy +rhinestone +rhinestone's +rhinestones +rhino +rhino's +rhinoceri +rhinoceros +rhinoceros's +rhinoceroses +rhinos +rhizome +rhizome's +rhizomes +rho +rhodium +rhodium's +rhododendron +rhododendron's +rhododendrons +rhombi +rhomboid +rhomboid's +rhomboids +rhombus +rhombus's +rhombuses +rhubarb +rhubarb's +rhubarbs +rhyme +rhyme's +rhymed +rhymes +rhyming +rhythm +rhythm's +rhythmic +rhythmical +rhythmically +rhythms +rib +rib's +ribald +ribaldry +ribaldry's +ribbed +ribbing +ribbon +ribbon's +ribbons +riboflavin +riboflavin's +ribs +rice +rice's +riced +rices +rich +rich's +richer +riches +richest +richly +richness +richness's +ricing +rick +rick's +ricked +ricketier +ricketiest +rickets +rickets's +rickety +ricking +ricks +ricksha +ricksha's +rickshas +rickshaw +rickshaw's +rickshaws +ricochet +ricochet's +ricocheted +ricocheting +ricochets +ricochetted +ricochetting +ricotta +ricotta's +rid +riddance +riddance's +ridded +ridden +ridding +riddle +riddle's +riddled +riddles +riddling +ride +ride's +rider +rider's +riders +rides +ridge +ridge's +ridged +ridgepole +ridgepole's +ridgepoles +ridges +ridging +ridicule +ridicule's +ridiculed +ridicules +ridiculing +ridiculous +ridiculously +ridiculousness +ridiculousness's +riding +riding's +rids +rife +rifer +rifest +riff +riff's +riffed +riffing +riffle +riffle's +riffled +riffles +riffling +riffraff +riffraff's +riffs +rifle +rifle's +rifled +rifleman +rifleman's +riflemen +rifles +rifling +rift +rift's +rifted +rifting +rifts +rig +rig's +rigamarole +rigamarole's +rigamaroles +rigged +rigging +rigging's +right +right's +righted +righteous +righteously +righteousness +righteousness's +righter +rightest +rightful +rightfully +rightfulness +rightfulness's +righting +rightist +rightist's +rightists +rightly +rightmost +rightness +rightness's +rights +rigid +rigidity +rigidity's +rigidly +rigidness +rigidness's +rigmarole +rigmarole's +rigmaroles +rigor +rigor's +rigorous +rigorously +rigors +rigs +rile +riled +riles +riling +rill +rill's +rills +rim +rim's +rime +rime's +rimed +rimes +riming +rimmed +rimming +rims +rind +rind's +rinds +ring +ring's +ringed +ringer +ringer's +ringers +ringing +ringleader +ringleader's +ringleaders +ringlet +ringlet's +ringlets +ringmaster +ringmaster's +ringmasters +rings +ringside +ringside's +ringworm +ringworm's +rink +rink's +rinks +rinse +rinse's +rinsed +rinses +rinsing +riot +riot's +rioted +rioter +rioter's +rioters +rioting +rioting's +riotous +riots +rip +rip's +ripe +ripely +ripen +ripened +ripeness +ripeness's +ripening +ripens +riper +ripest +riposte +riposte's +riposted +ripostes +riposting +ripped +ripper +ripper's +rippers +ripping +ripple +ripple's +rippled +ripples +rippling +rips +ripsaw +ripsaw's +ripsaws +rise +rise's +risen +riser +riser's +risers +rises +risible +rising +risk +risk's +risked +riskier +riskiest +riskiness +riskiness's +risking +risks +risky +risqué +rite +rite's +rites +ritual +ritual's +ritualism +ritualism's +ritualistic +ritually +rituals +ritzier +ritziest +ritzy +rival +rival's +rivaled +rivaling +rivalled +rivalling +rivalries +rivalry +rivalry's +rivals +riven +river +river's +riverbed +riverbed's +riverbeds +riverfront +rivers +riverside +riverside's +riversides +rivet +rivet's +riveted +riveting +rivets +rivetted +rivetting +rivulet +rivulet's +rivulets +roach +roach's +roaches +road +road's +roadbed +roadbed's +roadbeds +roadblock +roadblock's +roadblocked +roadblocking +roadblocks +roadhouse +roadhouse's +roadhouses +roadkill +roadkill's +roadrunner +roadrunner's +roadrunners +roads +roadshow +roadside +roadside's +roadsides +roadster +roadster's +roadsters +roadway +roadway's +roadways +roadwork +roadwork's +roadworthy +roam +roamed +roamer +roamer's +roamers +roaming +roams +roan +roan's +roans +roar +roar's +roared +roaring +roaring's +roars +roast +roast's +roasted +roaster +roaster's +roasters +roasting +roasts +rob +robbed +robber +robber's +robberies +robbers +robbery +robbery's +robbing +robe +robe's +robed +robes +robin +robin's +robing +robins +robot +robot's +robotic +robotics +robotics's +robots +robs +robust +robuster +robustest +robustly +robustness +robustness's +rock +rock's +rocked +rocker +rocker's +rockers +rocket +rocket's +rocketed +rocketing +rocketry +rocketry's +rockets +rockier +rockiest +rockiness +rockiness's +rocking +rocks +rocky +rococo +rococo's +rod +rod's +rode +rodent +rodent's +rodents +rodeo +rodeo's +rodeos +rods +roe +roe's +roebuck +roebuck's +roebucks +roentgen +roentgen's +roentgens +roes +roger +rogered +rogering +rogers +rogue +rogue's +roguery +roguery's +rogues +roguish +roguishly +roil +roiled +roiling +roils +roister +roistered +roisterer +roisterer's +roisterers +roistering +roisters +role +role's +roles +roll +roll's +rollback +rollback's +rollbacks +rolled +roller +roller's +rollers +rollerskating +rollerskating's +rollick +rollicked +rollicking +rollicking's +rollicks +rolling +rolls +romaine +romaine's +roman +romance +romance's +romanced +romances +romancing +romantic +romantic's +romantically +romanticism +romanticism's +romanticist +romanticist's +romanticists +romanticize +romanticized +romanticizes +romanticizing +romantics +romp +romp's +romped +romper +romper's +rompers +romping +romps +rood +rood's +roods +roof +roof's +roofed +roofing +roofing's +roofs +rooftop +rooftop's +rooftops +rook +rook's +rooked +rookeries +rookery +rookery's +rookie +rookie's +rookies +rooking +rooks +room +room's +roomed +roomer +roomer's +roomers +roomful +roomful's +roomfuls +roomier +roomiest +roominess +roominess's +rooming +roommate +roommate's +roommates +rooms +roomy +roost +roost's +roosted +rooster +rooster's +roosters +roosting +roosts +root +root's +rooted +rooter +rooting +rootless +roots +rope +rope's +roped +ropes +roping +rosaries +rosary +rosary's +rose +rose's +roseate +rosebud +rosebud's +rosebuds +rosebush +rosebush's +rosebushes +rosemary +rosemary's +roses +rosette +rosette's +rosettes +rosewood +rosewood's +rosewoods +rosier +rosiest +rosily +rosin +rosin's +rosined +rosiness +rosiness's +rosining +rosins +roster +roster's +rosters +rostra +rostrum +rostrum's +rostrums +rosy +rot +rot's +rotaries +rotary +rotary's +rotate +rotated +rotates +rotating +rotation +rotation's +rotational +rotations +rote +rote's +rotisserie +rotisserie's +rotisseries +rotogravure +rotogravure's +rotogravures +rotor +rotor's +rotors +rots +rotted +rotten +rottener +rottenest +rottenness +rottenness's +rotting +rotund +rotunda +rotunda's +rotundas +rotundity +rotundity's +rotundness +rotundness's +rouge +rouge's +rouged +rouges +rough +rough's +roughage +roughage's +roughed +roughen +roughened +roughening +roughens +rougher +roughest +roughhouse +roughhouse's +roughhoused +roughhouses +roughhousing +roughing +roughly +roughneck +roughneck's +roughnecked +roughnecking +roughnecks +roughness +roughness's +roughs +roughshod +rouging +roulette +roulette's +round +round's +roundabout +roundabout's +roundabouts +rounded +roundelay +roundelay's +roundelays +rounder +roundest +roundhouse +roundhouse's +roundhouses +rounding +roundish +roundly +roundness +roundness's +rounds +roundup +roundup's +roundups +roundworm +roundworm's +roundworms +rouse +roused +rouses +rousing +roustabout +roustabout's +roustabouts +rout +rout's +route +route's +routed +routeing +router +routes +routine +routine's +routinely +routines +routing +routinize +routinized +routinizes +routinizing +routs +roué +roué's +roués +rove +roved +rover +rover's +rovers +roves +roving +row +row's +rowboat +rowboat's +rowboats +rowdier +rowdies +rowdiest +rowdiness +rowdiness's +rowdy +rowdy's +rowdyism +rowdyism's +rowed +rowel +rowel's +roweled +roweling +rowelled +rowelling +rowels +rower +rower's +rowers +rowing +rowing's +rows +royal +royal's +royalist +royalist's +royalists +royally +royals +royalties +royalties's +royalty +royalty's +rs +rub +rub's +rubbed +rubber +rubber's +rubberier +rubberiest +rubberize +rubberized +rubberizes +rubberizing +rubberneck +rubberneck's +rubbernecked +rubbernecking +rubbernecks +rubbers +rubbery +rubbing +rubbish +rubbish's +rubbished +rubbishes +rubbishing +rubbishy +rubble +rubble's +rubdown +rubdown's +rubdowns +rube +rube's +rubella +rubella's +rubes +rubicund +rubier +rubies +rubiest +ruble +ruble's +rubles +rubric +rubric's +rubrics +rubs +ruby +ruby's +rucksack +rucksack's +rucksacks +ruckus +ruckus's +ruckuses +rudder +rudder's +rudders +ruddier +ruddiest +ruddiness +ruddiness's +ruddy +rude +rudely +rudeness +rudeness's +ruder +rudest +rudiment +rudiment's +rudimentary +rudiments +rue +rue's +rued +rueful +ruefully +rues +ruff +ruff's +ruffed +ruffian +ruffian's +ruffians +ruffing +ruffle +ruffle's +ruffled +ruffles +ruffling +ruffs +rug +rug's +rugby +rugby's +rugged +ruggeder +ruggedest +ruggedly +ruggedness +ruggedness's +rugs +ruin +ruin's +ruination +ruination's +ruined +ruing +ruining +ruinous +ruinously +ruins +rule +rule's +ruled +ruler +ruler's +rulers +rules +ruling +ruling's +rulings +rum +rum's +rumba +rumba's +rumbaed +rumbaing +rumbas +rumble +rumble's +rumbled +rumbles +rumbling +rumbling's +rumblings +ruminant +ruminant's +ruminants +ruminate +ruminated +ruminates +ruminating +rumination +rumination's +ruminations +rummage +rummage's +rummaged +rummages +rummaging +rummer +rummest +rummy +rummy's +rumor +rumor's +rumored +rumoring +rumors +rump +rump's +rumple +rumple's +rumpled +rumples +rumpling +rumps +rumpus +rumpus's +rumpuses +rums +run +run's +runabout +runabout's +runabouts +runaround +runaround's +runarounds +runaway +runaway's +runaways +rundown +rundown's +rundowns +rune +rune's +runes +rung +rung's +rungs +runnel +runnel's +runnels +runner +runner's +runners +runnier +runniest +running +running's +runny +runoff +runoff's +runoffs +runs +runt +runt's +runts +runway +runway's +runways +rupee +rupee's +rupees +rupture +rupture's +ruptured +ruptures +rupturing +rural +ruse +ruse's +ruses +rush +rush's +rushed +rushes +rushing +rusk +rusk's +rusks +russet +russet's +russets +rust +rust's +rusted +rustic +rustic's +rustically +rusticity +rusticity's +rustics +rustier +rustiest +rustiness +rustiness's +rusting +rustle +rustle's +rustled +rustler +rustler's +rustlers +rustles +rustling +rustproof +rustproofed +rustproofing +rustproofs +rusts +rusty +rut +rut's +rutabaga +rutabaga's +rutabagas +ruthless +ruthlessly +ruthlessness +ruthlessness's +ruts +rutted +rutting +rye +rye's +s +sabbatical +sabbatical's +sabbaticals +saber +saber's +sabers +sable +sable's +sables +sabotage +sabotage's +sabotaged +sabotages +sabotaging +saboteur +saboteur's +saboteurs +sabre +sabre's +sabres +sac +sac's +saccharin +saccharin's +saccharine +sacerdotal +sachem +sachem's +sachems +sachet +sachet's +sachets +sack +sack's +sackcloth +sackcloth's +sacked +sackful +sackful's +sackfuls +sacking +sacking's +sacks +sacrament +sacrament's +sacramental +sacraments +sacred +sacredly +sacredness +sacredness's +sacrifice +sacrifice's +sacrificed +sacrifices +sacrificial +sacrificing +sacrilege +sacrilege's +sacrileges +sacrilegious +sacristan +sacristan's +sacristans +sacristies +sacristy +sacristy's +sacrosanct +sacs +sad +sadden +saddened +saddening +saddens +sadder +saddest +saddle +saddle's +saddlebag +saddlebag's +saddlebags +saddled +saddles +saddling +sades +sadism +sadism's +sadist +sadist's +sadistic +sadistically +sadists +sadly +sadness +sadness's +safari +safari's +safaried +safariing +safaris +safe +safe's +safeguard +safeguard's +safeguarded +safeguarding +safeguards +safekeeping +safekeeping's +safely +safeness +safeness's +safer +safes +safest +safeties +safety +safety's +safflower +safflower's +safflowers +saffron +saffron's +saffrons +sag +sag's +saga +saga's +sagacious +sagacity +sagacity's +sagas +sage +sage's +sagebrush +sagebrush's +sager +sages +sagest +sagged +sagging +sago +sago's +sags +saguaro +saguaro's +saguaros +sahib +sahib's +sahibs +said +sail +sail's +sailboard +sailboard's +sailboards +sailboat +sailboat's +sailboats +sailcloth +sailcloth's +sailed +sailfish +sailfish's +sailfishes +sailing +sailing's +sailings +sailor +sailor's +sailors +sails +saint +saint's +sainthood +sainthood's +saintlier +saintliest +saintliness +saintliness's +saintly +saints +saith +sake +sake's +saki +saki's +salaam +salaam's +salaamed +salaaming +salaams +salable +salacious +salaciously +salaciousness +salaciousness's +salad +salad's +salads +salamander +salamander's +salamanders +salami +salami's +salamis +salaried +salaries +salary +salary's +sale +sale's +saleable +sales +salesclerk +salesclerk's +salesclerks +salesgirl +salesgirl's +salesgirls +salesman +salesman's +salesmanship +salesmanship's +salesmen +salespeople +salespeople's +salesperson +salesperson's +salespersons +saleswoman +saleswoman's +saleswomen +salient +salient's +salients +saline +saline's +salines +salinity +salinity's +saliva +saliva's +salivary +salivate +salivated +salivates +salivating +salivation +salivation's +sallied +sallies +sallow +sallower +sallowest +sally +sally's +sallying +salmon +salmon's +salmonella +salmonella's +salmonellae +salmonellas +salmons +salon +salon's +salons +saloon +saloon's +saloons +salsa +salsa's +salsas +salt +salt's +saltcellar +saltcellar's +saltcellars +salted +salter +saltest +saltier +saltiest +saltine +saltine's +saltines +saltiness +saltiness's +salting +saltpeter +saltpeter's +saltpetre +saltpetre's +salts +saltshaker +saltshaker's +saltshakers +saltwater +saltwater's +salty +salubrious +salutary +salutation +salutation's +salutations +salute +salute's +saluted +salutes +saluting +salvage +salvage's +salvageable +salvaged +salvages +salvaging +salvation +salvation's +salve +salve's +salved +salver +salver's +salvers +salves +salving +salvo +salvo's +salvoes +salvos +samba +samba's +sambaed +sambaing +sambas +same +sameness +sameness's +sames +samovar +samovar's +samovars +sampan +sampan's +sampans +sample +sample's +sampled +sampler +sampler's +samplers +samples +sampling +samurai +samurai's +sanatoria +sanatorium +sanatorium's +sanatoriums +sancta +sanctification +sanctification's +sanctified +sanctifies +sanctify +sanctifying +sanctimonious +sanctimoniously +sanction +sanction's +sanctioned +sanctioning +sanctions +sanctity +sanctity's +sanctuaries +sanctuary +sanctuary's +sanctum +sanctum's +sanctums +sand +sand's +sandal +sandal's +sandals +sandalwood +sandalwood's +sandbag +sandbag's +sandbagged +sandbagging +sandbags +sandbank +sandbank's +sandbanks +sandbar +sandbar's +sandbars +sandblast +sandblast's +sandblasted +sandblaster +sandblaster's +sandblasters +sandblasting +sandblasts +sandbox +sandbox's +sandboxes +sandcastle +sandcastle's +sandcastles +sanded +sander +sander's +sanders +sandhog +sandhog's +sandhogs +sandier +sandiest +sandiness +sandiness's +sanding +sandlot +sandlot's +sandlots +sandman +sandman's +sandmen +sandpaper +sandpaper's +sandpapered +sandpapering +sandpapers +sandpiper +sandpiper's +sandpipers +sands +sandstone +sandstone's +sandstorm +sandstorm's +sandstorms +sandwich +sandwich's +sandwiched +sandwiches +sandwiching +sandy +sane +sanely +saner +sanest +sang +sangfroid +sangfroid's +sangs +sanguinary +sanguine +sanitaria +sanitarium +sanitarium's +sanitariums +sanitary +sanitation +sanitation's +sanitize +sanitized +sanitizes +sanitizing +sanity +sanity's +sank +sans +sanserif +sap +sap's +sapience +sapience's +sapient +sapling +sapling's +saplings +sapped +sapphire +sapphire's +sapphires +sappier +sappiest +sapping +sappy +saprophyte +saprophyte's +saprophytes +saps +sapsucker +sapsucker's +sapsuckers +sarape +sarape's +sarapes +sarcasm +sarcasm's +sarcasms +sarcastic +sarcastically +sarcoma +sarcoma's +sarcomas +sarcomata +sarcophagi +sarcophagus +sarcophagus's +sarcophaguses +sardine +sardine's +sardines +sardonic +sardonically +saree +saree's +sarees +sari +sari's +saris +sarong +sarong's +sarongs +sarsaparilla +sarsaparilla's +sarsaparillas +sartorial +sartorially +sash +sash's +sashay +sashay's +sashayed +sashaying +sashays +sashes +sass +sass's +sassafras +sassafras's +sassafrases +sassed +sasses +sassier +sassiest +sassing +sassy +sat +satanic +satanically +satanism +satanism's +satchel +satchel's +satchels +sate +sated +sateen +sateen's +satellite +satellite's +satellited +satellites +satelliting +sates +satiate +satiated +satiates +satiating +satiety +satiety's +satin +satin's +sating +satinwood +satinwood's +satinwoods +satiny +satire +satire's +satires +satirical +satirically +satirist +satirist's +satirists +satirize +satirized +satirizes +satirizing +satisfaction +satisfaction's +satisfactions +satisfactorily +satisfactory +satisfied +satisfies +satisfy +satisfying +satrap +satrap's +satraps +saturate +saturated +saturates +saturating +saturation +saturation's +saturnine +satyr +satyr's +satyrs +sauce +sauce's +sauced +saucepan +saucepan's +saucepans +saucer +saucer's +saucers +sauces +saucier +sauciest +saucily +sauciness +sauciness's +saucing +saucy +sauerkraut +sauerkraut's +sauna +sauna's +saunaed +saunaing +saunas +saunter +saunter's +sauntered +sauntering +saunters +sausage +sausage's +sausages +sauted +sauté +sauté's +sautéed +sautéing +sautés +savage +savage's +savaged +savagely +savageness +savageness's +savager +savageries +savagery +savagery's +savages +savagest +savaging +savanna +savanna's +savannah +savannah's +savannahes +savannahs +savannas +savant +savant's +savants +save +save's +saved +saver +saver's +savers +saves +saving +saving's +savings +savings's +savior +savior's +saviors +saviour +saviour's +saviours +savor +savor's +savored +savorier +savories +savoriest +savoring +savors +savory +savory's +savvied +savvier +savvies +savviest +savvy +savvy's +savvying +saw +saw's +sawdust +sawdust's +sawed +sawhorse +sawhorse's +sawhorses +sawing +sawmill +sawmill's +sawmills +sawn +saws +sawyer +sawyer's +sawyers +sax +sax's +saxes +saxophone +saxophone's +saxophones +saxophonist +saxophonist's +saxophonists +say +say's +saying +saying's +sayings +says +scab +scab's +scabbard +scabbard's +scabbards +scabbed +scabbier +scabbiest +scabbing +scabby +scabies +scabies's +scabrous +scabs +scad +scad's +scads +scaffold +scaffold's +scaffolding +scaffolding's +scaffolds +scalar +scalars +scalawag +scalawag's +scalawags +scald +scald's +scalded +scalding +scalds +scale +scale's +scaled +scalene +scales +scalier +scaliest +scaling +scallion +scallion's +scallions +scallop +scallop's +scalloped +scalloping +scallops +scallywag +scallywag's +scallywags +scalp +scalp's +scalped +scalpel +scalpel's +scalpels +scalper +scalper's +scalpers +scalping +scalps +scaly +scam +scam's +scammed +scamming +scamp +scamp's +scamper +scamper's +scampered +scampering +scampers +scampi +scampi's +scampies +scamps +scams +scan +scan's +scandal +scandal's +scandalize +scandalized +scandalizes +scandalizing +scandalmonger +scandalmonger's +scandalmongers +scandalous +scandalously +scandals +scanned +scanner +scanner's +scanners +scanning +scans +scansion +scansion's +scant +scanted +scanter +scantest +scantier +scanties +scantiest +scantily +scantiness +scantiness's +scanting +scants +scanty +scapegoat +scapegoat's +scapegoated +scapegoating +scapegoats +scapula +scapula's +scapulae +scapulas +scar +scar's +scarab +scarab's +scarabs +scarce +scarcely +scarceness +scarceness's +scarcer +scarcest +scarcity +scarcity's +scare +scare's +scarecrow +scarecrow's +scarecrows +scared +scares +scarf +scarf's +scarfed +scarfing +scarfs +scarier +scariest +scarified +scarifies +scarify +scarifying +scaring +scarlet +scarlet's +scarred +scarring +scars +scarves +scary +scat +scat's +scathing +scathingly +scatological +scats +scatted +scatter +scatter's +scatterbrain +scatterbrain's +scatterbrained +scatterbrains +scattered +scattering +scatters +scatting +scavenge +scavenged +scavenger +scavenger's +scavengers +scavenges +scavenging +scenario +scenario's +scenarios +scene +scene's +scenery +scenery's +scenes +scenic +scenically +scent +scent's +scented +scenting +scents +scepter +scepter's +scepters +schedule +schedule's +scheduled +scheduler +schedulers +schedules +scheduling +schema +schematic +schematic's +schematically +schematics +scheme +scheme's +schemed +schemer +schemer's +schemers +schemes +scheming +scherzi +scherzo +scherzo's +scherzos +schism +schism's +schismatic +schismatic's +schismatics +schisms +schist +schist's +schizoid +schizoid's +schizoids +schizophrenia +schizophrenia's +schizophrenic +schizophrenic's +schizophrenics +schlemiel +schlemiel's +schlemiels +schlep +schlep's +schlepp +schlepp's +schlepped +schlepping +schlepps +schleps +schlock +schlock's +schlocky +schmaltz +schmaltz's +schmaltzier +schmaltziest +schmaltzy +schmalz +schmalz's +schmalzy +schmooze +schmoozed +schmoozes +schmoozing +schmuck +schmuck's +schmucks +schnapps +schnapps's +schnauzer +schnauzer's +schnauzers +scholar +scholar's +scholarly +scholars +scholarship +scholarship's +scholarships +scholastic +scholastically +school +school's +schoolbook +schoolbook's +schoolbooks +schoolboy +schoolboy's +schoolboys +schoolchild +schoolchild's +schoolchildren +schooldays +schooled +schoolgirl +schoolgirl's +schoolgirls +schoolhouse +schoolhouse's +schoolhouses +schooling +schooling's +schoolmarm +schoolmarm's +schoolmarms +schoolmaster +schoolmaster's +schoolmasters +schoolmate +schoolmate's +schoolmates +schoolmistress +schoolmistress's +schoolmistresses +schoolroom +schoolroom's +schoolrooms +schools +schoolteacher +schoolteacher's +schoolteachers +schoolwork +schoolwork's +schoolyard +schoolyard's +schoolyards +schooner +schooner's +schooners +schrod +schrod's +schrods +schtick +schtick's +schticks +schuss +schuss's +schussed +schusses +schussing +schwa +schwa's +schwas +sciatic +sciatica +sciatica's +science +science's +sciences +scientific +scientifically +scientist +scientist's +scientists +scimitar +scimitar's +scimitars +scintilla +scintilla's +scintillas +scintillate +scintillated +scintillates +scintillating +scintillation +scintillation's +scion +scion's +scions +scissor +scissors +sclerosis +sclerosis's +sclerotic +scoff +scoff's +scoffed +scoffing +scofflaw +scofflaw's +scofflaws +scoffs +scold +scold's +scolded +scolding +scolding's +scoldings +scolds +scoliosis +scoliosis's +scollop +scollop's +scolloped +scolloping +scollops +sconce +sconce's +sconces +scone +scone's +scones +scoop +scoop's +scooped +scooping +scoops +scoot +scooted +scooter +scooter's +scooters +scooting +scoots +scope +scope's +scoped +scopes +scoping +scorch +scorch's +scorched +scorcher +scorcher's +scorchers +scorches +scorching +score +score's +scoreboard +scoreboard's +scoreboards +scorecard +scorecard's +scorecards +scored +scoreless +scorer +scorer's +scorers +scores +scoring +scorn +scorn's +scorned +scornful +scornfully +scorning +scorns +scorpion +scorpion's +scorpions +scotch +scotch's +scotched +scotches +scotching +scotchs +scoundrel +scoundrel's +scoundrels +scour +scoured +scourge +scourge's +scourged +scourges +scourging +scouring +scours +scout +scout's +scouted +scouting +scouting's +scoutmaster +scoutmaster's +scoutmasters +scouts +scow +scow's +scowl +scowl's +scowled +scowling +scowls +scows +scrabble +scrabble's +scrabbled +scrabbles +scrabbling +scragglier +scraggliest +scraggly +scram +scramble +scramble's +scrambled +scrambler +scrambler's +scramblers +scrambles +scrambling +scrammed +scramming +scrams +scrap +scrap's +scrapbook +scrapbook's +scrapbooks +scrape +scrape's +scraped +scraper +scraper's +scrapers +scrapes +scraping +scrapped +scrappier +scrappiest +scrapping +scrappy +scraps +scratch +scratch's +scratched +scratches +scratchier +scratchiest +scratchiness +scratchiness's +scratching +scratchy +scrawl +scrawl's +scrawled +scrawling +scrawls +scrawnier +scrawniest +scrawny +scream +scream's +screamed +screaming +screams +screech +screech's +screeched +screeches +screechier +screechiest +screeching +screechy +screen +screen's +screened +screening +screening's +screenings +screenplay +screenplay's +screenplays +screens +screenwriter +screenwriter's +screenwriters +screw +screw's +screwball +screwball's +screwballs +screwdriver +screwdriver's +screwdrivers +screwed +screwier +screwiest +screwing +screws +screwy +scribble +scribble's +scribbled +scribbler +scribbler's +scribblers +scribbles +scribbling +scribe +scribe's +scribes +scrimmage +scrimmage's +scrimmaged +scrimmages +scrimmaging +scrimp +scrimped +scrimping +scrimps +scrimshaw +scrimshaw's +scrimshawed +scrimshawing +scrimshaws +scrip +scrip's +scrips +script +script's +scripted +scripting +scripts +scriptural +scripture +scripture's +scriptures +scriptwriter +scriptwriter's +scriptwriters +scrod +scrod's +scrods +scrofula +scrofula's +scroll +scroll's +scrolled +scrolling +scrolls +scrooge +scrooge's +scrooges +scrota +scrotum +scrotum's +scrotums +scrounge +scrounged +scrounger +scrounger's +scroungers +scrounges +scrounging +scrub +scrub's +scrubbed +scrubber +scrubber's +scrubbers +scrubbier +scrubbiest +scrubbing +scrubby +scrubs +scruff +scruff's +scruffier +scruffiest +scruffs +scruffy +scrumptious +scrunch +scrunch's +scrunched +scrunches +scrunching +scruple +scruple's +scrupled +scruples +scrupling +scrupulous +scrupulously +scrutinize +scrutinized +scrutinizes +scrutinizing +scrutiny +scrutiny's +scuba +scuba's +scubaed +scubaing +scubas +scud +scud's +scudded +scudding +scuds +scuff +scuff's +scuffed +scuffing +scuffle +scuffle's +scuffled +scuffles +scuffling +scuffs +scull +scull's +sculled +sculleries +scullery +scullery's +sculling +scullion +scullion's +scullions +sculls +sculpt +sculpted +sculpting +sculptor +sculptor's +sculptors +sculpts +sculptural +sculpture +sculpture's +sculptured +sculptures +sculpturing +scum +scum's +scumbag +scumbag's +scumbags +scummed +scummier +scummiest +scumming +scummy +scums +scupper +scupper's +scuppered +scuppering +scuppers +scurf +scurf's +scurfier +scurfiest +scurfy +scurried +scurries +scurrilous +scurrilously +scurry +scurry's +scurrying +scurvier +scurviest +scurvy +scurvy's +scuttle +scuttle's +scuttlebutt +scuttlebutt's +scuttled +scuttles +scuttling +scuzzier +scuzziest +scuzzy +scythe +scythe's +scythed +scythes +scything +sea +sea's +seabed +seabed's +seabeds +seabird +seabird's +seabirds +seaboard +seaboard's +seaboards +seacoast +seacoast's +seacoasts +seafarer +seafarer's +seafarers +seafaring +seafaring's +seafood +seafood's +seagoing +seal +seal's +sealant +sealant's +sealants +sealed +sealer +sealer's +sealers +sealing +seals +sealskin +sealskin's +seam +seam's +seaman +seaman's +seamanship +seamanship's +seamed +seamen +seamier +seamiest +seaming +seamless +seams +seamstress +seamstress's +seamstresses +seamy +seaplane +seaplane's +seaplanes +seaport +seaport's +seaports +sear +sear's +search +search's +searched +searcher +searcher's +searchers +searches +searching +searchingly +searchlight +searchlight's +searchlights +seared +searing +sears +seas +seascape +seascape's +seascapes +seashell +seashell's +seashells +seashore +seashore's +seashores +seasick +seasickness +seasickness's +seaside +seaside's +seasides +season +season's +seasonable +seasonal +seasonally +seasoned +seasoning +seasoning's +seasonings +seasons +seat +seat's +seated +seating +seating's +seats +seaward +seaward's +seawards +seaway +seaway's +seaways +seaweed +seaweed's +seaworthier +seaworthiest +seaworthy +sebaceous +sec's +secede +seceded +secedes +seceding +secession +secession's +secessionist +secessionist's +secessionists +seclude +secluded +secludes +secluding +seclusion +seclusion's +seclusive +second +second's +secondaries +secondarily +secondary +secondary's +seconded +secondhand +seconding +secondly +seconds +secrecy +secrecy's +secret +secret's +secretarial +secretariat +secretariat's +secretariats +secretaries +secretary +secretary's +secrete +secreted +secretes +secreting +secretion +secretion's +secretions +secretive +secretively +secretiveness +secretiveness's +secretly +secrets +secs +sect +sect's +sectarian +sectarian's +sectarianism +sectarianism's +sectarians +section +section's +sectional +sectional's +sectionalism +sectionalism's +sectionals +sectioned +sectioning +sections +sector +sector's +sectors +sects +secular +secularism +secularism's +secularization +secularization's +secularize +secularized +secularizes +secularizing +secure +secured +securely +securer +secures +securest +securing +securities +security +security's +sedan +sedan's +sedans +sedate +sedated +sedately +sedater +sedates +sedatest +sedating +sedation +sedation's +sedative +sedative's +sedatives +sedentary +sedge +sedge's +sediment +sediment's +sedimentary +sedimentation +sedimentation's +sediments +sedition +sedition's +seditious +seduce +seduced +seducer +seducer's +seducers +seduces +seducing +seduction +seduction's +seductions +seductive +seductively +sedulous +see +see's +seed +seed's +seeded +seedier +seediest +seediness +seediness's +seeding +seedless +seedling +seedling's +seedlings +seeds +seedy +seeing +seeings +seek +seeker +seeker's +seekers +seeking +seeks +seem +seemed +seeming +seemingly +seemlier +seemliest +seemliness +seemliness's +seemly +seems +seen +seep +seepage +seepage's +seeped +seeping +seeps +seer +seer's +seers +seersucker +seersucker's +sees +seesaw +seesaw's +seesawed +seesawing +seesaws +seethe +seethed +seethes +seething +segment +segment's +segmentation +segmentation's +segmented +segmenting +segments +segregate +segregated +segregates +segregating +segregation +segregation's +segregationist +segregationist's +segregationists +segue +segue's +segued +segueing +segues +seismic +seismically +seismograph +seismograph's +seismographic +seismographs +seismologist +seismologist's +seismologists +seismology +seismology's +seize +seized +seizes +seizing +seizure +seizure's +seizures +seldom +select +selected +selecting +selection +selection's +selections +selective +selectively +selectivity +selectivity's +selectman +selectman's +selectmen +selector +selector's +selectors +selects +selenium +selenium's +self +self's +selfish +selfishly +selfishness +selfishness's +selfless +selflessly +selflessness +selflessness's +selfsame +sell +sell's +seller +seller's +sellers +selling +sellout +sellout's +sellouts +sells +seltzer +seltzer's +selvage +selvage's +selvages +selvedge +selvedge's +selvedges +selves +semantic +semantically +semantics +semantics's +semaphore +semaphore's +semaphored +semaphores +semaphoring +semblance +semblance's +semblances +semen +semen's +semester +semester's +semesters +semi +semi's +semiannual +semiautomatic +semiautomatic's +semiautomatics +semicircle +semicircle's +semicircles +semicircular +semicolon +semicolon's +semicolons +semiconductor +semiconductor's +semiconductors +semiconscious +semifinal +semifinal's +semifinalist +semifinalist's +semifinalists +semifinals +semimonthlies +semimonthly +semimonthly's +seminal +seminar +seminar's +seminarian +seminarian's +seminarians +seminaries +seminars +seminary +seminary's +semipermeable +semiprecious +semiprivate +semiprofessional +semiprofessional's +semiprofessionals +semis +semiskilled +semitone +semitone's +semitones +semitrailer +semitrailer's +semitrailers +semitropical +semiweeklies +semiweekly +semiweekly's +senate +senate's +senates +senator +senator's +senatorial +senators +send +sender +sender's +senders +sending +sends +senile +senility +senility's +senior +senior's +seniority +seniority's +seniors +senna +senna's +sensation +sensation's +sensational +sensationalism +sensationalism's +sensationalist +sensationalist's +sensationalists +sensationally +sensations +sense +sense's +sensed +senseless +senselessly +senselessness +senselessness's +senses +sensibilities +sensibility +sensibility's +sensible +sensibly +sensing +sensitive +sensitive's +sensitively +sensitiveness +sensitiveness's +sensitives +sensitivities +sensitivity +sensitivity's +sensitization +sensitization's +sensitize +sensitized +sensitizes +sensitizing +sensor +sensor's +sensors +sensory +sensual +sensuality +sensuality's +sensually +sensuous +sensuously +sensuousness +sensuousness's +sent +sentence +sentence's +sentenced +sentences +sentencing +sententious +sentience +sentient +sentiment +sentiment's +sentimental +sentimentalism +sentimentalism's +sentimentalist +sentimentalist's +sentimentalists +sentimentality +sentimentality's +sentimentalize +sentimentalized +sentimentalizes +sentimentalizing +sentimentally +sentiments +sentinel +sentinel's +sentinels +sentries +sentry +sentry's +sepal +sepal's +sepals +separable +separate +separate's +separated +separately +separates +separating +separation +separation's +separations +separatism +separatism's +separatist +separatist's +separatists +separator +separator's +separators +sepia +sepia's +sepsis +sepsis's +septa +septet +septet's +septets +septette +septette's +septettes +septic +septicemia +septicemia's +septuagenarian +septuagenarian's +septuagenarians +septum +septum's +septums +sepulcher +sepulcher's +sepulchered +sepulchering +sepulchers +sepulchral +sequel +sequel's +sequels +sequence +sequence's +sequenced +sequencer +sequencers +sequences +sequencing +sequential +sequentially +sequester +sequestered +sequestering +sequesters +sequestration +sequestration's +sequestrations +sequin +sequin's +sequined +sequins +sequoia +sequoia's +sequoias +sera +seraglio +seraglio's +seraglios +serape +serape's +serapes +seraph +seraph's +seraphic +seraphim +seraphs +sere +serenade +serenade's +serenaded +serenades +serenading +serendipitous +serendipity +serendipity's +serene +serenely +sereneness +sereneness's +serener +serenest +serenity +serenity's +serer +serest +serf +serf's +serfdom +serfdom's +serfs +serge +serge's +sergeant +sergeant's +sergeants +serial +serial's +serialization +serialization's +serialize +serialized +serializes +serializing +serially +serials +series +series's +serious +seriously +seriousness +seriousness's +sermon +sermon's +sermonize +sermonized +sermonizes +sermonizing +sermons +serous +serpent +serpent's +serpentine +serpentine's +serpents +serrated +serried +serum +serum's +serums +servant +servant's +servants +serve +serve's +served +server +server's +servers +serves +service +service's +serviceable +serviced +serviceman +serviceman's +servicemen +services +servicewoman +servicewoman's +servicewomen +servicing +serviette +serviette's +serviettes +servile +servility +servility's +serving +serving's +servings +servitude +servitude's +servo +servo's +servomechanism +servomechanism's +servomechanisms +servos +sesame +sesame's +sesames +session +session's +sessions +set +set's +setback +setback's +setbacks +sets +settable +settee +settee's +settees +setter +setter's +setters +setting +setting's +settings +settle +settle's +settled +settlement +settlement's +settlements +settler +settler's +settlers +settles +settling +setup +setup's +setups +seven +seven's +sevens +seventeen +seventeen's +seventeens +seventeenth +seventeenth's +seventeenths +seventh +seventh's +sevenths +seventies +seventieth +seventieth's +seventieths +seventy +seventy's +sever +several +several's +severally +severance +severance's +severances +severe +severed +severely +severer +severest +severing +severity +severity's +severs +sew +sewage +sewage's +sewed +sewer +sewer's +sewerage +sewerage's +sewers +sewing +sewing's +sewn +sews +sex +sex's +sexagenarian +sexagenarian's +sexagenarians +sexed +sexes +sexier +sexiest +sexiness +sexiness's +sexing +sexism +sexism's +sexist +sexist's +sexists +sexless +sexpot +sexpot's +sexpots +sextant +sextant's +sextants +sextet +sextet's +sextets +sextette +sextette's +sextettes +sexton +sexton's +sextons +sexual +sexuality +sexuality's +sexually +sexy +sh +shabbier +shabbiest +shabbily +shabbiness +shabbiness's +shabby +shack +shack's +shackle +shackle's +shackled +shackles +shackling +shacks +shad +shad's +shade +shade's +shaded +shades +shadier +shadiest +shadiness +shadiness's +shading +shading's +shadings +shadow +shadow's +shadowbox +shadowboxed +shadowboxes +shadowboxing +shadowed +shadowier +shadowiest +shadowing +shadows +shadowy +shads +shady +shaft +shaft's +shafted +shafting +shafts +shag +shag's +shagged +shaggier +shaggiest +shagginess +shagginess's +shagging +shaggy +shags +shah +shah's +shahs +shaikh +shaikh's +shaikhs +shake +shake's +shakedown +shakedown's +shakedowns +shaken +shaker +shaker's +shakers +shakes +shakeup +shakeup's +shakeups +shakier +shakiest +shakily +shakiness +shakiness's +shaking +shaky +shale +shale's +shall +shallot +shallot's +shallots +shallow +shallow's +shallower +shallowest +shallowness +shallowness's +shallows +shalt +sham +sham's +shaman +shaman's +shamans +shamble +shamble's +shambled +shambles +shambles's +shambling +shame +shame's +shamed +shamefaced +shameful +shamefully +shamefulness +shamefulness's +shameless +shamelessly +shames +shaming +shammed +shammies +shamming +shammy +shammy's +shampoo +shampoo's +shampooed +shampooing +shampoos +shamrock +shamrock's +shamrocks +shams +shan't +shandy +shanghai +shanghaied +shanghaiing +shanghais +shank +shank's +shanks +shanties +shantung +shantung's +shanty +shanty's +shantytown +shantytown's +shantytowns +shape +shape's +shaped +shapeless +shapelessly +shapelessness +shapelessness's +shapelier +shapeliest +shapeliness +shapeliness's +shapely +shapes +shaping +shard +shard's +shards +share +share's +sharecropper +sharecropper's +sharecroppers +shared +shareholder +shareholder's +shareholders +shares +sharing +shark +shark's +sharked +sharking +sharks +sharkskin +sharkskin's +sharp +sharp's +sharped +sharpen +sharpened +sharpener +sharpener's +sharpeners +sharpening +sharpens +sharper +sharper's +sharpers +sharpest +sharping +sharply +sharpness +sharpness's +sharps +sharpshooter +sharpshooter's +sharpshooters +shat +shatter +shatter's +shattered +shattering +shatterproof +shatters +shave +shave's +shaved +shaven +shaver +shaver's +shavers +shaves +shaving +shaving's +shavings +shawl +shawl's +shawls +shaykh +shaykh's +shaykhs +she +she'd +she'll +she's +sheaf +sheaf's +shear +shear's +sheared +shearer +shearer's +shearers +shearing +shears +sheath +sheath's +sheathe +sheathed +sheathes +sheathing +sheathing's +sheathings +sheaths +sheave +sheave's +sheaves +shebang +shebang's +shebangs +shed +shed's +shedding +sheds +sheen +sheen's +sheep +sheep's +sheepdog +sheepdog's +sheepdogs +sheepfold +sheepfold's +sheepfolds +sheepish +sheepishly +sheepishness +sheepishness's +sheepskin +sheepskin's +sheepskins +sheer +sheer's +sheered +sheerer +sheerest +sheering +sheers +sheet +sheet's +sheeting +sheeting's +sheets +sheik +sheik's +sheikdom +sheikdom's +sheikdoms +sheikh +sheikh's +sheikhdom +sheikhdom's +sheikhdoms +sheikhs +sheiks +shekel +shekel's +shekels +shelf +shelf's +shell +shell's +shellac +shellac's +shellacked +shellacking +shellacs +shelled +sheller +shellfish +shellfish's +shellfishes +shelling +shells +shelter +shelter's +sheltered +sheltering +shelters +shelve +shelved +shelves +shelving +shelving's +shenanigan +shenanigan's +shenanigans +shepherd +shepherd's +shepherded +shepherdess +shepherdess's +shepherdesses +shepherding +shepherds +sherbert +sherbert's +sherberts +sherbet +sherbet's +sherbets +sherd +sherd's +sherds +sheriff +sheriff's +sheriffs +sherries +sherry +sherry's +shes +shibboleth +shibboleth's +shibboleths +shied +shield +shield's +shielded +shielding +shields +shies +shift +shift's +shifted +shiftier +shiftiest +shiftily +shiftiness +shiftiness's +shifting +shiftless +shiftlessness +shiftlessness's +shifts +shifty +shill +shill's +shillalah +shillalah's +shillalahs +shilled +shillelagh +shillelagh's +shillelaghs +shilling +shilling's +shillings +shills +shim +shim's +shimmed +shimmer +shimmer's +shimmered +shimmering +shimmers +shimmery +shimmied +shimmies +shimming +shimmy +shimmy's +shimmying +shims +shin +shin's +shinbone +shinbone's +shinbones +shindig +shindig's +shindigs +shine +shine's +shined +shiner +shiner's +shiners +shines +shingle +shingle's +shingled +shingles +shingling +shinier +shiniest +shininess +shininess's +shining +shinned +shinnied +shinnies +shinning +shinny +shinnying +shins +shiny +ship +ship's +shipboard +shipboard's +shipboards +shipbuilder +shipbuilder's +shipbuilders +shipbuilding +shipbuilding's +shipload +shipload's +shiploads +shipmate +shipmate's +shipmates +shipment +shipment's +shipments +shipped +shipper +shipper's +shippers +shipping +shipping's +ships +shipshape +shipwreck +shipwreck's +shipwrecked +shipwrecking +shipwrecks +shipwright +shipwright's +shipwrights +shipyard +shipyard's +shipyards +shire +shire's +shires +shirk +shirked +shirker +shirker's +shirkers +shirking +shirks +shirr +shirr's +shirred +shirring +shirring's +shirrings +shirrs +shirt +shirt's +shirted +shirting +shirts +shirtsleeve +shirtsleeve's +shirtsleeves +shirttail +shirttail's +shirttails +shirtwaist +shirtwaist's +shirtwaists +shit +shit's +shits +shittier +shittiest +shitting +shitty +shiver +shiver's +shivered +shivering +shivers +shivery +shlemiel +shlemiel's +shlemiels +shlep +shlep's +shlepp +shlepp's +shlepped +shlepping +shlepps +shleps +shlock +shlocky +shoal +shoal's +shoaled +shoaling +shoals +shock +shock's +shocked +shocker +shocker's +shockers +shocking +shockingly +shockproof +shocks +shod +shodden +shoddier +shoddiest +shoddily +shoddiness +shoddiness's +shoddy +shoddy's +shoe +shoe's +shoed +shoehorn +shoehorn's +shoehorned +shoehorning +shoehorns +shoeing +shoelace +shoelace's +shoelaces +shoemaker +shoemaker's +shoemakers +shoes +shoeshine +shoeshine's +shoeshines +shoestring +shoestring's +shoestrings +shogun +shogun's +shoguns +shone +shoo +shooed +shooing +shook +shoon +shoos +shoot +shoot's +shooter +shooter's +shooters +shooting +shooting's +shootings +shootout +shootout's +shootouts +shoots +shop +shop's +shopkeeper +shopkeeper's +shopkeepers +shoplift +shoplifted +shoplifter +shoplifter's +shoplifters +shoplifting +shoplifting's +shoplifts +shopped +shopper +shopper's +shoppers +shopping +shopping's +shops +shoptalk +shoptalk's +shopworn +shore +shore's +shored +shoreline +shoreline's +shorelines +shores +shoring +shorn +short +short's +shortage +shortage's +shortages +shortbread +shortbread's +shortcake +shortcake's +shortcakes +shortchange +shortchanged +shortchanges +shortchanging +shortcoming +shortcoming's +shortcomings +shortcut +shortcut's +shortcuts +shorted +shorten +shortened +shortening +shortening's +shortenings +shortens +shorter +shortest +shortfall +shortfall's +shortfalls +shorthand +shorthand's +shorthorn +shorthorn's +shorthorns +shorting +shortish +shortlist +shortly +shortness +shortness's +shorts +shortsighted +shortsightedly +shortsightedness +shortsightedness's +shortstop +shortstop's +shortstops +shortwave +shortwave's +shortwaves +shot +shot's +shotgun +shotgun's +shotgunned +shotgunning +shotguns +shots +should +shoulder +shoulder's +shouldered +shouldering +shoulders +shouldn't +shout +shout's +shouted +shouting +shouts +shove +shove's +shoved +shovel +shovel's +shoveled +shovelful +shovelful's +shovelfuls +shoveling +shovelled +shovelling +shovels +shoves +shoving +show +show's +showbiz +showbiz's +showboat +showboat's +showboated +showboating +showboats +showcase +showcase's +showcased +showcases +showcasing +showdown +showdown's +showdowns +showed +shower +shower's +showered +showering +showers +showery +showgirl +showgirl's +showgirls +showier +showiest +showily +showiness +showiness's +showing +showing's +showings +showman +showman's +showmanship +showmanship's +showmen +shown +showoff +showoff's +showoffs +showpiece +showpiece's +showpieces +showplace +showplace's +showplaces +showroom +showroom's +showrooms +shows +showy +shrank +shrapnel +shrapnel's +shred +shred's +shredded +shredder +shredder's +shredders +shredding +shreds +shrew +shrew's +shrewd +shrewder +shrewdest +shrewdly +shrewdness +shrewdness's +shrewish +shrews +shriek +shriek's +shrieked +shrieking +shrieks +shrift +shrift's +shrike +shrike's +shrikes +shrill +shrilled +shriller +shrillest +shrilling +shrillness +shrillness's +shrills +shrilly +shrimp +shrimp's +shrimped +shrimping +shrimps +shrine +shrine's +shrines +shrink +shrink's +shrinkable +shrinkage +shrinkage's +shrinking +shrinks +shrive +shrived +shrivel +shriveled +shriveling +shrivelled +shrivelling +shrivels +shriven +shrives +shriving +shroud +shroud's +shrouded +shrouding +shrouds +shrove +shrub +shrub's +shrubberies +shrubbery +shrubbery's +shrubbier +shrubbiest +shrubby +shrubs +shrug +shrug's +shrugged +shrugging +shrugs +shrunk +shrunken +shtick +shtick's +shticks +shtik +shtik's +shtiks +shuck +shuck's +shucked +shucking +shucks +shuckses +shudder +shudder's +shuddered +shuddering +shudders +shuffle +shuffle's +shuffleboard +shuffleboard's +shuffleboards +shuffled +shuffler +shuffler's +shufflers +shuffles +shuffling +shun +shunned +shunning +shuns +shunt +shunt's +shunted +shunting +shunts +shush +shushed +shushes +shushing +shut +shutdown +shutdown's +shutdowns +shuteye +shuteye's +shutout +shutout's +shutouts +shuts +shutter +shutter's +shutterbug +shutterbug's +shutterbugs +shuttered +shuttering +shutters +shutting +shuttle +shuttle's +shuttlecock +shuttlecock's +shuttlecocked +shuttlecocking +shuttlecocks +shuttled +shuttles +shuttling +shy +shy's +shyer +shyest +shying +shyly +shyness +shyness's +shyster +shyster's +shysters +sibilant +sibilant's +sibilants +sibling +sibling's +siblings +sibyl +sibyl's +sibyls +sic +sick +sickbed +sickbed's +sickbeds +sicked +sicken +sickened +sickening +sickeningly +sickens +sicker +sickest +sicking +sickle +sickle's +sickles +sicklier +sickliest +sickly +sickness +sickness's +sicknesses +sicks +sics +side +side's +sidearm +sidearm's +sidearms +sidebar +sidebar's +sidebars +sideboard +sideboard's +sideboards +sideburns +sideburns's +sidecar +sidecar's +sidecars +sided +sidekick +sidekick's +sidekicks +sidelight +sidelight's +sidelights +sideline +sideline's +sidelined +sidelines +sidelining +sidelong +sidereal +sides +sidesaddle +sidesaddle's +sidesaddles +sideshow +sideshow's +sideshows +sidesplitting +sidestep +sidestep's +sidestepped +sidestepping +sidesteps +sidestroke +sidestroke's +sidestroked +sidestrokes +sidestroking +sideswipe +sideswipe's +sideswiped +sideswipes +sideswiping +sidetrack +sidetrack's +sidetracked +sidetracking +sidetracks +sidewalk +sidewalk's +sidewalks +sidewall +sidewall's +sidewalls +sideways +sidewise +siding +siding's +sidings +sidle +sidle's +sidled +sidles +sidling +siege +siege's +sieges +sierra +sierra's +sierras +siesta +siesta's +siestas +sieve +sieve's +sieved +sieves +sieving +sift +sifted +sifter +sifter's +sifters +sifting +sifts +sigh +sigh's +sighed +sighing +sighs +sight +sight's +sighted +sighting +sighting's +sightings +sightless +sightread +sights +sightseeing +sightseeing's +sightseer +sightseer's +sightseers +sigma +sign +sign's +signal +signal's +signaled +signaling +signalize +signalized +signalizes +signalizing +signalled +signalling +signally +signals +signatories +signatory +signatory's +signature +signature's +signatures +signboard +signboard's +signboards +signed +signer +signer's +signers +signet +signet's +signets +significance +significance's +significant +significantly +signification +signification's +significations +signified +signifies +signify +signifying +signing +signing's +signings +signpost +signpost's +signposted +signposting +signposts +signs +silage +silage's +silence +silence's +silenced +silencer +silencer's +silencers +silences +silencing +silent +silent's +silenter +silentest +silently +silents +silhouette +silhouette's +silhouetted +silhouettes +silhouetting +silica +silica's +silicate +silicate's +silicates +siliceous +silicious +silicon +silicon's +silicone +silicone's +silicosis +silicosis's +silk +silk's +silken +silkier +silkiest +silks +silkworm +silkworm's +silkworms +silky +sill +sill's +sillier +sillies +silliest +silliness +silliness's +sills +silly +silly's +silo +silo's +silos +silt +silt's +silted +silting +silts +silvan +silver +silver's +silvered +silverfish +silverfish's +silverfishes +silvering +silvers +silversmith +silversmith's +silversmiths +silverware +silverware's +silvery +simian +simian's +simians +similar +similarities +similarity +similarity's +similarly +simile +simile's +similes +simmer +simmer's +simmered +simmering +simmers +simpatico +simper +simper's +simpered +simpering +simpers +simple +simpleness +simpleness's +simpler +simplest +simpleton +simpleton's +simpletons +simplex +simplicity +simplicity's +simplification +simplification's +simplifications +simplified +simplifies +simplify +simplifying +simplistic +simply +simulate +simulated +simulates +simulating +simulation +simulation's +simulations +simulator +simulator's +simulators +simulcast +simulcast's +simulcasted +simulcasting +simulcasts +simultaneous +simultaneously +sin +sin's +since +sincere +sincerely +sincerer +sincerest +sincerity +sincerity's +sine +sinecure +sinecure's +sinecures +sinew +sinew's +sinews +sinewy +sinful +sinfully +sinfulness +sinfulness's +sing +sing's +singe +singe's +singed +singeing +singer +singer's +singers +singes +singing +singing's +single +single's +singled +singles +singles's +singleton +singleton's +singletons +singling +singly +sings +singsong +singsong's +singsonged +singsonging +singsongs +singular +singular's +singularities +singularity +singularity's +singularly +singulars +sinister +sink +sink's +sinkable +sinker +sinker's +sinkers +sinkhole +sinkhole's +sinkholes +sinking +sinks +sinned +sinner +sinner's +sinners +sinning +sins +sinuous +sinus +sinus's +sinuses +sinusitis +sinusitis's +sinusoidal +sip +sip's +siphon +siphon's +siphoned +siphoning +siphons +sipped +sipping +sips +sir +sir's +sire +sire's +sired +siren +siren's +sirens +sires +siring +sirloin +sirloin's +sirloins +sirocco +sirocco's +siroccos +sirs +sirup +sirup's +sirups +sis +sis's +sisal +sisal's +sises +sissier +sissies +sissiest +sissy +sissy's +sister +sister's +sisterhood +sisterhood's +sisterhoods +sisterly +sisters +sit +sitar +sitar's +sitars +sitcom +sitcom's +sitcoms +site +site's +sited +sites +siting +sits +sitter +sitter's +sitters +sitting +sitting's +sittings +situate +situated +situates +situating +situation +situation's +situations +six +six's +sixes +sixpence +sixpence's +sixpences +sixteen +sixteen's +sixteens +sixteenth +sixteenth's +sixteenths +sixth +sixth's +sixths +sixties +sixtieth +sixtieth's +sixtieths +sixty +sixty's +sizable +size +size's +sizeable +sized +sizer +sizes +sizing +sizing's +sizzle +sizzle's +sizzled +sizzles +sizzling +skate +skate's +skateboard +skateboard's +skateboarded +skateboarder +skateboarder's +skateboarders +skateboarding +skateboarding's +skateboards +skated +skater +skater's +skaters +skates +skating +skedaddle +skedaddle's +skedaddled +skedaddles +skedaddling +skeet +skeet's +skein +skein's +skeins +skeletal +skeleton +skeleton's +skeletons +skeptic +skeptic's +skeptical +skeptically +skepticism +skepticism's +skeptics +sketch +sketch's +sketched +sketches +sketchier +sketchiest +sketching +sketchy +skew +skew's +skewed +skewer +skewer's +skewered +skewering +skewers +skewing +skews +ski +ski's +skid +skid's +skidded +skidding +skids +skied +skier +skier's +skiers +skies +skiff +skiff's +skiffs +skiing +skiing's +skilful +skill +skill's +skilled +skillet +skillet's +skillets +skillful +skillfully +skills +skim +skim's +skimmed +skimming +skimp +skimped +skimpier +skimpiest +skimpiness +skimpiness's +skimping +skimps +skimpy +skims +skin +skin's +skinflint +skinflint's +skinflints +skinhead +skinhead's +skinheads +skinless +skinned +skinnier +skinniest +skinniness +skinniness's +skinning +skinny +skinny's +skins +skintight +skip +skip's +skipped +skipper +skipper's +skippered +skippering +skippers +skipping +skips +skirmish +skirmish's +skirmished +skirmishes +skirmishing +skirt +skirt's +skirted +skirting +skirts +skis +skit +skit's +skits +skitter +skittered +skittering +skitters +skittish +skivvied +skivvies +skivvy +skivvy's +skivvying +skulduggery +skulduggery's +skulk +skulked +skulking +skulks +skull +skull's +skullcap +skullcap's +skullcaps +skullduggery +skullduggery's +skulls +skunk +skunk's +skunked +skunking +skunks +sky +sky's +skycap +skycap's +skycaps +skydive +skydived +skydiver +skydiver's +skydivers +skydives +skydiving +skydiving's +skydove +skyed +skying +skyjack +skyjacked +skyjacker +skyjacker's +skyjackers +skyjacking +skyjacks +skylark +skylark's +skylarked +skylarking +skylarks +skylight +skylight's +skylights +skyline +skyline's +skylines +skyrocket +skyrocket's +skyrocketed +skyrocketing +skyrockets +skyscraper +skyscraper's +skyscrapers +skyward +skywards +skywriter +skywriter's +skywriters +skywriting +skywriting's +slab +slab's +slabbed +slabbing +slabs +slack +slack's +slacked +slacken +slackened +slackening +slackens +slacker +slacker's +slackers +slackest +slacking +slackly +slackness +slackness's +slacks +slacks's +slag +slag's +slags +slain +slake +slaked +slakes +slaking +slalom +slalom's +slalomed +slaloming +slaloms +slam +slam's +slammed +slammer +slammer's +slammers +slamming +slams +slander +slander's +slandered +slanderer +slanderer's +slanderers +slandering +slanderous +slanders +slang +slang's +slangier +slangiest +slangy +slant +slant's +slanted +slanting +slants +slantwise +slap +slap's +slapdash +slaphappier +slaphappiest +slaphappy +slapped +slapping +slaps +slapstick +slapstick's +slash +slash's +slashed +slashes +slashing +slat +slat's +slate +slate's +slated +slates +slather +slathered +slathering +slathers +slating +slats +slattern +slattern's +slatternly +slatterns +slaughter +slaughter's +slaughtered +slaughterer +slaughterer's +slaughterers +slaughterhouse +slaughterhouse's +slaughterhouses +slaughtering +slaughters +slave +slave's +slaved +slaver +slaver's +slavered +slavering +slavers +slavery +slavery's +slaves +slaving +slavish +slavishly +slaw +slaw's +slay +slayer +slayer's +slayers +slaying +slaying's +slayings +slays +sleaze +sleaze's +sleazes +sleazier +sleaziest +sleazily +sleaziness +sleaziness's +sleazy +sled +sled's +sledded +sledding +sledge +sledge's +sledged +sledgehammer +sledgehammer's +sledgehammered +sledgehammering +sledgehammers +sledges +sledging +sleds +sleek +sleeked +sleeker +sleekest +sleeking +sleekly +sleekness +sleekness's +sleeks +sleep +sleep's +sleeper +sleeper's +sleepers +sleepier +sleepiest +sleepily +sleepiness +sleepiness's +sleeping +sleepless +sleeplessness +sleeplessness's +sleeps +sleepwalk +sleepwalked +sleepwalker +sleepwalker's +sleepwalkers +sleepwalking +sleepwalking's +sleepwalks +sleepwear +sleepwear's +sleepy +sleepyhead +sleepyhead's +sleepyheads +sleet +sleet's +sleeted +sleetier +sleetiest +sleeting +sleets +sleety +sleeve +sleeve's +sleeveless +sleeves +sleigh +sleigh's +sleighed +sleighing +sleighs +slender +slenderer +slenderest +slenderize +slenderized +slenderizes +slenderizing +slenderness +slenderness's +slept +sleuth +sleuth's +sleuths +slew +slew's +slewed +slewing +slews +slice +slice's +sliced +slicer +slicer's +slicers +slices +slicing +slick +slick's +slicked +slicker +slicker's +slickers +slickest +slicking +slickly +slickness +slickness's +slicks +slid +slide +slide's +slider +slider's +sliders +slides +sliding +slier +sliest +slight +slight's +slighted +slighter +slightest +slighting +slightly +slightness +slightness's +slights +slily +slim +slime +slime's +slimier +slimiest +slimmed +slimmer +slimmest +slimming +slimness +slimness's +slims +slimy +sling +sling's +slinging +slings +slingshot +slingshot's +slingshots +slink +slinked +slinkier +slinkiest +slinking +slinks +slinky +slip +slip's +slipcover +slipcover's +slipcovers +slipknot +slipknot's +slipknots +slippage +slippage's +slippages +slipped +slipper +slipper's +slipperier +slipperiest +slipperiness +slipperiness's +slippers +slippery +slipping +slips +slipshod +slit +slit's +slither +slither's +slithered +slithering +slithers +slithery +slits +slitter +slitting +sliver +sliver's +slivered +slivering +slivers +slob +slob's +slobber +slobber's +slobbered +slobbering +slobbers +slobs +sloe +sloe's +sloes +slog +slog's +slogan +slogan's +slogans +slogged +slogging +slogs +sloop +sloop's +sloops +slop +slop's +slope +slope's +sloped +slopes +sloping +slopped +sloppier +sloppiest +sloppily +sloppiness +sloppiness's +slopping +sloppy +slops +slosh +sloshed +sloshes +sloshing +slot +slot's +sloth +sloth's +slothful +slothfulness +slothfulness's +sloths +slots +slotted +slotting +slouch +slouch's +slouched +slouches +slouchier +slouchiest +slouching +slouchy +slough +slough's +sloughed +sloughing +sloughs +sloven +sloven's +slovenlier +slovenliest +slovenliness +slovenliness's +slovenly +slovens +slow +slowdown +slowdown's +slowdowns +slowed +slower +slowest +slowing +slowly +slowness +slowness's +slowpoke +slowpoke's +slowpokes +slows +sludge +sludge's +slue +slue's +slued +slues +slug +slug's +sluggard +sluggard's +sluggards +slugged +slugger +slugger's +sluggers +slugging +sluggish +sluggishly +sluggishness +sluggishness's +slugs +sluice +sluice's +sluiced +sluices +sluicing +sluing +slum +slum's +slumber +slumber's +slumbered +slumbering +slumberous +slumbers +slumbrous +slumlord +slumlord's +slumlords +slummed +slummer +slumming +slump +slump's +slumped +slumping +slumps +slums +slung +slunk +slur +slur's +slurp +slurp's +slurped +slurping +slurps +slurred +slurring +slurs +slush +slush's +slushier +slushiest +slushy +slut +slut's +sluts +sluttish +sly +slyer +slyest +slyly +slyness +slyness's +smack +smack's +smacked +smacker +smacker's +smackers +smacking +smacks +small +small's +smaller +smallest +smallish +smallness +smallness's +smallpox +smallpox's +smalls +smarmier +smarmiest +smarmy +smart +smart's +smarted +smarten +smartened +smartening +smartens +smarter +smartest +smarting +smartly +smartness +smartness's +smarts +smarts's +smash +smash's +smashed +smashes +smashing +smattering +smattering's +smatterings +smear +smear's +smeared +smearing +smears +smell +smell's +smelled +smellier +smelliest +smelling +smells +smelly +smelt +smelt's +smelted +smelter +smelter's +smelters +smelting +smelts +smidge +smidge's +smidgen +smidgen's +smidgens +smidgeon +smidgeon's +smidgeons +smidges +smidgin +smidgin's +smidgins +smile +smile's +smiled +smiles +smiling +smilingly +smirch +smirch's +smirched +smirches +smirching +smirk +smirk's +smirked +smirking +smirks +smit +smite +smites +smith +smith's +smithereens +smithereens's +smithies +smiths +smithy +smithy's +smiting +smitten +smock +smock's +smocked +smocking +smocking's +smocks +smog +smog's +smoggier +smoggiest +smoggy +smoke +smoke's +smoked +smokehouse +smokehouse's +smokehouses +smokeless +smoker +smoker's +smokers +smokes +smokestack +smokestack's +smokestacks +smokier +smokiest +smokiness +smokiness's +smoking +smoking's +smoky +smolder +smolder's +smoldered +smoldering +smolders +smooch +smooch's +smooched +smooches +smooching +smooth +smoothed +smoother +smoothes +smoothest +smoothing +smoothly +smoothness +smoothness's +smooths +smote +smother +smother's +smothered +smothering +smothers +smoulder +smoulder's +smouldered +smouldering +smoulders +smudge +smudge's +smudged +smudges +smudgier +smudgiest +smudging +smudgy +smug +smugger +smuggest +smuggle +smuggled +smuggler +smuggler's +smugglers +smuggles +smuggling +smuggling's +smugly +smugness +smugness's +smut +smut's +smuts +smuttier +smuttiest +smutty +smörgåsbord +smörgåsbord's +smörgåsbords +snack +snack's +snacked +snacking +snacks +snaffle +snaffle's +snaffled +snaffles +snaffling +snafu +snafu's +snafus +snag +snag's +snagged +snagging +snags +snail +snail's +snailed +snailing +snails +snake +snake's +snakebite +snakebite's +snakebites +snaked +snakes +snakier +snakiest +snaking +snaky +snap +snap's +snapdragon +snapdragon's +snapdragons +snapped +snapper +snapper's +snappers +snappier +snappiest +snapping +snappish +snappy +snaps +snapshot +snapshot's +snapshots +snare +snare's +snared +snares +snaring +snarl +snarl's +snarled +snarling +snarls +snatch +snatch's +snatched +snatches +snatching +snazzier +snazziest +snazzy +sneak +sneak's +sneaked +sneaker +sneaker's +sneakers +sneakier +sneakiest +sneaking +sneaks +sneaky +sneer +sneer's +sneered +sneering +sneeringly +sneers +sneeze +sneeze's +sneezed +sneezes +sneezing +snicker +snicker's +snickered +snickering +snickers +snide +snider +snidest +sniff +sniff's +sniffed +sniffing +sniffle +sniffle's +sniffled +sniffles +sniffling +sniffs +snifter +snifter's +snifters +snigger +snigger's +sniggered +sniggering +sniggers +snip +snip's +snipe +snipe's +sniped +sniper +sniper's +snipers +snipes +sniping +snipped +snippet +snippet's +snippets +snippier +snippiest +snipping +snippy +snips +snit +snit's +snitch +snitch's +snitched +snitches +snitching +snits +snivel +snivel's +sniveled +sniveling +snivelled +snivelling +snivels +snob +snob's +snobbery +snobbery's +snobbier +snobbiest +snobbish +snobbishness +snobbishness's +snobby +snobs +snooker +snoop +snoop's +snooped +snooper +snooper's +snoopers +snoopier +snoopiest +snooping +snoops +snoopy +snoot +snoot's +snootier +snootiest +snootiness +snootiness's +snoots +snooty +snooze +snooze's +snoozed +snoozes +snoozing +snore +snore's +snored +snorer +snorer's +snorers +snores +snoring +snorkel +snorkel's +snorkeled +snorkeler +snorkeler's +snorkelers +snorkeling +snorkeling's +snorkelled +snorkelling +snorkels +snort +snort's +snorted +snorting +snorts +snot +snot's +snots +snottier +snottiest +snotty +snout +snout's +snouts +snow +snow's +snowball +snowball's +snowballed +snowballing +snowballs +snowboard +snowboard's +snowboarded +snowboarding +snowboarding's +snowboards +snowbound +snowdrift +snowdrift's +snowdrifts +snowdrop +snowdrop's +snowdrops +snowed +snowfall +snowfall's +snowfalls +snowflake +snowflake's +snowflakes +snowier +snowiest +snowing +snowman +snowman's +snowmen +snowmobile +snowmobile's +snowmobiled +snowmobiles +snowmobiling +snowplow +snowplow's +snowplowed +snowplowing +snowplows +snows +snowshed +snowshoe +snowshoe's +snowshoeing +snowshoes +snowstorm +snowstorm's +snowstorms +snowsuit +snowsuit's +snowsuits +snowy +snub +snub's +snubbed +snubbing +snubs +snuck +snuff +snuff's +snuffbox +snuffbox's +snuffboxes +snuffed +snuffer +snuffer's +snuffers +snuffing +snuffle +snuffle's +snuffled +snuffles +snuffling +snuffs +snug +snug's +snugged +snugger +snuggest +snugging +snuggle +snuggle's +snuggled +snuggles +snuggling +snugly +snugs +so +so's +soak +soak's +soaked +soaking +soaking's +soakings +soaks +soap +soap's +soapbox +soapbox's +soapboxes +soaped +soapier +soapiest +soapiness +soapiness's +soaping +soaps +soapstone +soapstone's +soapsuds +soapsuds's +soapy +soar +soar's +soared +soaring +soars +sob +sob's +sobbed +sobbing +sober +sobered +soberer +soberest +sobering +soberly +soberness +soberness's +sobers +sobriety +sobriety's +sobriquet +sobriquet's +sobriquets +sobs +soccer +soccer's +sociability +sociability's +sociable +sociable's +sociables +sociably +social +social's +socialism +socialism's +socialist +socialist's +socialistic +socialists +socialite +socialite's +socialites +socialization +socialization's +socialize +socialized +socializes +socializing +socially +socials +societal +societies +society +society's +socioeconomic +sociological +sociologist +sociologist's +sociologists +sociology +sociology's +sociopath +sociopath's +sociopaths +sock +sock's +socked +socket +socket's +sockets +socking +socks +sod +sod's +soda +soda's +sodas +sodded +sodden +sodding +sodium +sodium's +sodomite +sodomite's +sodomites +sodomy +sodomy's +sods +sofa +sofa's +sofas +soft +softball +softball's +softballs +soften +softened +softener +softener's +softeners +softening +softens +softer +softest +softhearted +softie +softie's +softies +softly +softness +softness's +software +software's +softwood +softwood's +softwoods +softy +softy's +soggier +soggiest +soggily +sogginess +sogginess's +soggy +soil +soil's +soiled +soiling +soils +soirée +soirée's +soirées +sojourn +sojourn's +sojourned +sojourning +sojourns +sol +sol's +solace +solace's +solaced +solaces +solacing +solar +solaria +solarium +solarium's +solariums +sold +solder +solder's +soldered +soldering +solders +soldier +soldier's +soldiered +soldiering +soldierly +soldiers +sole +sole's +solecism +solecism's +solecisms +soled +solely +solemn +solemner +solemnest +solemnity +solemnity's +solemnize +solemnized +solemnizes +solemnizing +solemnly +solenoid +solenoid's +solenoids +soles +soli +solicit +solicitation +solicitation's +solicitations +solicited +soliciting +solicitor +solicitor's +solicitors +solicitous +solicitously +solicits +solicitude +solicitude's +solid +solid's +solidarity +solidarity's +solider +solidest +solidification +solidification's +solidified +solidifies +solidify +solidifying +solidity +solidity's +solidly +solidness +solidness's +solids +soliloquies +soliloquize +soliloquized +soliloquizes +soliloquizing +soliloquy +soliloquy's +soling +solitaire +solitaire's +solitaires +solitaries +solitary +solitary's +solitude +solitude's +solo +solo's +soloed +soloing +soloist +soloist's +soloists +solos +sols +solstice +solstice's +solstices +solubility +solubility's +soluble +soluble's +solubles +solution +solution's +solutions +solvable +solve +solved +solvency +solvency's +solvent +solvent's +solvents +solver +solver's +solvers +solves +solving +somber +somberly +sombre +sombrely +sombrero +sombrero's +sombreros +some +somebodies +somebody +somebody's +someday +somehow +someone +someone's +someones +someplace +somersault +somersault's +somersaulted +somersaulting +somersaults +something +something's +somethings +sometime +sometimes +someway +somewhat +somewhats +somewhere +somnambulism +somnambulism's +somnambulist +somnambulist's +somnambulists +somnolence +somnolence's +somnolent +son +son's +sonar +sonar's +sonars +sonata +sonata's +sonatas +song +song's +songbird +songbird's +songbirds +songs +songster +songster's +songsters +songwriter +songwriter's +songwriters +sonic +sonnet +sonnet's +sonnets +sonnies +sonny +sonny's +sonority +sonority's +sonorous +sons +soon +sooner +soonest +soot +soot's +sooth +sooth's +soothe +soothed +soothes +soothing +soothingly +soothsayer +soothsayer's +soothsayers +sootier +sootiest +sooty +sop +sop's +sophism +sophism's +sophist +sophist's +sophisticate +sophisticate's +sophisticated +sophisticates +sophisticating +sophistication +sophistication's +sophistries +sophistry +sophistry's +sophists +sophomore +sophomore's +sophomores +sophomoric +soporific +soporific's +soporifics +sopped +soppier +soppiest +sopping +soppy +soprano +soprano's +sopranos +sops +sorbet +sorbet's +sorbets +sorcerer +sorcerer's +sorcerers +sorceress +sorceress's +sorceresses +sorcery +sorcery's +sordid +sordidly +sordidness +sordidness's +sore +sore's +sorehead +sorehead's +soreheads +sorely +soreness +soreness's +sorer +sores +sorest +sorghum +sorghum's +sororities +sorority +sorority's +sorrel +sorrel's +sorrels +sorrier +sorriest +sorrow +sorrow's +sorrowed +sorrowful +sorrowfully +sorrowing +sorrows +sorry +sort +sort's +sorta +sorted +sorter +sorter's +sorters +sortie +sortie's +sortied +sortieing +sorties +sorting +sorts +sos +sot +sot's +sots +sottish +sou'wester +soubriquet +soubriquet's +soubriquets +soufflé +soufflé's +soufflés +sough +sough's +soughed +soughing +soughs +sought +soul +soul's +soulful +soulfully +soulfulness +soulfulness's +soulless +souls +sound +sound's +sounded +sounder +soundest +sounding +sounding's +soundings +soundless +soundlessly +soundly +soundness +soundness's +soundproof +soundproofed +soundproofing +soundproofs +sounds +soundtrack +soundtrack's +soundtracks +soup +soup's +souped +soupier +soupiest +souping +soups +soupy +soupçon +soupçon's +soupçons +sour +sour's +source +source's +sourced +sources +sourcing +sourdough +sourdough's +sourdoughs +soured +sourer +sourest +souring +sourly +sourness +sourness's +sourpuss +sourpuss's +sourpusses +sours +souse +souse's +soused +souses +sousing +south +south's +southbound +southeast +southeast's +southeasterly +southeastern +southeastward +southerlies +southerly +southerly's +southern +southern's +southerner +southerner's +southerners +southernmost +southerns +southpaw +southpaw's +southpaws +southward +southward's +southwards +southwest +southwest's +southwester +southwester's +southwesterly +southwestern +southwesters +southwestward +souvenir +souvenir's +souvenirs +sovereign +sovereign's +sovereigns +sovereignty +sovereignty's +soviet +soviet's +soviets +sow +sow's +sowed +sower +sower's +sowers +sowing +sown +sows +sox +soy +soy's +soya +soya's +soybean +soybean's +soybeans +spa +spa's +space +space's +spacecraft +spacecraft's +spacecrafts +spaced +spaceflight +spaceflight's +spaceflights +spaceman +spaceman's +spacemen +spaces +spaceship +spaceship's +spaceships +spacesuit +spacesuit's +spacesuits +spacewalk +spacewalk's +spacewalked +spacewalking +spacewalks +spacey +spacial +spacier +spaciest +spacing +spacing's +spacious +spaciously +spaciousness +spaciousness's +spacy +spade +spade's +spaded +spadeful +spadeful's +spadefuls +spades +spadework +spadework's +spading +spaghetti +spaghetti's +spake +spammer +spammer's +spammers +span +span's +spandex +spandex's +spangle +spangle's +spangled +spangles +spangling +spaniel +spaniel's +spaniels +spank +spank's +spanked +spanking +spanking's +spankings +spanks +spanned +spanner +spanner's +spanners +spanning +spans +spar +spar's +spare +spare's +spared +sparely +spareness +spareness's +sparer +spareribs +spareribs's +spares +sparest +sparing +sparingly +spark +spark's +sparked +sparking +sparkle +sparkle's +sparkled +sparkler +sparkler's +sparklers +sparkles +sparkling +sparks +sparred +sparring +sparrow +sparrow's +sparrows +spars +sparse +sparsely +sparseness +sparseness's +sparser +sparsest +sparsity +sparsity's +spartan +spas +spasm +spasm's +spasmodic +spasmodically +spasms +spastic +spastic's +spastics +spat +spat's +spate +spate's +spates +spatial +spatially +spats +spatted +spatter +spatter's +spattered +spattering +spatters +spatting +spatula +spatula's +spatulas +spawn +spawn's +spawned +spawning +spawns +spay +spayed +spaying +spays +speak +speakeasies +speakeasy +speakeasy's +speaker +speaker's +speakers +speaking +speaks +spear +spear's +speared +spearhead +spearhead's +spearheaded +spearheading +spearheads +spearing +spearmint +spearmint's +spears +spec +spec's +specced +speccing +special +special's +specialist +specialist's +specialists +specialization +specialization's +specializations +specialize +specialized +specializes +specializing +specially +specials +specialties +specialty +specialty's +specie +specie's +species +species's +specifiable +specific +specific's +specifically +specification +specification's +specifications +specifics +specified +specifier +specifiers +specifies +specify +specifying +specimen +specimen's +specimens +specious +speciously +speck +speck's +specked +specking +speckle +speckle's +speckled +speckles +speckling +specks +specs +specs's +spectacle +spectacle's +spectacles +spectacles's +spectacular +spectacular's +spectacularly +spectaculars +spectator +spectator's +spectators +specter +specter's +specters +spectra +spectral +spectroscope +spectroscope's +spectroscopes +spectroscopic +spectroscopy +spectroscopy's +spectrum +spectrum's +spectrums +speculate +speculated +speculates +speculating +speculation +speculation's +speculations +speculative +speculator +speculator's +speculators +sped +speech +speech's +speeches +speechless +speed +speed's +speedboat +speedboat's +speedboats +speeded +speeder +speeder's +speeders +speedier +speediest +speedily +speeding +speeding's +speedometer +speedometer's +speedometers +speeds +speedster +speedster's +speedsters +speedup +speedup's +speedups +speedway +speedway's +speedways +speedy +spell +spell's +spellbind +spellbinder +spellbinder's +spellbinders +spellbinding +spellbinds +spellbound +spelled +speller +speller's +spellers +spelling +spelling's +spellings +spells +spelt +spelunker +spelunker's +spelunkers +spend +spender +spender's +spenders +spending +spending's +spends +spendthrift +spendthrift's +spendthrifts +spent +sperm +sperm's +spermatozoa +spermatozoon +spermatozoon's +spermicide +spermicide's +spermicides +sperms +spew +spew's +spewed +spewing +spews +sphere +sphere's +spheres +spherical +spheroid +spheroid's +spheroidal +spheroids +sphincter +sphincter's +sphincters +sphinges +sphinx +sphinx's +sphinxes +spice +spice's +spiced +spices +spicier +spiciest +spiciness +spiciness's +spicing +spicy +spider +spider's +spiderier +spideriest +spiders +spidery +spied +spiel +spiel's +spieled +spieling +spiels +spies +spiffier +spiffiest +spiffy +spigot +spigot's +spigots +spike +spike's +spiked +spikes +spikier +spikiest +spiking +spiky +spill +spill's +spillage +spillage's +spillages +spilled +spilling +spills +spillway +spillway's +spillways +spilt +spin +spin's +spinach +spinach's +spinal +spinal's +spinals +spindle +spindle's +spindled +spindles +spindlier +spindliest +spindling +spindly +spine +spine's +spineless +spines +spinet +spinet's +spinets +spinier +spiniest +spinnaker +spinnaker's +spinnakers +spinner +spinner's +spinners +spinning +spinoff +spinoff's +spinoffs +spins +spinster +spinster's +spinsterhood +spinsterhood's +spinsters +spiny +spiraea +spiraea's +spiraeas +spiral +spiral's +spiraled +spiraling +spiralled +spiralling +spirally +spirals +spire +spire's +spirea +spirea's +spireas +spires +spirit +spirit's +spirited +spiriting +spiritless +spirits +spiritual +spiritual's +spiritualism +spiritualism's +spiritualist +spiritualist's +spiritualistic +spiritualists +spirituality +spirituality's +spiritually +spirituals +spirituous +spit +spit's +spitball +spitball's +spitballs +spite +spite's +spited +spiteful +spitefuller +spitefullest +spitefully +spitefulness +spitefulness's +spites +spitfire +spitfire's +spitfires +spiting +spits +spitted +spitting +spittle +spittle's +spittoon +spittoon's +spittoons +splash +splash's +splashdown +splashdown's +splashdowns +splashed +splashes +splashier +splashiest +splashing +splashy +splat +splat's +splats +splatted +splatter +splatter's +splattered +splattering +splatters +splatting +splay +splay's +splayed +splaying +splays +spleen +spleen's +spleens +splendid +splendider +splendidest +splendidly +splendor +splendor's +splenetic +splice +splice's +spliced +splicer +splicer's +splicers +splices +splicing +spline +splines +splint +splint's +splinted +splinter +splinter's +splintered +splintering +splinters +splinting +splints +split +split's +splits +splitting +splitting's +splittings +splodge +splotch +splotch's +splotched +splotches +splotchier +splotchiest +splotching +splotchy +splurge +splurge's +splurged +splurges +splurging +splutter +splutter's +spluttered +spluttering +splutters +spoil +spoil's +spoilage +spoilage's +spoiled +spoiler +spoiler's +spoilers +spoiling +spoils +spoilsport +spoilsport's +spoilsports +spoilt +spoke +spoke's +spoken +spokes +spokesman +spokesman's +spokesmen +spokespeople +spokesperson +spokesperson's +spokespersons +spokeswoman +spokeswoman's +spokeswomen +spoliation +spoliation's +sponge +sponge's +sponged +sponger +sponger's +spongers +sponges +spongier +spongiest +sponging +spongy +sponsor +sponsor's +sponsored +sponsoring +sponsors +sponsorship +sponsorship's +spontaneity +spontaneity's +spontaneous +spontaneously +spoof +spoof's +spoofed +spoofing +spoofs +spook +spook's +spooked +spookier +spookiest +spooking +spooks +spooky +spool +spool's +spooled +spooling +spools +spoon +spoon's +spoonbill +spoonbill's +spoonbills +spooned +spoonerism +spoonerism's +spoonerisms +spoonful +spoonful's +spoonfuls +spooning +spoons +spoonsful +spoor +spoor's +spoored +spooring +spoors +sporadic +sporadically +spore +spore's +spored +spores +sporing +sporran +sport +sport's +sported +sportier +sportiest +sporting +sportive +sports +sportscast +sportscast's +sportscaster +sportscaster's +sportscasters +sportscasting +sportscasts +sportsman +sportsman's +sportsmanlike +sportsmanship +sportsmanship's +sportsmen +sportswear +sportswear's +sportswoman +sportswoman's +sportswomen +sporty +spot +spot's +spotless +spotlessly +spotlessness +spotlessness's +spotlight +spotlight's +spotlighted +spotlighting +spotlights +spots +spotted +spotter +spotter's +spotters +spottier +spottiest +spottiness +spottiness's +spotting +spotty +spouse +spouse's +spouses +spout +spout's +spouted +spouting +spouts +sprain +sprain's +sprained +spraining +sprains +sprang +sprat +sprat's +sprats +sprawl +sprawl's +sprawled +sprawling +sprawls +spray +spray's +sprayed +sprayer +sprayer's +sprayers +spraying +sprays +spread +spread's +spreader +spreader's +spreaders +spreading +spreads +spreadsheet +spreadsheet's +spreadsheets +spree +spree's +spreed +spreeing +sprees +sprier +spriest +sprig +sprig's +sprightlier +sprightliest +sprightliness +sprightliness's +sprightly +sprigs +spring +spring's +springboard +springboard's +springboards +springier +springiest +springiness +springiness's +springing +springs +springtime +springtime's +springy +sprinkle +sprinkle's +sprinkled +sprinkler +sprinkler's +sprinklers +sprinkles +sprinkling +sprinkling's +sprinklings +sprint +sprint's +sprinted +sprinter +sprinter's +sprinters +sprinting +sprints +sprite +sprite's +sprites +spritz +spritz's +spritzed +spritzes +spritzing +sprocket +sprocket's +sprockets +sprout +sprout's +sprouted +sprouting +sprouts +spruce +spruce's +spruced +sprucer +spruces +sprucest +sprucing +sprung +spry +spryer +spryest +spryly +spryness +spryness's +spud +spud's +spuds +spume +spume's +spumed +spumes +spuming +spumone +spumone's +spumoni +spumoni's +spun +spunk +spunk's +spunkier +spunkiest +spunky +spur +spur's +spurious +spuriously +spuriousness +spuriousness's +spurn +spurned +spurning +spurns +spurred +spurring +spurs +spurt +spurt's +spurted +spurting +spurts +sputter +sputter's +sputtered +sputtering +sputters +sputum +sputum's +spy +spy's +spyglass +spyglass's +spyglasses +spying +squab +squab's +squabble +squabble's +squabbled +squabbles +squabbling +squabs +squad +squad's +squadron +squadron's +squadrons +squads +squalid +squalider +squalidest +squall +squall's +squalled +squalling +squalls +squalor +squalor's +squander +squandered +squandering +squanders +square +square's +squared +squarely +squareness +squareness's +squarer +squares +squarest +squaring +squash +squash's +squashed +squashes +squashier +squashiest +squashing +squashy +squat +squat's +squats +squatted +squatter +squatter's +squatters +squattest +squatting +squaw +squaw's +squawk +squawk's +squawked +squawking +squawks +squaws +squeak +squeak's +squeaked +squeakier +squeakiest +squeaking +squeaks +squeaky +squeal +squeal's +squealed +squealer +squealer's +squealers +squealing +squeals +squeamish +squeamishly +squeamishness +squeamishness's +squeegee +squeegee's +squeegeed +squeegeeing +squeegees +squeeze +squeeze's +squeezed +squeezer +squeezer's +squeezers +squeezes +squeezing +squelch +squelch's +squelched +squelches +squelching +squid +squid's +squids +squiggle +squiggle's +squiggled +squiggles +squigglier +squiggliest +squiggling +squiggly +squint +squint's +squinted +squinter +squintest +squinting +squints +squire +squire's +squired +squires +squiring +squirm +squirm's +squirmed +squirmier +squirmiest +squirming +squirms +squirmy +squirrel +squirrel's +squirreled +squirreling +squirrelled +squirrelling +squirrels +squirt +squirt's +squirted +squirting +squirts +squish +squish's +squished +squishes +squishier +squishiest +squishing +squishy +stab +stab's +stabbed +stabbing +stabbing's +stabbings +stability +stability's +stabilization +stabilization's +stabilize +stabilized +stabilizer +stabilizer's +stabilizers +stabilizes +stabilizing +stable +stable's +stabled +stabler +stables +stablest +stabling +stabs +staccati +staccato +staccato's +staccatos +stack +stack's +stacked +stacking +stacks +stadia +stadium +stadium's +stadiums +staff +staff's +staffed +staffer +staffer's +staffers +staffing +staffing's +staffs +stag +stag's +stage +stage's +stagecoach +stagecoach's +stagecoaches +staged +stagehand +stagehand's +stagehands +stages +stagflation +stagflation's +stagger +stagger's +staggered +staggering +staggeringly +staggers +staging +staging's +stagings +stagnant +stagnate +stagnated +stagnates +stagnating +stagnation +stagnation's +stags +staid +staider +staidest +staidly +stain +stain's +stained +staining +stainless +stainless's +stains +stair +stair's +staircase +staircase's +staircases +stairs +stairway +stairway's +stairways +stairwell +stairwell's +stairwells +stake +stake's +staked +stakeout +stakeout's +stakeouts +stakes +staking +stalactite +stalactite's +stalactites +stalagmite +stalagmite's +stalagmites +stale +staled +stalemate +stalemate's +stalemated +stalemates +stalemating +staleness +staleness's +staler +stales +stalest +staling +stalk +stalk's +stalked +stalker +stalker's +stalkers +stalking +stalking's +stalkings +stalks +stall +stall's +stalled +stalling +stallion +stallion's +stallions +stalls +stalwart +stalwart's +stalwarts +stamen +stamen's +stamens +stamina +stamina's +stammer +stammer's +stammered +stammerer +stammerer's +stammerers +stammering +stammers +stamp +stamp's +stamped +stampede +stampede's +stampeded +stampedes +stampeding +stamping +stamps +stance +stance's +stances +stanch +stanched +stancher +stanches +stanchest +stanching +stanchion +stanchion's +stanchions +stand +stand's +standard +standard's +standardization +standardization's +standardize +standardized +standardizes +standardizing +standards +standby +standby's +standbys +standing +standing's +standings +standoff +standoff's +standoffish +standoffs +standout +standout's +standouts +standpoint +standpoint's +standpoints +stands +standstill +standstill's +standstills +stank +stanza +stanza's +stanzas +staph +staph's +staphylococci +staphylococcus +staphylococcus's +staple +staple's +stapled +stapler +stapler's +staplers +staples +stapling +star +star's +starboard +starboard's +starch +starch's +starched +starches +starchier +starchiest +starching +starchy +stardom +stardom's +stare +stare's +stared +stares +starfish +starfish's +starfishes +stargazer +stargazer's +stargazers +staring +stark +starker +starkest +starkly +starkness +starkness's +starless +starlet +starlet's +starlets +starlight +starlight's +starling +starling's +starlings +starlit +starred +starrier +starriest +starring +starry +stars +start +start's +started +starter +starter's +starters +starting +startle +startled +startles +startling +startlingly +starts +starvation +starvation's +starve +starved +starves +starving +starvings +stash +stash's +stashed +stashes +stashing +stat's +state +state's +stated +statehood +statehood's +statehouse +statehouse's +statehouses +stateless +statelier +stateliest +stateliness +stateliness's +stately +statement +statement's +statements +stater +stateroom +stateroom's +staterooms +states +stateside +statesman +statesman's +statesmanlike +statesmanship +statesmanship's +statesmen +statewide +static +static's +statically +stating +station +station's +stationary +stationed +stationer +stationer's +stationers +stationery +stationery's +stationing +stations +statistic +statistic's +statistical +statistically +statistician +statistician's +statisticians +statistics +stats +statuary +statuary's +statue +statue's +statues +statuesque +statuette +statuette's +statuettes +stature +stature's +statures +status +status's +statuses +statute +statute's +statutes +statutory +staunch +staunched +stauncher +staunches +staunchest +staunching +staunchly +stave +stave's +staved +staves +staving +stay +stay's +stayed +staying +stays +stead +stead's +steadfast +steadfastly +steadfastness +steadfastness's +steadied +steadier +steadies +steadiest +steadily +steadiness +steadiness's +steads +steady +steady's +steadying +steak +steak's +steakhouse +steakhouse's +steakhouses +steaks +steal +steal's +stealing +steals +stealth +stealth's +stealthier +stealthiest +stealthily +stealthy +steam +steam's +steamboat +steamboat's +steamboats +steamed +steamer +steamer's +steamers +steamier +steamiest +steaming +steamroll +steamrolled +steamroller +steamroller's +steamrollered +steamrollering +steamrollers +steamrolling +steamrolls +steams +steamship +steamship's +steamships +steamy +steed +steed's +steeds +steel +steel's +steeled +steelier +steeliest +steeling +steels +steely +steep +steep's +steeped +steeper +steepest +steeping +steeple +steeple's +steeplechase +steeplechase's +steeplechases +steeplejack +steeplejack's +steeplejacks +steeples +steeply +steepness +steepness's +steeps +steer +steer's +steerage +steerage's +steered +steering +steering's +steers +stein +stein's +steins +stellar +stem +stem's +stemmed +stemming +stems +stench +stench's +stenches +stencil +stencil's +stenciled +stenciling +stencilled +stencilling +stencils +stenographer +stenographer's +stenographers +stenographic +stenography +stenography's +stentorian +step +step's +stepbrother +stepbrother's +stepbrothers +stepchild +stepchild's +stepchildren +stepdaughter +stepdaughter's +stepdaughters +stepfather +stepfather's +stepfathers +stepladder +stepladder's +stepladders +stepmother +stepmother's +stepmothers +stepparent +stepparent's +stepparents +steppe +steppe's +stepped +steppes +stepping +steppingstone +steppingstone's +steppingstones +steps +stepsister +stepsister's +stepsisters +stepson +stepson's +stepsons +stereo +stereo's +stereophonic +stereos +stereoscope +stereoscope's +stereoscopes +stereotype +stereotype's +stereotyped +stereotypes +stereotypical +stereotyping +sterile +sterility +sterility's +sterilization +sterilization's +sterilize +sterilized +sterilizer +sterilizer's +sterilizers +sterilizes +sterilizing +sterling +sterling's +stern +stern's +sterna +sterner +sternest +sternly +sternness +sternness's +sterns +sternum +sternum's +sternums +steroid +steroid's +steroids +stethoscope +stethoscope's +stethoscopes +stevedore +stevedore's +stevedores +stew +stew's +steward +steward's +stewarded +stewardess +stewardess's +stewardesses +stewarding +stewards +stewardship +stewardship's +stewed +stewing +stews +stick +stick's +sticker +sticker's +stickers +stickier +stickies +stickiest +stickiness +stickiness's +sticking +stickleback +stickleback's +sticklebacks +stickler +stickler's +sticklers +stickpin +stickpin's +stickpins +sticks +stickup +stickup's +stickups +sticky +sticky's +sties +stiff +stiff's +stiffed +stiffen +stiffened +stiffener +stiffener's +stiffeners +stiffening +stiffens +stiffer +stiffest +stiffing +stiffly +stiffness +stiffness's +stiffs +stifle +stifled +stifles +stifling +stiflings +stigma +stigma's +stigmas +stigmata +stigmatize +stigmatized +stigmatizes +stigmatizing +stile +stile's +stiles +stiletto +stiletto's +stilettoes +stilettos +still +still's +stillbirth +stillbirth's +stillbirths +stillborn +stilled +stiller +stillest +stilling +stillness +stillness's +stills +stilt +stilt's +stilted +stilts +stimulant +stimulant's +stimulants +stimulate +stimulated +stimulates +stimulating +stimulation +stimulation's +stimuli +stimulus +stimulus's +sting +sting's +stinger +stinger's +stingers +stingier +stingiest +stingily +stinginess +stinginess's +stinging +stingray +stingray's +stingrays +stings +stingy +stink +stink's +stinker +stinker's +stinkers +stinking +stinks +stint +stint's +stinted +stinting +stints +stipend +stipend's +stipends +stipple +stipple's +stippled +stipples +stippling +stipulate +stipulated +stipulates +stipulating +stipulation +stipulation's +stipulations +stir +stir's +stirred +stirrer +stirrer's +stirrers +stirring +stirrings +stirrup +stirrup's +stirrups +stirs +stitch +stitch's +stitched +stitches +stitching +stitching's +stoat +stoat's +stoats +stochastic +stock +stock's +stockade +stockade's +stockaded +stockades +stockading +stockbroker +stockbroker's +stockbrokers +stocked +stockholder +stockholder's +stockholders +stockier +stockiest +stockiness +stockiness's +stocking +stocking's +stockings +stockpile +stockpile's +stockpiled +stockpiles +stockpiling +stockroom +stockroom's +stockrooms +stocks +stocky +stockyard +stockyard's +stockyards +stodgier +stodgiest +stodginess +stodginess's +stodgy +stoic +stoic's +stoical +stoically +stoicism +stoicism's +stoics +stoke +stoked +stoker +stoker's +stokers +stokes +stoking +stole +stole's +stolen +stoles +stolid +stolider +stolidest +stolidity +stolidity's +stolidly +stomach +stomach's +stomachache +stomachache's +stomachaches +stomached +stomaching +stomachs +stomp +stomp's +stomped +stomping +stomps +stone +stone's +stoned +stones +stonewall +stonewalled +stonewalling +stonewalls +stoneware +stoneware's +stonework +stonework's +stoney +stonier +stoniest +stonily +stoning +stony +stood +stooge +stooge's +stooges +stool +stool's +stools +stoop +stoop's +stooped +stooping +stoops +stop +stop's +stopcock +stopcock's +stopcocks +stopgap +stopgap's +stopgaps +stoplight +stoplight's +stoplights +stopover +stopover's +stopovers +stoppable +stoppage +stoppage's +stoppages +stopped +stopper +stopper's +stoppered +stoppering +stoppers +stopping +stops +stopwatch +stopwatch's +stopwatches +storage +storage's +store +store's +stored +storefront +storefront's +storefronts +storehouse +storehouse's +storehouses +storekeeper +storekeeper's +storekeepers +storeroom +storeroom's +storerooms +stores +storey +storey's +storeys +storied +stories +storing +stork +stork's +storks +storm +storm's +stormed +stormier +stormiest +stormily +storminess +storminess's +storming +storms +stormy +story +story's +storybook +storybook's +storybooks +storyteller +storyteller's +storytellers +stout +stout's +stouter +stoutest +stoutly +stoutness +stoutness's +stove +stove's +stovepipe +stovepipe's +stovepipes +stoves +stow +stowaway +stowaway's +stowaways +stowed +stowing +stows +straddle +straddle's +straddled +straddles +straddling +strafe +strafe's +strafed +strafes +strafing +straggle +straggled +straggler +straggler's +stragglers +straggles +stragglier +straggliest +straggling +straggly +straight +straight's +straightaway +straightaway's +straightaways +straightedge +straightedge's +straightedges +straighten +straightened +straightening +straightens +straighter +straightest +straightforward +straightforwardly +straightjacket +straightjacket's +straightjacketed +straightjacketing +straightjackets +straightness +straightness's +straights +strain +strain's +strained +strainer +strainer's +strainers +straining +strains +strait +strait's +straiten +straitened +straitening +straitens +straitjacket +straitjacket's +straitjacketed +straitjacketing +straitjackets +straits +strand +strand's +stranded +stranding +strands +strange +strangely +strangeness +strangeness's +stranger +stranger's +strangers +strangest +strangle +strangled +stranglehold +stranglehold's +strangleholds +strangler +strangler's +stranglers +strangles +strangling +strangulate +strangulated +strangulates +strangulating +strangulation +strangulation's +strap +strap's +strapless +strapless's +straplesses +strapped +strapping +strapping's +straps +strata +stratagem +stratagem's +stratagems +strategic +strategically +strategies +strategist +strategist's +strategists +strategy +strategy's +stratification +stratification's +stratified +stratifies +stratify +stratifying +stratosphere +stratosphere's +stratospheres +stratum +stratum's +stratums +straw +straw's +strawberries +strawberry +strawberry's +strawed +strawing +straws +stray +stray's +strayed +straying +strays +streak +streak's +streaked +streakier +streakiest +streaking +streaks +streaky +stream +stream's +streamed +streamer +streamer's +streamers +streaming +streamline +streamlined +streamlines +streamlining +streams +street +street's +streetcar +streetcar's +streetcars +streetlight +streetlight's +streetlights +streets +streetwalker +streetwalker's +streetwalkers +streetwise +strength +strength's +strengthen +strengthened +strengthening +strengthens +strengths +strenuous +strenuously +strenuousness +strenuousness's +strep +strep's +streptococcal +streptococci +streptococcus +streptococcus's +streptomycin +streptomycin's +stress +stress's +stressed +stresses +stressful +stressing +stretch +stretch's +stretched +stretcher +stretcher's +stretchers +stretches +stretchier +stretchiest +stretching +stretchy +strew +strewed +strewing +strewn +strews +striated +stricken +strict +stricter +strictest +strictly +strictness +strictness's +stricture +stricture's +strictures +stridden +stride +stride's +strident +stridently +strides +striding +strife +strife's +strike +strike's +strikeout +strikeout's +strikeouts +striker +striker's +strikers +strikes +striking +strikingly +strikings +string +string's +stringed +stringency +stringency's +stringent +stringently +stringer +stringer's +stringers +stringier +stringiest +stringing +strings +stringy +strip +strip's +stripe +stripe's +striped +stripes +striping +stripling +stripling's +striplings +stripped +stripper +stripper's +strippers +stripping +strips +stript +striptease +striptease's +stripteased +stripteases +stripteasing +strive +strived +striven +strives +striving +strobe +strobe's +strobes +strode +stroke +stroke's +stroked +strokes +stroking +stroll +stroll's +strolled +stroller +stroller's +strollers +strolling +strolls +strong +strongbox +strongbox's +strongboxes +stronger +strongest +stronghold +stronghold's +strongholds +strongly +strontium +strontium's +strop +strop's +strophe +strophe's +strophes +stropped +stropping +strops +strove +struck +structural +structuralist +structurally +structure +structure's +structured +structures +structuring +strudel +strudel's +strudels +struggle +struggle's +struggled +struggles +struggling +strum +strum's +strummed +strumming +strumpet +strumpet's +strumpets +strums +strung +strut +strut's +struts +strutted +strutting +strychnine +strychnine's +stub +stub's +stubbed +stubbier +stubbiest +stubbing +stubble +stubble's +stubblier +stubbliest +stubbly +stubborn +stubborner +stubbornest +stubbornly +stubbornness +stubbornness's +stubby +stubs +stucco +stucco's +stuccoed +stuccoes +stuccoing +stuccos +stuck +stud +stud's +studded +studding +student +student's +students +studentship +studentships +studied +studies +studio +studio's +studios +studious +studiously +studs +study +study's +studying +stuff +stuff's +stuffed +stuffier +stuffiest +stuffily +stuffiness +stuffiness's +stuffing +stuffing's +stuffs +stuffy +stultification +stultification's +stultified +stultifies +stultify +stultifying +stumble +stumble's +stumbled +stumbler +stumbler's +stumblers +stumbles +stumbling +stump +stump's +stumped +stumpier +stumpiest +stumping +stumps +stumpy +stun +stung +stunk +stunned +stunning +stunningly +stuns +stunt +stunt's +stunted +stunting +stunts +stupefaction +stupefaction's +stupefied +stupefies +stupefy +stupefying +stupendous +stupendously +stupid +stupid's +stupider +stupidest +stupidities +stupidity +stupidity's +stupidly +stupids +stupor +stupor's +stupors +sturdier +sturdiest +sturdily +sturdiness +sturdiness's +sturdy +sturgeon +sturgeon's +sturgeons +stutter +stutter's +stuttered +stutterer +stutterer's +stutterers +stuttering +stutters +sty +sty's +stye +stye's +styes +style +style's +styled +styles +styli +styling +stylish +stylishly +stylishness +stylishness's +stylist +stylist's +stylistic +stylistically +stylists +stylize +stylized +stylizes +stylizing +stylus +stylus's +styluses +stymie +stymie's +stymied +stymieing +stymies +stymying +styptic +styptic's +styptics +suave +suavely +suaver +suavest +suavity +suavity's +sub +sub's +subatomic +subbasement +subbasement's +subbasements +subbed +subbing +subclass +subcommittee +subcommittee's +subcommittees +subcompact +subcompact's +subcompacts +subconscious +subconscious's +subconsciously +subcontinent +subcontinent's +subcontinents +subcontract +subcontract's +subcontracted +subcontracting +subcontractor +subcontractor's +subcontractors +subcontracts +subculture +subculture's +subcultures +subcutaneous +subdivide +subdivided +subdivides +subdividing +subdivision +subdivision's +subdivisions +subdue +subdued +subdues +subduing +subgroup +subgroup's +subgroups +subhead +subhead's +subheading +subheading's +subheadings +subheads +subhuman +subhuman's +subhumans +subject +subject's +subjected +subjecting +subjection +subjection's +subjective +subjectively +subjectivity +subjectivity's +subjects +subjoin +subjoined +subjoining +subjoins +subjugate +subjugated +subjugates +subjugating +subjugation +subjugation's +subjunctive +subjunctive's +subjunctives +sublease +sublease's +subleased +subleases +subleasing +sublet +sublet's +sublets +subletting +sublimate +sublimated +sublimates +sublimating +sublimation +sublimation's +sublime +sublimed +sublimely +sublimer +sublimes +sublimest +subliminal +subliminally +subliming +sublimity +sublimity's +submarine +submarine's +submarines +submerge +submerged +submergence +submergence's +submerges +submerging +submerse +submersed +submerses +submersible +submersible's +submersibles +submersing +submersion +submersion's +submission +submission's +submissions +submissive +submit +submits +submitted +submitter +submitting +subnormal +suborbital +subordinate +subordinate's +subordinated +subordinates +subordinating +subordination +subordination's +suborn +subornation +subornation's +suborned +suborning +suborns +subplot +subplot's +subplots +subpoena +subpoena's +subpoenaed +subpoenaing +subpoenas +subprogram +subprograms +subroutine +subroutine's +subroutines +subs +subscribe +subscribed +subscriber +subscriber's +subscribers +subscribes +subscribing +subscript +subscript's +subscription +subscription's +subscriptions +subscripts +subsection +subsection's +subsections +subsequent +subsequently +subservience +subservience's +subservient +subset +subset's +subsets +subside +subsided +subsidence +subsidence's +subsides +subsidiaries +subsidiary +subsidiary's +subsidies +subsiding +subsidization +subsidization's +subsidize +subsidized +subsidizes +subsidizing +subsidy +subsidy's +subsist +subsisted +subsistence +subsistence's +subsisting +subsists +subsoil +subsoil's +subsonic +subspace +substance +substance's +substances +substandard +substantial +substantially +substantiate +substantiated +substantiates +substantiating +substantiation +substantiation's +substantiations +substantive +substantive's +substantives +substation +substation's +substations +substitute +substitute's +substituted +substitutes +substituting +substitution +substitution's +substitutions +substrata +substrate +substratum +substratum's +substratums +substructure +substructure's +substructures +subsume +subsumed +subsumes +subsuming +subsystem +subsystem's +subsystems +subteen +subteen's +subteens +subterfuge +subterfuge's +subterfuges +subterranean +subtitle +subtitle's +subtitled +subtitles +subtitling +subtle +subtler +subtlest +subtleties +subtlety +subtlety's +subtly +subtotal +subtotal's +subtotaled +subtotaling +subtotalled +subtotalling +subtotals +subtract +subtracted +subtracting +subtraction +subtraction's +subtractions +subtracts +subtrahend +subtrahend's +subtrahends +subtropical +suburb +suburb's +suburban +suburban's +suburbanite +suburbanite's +suburbanites +suburbans +suburbia +suburbia's +suburbs +subversion +subversion's +subversive +subversive's +subversives +subvert +subverted +subverting +subverts +subway +subway's +subways +succeed +succeeded +succeeding +succeeds +success +success's +successes +successful +successfully +succession +succession's +successions +successive +successively +successor +successor's +successors +succinct +succincter +succinctest +succinctly +succinctness +succinctness's +succor +succor's +succored +succoring +succors +succotash +succotash's +succulence +succulence's +succulent +succulent's +succulents +succumb +succumbed +succumbing +succumbs +such +suchlike +suck +suck's +sucked +sucker +sucker's +suckered +suckering +suckers +sucking +suckle +suckled +suckles +suckling +suckling's +sucklings +sucks +sucrose +sucrose's +suction +suction's +suctioned +suctioning +suctions +sudden +suddenly +suddenness +suddenness's +suds +suds's +sudsier +sudsiest +sudsy +sue +sued +suede +suede's +sues +suet +suet's +suffer +sufferance +sufferance's +suffered +sufferer +sufferer's +sufferers +suffering +suffering's +sufferings +suffers +suffice +sufficed +suffices +sufficiency +sufficiency's +sufficient +sufficiently +sufficing +suffix +suffix's +suffixed +suffixes +suffixing +suffocate +suffocated +suffocates +suffocating +suffocation +suffocation's +suffragan +suffragan's +suffragans +suffrage +suffrage's +suffragette +suffragette's +suffragettes +suffragist +suffragist's +suffragists +suffuse +suffused +suffuses +suffusing +suffusion +suffusion's +sugar +sugar's +sugarcane +sugarcane's +sugarcoat +sugarcoated +sugarcoating +sugarcoats +sugared +sugarier +sugariest +sugaring +sugarless +sugars +sugary +suggest +suggested +suggester +suggestible +suggesting +suggestion +suggestion's +suggestions +suggestive +suggestively +suggests +suicidal +suicide +suicide's +suicides +suing +suit +suit's +suitability +suitability's +suitable +suitably +suitcase +suitcase's +suitcases +suite +suite's +suited +suites +suiting +suiting's +suitor +suitor's +suitors +suits +sukiyaki +sukiyaki's +sulfate +sulfate's +sulfates +sulfide +sulfide's +sulfides +sulfur +sulfur's +sulfured +sulfuric +sulfuring +sulfurous +sulfurs +sulk +sulk's +sulked +sulkier +sulkies +sulkiest +sulkily +sulkiness +sulkiness's +sulking +sulks +sulky +sulky's +sullen +sullener +sullenest +sullenly +sullenness +sullenness's +sullied +sullies +sully +sullying +sulphur +sulphur's +sulphured +sulphuring +sulphurous +sulphurs +sultan +sultan's +sultana +sultana's +sultanas +sultanate +sultanate's +sultanates +sultans +sultrier +sultriest +sultry +sum +sum's +sumac +sumac's +sumach +sumach's +summaries +summarily +summarize +summarized +summarizes +summarizing +summary +summary's +summation +summation's +summations +summed +summer +summer's +summered +summerhouse +summerhouse's +summerhouses +summerier +summeriest +summering +summers +summertime +summertime's +summery +summing +summit +summit's +summitry +summitry's +summits +summon +summoned +summoner +summoner's +summoners +summoning +summons +summons's +summonsed +summonses +summonsing +sumo +sumo's +sump +sump's +sumps +sumptuous +sums +sun +sun's +sunbathe +sunbathed +sunbather +sunbather's +sunbathers +sunbathes +sunbathing +sunbathing's +sunbeam +sunbeam's +sunbeams +sunblock +sunblock's +sunblocks +sunbonnet +sunbonnet's +sunbonnets +sunburn +sunburn's +sunburned +sunburning +sunburns +sunburnt +sundae +sundae's +sundaes +sunder +sundered +sundering +sunders +sundial +sundial's +sundials +sundown +sundown's +sundowns +sundries +sundries's +sundry +sunfish +sunfish's +sunfishes +sunflower +sunflower's +sunflowers +sung +sunglasses +sunglasses's +sunk +sunken +sunlamp +sunlamp's +sunlamps +sunless +sunlight +sunlight's +sunlit +sunned +sunnier +sunniest +sunning +sunny +sunrise +sunrise's +sunrises +sunroof +sunroof's +sunroofs +suns +sunscreen +sunscreen's +sunscreens +sunset +sunset's +sunsets +sunshine +sunshine's +sunspot +sunspot's +sunspots +sunstroke +sunstroke's +suntan +suntan's +suntanned +suntanning +suntans +sunup +sunup's +sup +sup's +super +super's +superabundance +superabundance's +superabundances +superabundant +superannuate +superannuated +superannuates +superannuating +superb +superber +superbest +superbly +supercharge +supercharged +supercharger +supercharger's +superchargers +supercharges +supercharging +supercilious +supercomputer +supercomputer's +supercomputers +superconductivity +superconductivity's +superconductor +superconductor's +superconductors +superego +superego's +superegos +superficial +superficiality +superficiality's +superficially +superfluity +superfluity's +superfluous +superhighway +superhighway's +superhighways +superhuman +superimpose +superimposed +superimposes +superimposing +superintend +superintended +superintendence +superintendence's +superintendency +superintendency's +superintendent +superintendent's +superintendents +superintending +superintends +superior +superior's +superiority +superiority's +superiors +superlative +superlative's +superlatively +superlatives +superman +superman's +supermarket +supermarket's +supermarkets +supermen +supernatural +supernaturals +supernova +supernova's +supernovae +supernovas +supernumeraries +supernumerary +supernumerary's +superpower +superpower's +superpowers +supers +superscript +superscript's +superscripts +supersede +superseded +supersedes +superseding +supersonic +superstar +superstar's +superstars +superstition +superstition's +superstitions +superstitious +superstitiously +superstructure +superstructure's +superstructures +supertanker +supertanker's +supertankers +supervene +supervened +supervenes +supervening +supervise +supervised +supervises +supervising +supervision +supervision's +supervisions +supervisor +supervisor's +supervisors +supervisory +supine +supped +supper +supper's +suppers +supping +supplant +supplanted +supplanting +supplants +supple +supplement +supplement's +supplemental +supplementary +supplemented +supplementing +supplements +suppleness +suppleness's +suppler +supplest +suppliant +suppliant's +suppliants +supplicant +supplicant's +supplicants +supplicate +supplicated +supplicates +supplicating +supplication +supplication's +supplications +supplied +supplier +supplier's +suppliers +supplies +supply +supply's +supplying +support +support's +supportable +supported +supporter +supporter's +supporters +supporting +supportive +supports +suppose +supposed +supposedly +supposes +supposing +supposition +supposition's +suppositions +suppositories +suppository +suppository's +suppress +suppressed +suppresses +suppressing +suppression +suppression's +suppurate +suppurated +suppurates +suppurating +suppuration +suppuration's +supranational +supremacist +supremacist's +supremacists +supremacy +supremacy's +supreme +supremely +sups +surcease +surcease's +surceased +surceases +surceasing +surcharge +surcharge's +surcharged +surcharges +surcharging +sure +surefire +surefooted +surely +sureness +sureness's +surer +surest +sureties +surety +surety's +surf +surf's +surface +surface's +surfaced +surfaces +surfacing +surfboard +surfboard's +surfboarded +surfboarding +surfboards +surfed +surfeit +surfeit's +surfeited +surfeiting +surfeits +surfer +surfer's +surfers +surfing +surfing's +surfs +surge +surge's +surged +surgeon +surgeon's +surgeons +surgeries +surgery +surgery's +surges +surgical +surgically +surging +surlier +surliest +surliness +surliness's +surly +surmise +surmise's +surmised +surmises +surmising +surmount +surmountable +surmounted +surmounting +surmounts +surname +surname's +surnames +surpass +surpassed +surpasses +surpassing +surplice +surplice's +surplices +surplus +surplus's +surplused +surpluses +surplusing +surplussed +surplussing +surprise +surprise's +surprised +surprises +surprising +surprisingly +surprisings +surreal +surrealism +surrealism's +surrealist +surrealist's +surrealistic +surrealists +surrender +surrender's +surrendered +surrendering +surrenders +surreptitious +surreptitiously +surrey +surrey's +surreys +surrogate +surrogate's +surrogates +surround +surrounded +surrounding +surrounding's +surroundings +surroundings's +surrounds +surtax +surtax's +surtaxed +surtaxes +surtaxing +surveillance +surveillance's +survey +survey's +surveyed +surveying +surveyor +surveyor's +surveyors +surveys +survival +survival's +survivals +survive +survived +survives +surviving +survivor +survivor's +survivors +susceptibility +susceptibility's +susceptible +sushi +sushi's +suspect +suspect's +suspected +suspecting +suspects +suspend +suspended +suspender +suspender's +suspenders +suspending +suspends +suspense +suspense's +suspenseful +suspension +suspension's +suspensions +suspicion +suspicion's +suspicions +suspicious +suspiciously +sustain +sustainable +sustained +sustaining +sustains +sustenance +sustenance's +suture +suture's +sutured +sutures +suturing +svelte +svelter +sveltest +swab +swab's +swabbed +swabbing +swabs +swaddle +swaddled +swaddles +swaddling +swag +swag's +swagged +swagger +swagger's +swaggered +swaggerer +swaggering +swaggers +swagging +swags +swain +swain's +swains +swallow +swallow's +swallowed +swallowing +swallows +swallowtail +swallowtail's +swallowtails +swam +swami +swami's +swamis +swamp +swamp's +swamped +swampier +swampiest +swamping +swamps +swampy +swan +swan's +swank +swank's +swanked +swanker +swankest +swankier +swankiest +swanking +swanks +swanky +swans +swap +swap's +swapped +swapping +swaps +sward +sward's +swards +swarm +swarm's +swarmed +swarming +swarms +swarthier +swarthiest +swarthy +swash +swash's +swashbuckler +swashbuckler's +swashbucklers +swashbuckling +swashbuckling's +swashed +swashes +swashing +swastika +swastika's +swastikas +swat +swat's +swatch +swatch's +swatches +swath +swath's +swathe +swathe's +swathed +swathes +swathing +swaths +swats +swatted +swatter +swatter's +swattered +swattering +swatters +swatting +sway +sway's +swaybacked +swayed +swaying +sways +swear +swearer +swearer's +swearers +swearing +swears +swearword +swearword's +swearwords +sweat +sweat's +sweater +sweater's +sweaters +sweatier +sweatiest +sweating +sweatpants +sweatpants's +sweats +sweats's +sweatshirt +sweatshirt's +sweatshirts +sweatshop +sweatshop's +sweatshops +sweaty +sweep +sweep's +sweeper +sweeper's +sweepers +sweeping +sweeping's +sweepings +sweepings's +sweeps +sweepstake +sweepstake's +sweepstakes +sweepstakes's +sweet +sweet's +sweetbread +sweetbread's +sweetbreads +sweetbriar +sweetbriar's +sweetbriars +sweetbrier +sweetbrier's +sweetbriers +sweeten +sweetened +sweetener +sweetener's +sweeteners +sweetening +sweetening's +sweetens +sweeter +sweetest +sweetheart +sweetheart's +sweethearts +sweetie +sweetie's +sweeties +sweetish +sweetly +sweetmeat +sweetmeat's +sweetmeats +sweetness +sweetness's +sweets +swell +swell's +swelled +sweller +swellest +swellhead +swellhead's +swellheaded +swellheads +swelling +swelling's +swellings +swells +swelter +swelter's +sweltered +sweltering +swelters +swept +swerve +swerve's +swerved +swerves +swerving +swift +swift's +swifter +swiftest +swiftly +swiftness +swiftness's +swifts +swig +swig's +swigged +swigging +swigs +swill +swill's +swilled +swilling +swills +swim +swim's +swimmer +swimmer's +swimmers +swimming +swimming's +swims +swimsuit +swimsuit's +swimsuits +swindle +swindle's +swindled +swindler +swindler's +swindlers +swindles +swindling +swine +swine's +swines +swing +swing's +swinger +swinger's +swingers +swinging +swings +swinish +swipe +swipe's +swiped +swipes +swiping +swirl +swirl's +swirled +swirlier +swirliest +swirling +swirls +swirly +swish +swish's +swished +swisher +swishes +swishest +swishing +switch +switch's +switchable +switchback +switchback's +switchbacks +switchblade +switchblade's +switchblades +switchboard +switchboard's +switchboards +switched +switcher +switches +switching +swivel +swivel's +swiveled +swiveling +swivelled +swivelling +swivels +swollen +swoon +swoon's +swooned +swooning +swoons +swoop +swoop's +swooped +swooping +swoops +swop +swop's +swopped +swopping +swops +sword +sword's +swordfish +swordfish's +swordfishes +swordplay +swordplay's +swords +swordsman +swordsman's +swordsmen +swore +sworn +swum +swung +sybarite +sybarite's +sybarites +sybaritic +sycamore +sycamore's +sycamores +sycophant +sycophant's +sycophantic +sycophants +syllabi +syllabic +syllabication +syllabication's +syllabification +syllabification's +syllabified +syllabifies +syllabify +syllabifying +syllable +syllable's +syllables +syllabus +syllabus's +syllabuses +syllogism +syllogism's +syllogisms +syllogistic +sylph +sylph's +sylphs +sylvan +symbioses +symbiosis +symbiosis's +symbiotic +symbol +symbol's +symbolic +symbolically +symbolism +symbolism's +symbolization +symbolization's +symbolize +symbolized +symbolizes +symbolizing +symbols +symmetric +symmetrical +symmetrically +symmetricly +symmetries +symmetry +symmetry's +sympathetic +sympathetically +sympathies +sympathies's +sympathize +sympathized +sympathizer +sympathizer's +sympathizers +sympathizes +sympathizing +sympathy +sympathy's +symphonic +symphonies +symphony +symphony's +symposia +symposium +symposium's +symposiums +symptom +symptom's +symptomatic +symptoms +synagog +synagog's +synagogs +synagogue +synagogue's +synagogues +synapse +synapse's +synapses +sync +sync's +synced +synch +synch's +synched +synches +synching +synchronization +synchronization's +synchronizations +synchronize +synchronized +synchronizes +synchronizing +synchronous +synchronously +synchs +syncing +syncopate +syncopated +syncopates +syncopating +syncopation +syncopation's +syncs +syndicate +syndicate's +syndicated +syndicates +syndicating +syndication +syndication's +syndrome +syndrome's +syndromes +synergism +synergism's +synergistic +synergy +synergy's +synod +synod's +synods +synonym +synonym's +synonymous +synonyms +synopses +synopsis +synopsis's +syntactic +syntactical +syntactically +syntax +syntax's +syntheses +synthesis +synthesis's +synthesize +synthesized +synthesizer +synthesizer's +synthesizers +synthesizes +synthesizing +synthetic +synthetic's +synthetically +synthetics +syphilis +syphilis's +syphilitic +syphilitic's +syphilitics +syphon +syphon's +syphoned +syphoning +syphons +syringe +syringe's +syringed +syringes +syringing +syrup +syrup's +syrups +syrupy +system +system's +systematic +systematically +systematize +systematized +systematizes +systematizing +systemic +systemic's +systemics +systems +systolic +séance +séance's +séances +t +tab +tab's +tabbed +tabbies +tabbing +tabby +tabby's +tabernacle +tabernacle's +tabernacles +table +table's +tableau +tableau's +tableaus +tableaux +tablecloth +tablecloth's +tablecloths +tabled +tableland +tableland's +tablelands +tables +tablespoon +tablespoon's +tablespoonful +tablespoonful's +tablespoonfuls +tablespoons +tablespoonsful +tablet +tablet's +tablets +tableware +tableware's +tabling +tabloid +tabloid's +tabloids +taboo +taboo's +tabooed +tabooing +taboos +tabs +tabu +tabu's +tabued +tabuing +tabular +tabulate +tabulated +tabulates +tabulating +tabulation +tabulation's +tabulator +tabulator's +tabulators +tabus +tachometer +tachometer's +tachometers +tacit +tacitly +tacitness +tacitness's +taciturn +taciturnity +taciturnity's +tack +tack's +tacked +tackier +tackiest +tackiness +tackiness's +tacking +tackle +tackle's +tackled +tackler +tackler's +tacklers +tackles +tackling +tacks +tacky +taco +taco's +tacos +tact +tact's +tactful +tactfully +tactic +tactic's +tactical +tactically +tactician +tactician's +tacticians +tactics +tactile +tactless +tactlessly +tactlessness +tactlessness's +tad +tad's +tadpole +tadpole's +tadpoles +tads +taffeta +taffeta's +taffies +taffy +taffy's +tag +tag's +tagged +tagging +tags +tail +tail's +tailcoat +tailcoat's +tailcoats +tailed +tailgate +tailgate's +tailgated +tailgates +tailgating +tailing +tailless +taillight +taillight's +taillights +tailor +tailor's +tailored +tailoring +tailoring's +tailors +tailpipe +tailpipe's +tailpipes +tails +tailspin +tailspin's +tailspins +tailwind +tailwind's +tailwinds +taint +taint's +tainted +tainting +taints +take +take's +takeaways +taken +takeoff +takeoff's +takeoffs +takeout +takeout's +takeouts +takeover +takeover's +takeovers +taker +taker's +takers +takes +taking +taking's +takings +takings's +talc +talc's +tale +tale's +talent +talent's +talented +talents +tales +talisman +talisman's +talismans +talk +talk's +talkative +talkativeness +talkativeness's +talked +talker +talker's +talkers +talking +talks +tall +taller +tallest +tallied +tallies +tallness +tallness's +tallow +tallow's +tally +tally's +tallyho +tallyho's +tallyhoed +tallyhoing +tallyhos +tallying +talon +talon's +talons +tam +tam's +tamable +tamale +tamale's +tamales +tamarind +tamarind's +tamarinds +tambourine +tambourine's +tambourines +tame +tameable +tamed +tamely +tameness +tameness's +tamer +tamer's +tamers +tames +tamest +taming +tamp +tamped +tamper +tampered +tampering +tampers +tamping +tampon +tampon's +tampons +tamps +tams +tan +tan's +tanager +tanager's +tanagers +tandem +tandem's +tandems +tang +tang's +tangelo +tangelo's +tangelos +tangent +tangent's +tangential +tangents +tangerine +tangerine's +tangerines +tangibility +tangibility's +tangible +tangible's +tangibles +tangibly +tangier +tangiest +tangle +tangle's +tangled +tangles +tangling +tango +tango's +tangoed +tangoing +tangos +tangs +tangy +tank +tank's +tankard +tankard's +tankards +tanked +tanker +tanker's +tankers +tankful +tankful's +tankfuls +tanking +tanks +tanned +tanner +tanner's +tanneries +tanners +tannery +tannery's +tannest +tannin +tannin's +tanning +tans +tansy +tansy's +tantalize +tantalized +tantalizes +tantalizing +tantalizingly +tantamount +tantrum +tantrum's +tantrums +tap +tap's +tape +tape's +taped +taper +taper's +tapered +tapering +tapers +tapes +tapestries +tapestry +tapestry's +tapeworm +tapeworm's +tapeworms +taping +tapioca +tapioca's +tapir +tapir's +tapirs +tapped +tapping +taproom +taproom's +taprooms +taproot +taproot's +taproots +taps +tar +tar's +tarantula +tarantula's +tarantulae +tarantulas +tardier +tardiest +tardily +tardiness +tardiness's +tardy +tare +tare's +tared +tares +target +target's +targeted +targeting +targets +tariff +tariff's +tariffs +taring +tarmac +tarmac's +tarmacked +tarmacking +tarmacs +tarnish +tarnish's +tarnished +tarnishes +tarnishing +taro +taro's +taros +tarot +tarot's +tarots +tarp +tarp's +tarpaulin +tarpaulin's +tarpaulins +tarpon +tarpon's +tarpons +tarps +tarragon +tarragon's +tarragons +tarred +tarried +tarrier +tarries +tarriest +tarring +tarry +tarrying +tars +tart +tart's +tartan +tartan's +tartans +tartar +tartar's +tartars +tarter +tartest +tartly +tartness +tartness's +tarts +task +task's +tasked +tasking +taskmaster +taskmaster's +taskmasters +tasks +tassel +tassel's +tasseled +tasseling +tasselled +tasselling +tassels +taste +taste's +tasted +tasteful +tastefully +tasteless +tastelessly +tastelessness +tastelessness's +taster +taster's +tasters +tastes +tastier +tastiest +tastiness +tastiness's +tasting +tasty +tat +tats +tatted +tatter +tatter's +tattered +tattering +tatters +tatting +tatting's +tattle +tattle's +tattled +tattler +tattler's +tattlers +tattles +tattletale +tattletale's +tattletales +tattling +tattoo +tattoo's +tattooed +tattooing +tattooist +tattooist's +tattooists +tattoos +tatty +taught +taunt +taunt's +taunted +taunting +taunts +taupe +taupe's +taut +tauter +tautest +tautly +tautness +tautness's +tautological +tautologies +tautology +tautology's +tavern +tavern's +taverns +tawdrier +tawdriest +tawdriness +tawdriness's +tawdry +tawnier +tawniest +tawny +tawny's +tax +tax's +taxable +taxation +taxation's +taxed +taxes +taxi +taxi's +taxicab +taxicab's +taxicabs +taxidermist +taxidermist's +taxidermists +taxidermy +taxidermy's +taxied +taxies +taxiing +taxing +taxis +taxonomic +taxonomies +taxonomy +taxonomy's +taxpayer +taxpayer's +taxpayers +taxying +tea +tea's +teabag +teach +teachable +teacher +teacher's +teachers +teaches +teaching +teaching's +teachings +teacup +teacup's +teacups +teak +teak's +teakettle +teakettle's +teakettles +teaks +teal +teal's +teals +team +team's +teamed +teaming +teammate +teammate's +teammates +teams +teamster +teamster's +teamsters +teamwork +teamwork's +teapot +teapot's +teapots +tear +tear's +teardrop +teardrop's +teardrops +teared +tearful +tearfully +teargas +teargas's +teargases +teargassed +teargasses +teargassing +tearier +teariest +tearing +tearjerker +tearjerker's +tearjerkers +tearoom +tearoom's +tearooms +tears +teary +teas +tease +tease's +teased +teasel +teasel's +teasels +teaser +teaser's +teasers +teases +teasing +teaspoon +teaspoon's +teaspoonful +teaspoonful's +teaspoonfuls +teaspoons +teaspoonsful +teat +teat's +teatime +teats +teazel +teazel's +teazels +teazle +teazle's +teazles +tech's +technical +technicalities +technicality +technicality's +technically +technician +technician's +technicians +technique +technique's +techniques +technocracy +technocracy's +technocrat +technocrat's +technocrats +technological +technologically +technologies +technologist +technologist's +technologists +technology +technology's +techs +tectonics +tectonics's +tedious +tediously +tediousness +tediousness's +tedium +tedium's +tee +tee's +teed +teeing +teem +teemed +teeming +teems +teen +teen's +teenage +teenaged +teenager +teenager's +teenagers +teenier +teeniest +teens +teensier +teensiest +teensy +teeny +teepee +teepee's +teepees +tees +teeter +teeter's +teetered +teetering +teeters +teeth +teethe +teethed +teethes +teething +teetotal +teetotaler +teetotaler's +teetotalers +teetotaller +teetotaller's +teetotallers +telecast +telecast's +telecasted +telecaster +telecaster's +telecasters +telecasting +telecasts +telecommunication +telecommunication's +telecommunications +telecommunications's +telecommute +telecommuted +telecommuter +telecommuter's +telecommuters +telecommutes +telecommuting +telecommuting's +teleconference +teleconference's +teleconferenced +teleconferences +teleconferencing +telegram +telegram's +telegrams +telegraph +telegraph's +telegraphed +telegrapher +telegrapher's +telegraphers +telegraphic +telegraphing +telegraphs +telegraphy +telegraphy's +telekinesis +telekinesis's +telemarketing +telemarketing's +telemeter +telemeter's +telemeters +telemetries +telemetry +telemetry's +telepathic +telepathically +telepathy +telepathy's +telephone +telephone's +telephoned +telephones +telephonic +telephoning +telephony +telephony's +telephoto +telephoto's +telephotos +telescope +telescope's +telescoped +telescopes +telescopic +telescoping +telethon +telethon's +telethons +teletype +teletypes +teletypewriter +teletypewriter's +teletypewriters +televangelist +televangelist's +televangelists +televise +televised +televises +televising +television +television's +televisions +telex +telex's +telexed +telexes +telexing +tell +teller +teller's +tellers +telling +tellingly +tells +telltale +telltale's +telltales +temblor +temblor's +temblors +temerity +temerity's +temp +temp's +temped +temper +temper's +tempera +tempera's +temperament +temperament's +temperamental +temperamentally +temperaments +temperance +temperance's +temperas +temperate +temperature +temperature's +temperatures +tempered +tempering +tempers +tempest +tempest's +tempests +tempestuous +tempestuously +tempestuousness +tempestuousness's +tempi +temping +template +template's +templates +temple +temple's +temples +tempo +tempo's +temporal +temporally +temporaries +temporarily +temporary +temporary's +temporize +temporized +temporizes +temporizing +tempos +temps +tempt +temptation +temptation's +temptations +tempted +tempter +tempter's +tempters +tempting +temptingly +temptress +temptress's +temptresses +tempts +tempura +tempura's +ten +ten's +tenability +tenability's +tenable +tenacious +tenaciously +tenacity +tenacity's +tenancies +tenancy +tenancy's +tenant +tenant's +tenanted +tenanting +tenants +tend +tended +tendencies +tendency +tendency's +tendentious +tendentiously +tendentiousness +tendentiousness's +tender +tender's +tendered +tenderer +tenderest +tenderfeet +tenderfoot +tenderfoot's +tenderfoots +tenderhearted +tendering +tenderize +tenderized +tenderizer +tenderizer's +tenderizers +tenderizes +tenderizing +tenderloin +tenderloin's +tenderloins +tenderly +tenderness +tenderness's +tenders +tending +tendinitis +tendinitis's +tendon +tendon's +tendonitis +tendonitis's +tendons +tendril +tendril's +tendrils +tends +tenement +tenement's +tenements +tenet +tenet's +tenets +tenfold +tennis +tennis's +tenon +tenon's +tenoned +tenoning +tenons +tenor +tenor's +tenors +tenpin +tenpin's +tenpins +tenpins's +tens +tense +tense's +tensed +tensely +tenseness +tenseness's +tenser +tenses +tensest +tensile +tensing +tension +tension's +tensions +tensor +tensors +tent +tent's +tentacle +tentacle's +tentacles +tentative +tentatively +tented +tenth +tenth's +tenths +tenting +tents +tenuous +tenuously +tenuousness +tenuousness's +tenure +tenure's +tenured +tenures +tenuring +tepee +tepee's +tepees +tepid +tequila +tequila's +tequilas +terabit +terabit's +terabits +terabyte +terabyte's +terabytes +tercentenaries +tercentenary +tercentenary's +term +term's +termagant +termagant's +termagants +termed +terminable +terminal +terminal's +terminally +terminals +terminate +terminated +terminates +terminating +termination +termination's +terminations +terminator +terminators +terming +termini +terminological +terminologies +terminology +terminology's +terminus +terminus's +terminuses +termite +termite's +termites +termly +terms +tern +tern's +terns +terrace +terrace's +terraced +terraces +terracing +terrain +terrain's +terrains +terrapin +terrapin's +terrapins +terraria +terrarium +terrarium's +terrariums +terrestrial +terrestrial's +terrestrials +terrible +terribly +terrier +terrier's +terriers +terrific +terrifically +terrified +terrifies +terrify +terrifying +terrifyingly +territorial +territorial's +territorials +territories +territory +territory's +terror +terror's +terrorism +terrorism's +terrorist +terrorist's +terrorists +terrorize +terrorized +terrorizes +terrorizing +terrors +terry +terry's +terse +tersely +terseness +terseness's +terser +tersest +tertiary +test +test's +testable +testament +testament's +testamentary +testaments +testate +testates +tested +tester +tester's +testers +testes +testicle +testicle's +testicles +testier +testiest +testified +testifies +testify +testifying +testily +testimonial +testimonial's +testimonials +testimonies +testimony +testimony's +testiness +testiness's +testing +testis +testis's +testosterone +testosterone's +tests +testy +tetanus +tetanus's +tether +tether's +tethered +tethering +tethers +tetrahedra +tetrahedron +tetrahedron's +tetrahedrons +text +text's +textbook +textbook's +textbooks +textile +textile's +textiles +texts +textual +textually +textural +texture +texture's +textured +textures +texturing +thalami +thalamus +thalamus's +thallium +thallium's +than +thank +thanked +thankful +thankfully +thankfulness +thankfulness's +thanking +thankless +thanklessly +thanks +thanksgiving +thanksgiving's +thanksgivings +that +that's +thatch +thatch's +thatched +thatcher +thatches +thatching +thatching's +thaw +thaw's +thawed +thawing +thaws +the +theater +theater's +theaters +theatre +theatre's +theatres +theatrical +theatrically +thee +thees +theft +theft's +thefts +their +theirs +theism +theism's +theist +theist's +theistic +theists +them +thematic +thematically +theme +theme's +themes +themselves +then +then's +thence +thenceforth +thenceforward +theocracies +theocracy +theocracy's +theocratic +theologian +theologian's +theologians +theological +theologies +theology +theology's +theorem +theorem's +theorems +theoretic +theoretical +theoretically +theoretician +theoretician's +theoreticians +theories +theorist +theorist's +theorists +theorize +theorized +theorizes +theorizing +theory +theory's +theosophy +theosophy's +therapeutic +therapeutically +therapeutics +therapeutics's +therapies +therapist +therapist's +therapists +therapy +therapy's +there +there's +thereabout +thereabouts +thereafter +thereby +therefore +therefrom +therein +thereof +thereon +thereto +thereupon +therewith +thermal +thermal's +thermally +thermals +thermionic +thermodynamic +thermodynamics +thermodynamics's +thermometer +thermometer's +thermometers +thermonuclear +thermoplastic +thermoplastic's +thermoplastics +thermos +thermos's +thermoses +thermostat +thermostat's +thermostatic +thermostats +thesauri +thesaurus +thesaurus's +thesauruses +these +theses +thesis +thesis's +thespian +thespian's +thespians +theta +they +they'd +they'll +they're +they've +thiamin +thiamin's +thiamine +thiamine's +thick +thick's +thicken +thickened +thickener +thickener's +thickeners +thickening +thickening's +thickenings +thickens +thicker +thickest +thicket +thicket's +thickets +thickly +thickness +thickness's +thicknesses +thickset +thief +thief's +thieve +thieved +thievery +thievery's +thieves +thieving +thievish +thigh +thigh's +thighbone +thighbone's +thighbones +thighs +thimble +thimble's +thimbleful +thimbleful's +thimblefuls +thimbles +thin +thine +thing +thing's +thingamajig +thingamajig's +thingamajigs +things +think +thinker +thinker's +thinkers +thinking +thinking's +thinks +thinly +thinned +thinner +thinner's +thinners +thinness +thinness's +thinnest +thinning +thins +third +third's +thirdly +thirds +thirst +thirst's +thirsted +thirstier +thirstiest +thirstily +thirsting +thirsts +thirsty +thirteen +thirteen's +thirteens +thirteenth +thirteenth's +thirteenths +thirties +thirtieth +thirtieth's +thirtieths +thirty +thirty's +this +thistle +thistle's +thistledown +thistledown's +thistles +thither +tho +thong +thong's +thongs +thoraces +thoracic +thorax +thorax's +thoraxes +thorium +thorium's +thorn +thorn's +thornier +thorniest +thorns +thorny +thorough +thoroughbred +thoroughbred's +thoroughbreds +thorougher +thoroughest +thoroughfare +thoroughfare's +thoroughfares +thoroughgoing +thoroughly +thoroughness +thoroughness's +those +thou +thou's +though +thought +thought's +thoughtful +thoughtfully +thoughtfulness +thoughtfulness's +thoughtless +thoughtlessly +thoughtlessness +thoughtlessness's +thoughts +thous +thousand +thousand's +thousands +thousandth +thousandth's +thousandths +thraldom +thraldom's +thrall +thrall's +thralldom +thralldom's +thralled +thralling +thralls +thrash +thrash's +thrashed +thrasher +thrasher's +thrashers +thrashes +thrashing +thrashing's +thrashings +thread +thread's +threadbare +threaded +threading +threads +threat +threat's +threaten +threatened +threatening +threateningly +threatens +threats +three +three's +threefold +threes +threescore +threescore's +threescores +threesome +threesome's +threesomes +threnodies +threnody +threnody's +thresh +thresh's +threshed +thresher +thresher's +threshers +threshes +threshing +threshold +threshold's +thresholds +threw +thrice +thrift +thrift's +thriftier +thriftiest +thriftily +thriftiness +thriftiness's +thrifts +thrifty +thrill +thrill's +thrilled +thriller +thriller's +thrillers +thrilling +thrills +thrive +thrived +thriven +thrives +thriving +throat +throat's +throatier +throatiest +throatily +throatiness +throatiness's +throats +throaty +throb +throb's +throbbed +throbbing +throbs +throe +throe's +throes +thromboses +thrombosis +thrombosis's +throne +throne's +thrones +throng +throng's +thronged +thronging +throngs +throttle +throttle's +throttled +throttles +throttling +through +throughout +throughput +throughway +throughway's +throughways +throve +throw +throw's +throwaway +throwaway's +throwaways +throwback +throwback's +throwbacks +thrower +thrower's +throwers +throwing +thrown +throws +thru +thrum +thrum's +thrummed +thrumming +thrums +thrush +thrush's +thrushes +thrust +thrust's +thrusting +thrusts +thruway +thruway's +thruways +thud +thud's +thudded +thudding +thuds +thug +thug's +thugs +thumb +thumb's +thumbed +thumbing +thumbnail +thumbnail's +thumbnails +thumbs +thumbscrew +thumbscrew's +thumbscrews +thumbtack +thumbtack's +thumbtacks +thump +thump's +thumped +thumping +thumps +thunder +thunder's +thunderbolt +thunderbolt's +thunderbolts +thunderclap +thunderclap's +thunderclaps +thundercloud +thundercloud's +thunderclouds +thundered +thunderhead +thunderhead's +thunderheads +thundering +thunderous +thunders +thundershower +thundershower's +thundershowers +thunderstorm +thunderstorm's +thunderstorms +thunderstruck +thus +thwack +thwack's +thwacked +thwacking +thwacks +thwart +thwart's +thwarted +thwarting +thwarts +thy +thyme +thyme's +thymi +thymus +thymus's +thymuses +thyroid +thyroid's +thyroids +thyself +ti +ti's +tiara +tiara's +tiaras +tibia +tibia's +tibiae +tibias +tic +tic's +tick +tick's +ticked +ticker +ticker's +tickers +ticket +ticket's +ticketed +ticketing +tickets +ticking +ticking's +tickle +tickle's +tickled +tickles +tickling +ticklish +ticks +tics +tidal +tidbit +tidbit's +tidbits +tiddlywinks +tiddlywinks's +tide +tide's +tided +tides +tidewater +tidewater's +tidewaters +tidied +tidier +tidies +tidiest +tidily +tidiness +tidiness's +tiding +tidings +tidings's +tidy +tidy's +tidying +tie +tie's +tiebreaker +tiebreaker's +tiebreakers +tied +tieing +tier +tier's +tiers +ties +tiff +tiff's +tiffed +tiffing +tiffs +tiger +tiger's +tigers +tight +tighten +tightened +tightening +tightens +tighter +tightest +tightfisted +tightly +tightness +tightness's +tightrope +tightrope's +tightropes +tights +tights's +tightwad +tightwad's +tightwads +tigress +tigress's +tigresses +tike +tike's +tikes +tilde +tilde's +tildes +tile +tile's +tiled +tiles +tiling +tiling's +till +till's +tillable +tillage +tillage's +tilled +tiller +tiller's +tillers +tilling +tills +tilt +tilt's +tilted +tilting +tilts +timber +timber's +timbered +timbering +timberland +timberland's +timberline +timberline's +timberlines +timbers +timbre +timbre's +timbres +time +time's +timed +timekeeper +timekeeper's +timekeepers +timeless +timelessness +timelessness's +timelier +timeliest +timeliness +timeliness's +timely +timepiece +timepiece's +timepieces +timer +timer's +timers +times +timescale +timescales +timetable +timetable's +timetabled +timetables +timetabling +timeworn +timezone +timid +timider +timidest +timidity +timidity's +timidly +timing +timing's +timings +timorous +timorously +timpani +timpani's +timpanist +timpanist's +timpanists +tin +tin's +tincture +tincture's +tinctured +tinctures +tincturing +tinder +tinder's +tinderbox +tinderbox's +tinderboxes +tine +tine's +tines +tinfoil +tinfoil's +ting +tinge +tinge's +tinged +tingeing +tinges +tinging +tingle +tingle's +tingled +tingles +tinglier +tingliest +tingling +tingling's +tinglings +tingly +tings +tinier +tiniest +tinker +tinker's +tinkered +tinkering +tinkers +tinkle +tinkle's +tinkled +tinkles +tinkling +tinned +tinnier +tinniest +tinning +tinny +tins +tinsel +tinsel's +tinseled +tinseling +tinselled +tinselling +tinsels +tinsmith +tinsmith's +tinsmiths +tint +tint's +tinted +tinting +tintinnabulation +tintinnabulation's +tintinnabulations +tints +tiny +tip +tip's +tipi +tipi's +tipis +tipped +tipper +tipper's +tippers +tipping +tipple +tipple's +tippled +tippler +tippler's +tipplers +tipples +tippling +tips +tipsier +tipsiest +tipsily +tipster +tipster's +tipsters +tipsy +tiptoe +tiptoe's +tiptoed +tiptoeing +tiptoes +tiptop +tiptop's +tiptops +tirade +tirade's +tirades +tire +tire's +tired +tireder +tiredest +tiredness +tiredness's +tireless +tirelessly +tirelessness +tirelessness's +tires +tiresome +tiresomely +tiresomeness +tiresomeness's +tiring +tiro +tiro's +tiros +tissue +tissue's +tissues +tit +tit's +titan +titan's +titanic +titanium +titanium's +titans +titbit +titbit's +titbits +tithe +tithe's +tithed +tithes +tithing +titillate +titillated +titillates +titillating +titillation +titillation's +title +title's +titled +titles +titling +titmice +titmouse +titmouse's +tits +titter +titter's +tittered +tittering +titters +tittle +tittle's +tittles +titular +tizzies +tizzy +tizzy's +to +toad +toad's +toadied +toadies +toads +toadstool +toadstool's +toadstools +toady +toady's +toadying +toast +toast's +toasted +toaster +toaster's +toasters +toastier +toastiest +toasting +toastmaster +toastmaster's +toastmasters +toasts +toasty +tobacco +tobacco's +tobaccoes +tobacconist +tobacconist's +tobacconists +tobaccos +toboggan +toboggan's +tobogganed +tobogganing +toboggans +tocsin +tocsin's +tocsins +today +today's +toddies +toddle +toddle's +toddled +toddler +toddler's +toddlers +toddles +toddling +toddy +toddy's +toe +toe's +toed +toehold +toehold's +toeholds +toeing +toenail +toenail's +toenails +toes +toffee +toffee's +toffees +toffies +toffy +toffy's +tofu +tofu's +tog +tog's +toga +toga's +togae +togas +together +togetherness +togetherness's +toggle +toggle's +toggled +toggles +toggling +togs +togs's +toil +toil's +toiled +toiler +toiler's +toilers +toilet +toilet's +toileted +toileting +toiletries +toiletry +toiletry's +toilets +toilette +toilette's +toiling +toils +toilsome +toke +toke's +toked +token +token's +tokenism +tokenism's +tokens +tokes +toking +told +tolerable +tolerably +tolerance +tolerance's +tolerances +tolerant +tolerantly +tolerate +tolerated +tolerates +tolerating +toleration +toleration's +toll +toll's +tollbooth +tollbooth's +tollbooths +tolled +tollgate +tollgate's +tollgates +tolling +tolls +tom +tom's +tomahawk +tomahawk's +tomahawked +tomahawking +tomahawks +tomato +tomato's +tomatoes +tomb +tomb's +tombed +tombing +tomboy +tomboy's +tomboys +tombs +tombstone +tombstone's +tombstones +tomcat +tomcat's +tomcats +tome +tome's +tomes +tomfooleries +tomfoolery +tomfoolery's +tomorrow +tomorrow's +tomorrows +toms +ton +ton's +tonal +tonalities +tonality +tonality's +tone +tone's +toned +toneless +toner +tones +tong +tong's +tongs +tongue +tongue's +tongued +tongues +tonguing +tonic +tonic's +tonics +tonier +toniest +tonight +tonight's +toning +tonnage +tonnage's +tonnages +tonne +tonne's +tonnes +tons +tonsil +tonsil's +tonsillectomies +tonsillectomy +tonsillectomy's +tonsillitis +tonsillitis's +tonsils +tonsorial +tonsure +tonsure's +tonsured +tonsures +tonsuring +tony +too +took +tool +tool's +toolbar +toolbox +toolbox's +toolboxes +tooled +tooling +toolkit +tools +toot +toot's +tooted +tooth +tooth's +toothache +toothache's +toothaches +toothbrush +toothbrush's +toothbrushes +toothed +toothier +toothiest +toothless +toothpaste +toothpaste's +toothpastes +toothpick +toothpick's +toothpicks +toothsome +toothy +tooting +toots +top +top's +topaz +topaz's +topazes +topcoat +topcoat's +topcoats +topic +topic's +topical +topically +topics +topknot +topknot's +topknots +topless +topmast +topmast's +topmasts +topmost +topographer +topographer's +topographers +topographic +topographical +topographies +topography +topography's +topological +topologically +topology +topped +topping +topping's +toppings +topple +toppled +topples +toppling +tops +topsail +topsail's +topsails +topside +topside's +topsides +topsoil +topsoil's +toque +toque's +toques +tor +tor's +torch +torch's +torched +torches +torching +torchlight +torchlight's +tore +toreador +toreador's +toreadors +torment +torment's +tormented +tormenter +tormenter's +tormenters +tormenting +tormentor +tormentor's +tormentors +torments +torn +tornado +tornado's +tornadoes +tornados +torpedo +torpedo's +torpedoed +torpedoes +torpedoing +torpedos +torpid +torpidity +torpidity's +torpor +torpor's +torque +torque's +torqued +torques +torquing +torrent +torrent's +torrential +torrents +torrid +torrider +torridest +tors +torsi +torsion +torsion's +torso +torso's +torsos +tort +tort's +torte +torte's +tortes +tortilla +tortilla's +tortillas +tortoise +tortoise's +tortoises +tortoiseshell +tortoiseshell's +tortoiseshells +torts +tortuous +tortuously +torture +torture's +tortured +torturer +torturer's +torturers +tortures +torturing +torus +toss +toss's +tossed +tosses +tossing +tossup +tossup's +tossups +tost +tot +tot's +total +total's +totaled +totaling +totalitarian +totalitarian's +totalitarianism +totalitarianism's +totalitarians +totalities +totality +totality's +totalled +totalling +totally +totals +tote +tote's +toted +totem +totem's +totemic +totems +totes +toting +tots +totted +totter +totter's +tottered +tottering +totters +totting +toucan +toucan's +toucans +touch +touch's +touchdown +touchdown's +touchdowns +touched +touches +touchier +touchiest +touching +touchingly +touchings +touchstone +touchstone's +touchstones +touchy +touché +tough +tough's +toughen +toughened +toughening +toughens +tougher +toughest +toughly +toughness +toughness's +toughs +toupee +toupee's +toupees +tour +tour's +toured +touring +tourism +tourism's +tourist +tourist's +tourists +tourmaline +tourmaline's +tournament +tournament's +tournaments +tourney +tourney's +tourneys +tourniquet +tourniquet's +tourniquets +tours +tousle +tousled +tousles +tousling +tout +tout's +touted +touting +touts +tow +tow's +toward +towards +towed +towel +towel's +toweled +toweling +toweling's +towelings +towelled +towelling +towelling's +towellings +towels +tower +tower's +towered +towering +towers +towhead +towhead's +towheaded +towheads +towing +town +town's +townhouse +townhouse's +townhouses +towns +townsfolk +townsfolk's +township +township's +townships +townsman +townsman's +townsmen +townspeople +townspeople's +towpath +towpath's +towpaths +tows +toxemia +toxemia's +toxic +toxicity +toxicity's +toxicologist +toxicologist's +toxicologists +toxicology +toxicology's +toxin +toxin's +toxins +toy +toy's +toyed +toying +toys +trace +trace's +traceable +traced +tracer +tracer's +traceries +tracers +tracery +tracery's +traces +trachea +trachea's +tracheae +tracheas +tracheotomies +tracheotomy +tracheotomy's +tracing +tracing's +tracings +track +track's +tracked +tracker +tracker's +trackers +tracking +tracks +tract +tract's +tractable +traction +traction's +tractor +tractor's +tractors +tracts +trade +trade's +traded +trademark +trademark's +trademarked +trademarking +trademarks +trader +trader's +traders +trades +tradesman +tradesman's +tradesmen +trading +tradition +tradition's +traditional +traditionalist +traditionalist's +traditionalists +traditionally +traditions +traduce +traduced +traduces +traducing +traffic +traffic's +trafficked +trafficker +trafficker's +traffickers +trafficking +traffics +tragedian +tragedian's +tragedians +tragedies +tragedy +tragedy's +tragic +tragically +tragicomedies +tragicomedy +tragicomedy's +trail +trail's +trailblazer +trailblazer's +trailblazers +trailed +trailer +trailer's +trailers +trailing +trails +train +train's +trained +trainee +trainee's +trainees +trainer +trainer's +trainers +training +training's +trains +traipse +traipse's +traipsed +traipses +traipsing +trait +trait's +traitor +traitor's +traitorous +traitors +traits +trajectories +trajectory +trajectory's +tram +tram's +trammed +trammel +trammel's +trammeled +trammeling +trammelled +trammelling +trammels +tramming +tramp +tramp's +tramped +tramping +trample +trample's +trampled +tramples +trampling +trampoline +trampoline's +trampolines +tramps +trams +trance +trance's +trances +tranquil +tranquiler +tranquilest +tranquility +tranquility's +tranquilize +tranquilized +tranquilizer +tranquilizer's +tranquilizers +tranquilizes +tranquilizing +tranquiller +tranquillest +tranquillity +tranquillity's +tranquillize +tranquillized +tranquillizer +tranquillizer's +tranquillizers +tranquillizes +tranquillizing +tranquilly +transact +transacted +transacting +transaction +transaction's +transactions +transacts +transatlantic +transceiver +transceiver's +transceivers +transcend +transcended +transcendence +transcendence's +transcendent +transcendental +transcendentalism +transcendentalism's +transcendentalist +transcendentalist's +transcendentalists +transcendentally +transcending +transcends +transcontinental +transcribe +transcribed +transcribes +transcribing +transcript +transcript's +transcription +transcription's +transcriptions +transcripts +transducer +transducer's +transducers +transept +transept's +transepts +transfer +transfer's +transferable +transferal +transferal's +transferals +transference +transference's +transferred +transferring +transfers +transfiguration +transfiguration's +transfigure +transfigured +transfigures +transfiguring +transfinite +transfix +transfixed +transfixes +transfixing +transfixt +transform +transform's +transformation +transformation's +transformations +transformed +transformer +transformer's +transformers +transforming +transforms +transfuse +transfused +transfuses +transfusing +transfusion +transfusion's +transfusions +transgress +transgressed +transgresses +transgressing +transgression +transgression's +transgressions +transgressor +transgressor's +transgressors +transience +transience's +transiency +transiency's +transient +transient's +transients +transistor +transistor's +transistors +transit +transit's +transited +transiting +transition +transition's +transitional +transitioned +transitioning +transitions +transitive +transitive's +transitively +transitives +transitory +transits +transitted +transitting +translate +translated +translates +translating +translation +translation's +translations +translator +translator's +translators +transliterate +transliterated +transliterates +transliterating +transliteration +transliteration's +transliterations +translucence +translucence's +translucent +transmigrate +transmigrated +transmigrates +transmigrating +transmigration +transmigration's +transmissible +transmission +transmission's +transmissions +transmit +transmits +transmittable +transmittal +transmittal's +transmitted +transmitter +transmitter's +transmitters +transmitting +transmutation +transmutation's +transmutations +transmute +transmuted +transmutes +transmuting +transnational +transnational's +transnationals +transoceanic +transom +transom's +transoms +transparencies +transparency +transparency's +transparent +transparently +transpiration +transpiration's +transpire +transpired +transpires +transpiring +transplant +transplant's +transplantation +transplantation's +transplanted +transplanting +transplants +transponder +transponder's +transponders +transport +transport's +transportable +transportation +transportation's +transported +transporter +transporter's +transporters +transporting +transports +transpose +transposed +transposes +transposing +transposition +transposition's +transpositions +transsexual +transsexual's +transsexuals +transship +transshipment +transshipment's +transshipped +transshipping +transships +transubstantiation +transubstantiation's +transverse +transverse's +transversely +transverses +transvestism +transvestism's +transvestite +transvestite's +transvestites +trap +trap's +trapdoor +trapdoor's +trapdoors +trapeze +trapeze's +trapezes +trapezoid +trapezoid's +trapezoidal +trapezoids +trappable +trapped +trapper +trapper's +trappers +trapping +trappings +trappings's +traps +trapshooting +trapshooting's +trash +trash's +trashcan +trashcan's +trashcans +trashed +trashes +trashier +trashiest +trashing +trashy +trauma +trauma's +traumas +traumata +traumatic +traumatize +traumatized +traumatizes +traumatizing +travail +travail's +travailed +travailing +travails +travel +travel's +traveled +traveler +traveler's +travelers +traveling +travelings +travelled +traveller +traveller's +travellers +travelling +travelog +travelog's +travelogs +travelogue +travelogue's +travelogues +travels +traverse +traverse's +traversed +traverses +traversing +travestied +travesties +travesty +travesty's +travestying +trawl +trawl's +trawled +trawler +trawler's +trawlers +trawling +trawls +tray +tray's +trays +treacheries +treacherous +treacherously +treachery +treachery's +treacle +treacle's +tread +tread's +treading +treadle +treadle's +treadled +treadles +treadling +treadmill +treadmill's +treadmills +treads +treason +treason's +treasonable +treasonous +treasure +treasure's +treasured +treasurer +treasurer's +treasurers +treasures +treasuries +treasuring +treasury +treasury's +treat +treat's +treatable +treated +treaties +treating +treatise +treatise's +treatises +treatment +treatment's +treatments +treats +treaty +treaty's +treble +treble's +trebled +trebles +trebling +tree +tree's +treed +treeing +treeless +trees +treetop +treetop's +treetops +trefoil +trefoil's +trefoils +trek +trek's +trekked +trekking +treks +trellis +trellis's +trellised +trellises +trellising +tremble +tremble's +trembled +trembles +trembling +tremendous +tremendously +tremolo +tremolo's +tremolos +tremor +tremor's +tremors +tremulous +tremulously +trench +trench's +trenchant +trenched +trenches +trenching +trend +trend's +trended +trendier +trendies +trendiest +trending +trends +trendy +trendy's +trepidation +trepidation's +trespass +trespass's +trespassed +trespasser +trespasser's +trespassers +trespasses +trespassing +tress +tress's +tresses +trestle +trestle's +trestles +triad +triad's +triads +triage +triage's +trial +trial's +trialed +trialing +trials +triangle +triangle's +triangles +triangular +triangulation +triangulation's +triathlon +triathlon's +triathlons +tribal +tribalism +tribalism's +tribe +tribe's +tribes +tribesman +tribesman's +tribesmen +tribulation +tribulation's +tribulations +tribunal +tribunal's +tribunals +tribune +tribune's +tribunes +tributaries +tributary +tributary's +tribute +tribute's +tributes +trice +trice's +triceps +triceps's +tricepses +triceratops +triceratops's +triceratopses +trick +trick's +tricked +trickery +trickery's +trickier +trickiest +trickiness +trickiness's +tricking +trickle +trickle's +trickled +trickles +trickling +tricks +trickster +trickster's +tricksters +tricky +tricolor +tricolor's +tricolors +tricycle +tricycle's +tricycles +trident +trident's +tridents +tried +triennial +triennial's +triennials +tries +trifle +trifle's +trifled +trifler +trifler's +triflers +trifles +trifling +trifocals +trifocals's +trig +trig's +trigger +trigger's +triggered +triggering +triggers +triglyceride +triglyceride's +triglycerides +trigonometric +trigonometry +trigonometry's +trike +trike's +trikes +trilateral +trilaterals +trill +trill's +trilled +trilling +trillion +trillion's +trillions +trillionth +trillionth's +trillionths +trills +trilogies +trilogy +trilogy's +trim +trim's +trimaran +trimaran's +trimarans +trimester +trimester's +trimesters +trimly +trimmed +trimmer +trimmer's +trimmers +trimmest +trimming +trimming's +trimmings +trimmings's +trimness +trimness's +trims +trinities +trinity +trinity's +trinket +trinket's +trinkets +trio +trio's +trios +trip +trip's +tripartite +tripe +tripe's +triple +triple's +tripled +triples +triplet +triplet's +triplets +triplicate +triplicate's +triplicated +triplicates +triplicating +tripling +triply +tripod +tripod's +tripods +tripos +tripped +tripping +trips +triptych +triptych's +triptychs +trisect +trisected +trisecting +trisects +trite +tritely +triteness +triteness's +triter +tritest +triumph +triumph's +triumphal +triumphant +triumphantly +triumphed +triumphing +triumphs +triumvirate +triumvirate's +triumvirates +trivet +trivet's +trivets +trivia +trivia's +trivial +trivialities +triviality +triviality's +trivialize +trivialized +trivializes +trivializing +trivially +trochee +trochee's +trochees +trod +trodden +troika +troika's +troikas +troll +troll's +trolled +trolley +trolley's +trolleys +trollies +trolling +trollop +trollop's +trollops +trolls +trolly +trolly's +trombone +trombone's +trombones +trombonist +trombonist's +trombonists +tromp +tromped +tromping +tromps +troop +troop's +trooped +trooper +trooper's +troopers +trooping +troops +troopship +troopship's +troopships +trope +trope's +tropes +trophies +trophy +trophy's +tropic +tropic's +tropical +tropics +tropics's +tropism +tropism's +tropisms +troposphere +troposphere's +tropospheres +trot +trot's +troth +troth's +trots +trotted +trotter +trotter's +trotters +trotting +troubadour +troubadour's +troubadours +trouble +trouble's +troubled +troublemaker +troublemaker's +troublemakers +troubles +troubleshoot +troubleshooted +troubleshooter +troubleshooter's +troubleshooters +troubleshooting +troubleshooting's +troubleshoots +troubleshot +troublesome +troubling +trough +trough's +troughs +trounce +trounced +trounces +trouncing +troupe +troupe's +trouped +trouper +trouper's +troupers +troupes +trouping +trouser +trouser's +trousers +trousers's +trousseau +trousseau's +trousseaus +trousseaux +trout +trout's +trouts +trowel +trowel's +troweled +troweling +trowelled +trowelling +trowels +troy +troys +truancy +truancy's +truant +truant's +truanted +truanting +truants +truce +truce's +truces +truck +truck's +trucked +trucker +trucker's +truckers +trucking +trucking's +truckle +truckle's +truckled +truckles +truckling +truckload +truckload's +truckloads +trucks +truculence +truculence's +truculent +truculently +trudge +trudge's +trudged +trudges +trudging +true +true's +trued +trueing +truer +trues +truest +truffle +truffle's +truffles +truing +truism +truism's +truisms +truly +trump +trump's +trumped +trumpery +trumpery's +trumpet +trumpet's +trumpeted +trumpeter +trumpeter's +trumpeters +trumpeting +trumpets +trumping +trumps +truncate +truncated +truncates +truncating +truncation +truncation's +truncheon +truncheon's +truncheons +trundle +trundle's +trundled +trundles +trundling +trunk +trunk's +trunking +trunks +truss +truss's +trussed +trusses +trussing +trust +trust's +trusted +trustee +trustee's +trustees +trusteeship +trusteeship's +trusteeships +trustful +trustfully +trustfulness +trustfulness's +trustier +trusties +trustiest +trusting +trusts +trustworthier +trustworthiest +trustworthiness +trustworthiness's +trustworthy +trusty +trusty's +truth +truth's +truthful +truthfully +truthfulness +truthfulness's +truths +try +try's +trying +tryout +tryout's +tryouts +tryst +tryst's +trysted +trysting +trysts +ts +tsar +tsar's +tsarina +tsarina's +tsarinas +tsars +tsunami +tsunami's +tsunamis +tub +tub's +tuba +tuba's +tubas +tubbier +tubbiest +tubby +tube +tube's +tubed +tubeless +tubeless's +tuber +tuber's +tubercle +tubercle's +tubercles +tubercular +tuberculosis +tuberculosis's +tuberculous +tuberous +tubers +tubes +tubing +tubing's +tubs +tubular +tuck +tuck's +tucked +tucker +tucker's +tuckered +tuckering +tuckers +tucking +tucks +tuft +tuft's +tufted +tufting +tufts +tug +tug's +tugboat +tugboat's +tugboats +tugged +tugging +tugs +tuition +tuition's +tulip +tulip's +tulips +tulle +tulle's +tumble +tumble's +tumbled +tumbledown +tumbler +tumbler's +tumblers +tumbles +tumbleweed +tumbleweed's +tumbleweeds +tumbling +tumbrel +tumbrel's +tumbrels +tumbril +tumbril's +tumbrils +tumid +tummies +tummy +tummy's +tumor +tumor's +tumors +tumult +tumult's +tumults +tumultuous +tun +tun's +tuna +tuna's +tunas +tundra +tundra's +tundras +tune +tune's +tuned +tuneful +tunefully +tuneless +tunelessly +tuner +tuner's +tuners +tunes +tungsten +tungsten's +tunic +tunic's +tunics +tuning +tunnel +tunnel's +tunneled +tunneling +tunnelings +tunnelled +tunnelling +tunnels +tunnies +tunny +tunny's +tuns +turban +turban's +turbans +turbid +turbine +turbine's +turbines +turbojet +turbojet's +turbojets +turboprop +turboprop's +turboprops +turbot +turbot's +turbots +turbulence +turbulence's +turbulent +turbulently +turd +turd's +turds +tureen +tureen's +tureens +turf +turf's +turfed +turfing +turfs +turgid +turgidity +turgidity's +turgidly +turkey +turkey's +turkeys +turmeric +turmeric's +turmerics +turmoil +turmoil's +turmoils +turn +turn's +turnabout +turnabout's +turnabouts +turnaround +turnaround's +turnarounds +turncoat +turncoat's +turncoats +turned +turner +turner's +turners +turning +turnip +turnip's +turnips +turnkey +turnkey's +turnkeys +turnoff +turnoff's +turnoffs +turnout +turnout's +turnouts +turnover +turnover's +turnovers +turnpike +turnpike's +turnpikes +turns +turnstile +turnstile's +turnstiles +turntable +turntable's +turntables +turpentine +turpentine's +turpitude +turpitude's +turquoise +turquoise's +turquoises +turret +turret's +turrets +turtle +turtle's +turtledove +turtledove's +turtledoves +turtleneck +turtleneck's +turtlenecks +turtles +turves +tush +tush's +tushes +tusk +tusk's +tusked +tusks +tussle +tussle's +tussled +tussles +tussling +tussock +tussock's +tussocks +tutelage +tutelage's +tutor +tutor's +tutored +tutorial +tutorial's +tutorials +tutoring +tutors +tutu +tutu's +tutus +tux +tux's +tuxedo +tuxedo's +tuxedoes +tuxedos +tuxes +twaddle +twaddle's +twaddled +twaddles +twaddling +twain +twain's +twang +twang's +twanged +twanging +twangs +tweak +tweak's +tweaked +tweaking +tweaks +twee +tweed +tweed's +tweedier +tweediest +tweeds +tweeds's +tweedy +tweet +tweet's +tweeted +tweeter +tweeter's +tweeters +tweeting +tweets +tweezers +tweezers's +twelfth +twelfth's +twelfths +twelve +twelve's +twelves +twenties +twentieth +twentieth's +twentieths +twenty +twenty's +twerp +twerp's +twerps +twice +twiddle +twiddle's +twiddled +twiddles +twiddling +twig +twig's +twigged +twiggier +twiggiest +twigging +twiggy +twigs +twilight +twilight's +twill +twill's +twilled +twin +twin's +twine +twine's +twined +twines +twinge +twinge's +twinged +twingeing +twinges +twinging +twining +twinkle +twinkle's +twinkled +twinkles +twinkling +twinkling's +twinklings +twinned +twinning +twins +twirl +twirl's +twirled +twirler +twirler's +twirlers +twirling +twirls +twist +twist's +twisted +twister +twister's +twisters +twisting +twists +twit +twit's +twitch +twitch's +twitched +twitches +twitching +twits +twitted +twitter +twitter's +twittered +twittering +twitters +twitting +two +two's +twofer +twofer's +twofers +twofold +twos +twosome +twosome's +twosomes +tycoon +tycoon's +tycoons +tying +tyke +tyke's +tykes +tympana +tympanum +tympanum's +tympanums +type +type's +typecast +typecasting +typecasts +typed +typeface +typeface's +typefaces +types +typescript +typescript's +typescripts +typeset +typesets +typesetter +typesetter's +typesetters +typesetting +typewrite +typewriter +typewriter's +typewriters +typewrites +typewriting +typewritten +typewrote +typhoid +typhoid's +typhoon +typhoon's +typhoons +typhus +typhus's +typical +typically +typified +typifies +typify +typifying +typing +typing's +typist +typist's +typists +typo +typo's +typographer +typographer's +typographers +typographic +typographical +typographically +typography +typography's +typos +tyrannical +tyrannically +tyrannies +tyrannize +tyrannized +tyrannizes +tyrannizing +tyrannosaur +tyrannosaur's +tyrannosaurs +tyrannosaurus +tyrannosaurus's +tyrannosauruses +tyrannous +tyranny +tyranny's +tyrant +tyrant's +tyrants +tyro +tyro's +tyroes +tyros +tzar +tzar's +tzarina +tzarina's +tzarinas +tzars +u +ubiquitous +ubiquitously +ubiquity +ubiquity's +udder +udder's +udders +ugh +uglier +ugliest +ugliness +ugliness's +ugly +uh +ukelele +ukelele's +ukeleles +ukulele +ukulele's +ukuleles +ulcer +ulcer's +ulcerate +ulcerated +ulcerates +ulcerating +ulceration +ulceration's +ulcerous +ulcers +ulna +ulna's +ulnae +ulnas +ulterior +ultimata +ultimate +ultimate's +ultimately +ultimatum +ultimatum's +ultimatums +ultra +ultra's +ultraconservative +ultraconservative's +ultraconservatives +ultramarine +ultramarine's +ultras +ultrasonic +ultrasonically +ultrasound +ultrasound's +ultrasounds +ultraviolet +ultraviolet's +ululate +ululated +ululates +ululating +um +umbel +umbel's +umbels +umber +umber's +umbilical +umbilici +umbilicus +umbilicus's +umbilicuses +umbrage +umbrage's +umbrella +umbrella's +umbrellas +umiak +umiak's +umiaks +umlaut +umlaut's +umlauts +ump +ump's +umped +umping +umpire +umpire's +umpired +umpires +umpiring +umps +umpteen +umpteenth +unabashed +unabated +unable +unabridged +unabridged's +unabridgeds +unaccented +unacceptability +unacceptable +unacceptably +unaccepted +unaccompanied +unaccountable +unaccountably +unaccustomed +unacknowledged +unacquainted +unadorned +unadulterated +unadvised +unaffected +unafraid +unaided +unalterable +unalterably +unaltered +unambiguous +unambiguously +unanimity +unanimity's +unanimous +unanimously +unannounced +unanswerable +unanswered +unanticipated +unappealing +unappetizing +unappreciated +unappreciative +unapproachable +unarmed +unashamed +unashamedly +unasked +unassailable +unassigned +unassisted +unassuming +unattached +unattainable +unattended +unattractive +unattributed +unauthenticated +unauthorized +unavailable +unavailing +unavoidable +unavoidably +unaware +unawares +unbalanced +unbar +unbarred +unbarring +unbars +unbearable +unbearably +unbeatable +unbeaten +unbecoming +unbeknown +unbeknownst +unbelief +unbelief's +unbelievable +unbelievably +unbeliever +unbeliever's +unbelievers +unbend +unbending +unbends +unbent +unbiased +unbiassed +unbidden +unbind +unbinding +unbinds +unblock +unblocked +unblocking +unblocks +unblushing +unbolt +unbolted +unbolting +unbolts +unborn +unbosom +unbosomed +unbosoming +unbosoms +unbound +unbounded +unbranded +unbreakable +unbridled +unbroken +unbuckle +unbuckled +unbuckles +unbuckling +unburden +unburdened +unburdening +unburdens +unbutton +unbuttoned +unbuttoning +unbuttons +uncalled +uncannier +uncanniest +uncannily +uncanny +uncaring +uncased +uncatalogued +unceasing +unceasingly +uncensored +unceremonious +unceremoniously +uncertain +uncertainly +uncertainties +uncertainty +uncertainty's +unchallenged +unchanged +unchanging +uncharacteristic +uncharacteristically +uncharitable +uncharitably +uncharted +unchecked +unchristian +uncivil +uncivilized +unclaimed +unclasp +unclasped +unclasping +unclasps +unclassified +uncle +uncle's +unclean +uncleaner +uncleanest +uncleanlier +uncleanliest +uncleanly +uncleanness +uncleanness's +unclear +unclearer +unclearest +uncles +unclothe +unclothed +unclothes +unclothing +uncluttered +uncoil +uncoiled +uncoiling +uncoils +uncollected +uncomfortable +uncomfortably +uncommitted +uncommon +uncommoner +uncommonest +uncommonly +uncommunicative +uncomplaining +uncompleted +uncomplicated +uncomplimentary +uncomprehending +uncompressed +uncompromising +uncompromisingly +unconcern +unconcern's +unconcerned +unconcernedly +unconditional +unconditionally +unconfirmed +unconnected +unconquerable +unconscionable +unconscionably +unconscious +unconscious's +unconsciously +unconsciousness +unconsciousness's +unconsidered +unconstitutional +uncontaminated +uncontested +uncontrollable +uncontrollably +uncontrolled +uncontroversial +unconventional +unconventionally +unconvinced +unconvincing +unconvincingly +uncooked +uncooperative +uncoordinated +uncork +uncorked +uncorking +uncorks +uncorrelated +uncorroborated +uncountable +uncounted +uncouple +uncoupled +uncouples +uncoupling +uncouth +uncover +uncovered +uncovering +uncovers +uncritical +unction +unction's +unctions +unctuous +unctuously +unctuousness +unctuousness's +uncultivated +uncultured +uncut +undamaged +undated +undaunted +undeceive +undeceived +undeceives +undeceiving +undecidable +undecided +undecided's +undecideds +undecipherable +undeclared +undefeated +undefended +undefinable +undefined +undelivered +undemanding +undemocratic +undemonstrative +undeniable +undeniably +undependable +under +underachieve +underachieved +underachiever +underachiever's +underachievers +underachieves +underachieving +underact +underacted +underacting +underacts +underage +underarm +underarm's +underarms +underbellies +underbelly +underbelly's +underbid +underbidding +underbids +underbrush +underbrush's +undercarriage +undercarriage's +undercarriages +undercharge +undercharge's +undercharged +undercharges +undercharging +underclass +underclass's +underclassman +underclassman's +underclassmen +underclothes +underclothes's +underclothing +underclothing's +undercoat +undercoat's +undercoated +undercoating +undercoats +undercover +undercurrent +undercurrent's +undercurrents +undercut +undercut's +undercuts +undercutting +underdeveloped +underdog +underdog's +underdogs +underdone +underemployed +underestimate +underestimate's +underestimated +underestimates +underestimating +underexpose +underexposed +underexposes +underexposing +underfed +underfeed +underfeeding +underfeeds +underflow +underfoot +underfunded +undergarment +undergarment's +undergarments +undergo +undergoes +undergoing +undergone +undergrad +undergrads +undergraduate +undergraduate's +undergraduates +underground +underground's +undergrounds +undergrowth +undergrowth's +underhand +underhanded +underhandedly +underlain +underlay +underlay's +underlays +underlie +underlies +underline +underline's +underlined +underlines +underling +underling's +underlings +underlining +underlying +undermine +undermined +undermines +undermining +undermost +underneath +underneath's +underneaths +undernourished +underpaid +underpants +underpants's +underpass +underpass's +underpasses +underpay +underpaying +underpays +underpin +underpinned +underpinning +underpinning's +underpinnings +underpins +underplay +underplayed +underplaying +underplays +underprivileged +underrate +underrated +underrates +underrating +underscore +underscore's +underscored +underscores +underscoring +undersea +undersecretaries +undersecretary +undersecretary's +undersell +underselling +undersells +undershirt +undershirt's +undershirts +undershoot +undershooting +undershoots +undershorts +undershorts's +undershot +underside +underside's +undersides +undersign +undersigned +undersigned's +undersigning +undersigns +undersize +undersized +underskirt +underskirt's +underskirts +undersold +understaffed +understand +understandable +understandably +understanding +understanding's +understandingly +understandings +understands +understate +understated +understatement +understatement's +understatements +understates +understating +understood +understudied +understudies +understudy +understudy's +understudying +undertake +undertaken +undertaker +undertaker's +undertakers +undertakes +undertaking +undertaking's +undertakings +undertone +undertone's +undertones +undertook +undertow +undertow's +undertows +underused +undervalue +undervalued +undervalues +undervaluing +underwater +underwear +underwear's +underweight +underweight's +underwent +underworld +underworld's +underworlds +underwrite +underwriter +underwriter's +underwriters +underwrites +underwriting +underwritten +underwrote +undeserved +undeservedly +undeserving +undesirability +undesirable +undesirable's +undesirables +undetectable +undetected +undetermined +undeterred +undeveloped +undid +undies +undies's +undignified +undiluted +undiminished +undisciplined +undisclosed +undiscovered +undiscriminating +undisguised +undisputed +undistinguished +undisturbed +undivided +undo +undocumented +undoes +undoing +undoing's +undoings +undone +undoubted +undoubtedly +undress +undress's +undressed +undresses +undressing +undue +undulant +undulate +undulated +undulates +undulating +undulation +undulation's +undulations +unduly +undying +unearned +unearth +unearthed +unearthing +unearthly +unearths +unease +unease's +uneasier +uneasiest +uneasily +uneasiness +uneasiness's +uneasy +uneaten +uneconomic +uneconomical +unedited +uneducated +unembarrassed +unemotional +unemployable +unemployed +unemployed's +unemployment +unemployment's +unending +unendurable +unenforceable +unenlightened +unenthusiastic +unenviable +unequal +unequaled +unequalled +unequally +unequivocal +unequivocally +unerring +unerringly +unethical +uneven +unevener +unevenest +unevenly +unevenness +unevenness's +uneventful +uneventfully +unexampled +unexceptionable +unexceptional +unexciting +unexpected +unexpectedly +unexplained +unexplored +unexpurgated +unfailing +unfailingly +unfair +unfairer +unfairest +unfairly +unfairness +unfairness's +unfaithful +unfaithfully +unfaithfulness +unfaithfulness's +unfamiliar +unfamiliarity +unfamiliarity's +unfashionable +unfasten +unfastened +unfastening +unfastens +unfathomable +unfavorable +unfavorably +unfeasible +unfeeling +unfeelingly +unfeigned +unfetter +unfettered +unfettering +unfetters +unfilled +unfinished +unfit +unfits +unfitted +unfitting +unflagging +unflappable +unflattering +unflinching +unflinchingly +unfold +unfolded +unfolding +unfolds +unforeseeable +unforeseen +unforgettable +unforgettably +unforgivable +unforgiving +unformed +unfortunate +unfortunate's +unfortunately +unfortunates +unfounded +unfrequented +unfriendlier +unfriendliest +unfriendliness +unfriendliness's +unfriendly +unfrock +unfrocked +unfrocking +unfrocks +unfulfilled +unfunny +unfurl +unfurled +unfurling +unfurls +unfurnished +ungainlier +ungainliest +ungainliness +ungainliness's +ungainly +ungentlemanly +ungodlier +ungodliest +ungodly +ungovernable +ungracious +ungrammatical +ungrateful +ungratefully +ungratefulness +ungratefulness's +ungrudging +unguarded +unguent +unguent's +unguents +ungulate +ungulate's +ungulates +unhand +unhanded +unhanding +unhands +unhappier +unhappiest +unhappily +unhappiness +unhappiness's +unhappy +unharmed +unhealthful +unhealthier +unhealthiest +unhealthy +unheard +unheeded +unhelpful +unhesitating +unhesitatingly +unhindered +unhinge +unhinged +unhinges +unhinging +unhitch +unhitched +unhitches +unhitching +unholier +unholiest +unholy +unhook +unhooked +unhooking +unhooks +unhorse +unhorsed +unhorses +unhorsing +unhurried +unhurt +unicameral +unicorn +unicorn's +unicorns +unicycle +unicycle's +unicycles +unidentifiable +unidentified +unidirectional +unification +unification's +unified +unifies +uniform +uniform's +uniformed +uniforming +uniformity +uniformity's +uniformly +uniforms +unify +unifying +unilateral +unilaterally +unimaginable +unimaginative +unimpaired +unimpeachable +unimplementable +unimplemented +unimportant +unimpressed +unimpressive +uninformative +uninformed +uninhabitable +uninhabited +uninhibited +uninitialized +uninitiated +uninjured +uninspired +uninspiring +uninstall +uninstallable +uninstalled +uninstaller +uninstaller's +uninstallers +uninstalling +uninstalls +uninsured +unintelligent +unintelligible +unintelligibly +unintended +unintentional +unintentionally +uninterested +uninteresting +uninterpreted +uninterrupted +uninvited +uninviting +union +union's +unionization +unionization's +unionize +unionized +unionizes +unionizing +unions +unique +uniquely +uniqueness +uniqueness's +uniquer +uniquest +unisex +unisex's +unison +unison's +unit +unit's +unitary +unite +united +unites +unities +uniting +units +unity +unity's +universal +universal's +universality +universality's +universally +universals +universe +universe's +universes +universities +university +university's +unjust +unjustifiable +unjustified +unjustly +unkempt +unkind +unkinder +unkindest +unkindlier +unkindliest +unkindly +unkindness +unkindness's +unknowable +unknowing +unknowingly +unknowings +unknown +unknown's +unknowns +unlabeled +unlace +unlaced +unlaces +unlacing +unlatch +unlatched +unlatches +unlatching +unlawful +unlawfully +unleaded +unleaded's +unlearn +unlearned +unlearning +unlearns +unleash +unleashed +unleashes +unleashing +unleavened +unless +unlettered +unlicensed +unlike +unlikelier +unlikeliest +unlikelihood +unlikelihood's +unlikely +unlimited +unlisted +unload +unloaded +unloading +unloads +unlock +unlocked +unlocking +unlocks +unloose +unloosed +unlooses +unloosing +unloved +unluckier +unluckiest +unluckily +unlucky +unmade +unmake +unmakes +unmaking +unman +unmanageable +unmanlier +unmanliest +unmanly +unmanned +unmannerly +unmanning +unmans +unmarked +unmarried +unmask +unmasked +unmasking +unmasks +unmatched +unmemorable +unmentionable +unmentionable's +unmentionables +unmerciful +unmercifully +unmindful +unmistakable +unmistakably +unmitigated +unmodified +unmoral +unmoved +unnamed +unnatural +unnaturally +unnecessarily +unnecessary +unneeded +unnerve +unnerved +unnerves +unnerving +unnoticeable +unnoticed +unnumbered +unobjectionable +unobservant +unobserved +unobstructed +unobtainable +unobtrusive +unobtrusively +unoccupied +unoffensive +unofficial +unofficially +unopened +unopposed +unorganized +unoriginal +unorthodox +unpack +unpacked +unpacking +unpacks +unpaid +unpainted +unpalatable +unparalleled +unpardonable +unpatriotic +unpaved +unperturbed +unpick +unpin +unpinned +unpinning +unpins +unplanned +unpleasant +unpleasantly +unpleasantness +unpleasantness's +unplug +unplugged +unplugging +unplugs +unplumbed +unpolluted +unpopular +unpopularity +unpopularity's +unprecedented +unpredictability +unpredictability's +unpredictable +unprejudiced +unpremeditated +unprepared +unpretentious +unpreventable +unprincipled +unprintable +unprivileged +unproductive +unprofessional +unprofitable +unpromising +unprompted +unpronounceable +unprotected +unproved +unproven +unprovoked +unpublished +unpunished +unqualified +unquenchable +unquestionable +unquestionably +unquestioned +unquestioning +unquestioningly +unquote +unquoted +unquotes +unquoting +unravel +unraveled +unraveling +unravelled +unravelling +unravels +unreachable +unread +unreadable +unreadier +unreadiest +unready +unreal +unrealistic +unrealistically +unrealized +unreasonable +unreasonableness +unreasonableness's +unreasonably +unreasoning +unrecognizable +unrecognized +unreconstructed +unrecorded +unrefined +unregenerate +unregistered +unregulated +unrehearsed +unrelated +unreleased +unrelenting +unrelentingly +unreliability +unreliable +unrelieved +unremarkable +unremitting +unrepeatable +unrepentant +unrepresentative +unrequited +unreserved +unreservedly +unresolved +unresponsive +unrest +unrest's +unrestrained +unrestricted +unrewarding +unripe +unriper +unripest +unrivaled +unrivalled +unroll +unrolled +unrolling +unrolls +unromantic +unruffled +unrulier +unruliest +unruliness +unruliness's +unruly +unsaddle +unsaddled +unsaddles +unsaddling +unsafe +unsafer +unsafest +unsaid +unsalted +unsanctioned +unsanitary +unsatisfactory +unsatisfied +unsatisfying +unsaturated +unsavory +unsay +unsaying +unsays +unscathed +unscheduled +unschooled +unscientific +unscramble +unscrambled +unscrambles +unscrambling +unscrew +unscrewed +unscrewing +unscrews +unscrupulous +unscrupulously +unscrupulousness +unscrupulousness's +unseal +unsealed +unsealing +unseals +unseasonable +unseasonably +unseasoned +unseat +unseated +unseating +unseats +unseeing +unseemlier +unseemliest +unseemliness +unseemliness's +unseemly +unseen +unseen's +unselfish +unselfishly +unselfishness +unselfishness's +unsent +unsentimental +unset +unsettle +unsettled +unsettles +unsettling +unshakable +unshakeable +unshaven +unsheathe +unsheathed +unsheathes +unsheathing +unsightlier +unsightliest +unsightliness +unsightliness's +unsightly +unsigned +unskilled +unskillful +unsmiling +unsnap +unsnapped +unsnapping +unsnaps +unsnarl +unsnarled +unsnarling +unsnarls +unsociable +unsold +unsolicited +unsolved +unsophisticated +unsound +unsounder +unsoundest +unsparing +unspeakable +unspeakably +unspecific +unspecified +unspoiled +unspoilt +unspoken +unsportsmanlike +unstable +unstabler +unstablest +unstated +unsteadier +unsteadiest +unsteadily +unsteadiness +unsteadiness's +unsteady +unstop +unstoppable +unstopped +unstopping +unstops +unstressed +unstructured +unstrung +unstuck +unstudied +unsubscribe +unsubscribed +unsubscribes +unsubscribing +unsubstantial +unsubstantiated +unsubtle +unsuccessful +unsuccessfully +unsuitable +unsuitably +unsuited +unsung +unsupervised +unsupportable +unsupported +unsure +unsurpassed +unsurprising +unsuspected +unsuspecting +unsweetened +unswerving +unsympathetic +untainted +untamed +untangle +untangled +untangles +untangling +untapped +untaught +untenable +untested +unthinkable +unthinking +unthinkingly +untidier +untidiest +untidiness +untidiness's +untidy +untie +untied +unties +until +untimelier +untimeliest +untimeliness +untimeliness's +untimely +untiring +untiringly +untitled +unto +untold +untouchable +untouchable's +untouchables +untouched +untoward +untrained +untreated +untried +untroubled +untrue +untruer +untruest +untrustworthy +untruth +untruth's +untruthful +untruthfully +untruths +untutored +untwist +untwisted +untwisting +untwists +untying +unusable +unused +unusual +unusually +unutterable +unutterably +unvarnished +unvarying +unveil +unveiled +unveiling +unveils +unverified +unvoiced +unwanted +unwarier +unwariest +unwariness +unwariness's +unwarranted +unwary +unwashed +unwavering +unwed +unwelcome +unwell +unwholesome +unwieldier +unwieldiest +unwieldiness +unwieldiness's +unwieldy +unwilling +unwillingly +unwillingness +unwillingness's +unwind +unwinding +unwinds +unwise +unwisely +unwiser +unwisest +unwitting +unwittingly +unwonted +unworkable +unworldly +unworthier +unworthiest +unworthiness +unworthiness's +unworthy +unwound +unwrap +unwrapped +unwrapping +unwraps +unwritten +unyielding +unzip +unzipped +unzipping +unzips +up +upbeat +upbeat's +upbeats +upbraid +upbraided +upbraiding +upbraids +upbringing +upbringing's +upbringings +upchuck +upchucked +upchucking +upchucks +upcoming +upcountry +upcountry's +update +update's +updated +updater +updates +updating +updraft +updraft's +updrafts +upend +upended +upending +upends +upfront +upgrade +upgrade's +upgraded +upgrades +upgrading +upheaval +upheaval's +upheavals +upheld +uphill +uphill's +uphills +uphold +upholding +upholds +upholster +upholstered +upholsterer +upholsterer's +upholsterers +upholstering +upholsters +upholstery +upholstery's +upkeep +upkeep's +upland +upland's +uplands +uplift +uplift's +uplifted +uplifting +upliftings +uplifts +upload +upmarket +upon +upped +upper +upper's +uppercase +uppercase's +upperclassman +upperclassman's +upperclassmen +uppercut +uppercut's +uppercuts +uppercutting +uppermost +uppers +upping +uppity +upraise +upraised +upraises +upraising +upright +upright's +uprights +uprising +uprising's +uprisings +uproar +uproar's +uproarious +uproariously +uproars +uproot +uprooted +uprooting +uproots +ups +upscale +upset +upset's +upsets +upsetting +upshot +upshot's +upshots +upside +upside's +upsides +upstage +upstaged +upstages +upstaging +upstairs +upstanding +upstart +upstart's +upstarted +upstarting +upstarts +upstate +upstate's +upstream +upsurge +upsurge's +upsurged +upsurges +upsurging +upswing +upswing's +upswings +uptake +uptake's +uptakes +uptight +uptown +uptown's +upturn +upturn's +upturned +upturning +upturns +upward +upwardly +upwards +uranium +uranium's +urban +urbane +urbaner +urbanest +urbanity +urbanity's +urbanization +urbanization's +urbanize +urbanized +urbanizes +urbanizing +urchin +urchin's +urchins +urea +urea's +urethra +urethra's +urethrae +urethras +urge +urge's +urged +urgency +urgency's +urgent +urgently +urges +urging +uric +urinal +urinal's +urinals +urinalyses +urinalysis +urinalysis's +urinary +urinate +urinated +urinates +urinating +urination +urination's +urine +urine's +urn +urn's +urns +urologist +urologist's +urologists +urology +urology's +us +usable +usage +usage's +usages +use +use's +useable +used +useful +usefully +usefulness +usefulness's +useless +uselessly +uselessness +uselessness's +user +user's +users +uses +usher +usher's +ushered +usherette +usherette's +usherettes +ushering +ushers +using +usual +usual's +usually +usurer +usurer's +usurers +usurious +usurp +usurpation +usurpation's +usurped +usurper +usurper's +usurpers +usurping +usurps +usury +usury's +utensil +utensil's +utensils +uteri +uterine +uterus +uterus's +uteruses +utilitarian +utilitarian's +utilitarianism +utilitarians +utilities +utility +utility's +utilization +utilization's +utilize +utilized +utilizes +utilizing +utmost +utmost's +utopia +utopia's +utopian +utopian's +utopians +utopias +utter +utterance +utterance's +utterances +uttered +uttering +utterly +uttermost +uttermost's +utters +uvula +uvula's +uvulae +uvular +uvular's +uvulars +uvulas +v +vacancies +vacancy +vacancy's +vacant +vacantly +vacate +vacated +vacates +vacating +vacation +vacation's +vacationed +vacationer +vacationer's +vacationers +vacationing +vacations +vaccinate +vaccinated +vaccinates +vaccinating +vaccination +vaccination's +vaccinations +vaccine +vaccine's +vaccines +vacillate +vacillated +vacillates +vacillating +vacillation +vacillation's +vacillations +vacua +vacuity +vacuity's +vacuous +vacuously +vacuum +vacuum's +vacuumed +vacuuming +vacuums +vagabond +vagabond's +vagabonded +vagabonding +vagabonds +vagaries +vagary +vagary's +vagina +vagina's +vaginae +vaginal +vaginas +vagrancy +vagrancy's +vagrant +vagrant's +vagrants +vague +vaguely +vagueness +vagueness's +vaguer +vaguest +vain +vainer +vainest +vainglorious +vainglory +vainglory's +vainly +valance +valance's +valances +vale +vale's +valedictorian +valedictorian's +valedictorians +valedictories +valedictory +valedictory's +valence +valence's +valences +valentine +valentine's +valentines +vales +valet +valet's +valeted +valeting +valets +valiant +valiantly +valid +validate +validated +validates +validating +validation +validation's +validations +validity +validity's +validly +validness +validness's +valise +valise's +valises +valley +valley's +valleys +valor +valor's +valorous +valuable +valuable's +valuables +valuation +valuation's +valuations +value +value's +valued +valueless +values +valuing +valve +valve's +valved +valves +valving +vamoose +vamoosed +vamooses +vamoosing +vamp +vamp's +vamped +vamping +vampire +vampire's +vampires +vamps +van +van's +vanadium +vanadium's +vandal +vandal's +vandalism +vandalism's +vandalize +vandalized +vandalizes +vandalizing +vandals +vane +vane's +vanes +vanguard +vanguard's +vanguards +vanilla +vanilla's +vanillas +vanish +vanished +vanishes +vanishing +vanishings +vanities +vanity +vanity's +vanned +vanning +vanquish +vanquished +vanquishes +vanquishing +vans +vantage +vantage's +vantages +vapid +vapidity +vapidity's +vapidness +vapidness's +vapor +vapor's +vaporization +vaporization's +vaporize +vaporized +vaporizer +vaporizer's +vaporizers +vaporizes +vaporizing +vaporous +vapors +variability +variability's +variable +variable's +variables +variably +variance +variance's +variances +variant +variant's +variants +variate +variation +variation's +variations +varicolored +varicose +varied +variegate +variegated +variegates +variegating +varies +varieties +variety +variety's +various +variously +varlet +varlet's +varlets +varmint +varmint's +varmints +varnish +varnish's +varnished +varnishes +varnishing +varsities +varsity +varsity's +vary +varying +vascular +vase +vase's +vasectomies +vasectomy +vasectomy's +vases +vassal +vassal's +vassalage +vassalage's +vassals +vast +vast's +vaster +vastest +vastly +vastness +vastness's +vasts +vat +vat's +vats +vatted +vatting +vaudeville +vaudeville's +vault +vault's +vaulted +vaulter +vaulter's +vaulters +vaulting +vaulting's +vaults +vaunt +vaunt's +vaunted +vaunting +vaunts +veal +veal's +vector +vector's +vectored +vectoring +vectors +veep +veep's +veeps +veer +veer's +veered +veering +veers +vegan +vegan's +vegans +vegetable +vegetable's +vegetables +vegetarian +vegetarian's +vegetarianism +vegetarianism's +vegetarians +vegetate +vegetated +vegetates +vegetating +vegetation +vegetation's +vegetative +veggie +veggie's +veggies +vehemence +vehemence's +vehement +vehemently +vehicle +vehicle's +vehicles +vehicular +veil +veil's +veiled +veiling +veils +vein +vein's +veined +veining +veins +veld +veld's +velds +veldt +veldt's +veldts +vellum +vellum's +velocities +velocity +velocity's +velour +velour's +velours +velours's +velvet +velvet's +velveteen +velveteen's +velvetier +velvetiest +velvety +venal +venality +venality's +venally +vend +vended +vender +vender's +venders +vendetta +vendetta's +vendettas +vending +vendor +vendor's +vendors +vends +veneer +veneer's +veneered +veneering +veneers +venerable +venerate +venerated +venerates +venerating +veneration +veneration's +venereal +vengeance +vengeance's +vengeful +vengefully +venial +venison +venison's +venom +venom's +venomous +venomously +venous +vent +vent's +vented +ventilate +ventilated +ventilates +ventilating +ventilation +ventilation's +ventilator +ventilator's +ventilators +venting +ventral +ventricle +ventricle's +ventricles +ventricular +ventriloquism +ventriloquism's +ventriloquist +ventriloquist's +ventriloquists +vents +venture +venture's +ventured +ventures +venturesome +venturing +venturous +venue +venue's +venues +veracious +veracity +veracity's +veranda +veranda's +verandah +verandah's +verandahs +verandas +verb +verb's +verbal +verbal's +verbalize +verbalized +verbalizes +verbalizing +verbally +verbals +verbatim +verbena +verbena's +verbenas +verbiage +verbiage's +verbose +verbosity +verbosity's +verbs +verdant +verdict +verdict's +verdicts +verdigris +verdigris's +verdigrised +verdigrises +verdigrising +verdure +verdure's +verge +verge's +verged +verges +verging +verier +veriest +verifiable +verification +verification's +verified +verifies +verify +verifying +verily +verisimilitude +verisimilitude's +veritable +veritably +verities +verity +verity's +vermicelli +vermicelli's +vermilion +vermilion's +vermillion +vermillion's +vermin +vermin's +verminous +vermouth +vermouth's +vernacular +vernacular's +vernaculars +vernal +versatile +versatility +versatility's +verse +verse's +versed +verses +versification +versification's +versified +versifies +versify +versifying +versing +version +version's +versions +versus +vertebra +vertebra's +vertebrae +vertebral +vertebras +vertebrate +vertebrate's +vertebrates +vertex +vertex's +vertexes +vertical +vertical's +vertically +verticals +vertices +vertiginous +vertigo +vertigo's +verve +verve's +very +vesicle +vesicle's +vesicles +vesper +vesper's +vespers +vessel +vessel's +vessels +vest +vest's +vested +vestibule +vestibule's +vestibules +vestige +vestige's +vestiges +vestigial +vesting +vestment +vestment's +vestments +vestries +vestry +vestry's +vests +vet +vet's +vetch +vetch's +vetches +veteran +veteran's +veterans +veterinarian +veterinarian's +veterinarians +veterinaries +veterinary +veterinary's +veto +veto's +vetoed +vetoes +vetoing +vets +vetted +vetting +vex +vexation +vexation's +vexations +vexatious +vexed +vexes +vexing +via +viability +viability's +viable +viaduct +viaduct's +viaducts +vial +vial's +vials +viand +viand's +viands +vibe +vibe's +vibes +vibes's +vibrancy +vibrancy's +vibrant +vibrantly +vibraphone +vibraphone's +vibraphones +vibrate +vibrated +vibrates +vibrating +vibration +vibration's +vibrations +vibrato +vibrato's +vibrator +vibrator's +vibrators +vibratos +viburnum +viburnum's +viburnums +vicar +vicar's +vicarage +vicarage's +vicarages +vicarious +vicariously +vicars +vice +vice's +viced +viceroy +viceroy's +viceroys +vices +vichyssoise +vichyssoise's +vicing +vicinity +vicinity's +vicious +viciously +viciousness +viciousness's +vicissitude +vicissitude's +vicissitudes +victim +victim's +victimization +victimization's +victimize +victimized +victimizes +victimizing +victims +victor +victor's +victories +victorious +victoriously +victors +victory +victory's +victual +victual's +victualed +victualing +victualled +victualling +victuals +vicuña +vicuña's +vicuñas +video +video's +videocassette +videocassette's +videocassettes +videodisc +videodisc's +videodiscs +videos +videotape +videotape's +videotaped +videotapes +videotaping +vie +vied +vies +view +view's +viewed +viewer +viewer's +viewers +viewfinder +viewfinder's +viewfinders +viewing +viewing's +viewings +viewpoint +viewpoint's +viewpoints +views +vigil +vigil's +vigilance +vigilance's +vigilant +vigilante +vigilante's +vigilantes +vigilantism +vigilantism's +vigilantly +vigils +vignette +vignette's +vignetted +vignettes +vignetting +vigor +vigor's +vigorous +vigorously +vile +vilely +vileness +vileness's +viler +vilest +vilification +vilification's +vilified +vilifies +vilify +vilifying +villa +villa's +village +village's +villager +villager's +villagers +villages +villain +villain's +villainies +villainous +villains +villainy +villainy's +villas +villein +villein's +villeins +vim +vim's +vinaigrette +vinaigrette's +vindicate +vindicated +vindicates +vindicating +vindication +vindication's +vindications +vindicator +vindicator's +vindicators +vindictive +vindictively +vindictiveness +vindictiveness's +vine +vine's +vinegar +vinegar's +vinegary +vines +vineyard +vineyard's +vineyards +vintage +vintage's +vintages +vintner +vintner's +vintners +vinyl +vinyl's +vinyls +viol +viol's +viola +viola's +violable +violas +violate +violated +violates +violating +violation +violation's +violations +violator +violator's +violators +violence +violence's +violent +violently +violet +violet's +violets +violin +violin's +violinist +violinist's +violinists +violins +violist +violist's +violists +violoncello +violoncello's +violoncellos +viols +viper +viper's +vipers +virago +virago's +viragoes +viragos +viral +vireo +vireo's +vireos +virgin +virgin's +virginal +virginal's +virginals +virginity +virginity's +virgins +virgule +virgule's +virgules +virile +virility +virility's +virology +virology's +virtual +virtually +virtue +virtue's +virtues +virtuosi +virtuosity +virtuosity's +virtuoso +virtuoso's +virtuosos +virtuous +virtuously +virtuousness +virtuousness's +virulence +virulence's +virulent +virulently +virus +virus's +viruses +visa +visa's +visaed +visage +visage's +visages +visaing +visas +viscera +visceral +viscid +viscosity +viscosity's +viscount +viscount's +viscountess +viscountess's +viscountesses +viscounts +viscous +viscus +viscus's +vise +vise's +vised +vises +visibility +visibility's +visible +visibly +vising +vision +vision's +visionaries +visionary +visionary's +visioned +visioning +visions +visit +visit's +visitation +visitation's +visitations +visited +visiting +visitor +visitor's +visitors +visits +visor +visor's +visors +vista +vista's +vistas +visual +visual's +visualization +visualization's +visualize +visualized +visualizes +visualizing +visually +visuals +vital +vitality +vitality's +vitalize +vitalized +vitalizes +vitalizing +vitally +vitals +vitals's +vitamin +vitamin's +vitamins +vitiate +vitiated +vitiates +vitiating +vitiation +vitiation's +viticulture +viticulture's +vitreous +vitriol +vitriol's +vitriolic +vituperate +vituperated +vituperates +vituperating +vituperation +vituperation's +vituperative +viva +viva's +vivace +vivacious +vivaciously +vivaciousness +vivaciousness's +vivacity +vivacity's +vivas +vivid +vivider +vividest +vividly +vividness +vividness's +vivified +vivifies +vivify +vivifying +viviparous +vivisection +vivisection's +vixen +vixen's +vixenish +vixens +vizier +vizier's +viziers +vizor +vizor's +vizors +vocabularies +vocabulary +vocabulary's +vocal +vocal's +vocalic +vocalist +vocalist's +vocalists +vocalization +vocalization's +vocalizations +vocalize +vocalized +vocalizes +vocalizing +vocally +vocals +vocation +vocation's +vocational +vocations +vocative +vocative's +vocatives +vociferate +vociferated +vociferates +vociferating +vociferation +vociferation's +vociferous +vociferously +vodka +vodka's +vogue +vogue's +vogues +voguish +voice +voice's +voiced +voiceless +voices +voicing +void +void's +voided +voiding +voids +voile +voile's +volatile +volatility +volatility's +volcanic +volcano +volcano's +volcanoes +volcanos +vole +vole's +voles +volition +volition's +volley +volley's +volleyball +volleyball's +volleyballs +volleyed +volleying +volleys +volt +volt's +voltage +voltage's +voltages +voltaic +voltmeter +voltmeter's +voltmeters +volts +volubility +volubility's +voluble +volubly +volume +volume's +volumes +voluminous +voluminously +voluntaries +voluntarily +voluntary +voluntary's +volunteer +volunteer's +volunteered +volunteering +volunteers +voluptuaries +voluptuary +voluptuary's +voluptuous +voluptuously +voluptuousness +voluptuousness's +vomit +vomit's +vomited +vomiting +vomits +voodoo +voodoo's +voodooed +voodooing +voodooism +voodooism's +voodoos +voracious +voraciously +voracity +voracity's +vortex +vortex's +vortexes +vortices +votaries +votary +votary's +vote +vote's +voted +voter +voter's +voters +votes +voting +votive +vouch +vouched +voucher +voucher's +vouchers +vouches +vouching +vouchsafe +vouchsafed +vouchsafes +vouchsafing +vow +vow's +vowed +vowel +vowel's +vowels +vowing +vows +voyage +voyage's +voyaged +voyager +voyager's +voyagers +voyages +voyaging +voyeur +voyeur's +voyeurism +voyeurism's +voyeuristic +voyeurs +vs +vulcanization +vulcanization's +vulcanize +vulcanized +vulcanizes +vulcanizing +vulgar +vulgarer +vulgarest +vulgarism +vulgarism's +vulgarisms +vulgarities +vulgarity +vulgarity's +vulgarization +vulgarization's +vulgarize +vulgarized +vulgarizes +vulgarizing +vulgarly +vulnerabilities +vulnerability +vulnerability's +vulnerable +vulnerably +vulture +vulture's +vultures +vulva +vulva's +vulvae +vulvas +vying +w +wackier +wackiest +wackiness +wackiness's +wacko +wacko's +wackos +wacky +wad +wad's +wadded +wadding +wadding's +waddle +waddle's +waddled +waddles +waddling +wade +wade's +waded +wader +wader's +waders +wades +wadi +wadi's +wading +wadis +wads +wafer +wafer's +wafers +waffle +waffle's +waffled +waffles +waffling +waft +waft's +wafted +wafting +wafts +wag +wag's +wage +wage's +waged +wager +wager's +wagered +wagering +wagers +wages +wagged +wagging +waggish +waggle +waggle's +waggled +waggles +waggling +waging +wagon +wagon's +wagoner +wagoner's +wagoners +wagons +wags +waif +waif's +waifs +wail +wail's +wailed +wailing +wails +wainscot +wainscot's +wainscoted +wainscoting +wainscoting's +wainscotings +wainscots +wainscotted +wainscotting +wainscotting's +wainscottings +waist +waist's +waistband +waistband's +waistbands +waistcoat +waistcoat's +waistcoats +waistline +waistline's +waistlines +waists +wait +wait's +waited +waiter +waiter's +waiters +waiting +waitress +waitress's +waitresses +waits +waive +waived +waiver +waiver's +waivers +waives +waiving +wake +wake's +waked +wakeful +wakefulness +wakefulness's +waken +wakened +wakening +wakens +wakes +waking +wale +wale's +waled +wales +waling +walk +walk's +walked +walker +walker's +walkers +walking +walkout +walkout's +walkouts +walks +walkway +walkway's +walkways +wall +wall's +wallabies +wallaby +wallaby's +wallboard +wallboard's +walled +wallet +wallet's +wallets +walleye +walleye's +walleyed +walleyes +wallflower +wallflower's +wallflowers +walling +wallop +wallop's +walloped +walloping +walloping's +wallopings +wallops +wallow +wallow's +wallowed +wallowing +wallows +wallpaper +wallpaper's +wallpapered +wallpapering +wallpapers +walls +walnut +walnut's +walnuts +walrus +walrus's +walruses +waltz +waltz's +waltzed +waltzes +waltzing +wampum +wampum's +wan +wand +wand's +wander +wandered +wanderer +wanderer's +wanderers +wandering +wanderlust +wanderlust's +wanderlusts +wanders +wands +wane +wane's +waned +wanes +wangle +wangle's +wangled +wangles +wangling +waning +wanly +wanna +wannabe +wannabe's +wannabes +wanner +wannest +want +want's +wanted +wanting +wanton +wanton's +wantoned +wantoning +wantonly +wantonness +wantonness's +wantons +wants +wapiti +wapiti's +wapitis +war +war's +warble +warble's +warbled +warbler +warbler's +warblers +warbles +warbling +ward +ward's +warded +warden +warden's +wardens +warder +warder's +warders +warding +wardrobe +wardrobe's +wardrobes +wardroom +wardroom's +wardrooms +wards +ware +ware's +warehouse +warehouse's +warehoused +warehouses +warehousing +wares +warfare +warfare's +warhead +warhead's +warheads +warhorse +warhorse's +warhorses +warier +wariest +warily +wariness +wariness's +warlike +warlock +warlock's +warlocks +warlord +warlord's +warlords +warm +warmed +warmer +warmer's +warmers +warmest +warmhearted +warming +warmly +warmonger +warmonger's +warmongering +warmongering's +warmongers +warms +warmth +warmth's +warn +warned +warning +warning's +warnings +warns +warp +warp's +warpath +warpath's +warpaths +warped +warping +warps +warrant +warrant's +warranted +warrantied +warranties +warranting +warrants +warranty +warranty's +warrantying +warred +warren +warren's +warrens +warring +warrior +warrior's +warriors +wars +warship +warship's +warships +wart +wart's +warthog +warthog's +warthogs +wartier +wartiest +wartime +wartime's +warts +warty +wary +was +wash +wash's +washable +washable's +washables +washbasin +washbasin's +washbasins +washboard +washboard's +washboards +washbowl +washbowl's +washbowls +washcloth +washcloth's +washcloths +washed +washer +washer's +washers +washerwoman +washerwoman's +washerwomen +washes +washing +washing's +washout +washout's +washouts +washroom +washroom's +washrooms +washstand +washstand's +washstands +washtub +washtub's +washtubs +wasn't +wasp +wasp's +waspish +wasps +wassail +wassail's +wassailed +wassailing +wassails +wastage +wastage's +waste +waste's +wastebasket +wastebasket's +wastebaskets +wasted +wasteful +wastefully +wastefulness +wastefulness's +wasteland +wasteland's +wastelands +wastepaper +wastepaper's +waster +waster's +wasters +wastes +wasting +wastrel +wastrel's +wastrels +watch +watch's +watchband +watchband's +watchbands +watchdog +watchdog's +watchdogs +watched +watcher +watcher's +watchers +watches +watchful +watchfully +watchfulness +watchfulness's +watching +watchmaker +watchmaker's +watchmakers +watchman +watchman's +watchmen +watchtower +watchtower's +watchtowers +watchword +watchword's +watchwords +water +water's +waterbed +waterbed's +waterbeds +watercolor +watercolor's +watercolors +watercourse +watercourse's +watercourses +watercraft +watercraft's +watercress +watercress's +watered +waterfall +waterfall's +waterfalls +waterfowl +waterfowl's +waterfowls +waterfront +waterfront's +waterfronts +waterier +wateriest +watering +waterline +waterline's +waterlines +waterlogged +watermark +watermark's +watermarked +watermarking +watermarks +watermelon +watermelon's +watermelons +waterpower +waterpower's +waterproof +waterproof's +waterproofed +waterproofing +waterproofing's +waterproofs +waters +waters's +watershed +watershed's +watersheds +waterside +waterside's +watersides +waterspout +waterspout's +waterspouts +watertight +waterway +waterway's +waterways +waterworks +waterworks's +watery +watt +watt's +wattage +wattage's +wattle +wattle's +wattled +wattles +wattling +watts +wave +wave's +waved +waveform +wavelength +wavelength's +wavelengths +wavelet +wavelet's +wavelets +waver +waver's +wavered +wavering +wavers +waves +wavier +waviest +waviness +waviness's +waving +wavy +wax +wax's +waxed +waxen +waxes +waxier +waxiest +waxiness +waxiness's +waxing +waxwing +waxwing's +waxwings +waxwork +waxwork's +waxworks +waxy +way +way's +wayfarer +wayfarer's +wayfarers +wayfaring +wayfaring's +wayfarings +waylaid +waylay +waylaying +waylays +ways +wayside +wayside's +waysides +wayward +waywardly +waywardness +waywardness's +we +we'd +we'll +we're +we've +weak +weaken +weakened +weakening +weakens +weaker +weakest +weakfish +weakfish's +weakfishes +weakling +weakling's +weaklings +weakly +weakness +weakness's +weaknesses +weal +weal's +weals +wealth +wealth's +wealthier +wealthiest +wealthiness +wealthiness's +wealthy +wean +weaned +weaning +weans +weapon +weapon's +weaponless +weaponry +weaponry's +weapons +wear +wear's +wearable +wearer +wearer's +wearers +wearied +wearier +wearies +weariest +wearily +weariness +weariness's +wearing +wearisome +wears +weary +wearying +weasel +weasel's +weaseled +weaseling +weasels +weather +weather's +weathercock +weathercock's +weathercocks +weathered +weathering +weathering's +weatherize +weatherized +weatherizes +weatherizing +weatherman +weatherman's +weathermen +weatherproof +weatherproofed +weatherproofing +weatherproofs +weathers +weave +weave's +weaved +weaver +weaver's +weavers +weaves +weaving +web +web's +webbed +webbing +webbing's +webmaster +webmaster's +webmasters +webmistress +webmistress's +webmistresses +webs +website +website's +websites +wed +wedded +wedder +wedding +wedding's +weddings +wedge +wedge's +wedged +wedges +wedging +wedlock +wedlock's +weds +wee +wee's +weed +weed's +weeded +weeder +weeder's +weeders +weedier +weediest +weeding +weeds +weedy +weeing +week +week's +weekday +weekday's +weekdays +weekend +weekend's +weekended +weekending +weekends +weeklies +weekly +weekly's +weeknight +weeknight's +weeknights +weeks +weep +weep's +weeper +weeper's +weepers +weepier +weepies +weepiest +weeping +weepings +weeps +weepy +weepy's +weer +wees +weest +weevil +weevil's +weevils +weft +weft's +wefts +weigh +weigh's +weighed +weighing +weighs +weight +weight's +weighted +weightier +weightiest +weightiness +weightiness's +weighting +weightless +weightlessness +weightlessness's +weightlifter +weightlifter's +weightlifters +weightlifting +weightlifting's +weights +weighty +weir +weir's +weird +weirder +weirdest +weirdly +weirdness +weirdness's +weirdo +weirdo's +weirdos +weirs +welch +welched +welches +welching +welcome +welcome's +welcomed +welcomes +welcoming +weld +weld's +welded +welder +welder's +welders +welding +welds +welfare +welfare's +welkin +welkin's +well +well's +welled +welling +wellington +wells +wellspring +wellspring's +wellsprings +welsh +welshed +welshes +welshing +welt +welt's +welted +welter +welter's +weltered +weltering +welters +welterweight +welterweight's +welterweights +welting +welts +wen +wen's +wench +wench's +wenches +wend +wended +wending +wends +wens +went +wept +were +weren't +werewolf +werewolf's +werewolves +west +west's +westbound +westerlies +westerly +westerly's +western +western's +westerner +westerner's +westerners +westernize +westernized +westernizes +westernizing +westernmost +westerns +westward +westwards +wet +wet's +wetback +wetback's +wetbacks +wetland +wetland's +wetlands +wetly +wetness +wetness's +wets +wetted +wetter +wettest +wetting +whack +whack's +whacked +whackier +whackiest +whacking +whacks +whacky +whale +whale's +whalebone +whalebone's +whaled +whaler +whaler's +whalers +whales +whaling +whaling's +wham +wham's +whammed +whammies +whamming +whammy +whammy's +whams +wharf +wharf's +wharfs +wharves +what +what's +whatchamacallit +whatchamacallit's +whatchamacallits +whatever +whatnot +whatnot's +whats +whatsoever +wheal +wheal's +wheals +wheat +wheat's +wheaten +wheedle +wheedled +wheedles +wheedling +wheel +wheel's +wheelbarrow +wheelbarrow's +wheelbarrows +wheelbase +wheelbase's +wheelbases +wheelchair +wheelchair's +wheelchairs +wheeled +wheeler +wheeling +wheels +wheelwright +wheelwright's +wheelwrights +wheeze +wheeze's +wheezed +wheezes +wheezier +wheeziest +wheezing +wheezy +whelk +whelk's +whelked +whelks +whelp +whelp's +whelped +whelping +whelps +when +when's +whence +whenever +whens +where +where's +whereabouts +whereabouts's +whereas +whereat +whereby +wherefore +wherefore's +wherefores +wherein +whereof +whereon +wheres +wheresoever +whereupon +wherever +wherewithal +wherewithal's +whet +whether +whets +whetstone +whetstone's +whetstones +whetted +whetting +whew +whey +whey's +which +whichever +whiff +whiff's +whiffed +whiffing +whiffs +while +while's +whiled +whiles +whiling +whilst +whim +whim's +whimper +whimper's +whimpered +whimpering +whimpers +whims +whimsey +whimsey's +whimseys +whimsical +whimsicality +whimsicality's +whimsically +whimsies +whimsy +whimsy's +whine +whine's +whined +whiner +whiner's +whiners +whines +whinier +whiniest +whining +whinnied +whinnies +whinny +whinny's +whinnying +whiny +whip +whip's +whipcord +whipcord's +whiplash +whiplash's +whiplashes +whipped +whippersnapper +whippersnapper's +whippersnappers +whippet +whippet's +whippets +whipping +whipping's +whippings +whippoorwill +whippoorwill's +whippoorwills +whips +whir +whir's +whirl +whirl's +whirled +whirligig +whirligig's +whirligigs +whirling +whirlpool +whirlpool's +whirlpools +whirls +whirlwind +whirlwind's +whirlwinds +whirr +whirr's +whirred +whirring +whirrs +whirs +whisk +whisk's +whisked +whisker +whisker's +whiskered +whiskers +whiskey +whiskey's +whiskeys +whiskies +whisking +whisks +whisky +whisky's +whiskys +whisper +whisper's +whispered +whispering +whispers +whist +whist's +whistle +whistle's +whistled +whistler +whistler's +whistlers +whistles +whistling +whit +whit's +white +white's +whitecap +whitecap's +whitecaps +whitefish +whitefish's +whitefishes +whiten +whitened +whitener +whitener's +whiteners +whiteness +whiteness's +whitening +whitens +whiter +whites +whitest +whitewall +whitewall's +whitewalls +whitewash +whitewash's +whitewashed +whitewashes +whitewashing +whither +whiting +whiting's +whitings +whitish +whits +whittle +whittled +whittler +whittler's +whittlers +whittles +whittling +whiz +whiz's +whizz +whizz's +whizzed +whizzes +whizzing +who +who'd +who'll +who're +who's +who've +whoa +whodunit +whodunit's +whodunits +whodunnit +whodunnit's +whodunnits +whodunnits's +whoever +whole +whole's +wholehearted +wholeheartedly +wholeness +wholeness's +wholes +wholesale +wholesale's +wholesaled +wholesaler +wholesaler's +wholesalers +wholesales +wholesaling +wholesome +wholesomeness +wholesomeness's +wholly +whom +whomever +whomsoever +whoop +whoop's +whooped +whoopee +whoopees +whooping +whoops +whoosh +whoosh's +whooshed +whooshes +whooshing +whopper +whopper's +whoppers +whopping +whore +whore's +whorehouse +whorehouse's +whorehouses +whores +whorl +whorl's +whorled +whorls +whose +whosoever +why +why's +whys +wick +wick's +wicked +wickeder +wickedest +wickedly +wickedness +wickedness's +wicker +wicker's +wickers +wickerwork +wickerwork's +wicket +wicket's +wickets +wicks +wide +widely +widen +widened +wideness +wideness's +widening +widens +wider +widespread +widest +widgeon +widgeon's +widgeons +widow +widow's +widowed +widower +widower's +widowers +widowhood +widowhood's +widowing +widows +width +width's +widths +wield +wielded +wielding +wields +wiener +wiener's +wieners +wife +wife's +wifelier +wifeliest +wifely +wig +wig's +wigeon +wigeon's +wigeons +wigged +wigging +wiggle +wiggle's +wiggled +wiggler +wiggler's +wigglers +wiggles +wigglier +wiggliest +wiggling +wiggly +wight +wight's +wights +wigs +wigwag +wigwag's +wigwagged +wigwagging +wigwags +wigwam +wigwam's +wigwams +wiki +wiki's +wikis +wild +wild's +wildcat +wildcat's +wildcats +wildcatted +wildcatting +wildebeest +wildebeest's +wildebeests +wilder +wilderness +wilderness's +wildernesses +wildest +wildfire +wildfire's +wildfires +wildflower +wildflower's +wildflowers +wildfowl +wildfowl's +wildfowls +wildlife +wildlife's +wildly +wildness +wildness's +wilds +wile +wile's +wiled +wiles +wilful +wilfully +wilfulness +wilfulness's +wilier +wiliest +wiliness +wiliness's +wiling +will +will's +willed +willful +willfully +willfulness +willfulness's +willies +willies's +willing +willingly +willingness +willingness's +willow +willow's +willowier +willowiest +willows +willowy +willpower +willpower's +wills +wilt +wilt's +wilted +wilting +wilts +wily +wimp +wimp's +wimpier +wimpiest +wimple +wimple's +wimpled +wimples +wimpling +wimps +wimpy +win +win's +wince +wince's +winced +winces +winch +winch's +winched +winches +winching +wincing +wind +wind's +windbag +windbag's +windbags +windbreak +windbreak's +windbreaker +windbreaker's +windbreakers +windbreaks +windburn +windburn's +winded +windfall +windfall's +windfalls +windier +windiest +windiness +windiness's +winding +winding's +windjammer +windjammer's +windjammers +windlass +windlass's +windlasses +windmill +windmill's +windmilled +windmilling +windmills +window +window's +windowed +windowing +windowpane +windowpane's +windowpanes +windows +windowsill +windowsill's +windowsills +windpipe +windpipe's +windpipes +winds +windscreen +windscreen's +windscreens +windshield +windshield's +windshields +windsock +windsock's +windsocks +windstorm +windstorm's +windstorms +windsurf +windsurfed +windsurfing +windsurfing's +windsurfs +windswept +windup +windup's +windups +windward +windward's +windy +wine +wine's +wined +wineglass +wineglass's +wineglasses +wineries +winery +winery's +wines +wing +wing's +winged +winger +wingers +winging +wingless +wings +wingspan +wingspan's +wingspans +wingspread +wingspread's +wingspreads +wingtip +wingtip's +wingtips +wining +wink +wink's +winked +winking +winks +winner +winner's +winners +winning +winning's +winnings +winnow +winnowed +winnowing +winnows +wino +wino's +winos +wins +winsome +winsomely +winsomer +winsomest +winter +winter's +wintered +wintergreen +wintergreen's +winterier +winteriest +wintering +winterize +winterized +winterizes +winterizing +winters +wintertime +wintertime's +wintery +wintrier +wintriest +wintry +wipe +wipe's +wiped +wiper +wiper's +wipers +wipes +wiping +wire +wire's +wired +wireless +wireless's +wirelesses +wires +wiretap +wiretap's +wiretapped +wiretapping +wiretaps +wirier +wiriest +wiriness +wiriness's +wiring +wiring's +wiry +wisdom +wisdom's +wise +wise's +wiseacre +wiseacre's +wiseacres +wisecrack +wisecrack's +wisecracked +wisecracking +wisecracks +wisely +wiser +wises +wisest +wish +wish's +wishbone +wishbone's +wishbones +wished +wisher +wisher's +wishers +wishes +wishful +wishfully +wishing +wisp +wisp's +wispier +wispiest +wisps +wispy +wist +wistaria +wistaria's +wistarias +wisteria +wisteria's +wisterias +wistful +wistfully +wistfulness +wistfulness's +wit +wit's +witch +witch's +witchcraft +witchcraft's +witched +witchery +witchery's +witches +witching +with +withal +withdraw +withdrawal +withdrawal's +withdrawals +withdrawing +withdrawn +withdraws +withdrew +wither +withered +withering +withers +withers's +withheld +withhold +withholding +withholding's +withholds +within +within's +without +withstand +withstanding +withstands +withstood +witless +witlessly +witness +witness's +witnessed +witnesses +witnessing +wits +wits's +witticism +witticism's +witticisms +wittier +wittiest +wittily +wittiness +wittiness's +witting +wittingly +witty +wive +wives +wiz +wiz's +wizard +wizard's +wizardry +wizardry's +wizards +wizened +wizes +wizzes +wobble +wobble's +wobbled +wobbles +wobblier +wobbliest +wobbling +wobbly +woe +woe's +woebegone +woeful +woefuller +woefullest +woefully +woes +wok +wok's +woke +woken +woks +wolf +wolf's +wolfed +wolfhound +wolfhound's +wolfhounds +wolfing +wolfish +wolfram +wolfram's +wolfs +wolverine +wolverine's +wolverines +wolves +woman +woman's +womanhood +womanhood's +womanish +womanize +womanized +womanizer +womanizer's +womanizers +womanizes +womanizing +womankind +womankind's +womanlier +womanliest +womanlike +womanlike's +womanliness +womanliness's +womanly +womb +womb's +wombat +wombat's +wombats +wombs +women +womenfolk +womenfolk's +womenfolks +womenfolks's +won +won's +won't +wonder +wonder's +wondered +wonderful +wonderfully +wondering +wonderland +wonderland's +wonderlands +wonderment +wonderment's +wonders +wondrous +wondrously +wont +wont's +wonted +woo +wood +wood's +woodbine +woodbine's +woodcarving +woodcarving's +woodcarvings +woodchuck +woodchuck's +woodchucks +woodcock +woodcock's +woodcocks +woodcraft +woodcraft's +woodcut +woodcut's +woodcuts +woodcutter +woodcutter's +woodcutters +woodcutting +woodcutting's +wooded +wooden +woodener +woodenest +woodenly +woodenness +woodenness's +woodier +woodies +woodiest +woodiness +woodiness's +wooding +woodland +woodland's +woodlands +woodman +woodman's +woodmen +woodpecker +woodpecker's +woodpeckers +woodpile +woodpile's +woodpiles +woods +woods's +woodshed +woodshed's +woodsheds +woodsier +woodsiest +woodsman +woodsman's +woodsmen +woodsy +woodwind +woodwind's +woodwinds +woodwork +woodwork's +woodworking +woodworking's +woodworm +woody +woody's +wooed +wooer +wooer's +wooers +woof +woof's +woofed +woofer +woofer's +woofers +woofing +woofs +wooing +wool +wool's +woolen +woolen's +woolens +woolgathering +woolgathering's +woolie +woolie's +woolier +woolies +wooliest +woollier +woollies +woolliest +woolliness +woolliness's +woolly +woolly's +wooly +wooly's +woos +woozier +wooziest +wooziness +wooziness's +woozy +word +word's +worded +wordier +wordiest +wordiness +wordiness's +wording +wording's +wordings +wordplay +wordplay's +words +wordy +wore +work +work's +workable +workaday +workaholic +workaholic's +workaholics +workbench +workbench's +workbenches +workbook +workbook's +workbooks +workday +workday's +workdays +worked +worker +worker's +workers +workfare +workfare's +workforce +workforce's +workhorse +workhorse's +workhorses +workhouse +workhouse's +workhouses +working +working's +workingman +workingman's +workingmen +workings +workings's +workload +workload's +workloads +workman +workman's +workmanlike +workmanship +workmanship's +workmen +workout +workout's +workouts +workplace +workplace's +workplaces +works +works's +worksheet +worksheet's +worksheets +workshop +workshop's +workshops +workstation +workstation's +workstations +workweek +workweek's +workweeks +world +world's +worldlier +worldliest +worldliness +worldliness's +worldly +worlds +worldwide +worm +worm's +wormed +wormhole +wormhole's +wormholes +wormier +wormiest +worming +worms +wormwood +wormwood's +wormy +worn +worried +worrier +worrier's +worriers +worries +worrisome +worry +worry's +worrying +worryings +worrywart +worrywart's +worrywarts +worse +worse's +worsen +worsened +worsening +worsens +worship +worship's +worshiped +worshiper +worshiper's +worshipers +worshipful +worshiping +worshipped +worshipper +worshipper's +worshippers +worshipping +worships +worst +worst's +worsted +worsted's +worsting +worsts +worth +worth's +worthier +worthies +worthiest +worthily +worthiness +worthiness's +worthless +worthlessness +worthlessness's +worthwhile +worthy +worthy's +wot +would +would've +wouldn't +woulds +wound +wound's +wounded +wounder +wounding +wounds +wove +woven +wow +wow's +wowed +wowing +wows +wrack +wrack's +wraith +wraith's +wraiths +wrangle +wrangle's +wrangled +wrangler +wrangler's +wranglers +wrangles +wrangling +wrap +wrap's +wraparound +wraparound's +wraparounds +wrapped +wrapper +wrapper's +wrappers +wrapping +wrapping's +wrappings +wraps +wrapt +wrath +wrath's +wrathful +wrathfully +wreak +wreaked +wreaking +wreaks +wreath +wreath's +wreathe +wreathed +wreathes +wreathing +wreaths +wreck +wreck's +wreckage +wreckage's +wrecked +wrecker +wrecker's +wreckers +wrecking +wrecks +wren +wren's +wrench +wrench's +wrenched +wrenches +wrenching +wrens +wrest +wrest's +wrested +wresting +wrestle +wrestle's +wrestled +wrestler +wrestler's +wrestlers +wrestles +wrestling +wrestling's +wrests +wretch +wretch's +wretched +wretcheder +wretchedest +wretchedly +wretchedness +wretchedness's +wretches +wrier +wriest +wriggle +wriggle's +wriggled +wriggler +wriggler's +wrigglers +wriggles +wrigglier +wriggliest +wriggling +wriggly +wright +wring +wring's +wringer +wringer's +wringers +wringing +wrings +wrinkle +wrinkle's +wrinkled +wrinkles +wrinklier +wrinklies +wrinkliest +wrinkling +wrinkly +wrinkly's +wrist +wrist's +wristband +wristband's +wristbands +wrists +wristwatch +wristwatch's +wristwatches +writ +writ's +writable +write +writer +writer's +writers +writes +writhe +writhe's +writhed +writhes +writhing +writing +writing's +writings +writs +written +wrong +wrong's +wrongdoer +wrongdoer's +wrongdoers +wrongdoing +wrongdoing's +wrongdoings +wronged +wronger +wrongest +wrongful +wrongfully +wrongfulness +wrongfulness's +wrongheaded +wrongheadedly +wrongheadedness +wrongheadedness's +wronging +wrongly +wrongness +wrongness's +wrongs +wrote +wroth +wrought +wrung +wry +wryer +wryest +wryly +wryness +wryness's +wuss +wuss's +wusses +x +xenon +xenon's +xenophobia +xenophobia's +xenophobic +xerographic +xerography +xerography's +xylem +xylem's +xylophone +xylophone's +xylophones +xylophonist +xylophonist's +xylophonists +y +y'all +yacht +yacht's +yachted +yachting +yachting's +yachts +yachtsman +yachtsman's +yachtsmen +yack +yack's +yacked +yacking +yacks +yahoo +yahoo's +yahoos +yak +yak's +yakked +yakking +yaks +yam +yam's +yammer +yammer's +yammered +yammering +yammers +yams +yank +yank's +yanked +yanking +yanks +yap +yap's +yapped +yapping +yaps +yard +yard's +yardage +yardage's +yardages +yardarm +yardarm's +yardarms +yards +yardstick +yardstick's +yardsticks +yarmulke +yarmulke's +yarmulkes +yarn +yarn's +yarns +yaw +yaw's +yawed +yawing +yawl +yawl's +yawls +yawn +yawn's +yawned +yawning +yawns +yaws +yaws's +ye +yea +yea's +yeah +yeah's +yeahs +year +year's +yearbook +yearbook's +yearbooks +yearlies +yearling +yearling's +yearlings +yearly +yearly's +yearn +yearned +yearning +yearning's +yearnings +yearns +years +yeas +yeast +yeast's +yeastier +yeastiest +yeasts +yeasty +yell +yell's +yelled +yelling +yellow +yellow's +yellowed +yellower +yellowest +yellowing +yellowish +yellows +yells +yelp +yelp's +yelped +yelping +yelps +yen +yen's +yens +yeoman +yeoman's +yeomen +yep +yep's +yeps +yes +yes's +yeses +yeshiva +yeshiva's +yeshivah +yeshivah's +yeshivahs +yeshivas +yeshivot +yeshivoth +yessed +yessing +yest +yesterday +yesterday's +yesterdays +yesteryear +yesteryear's +yet +yeti +yew +yew's +yews +yield +yield's +yielded +yielding +yieldings +yields +yip +yip's +yipped +yippee +yipping +yips +yo +yock +yock's +yocks +yodel +yodel's +yodeled +yodeler +yodeler's +yodelers +yodeling +yodelled +yodeller +yodeller's +yodellers +yodelling +yodels +yoga +yoga's +yoghourt +yoghourt's +yoghourts +yoghurt +yoghurt's +yoghurts +yogi +yogi's +yogin +yogin's +yogins +yogis +yogurt +yogurt's +yogurts +yoke +yoke's +yoked +yokel +yokel's +yokels +yokes +yoking +yolk +yolk's +yolks +yon +yonder +yore +yore's +you +you'd +you'll +you're +you's +you've +young +young's +younger +youngest +youngish +youngster +youngster's +youngsters +your +yours +yourself +yourselves +yous +youth +youth's +youthful +youthfully +youthfulness +youthfulness's +youths +yowl +yowl's +yowled +yowling +yowls +yttrium +yttrium's +yucca +yucca's +yuccas +yuck +yuck's +yucked +yuckier +yuckiest +yucking +yucks +yucky +yuk +yuk's +yukked +yukking +yuks +yule +yule's +yuletide +yuletide's +yum +yummier +yummiest +yummy +yup +yup's +yuppie +yuppie's +yuppies +yuppy +yuppy's +yups +z +zanier +zanies +zaniest +zaniness +zaniness's +zany +zany's +zap +zap's +zapped +zapping +zaps +zeal +zeal's +zealot +zealot's +zealots +zealous +zealously +zealousness +zealousness's +zebra +zebra's +zebras +zebu +zebu's +zebus +zed +zed's +zeds +zenith +zenith's +zeniths +zephyr +zephyr's +zephyrs +zeppelin +zeppelin's +zeppelins +zero +zero's +zeroed +zeroes +zeroing +zeros +zest +zest's +zestful +zestfully +zests +zeta +zigzag +zigzag's +zigzagged +zigzagging +zigzags +zilch +zilch's +zillion +zillion's +zillions +zinc +zinc's +zinced +zincing +zincked +zincking +zincs +zing +zing's +zinged +zinger +zinger's +zingers +zinging +zings +zinnia +zinnia's +zinnias +zip +zip's +zipped +zipper +zipper's +zippered +zippering +zippers +zippier +zippiest +zipping +zippy +zips +zircon +zircon's +zirconium +zirconium's +zircons +zit +zit's +zither +zither's +zithers +zits +zodiac +zodiac's +zodiacal +zodiacs +zombi +zombi's +zombie +zombie's +zombies +zombis +zonal +zone +zone's +zoned +zones +zoning +zonked +zoo +zoo's +zoological +zoologist +zoologist's +zoologists +zoology +zoology's +zoom +zoom's +zoomed +zooming +zooms +zoos +zucchini +zucchini's +zucchinis +zwieback +zwieback's +zygote +zygote's +zygotes +Ångström +éclair +éclair's +éclairs +éclat +éclat's +élan +élan's +émigré +émigré's +émigrés +épée +épée's +épées +étude +étude's +études diff --git a/bin/build-all.sh b/bin/build-all.sh index 7e1175f55..7dc349fe6 100755 --- a/bin/build-all.sh +++ b/bin/build-all.sh @@ -19,42 +19,5 @@ DIR=`dirname "$0"` DIR=`cd "${DIR}/.."; pwd` CURDIR=`pwd` -cd $DIR/src -mvn clean package && \ -cd $DIR/src/sparkbench && \ -( mkdir jars | true ) - -for mr in MR1 MR2; do - for spark_version in 1.2 1.3 1.4 1.5 1.6; do - cp target/*-jar-with-dependencies.jar jars - mvn clean package -D spark$spark_version -D $mr - if [ $? -ne 0 ]; then - echo "Build failed for spark$spark_version and $mr, please check!" - exit 1 - fi - done -done -cp jars/*.jar target/ && \ -rm -rf jars - -cd $DIR/src/streambench/sparkbench && \ -( mkdir jars | true ) -for spark_version in 1.3 1.4 1.5 1.6; do - cp target/*-jar-with-dependencies.jar jars - mvn clean package -D spark$spark_version - if [ $? -ne 0 ]; then - echo "Build failed for spark$spark_version, please check!" - exit 1 - fi -done -cp jars/*.jar target/ && \ -rm -rf jars - -result=$? -cd $CURDIR - -if [ $result -ne 0 ]; then - echo "Build failed, please check!" -else - echo "Build all done!" -fi +cd $DIR +mvn clean package diff --git a/bin/functions/hibench_prop_env_mapping.py b/bin/functions/hibench_prop_env_mapping.py index 97739afcc..8c2707e15 100644 --- a/bin/functions/hibench_prop_env_mapping.py +++ b/bin/functions/hibench_prop_env_mapping.py @@ -20,22 +20,16 @@ HiBenchEnvPropMappingMandatory=dict( JAVA_BIN="java.bin", HADOOP_HOME="hibench.hadoop.home", - SPARK_HOME="hibench.spark.home", HDFS_MASTER="hibench.hdfs.master", - SPARK_MASTER="hibench.spark.master", - HADOOP_VERSION="hibench.hadoop.version", HADOOP_RELEASE="hibench.hadoop.release", HADOOP_EXAMPLES_JAR="hibench.hadoop.examples.jar", HADOOP_EXECUTABLE="hibench.hadoop.executable", HADOOP_CONF_DIR="hibench.hadoop.configure.dir", - SPARK_VERSION="hibench.spark.version", HIBENCH_HOME="hibench.home", HIBENCH_CONF="hibench.configure.dir", - DEPENDENCY_DIR="hibench.dependency.dir", REPORT_COLUMN_FORMATS="hibench.report.formats", SPARKBENCH_JAR="hibench.sparkbench.jar", - HIBENCH_PYTHON_PATH="hibench.sparkbench.python.dir", NUM_MAPS="hibench.default.map.parallelism", NUM_REDS="hibench.default.shuffle.parallelism", INPUT_HDFS="hibench.workload.input", @@ -43,16 +37,14 @@ REDUCER_CONFIG_NAME="hibench.hadoop.reducer.name", MAP_CONFIG_NAME="hibench.hadoop.mapper.name", - COMPRESS_OPT="hibench.workload.compress.options", - DATATOOLS_COMPRESS_OPT="hibench.workload.compress.datatools.options", - KMEANS_COMPRESS_OPT="hibench.workload.compress.kmeans_gen.options", - HIVE_SQL_COMPRESS_OPTS="hibench.workload.compress.hive.options", MASTERS="hibench.masters.hostnames", SLAVES="hibench.slaves.hostnames", ) HiBenchEnvPropMapping=dict( + SPARK_HOME="hibench.spark.home", + SPARK_MASTER="hibench.spark.master", SPARK_EXAMPLES_JAR="hibench.spark.examples.jar", HIVE_HOME="hibench.hive.home", @@ -68,8 +60,8 @@ HIBENCH_REPORT_NAME="hibench.report.name", # set in default YARN_NUM_EXECUTORS="hibench.yarn.executor.num", YARN_EXECUTOR_CORES="hibench.yarn.executor.cores", - YARN_EXECUTOR_MEMORY="hibench.yarn.executor.memory", - YARN_DRIVER_MEMORY="hibench.yarn.driver.memory", + SPARK_YARN_EXECUTOR_MEMORY="spark.executor.memory", + SPARK_YARN_DRIVER_MEMORY="spark.driver.memory", DATA_HDFS="hibench.hdfs.data.dir", # For Sleep workload MAP_SLEEP_TIME="hibench.sleep.mapper.seconds", @@ -77,12 +69,11 @@ HADOOP_SLEEP_JAR="hibench.sleep.job.jar", # For Sort, Terasort, Wordcount DATASIZE="hibench.workload.datasize", - BYTES_TOTAL_NAME="hibench.randomtextwriter.bytestotal.name", # For hive related workload, data scale PAGES="hibench.workload.pages", USERVISITS="hibench.workload.uservisits", - HIVE_INPUT="hibench.hive.dir.name.input", + HIVE_INPUT="hibench.workload.dir.name.input", HIVE_BASE_HDFS="hibench.hive.base.hdfs", # For bayes CLASSES="hibench.workload.classes", @@ -123,41 +114,36 @@ MODEL="hibench.nweight.model", # For streaming bench - # zkHelper - STREAMING_ZKHELPER_JAR="hibench.streamingbench.zkhelper.jar", + STREAMING_TESTCASE="hibench.streambench.testCase", + # prepare - STREAMING_TOPIC_NAME="hibench.streamingbench.topic_name", - STREAMING_KAFKA_HOME="hibench.streamingbench.kafka.home", - STREAMING_ZKADDR="hibench.streamingbench.zookeeper.host", - STREAMING_CONSUMER_GROUP="hibench.streamingbench.consumer_group", - STREAMING_DATA_SCALE_FACTOR="hibench.streamingbench.datagen.scale_factor", - STREAMING_DATA_DIR="hibench.streamingbench.datagen.dir", - STREAMING_DATA1_NAME="hibench.streamingbench.datagen.data1.name", - STREAMING_DATA1_DIR="hibench.streamingbench.datagen.data1.dir", - STREAMING_DATA1_LENGTH="hibench.streamingbench.datagen.data1.length", - STREAMING_DATA2_SAMPLE_DIR="hibench.streamingbench.datagen.data2_samples.dir", - STREAMING_DATA2_CLUSTER_DIR="hibench.streamingbench.datagen.data2_cluster.dir", - STREAMING_PARTITIONS="hibench.streamingbench.partitions", - DATA_GEN_JAR="hibench.streamingbench.datagen.jar", - - STREAMING_DATAGEN_MODE="hibench.streamingbench.prepare.mode", - STREAMING_DATAGEN_RECORDS="hibench.streamingbench.prepare.push.records", + STREAMING_TOPIC_NAME="hibench.streambench.kafka.topic", + STREAMING_KAFKA_HOME="hibench.streambench.kafka.home", + STREAMING_ZKADDR="hibench.streambench.zkHost", + STREAMING_CONSUMER_GROUP="hibench.streambench.kafka.consumerGroup", + STREAMING_DATA_DIR="hibench.streambench.datagen.dir", + STREAMING_DATA1_NAME="hibench.streambench.datagen.data1.name", + STREAMING_DATA1_DIR="hibench.streambench.datagen.data1.dir", + STREAMING_DATA1_LENGTH="hibench.streambench.datagen.recordLength", + STREAMING_DATA2_SAMPLE_DIR="hibench.streambench.datagen.data2_samples.dir", + STREAMING_DATA2_CLUSTER_DIR="hibench.streambench.datagen.data2_cluster.dir", + STREAMING_PARTITIONS="hibench.streambench.kafka.topicPartitions", + DATA_GEN_JAR="hibench.streambench.datagen.jar", # sparkstreaming - STREAMINGBENCH_JARS="hibench.streamingbench.jars", - STREAMBENCH_STORM_JAR="hibench.streamingbench.stormbench.jar", - STORM_BIN_HOME="hibench.streamingbench.storm.bin", - STREAMING_BENCHNAME="hibench.streamingbench.benchname", + STREAMBENCH_SPARK_JAR="hibench.streambench.sparkbench.jar", + STREAMBENCH_STORM_JAR="hibench.streambench.stormbench.jar", - # samza - STREAMING_SAMZA_WORDCOUNT_INTERNAL_TOPIC="samza_internal.wordcount.kafka.input.name", - STREAMING_SAMZA_STATISTICS_INTERNAL_TOPIC="samza_internal.statistics.kafka.input.name", - STREAMING_SAMZA_DISTINCOUNT_INTERNAL_TOPIC="samza_internal.distinctcount.kafka.input.name", - SAMZA_PARTITIONS="samza_internal.partitions", - SAMZA_REPLICATION_FACTOR="samza.task.checkpoint.replication.factor", + # gearpump + GEARPUMP_HOME="hibench.streambench.gearpump.home", + STREAMBENCH_GEARPUMP_JAR="hibench.streambench.gearpump.jar", + STREAMBENCH_GEARPUMP_EXECUTORS="hibench.streambench.gearpump.executors", - STREAMING_SAMZA_PACKAGE_LOCAL_PATH="samza_internal.yarn.package.path", - STREAMING_SAMZA_PACKAGE_HDFS_PATH="samza.yarn.package.path", + # flinkstreaming + HIBENCH_FLINK_MASTER="hibench.flink.master", + FLINK_HOME="hibench.streambench.flink.home", + STREAMBENCH_FLINK_JAR="hibench.streambench.flinkbench.jar", + STREAMBENCH_FLINK_PARALLELISM="hibench.streambench.flink.parallelism", ) diff --git a/bin/functions/load-bench-config.sh b/bin/functions/load-bench-config.sh index cba922cc3..f03ffc40d 100644 --- a/bin/functions/load-bench-config.sh +++ b/bin/functions/load-bench-config.sh @@ -15,7 +15,6 @@ # limitations under the License. set -u - this="${BASH_SOURCE-$0}" bin=$(cd -P -- "$(dirname -- "$this")" && pwd -P) script="$(basename -- "$this")" diff --git a/bin/functions/load-config.py b/bin/functions/load-config.py deleted file mode 100755 index 675bdb10e..000000000 --- a/bin/functions/load-config.py +++ /dev/null @@ -1,556 +0,0 @@ -#!/usr/bin/env python2 -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import sys, os, glob, re, urllib, socket -from contextlib import closing -from collections import defaultdict -from hibench_prop_env_mapping import HiBenchEnvPropMappingMandatory, HiBenchEnvPropMapping, HiBenchPropEnvMapping, HiBenchPropEnvMappingMandatory - -HibenchConf={} -HibenchConfRef={} - -#FIXME: use log helper later -def log(*s): - if len(s)==1: s=s[0] - else: s= " ".join([str(x) for x in s]) - sys.stderr.write( str(s) +'\n') - -def log_debug(*s): -# log(*s) - pass - -# copied from http://stackoverflow.com/questions/3575554/python-subprocess-with-timeout-and-large-output-64k -# Comment: I have a better solution, but I'm too lazy to write. -import fcntl -import os -import subprocess -import time - -def nonBlockRead(output): - fd = output.fileno() - fl = fcntl.fcntl(fd, fcntl.F_GETFL) - fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) - try: - return output.read() - except: - return '' - -def execute_cmd(cmdline, timeout): - """ - Execute cmdline, limit execution time to 'timeout' seconds. - Uses the subprocess module and subprocess.PIPE. - - Raises TimeoutInterrupt - """ - - p = subprocess.Popen( - cmdline, - bufsize = 0, # default value of 0 (unbuffered) is best - shell = True, - stdout = subprocess.PIPE, - stderr = subprocess.PIPE - ) - - t_begin = time.time() # Monitor execution time - seconds_passed = 0 - - stdout = '' - stderr = '' - - while p.poll() is None and ( seconds_passed < timeout or timeout == 0): # Monitor process - time.sleep(0.1) # Wait a little - seconds_passed = time.time() - t_begin - - stdout += nonBlockRead(p.stdout) - stderr += nonBlockRead(p.stderr) - - if seconds_passed >= timeout and timeout>0: - try: - p.stdout.close() # If they are not closed the fds will hang around until - p.stderr.close() # os.fdlimit is exceeded and cause a nasty exception - p.terminate() # Important to close the fds prior to terminating the process! - # NOTE: Are there any other "non-freed" resources? - except: - pass - - return ('Timeout', stdout, stderr) - - return (p.returncode, stdout, stderr) - -def shell(cmd, timeout=5): - assert not "${" in cmd, "Error, missing configurations: %s" % ", ".join(re.findall("\$\{(.*)\}", cmd)) - retcode, stdout, stderr = execute_cmd(cmd, timeout) - if retcode == 'Timeout': - log("ERROR, execute cmd: '%s' timedout." % cmd) - log(" STDOUT:\n"+stdout) - log(" STDERR:\n"+stderr) - log(" Please check!") - assert 0, cmd + " executed timedout for %d seconds" % timeout - - return stdout - -def OneAndOnlyOneFile(filename_pattern): - files = glob.glob(filename_pattern) - if len(files)==1: return files[0] - else: - log('This filename pattern "%s" is required to match only one file.' % filename_pattern) - if len(files)==0: - log("However, there's no file found, please fix it.") - else: - log("However, there's several files found, please remove the redundant files:\n", "\n".join(files)) - raise Exception("Need to match one and only one file!") - -def load_config(conf_root, workload_root, workload_folder, patching_config=""): - abspath = os.path.abspath - conf_root = abspath(conf_root) - workload_root = abspath(workload_root) - workload_folder = abspath(workload_folder) - workload_tail = workload_folder[len(workload_root):][1:] - workload_api = os.path.dirname(workload_tail) if os.path.dirname(workload_tail) else workload_tail - workload_name = os.path.basename(workload_root) - - conf_files = sorted(glob.glob(conf_root+"/*.conf")) + \ - sorted(glob.glob("%s/conf/*.conf" % (workload_root,))) + \ - sorted(glob.glob("%s/%s/*.conf" % (workload_root, workload_api))) - - # load values from conf files - for filename in conf_files: - log("Parsing conf: %s" % filename) - with open(filename) as f: - for line in f.readlines(): - line = line.strip() - if not line: continue # skip empty lines - if line[0]=='#': continue # skip comments - try: - key, value = re.split("\s", line, 1) - except ValueError: - key = line.strip() - value = "" - HibenchConf[key] = value.strip() - HibenchConfRef[key] = filename - - # override values from os environment variable settings - for env_name, prop_name in HiBenchEnvPropMappingMandatory.items() + HiBenchEnvPropMapping.items(): - if env_name in os.environ: - env_value = os.getenv(env_name) - HibenchConf[prop_name] = env_value - HibenchConfRef[prop_name] = "OS environment variable:%s" % env_name - - # override values by patching config - for item in [x for x in patching_config.split(',') if x]: - key, value = re.split('=', item, 1) - HibenchConf[key] = value.strip() - HibenchConfRef[key] = "Overrided by parent script during calling: " + item - - # generate ref values - waterfall_config() - # generate auto probe values - generate_optional_value() - # generate ref values again to ensure all values can be found - waterfall_config(force=True) - # check - check_config() - # Export config to file, let bash script to import as local variables. - print export_config(workload_name, workload_api) - -def check_config(): # check configures - # Ensure mandatory configures are available - for _, prop_name in HiBenchEnvPropMappingMandatory.items(): - assert HibenchConf.get(prop_name, None) is not None, "Mandatory configure missing: %s" % prop_name - # Ensure all ref values in configure has been expanded - for _, prop_name in HiBenchEnvPropMappingMandatory.items() + HiBenchEnvPropMapping.items(): - assert "${" not in HibenchConf.get(prop_name, ""), "Unsolved ref key: %s. \n Defined at %s:\n Unsolved value:%s\n" % (prop_name, - HibenchConfRef.get(prop_name, "unknown"), - HibenchConf.get(prop_name, "unknown")) - -def waterfall_config(force=False): # replace "${xxx}" to its values - no_value_sign = "___###NO_VALUE_SIGN###___" - def process_replace(m): - raw_key = m.groups()[0] -# key, default_value = (raw_key[2:-1].strip().split(":-") + [None])[:2] - key, spliter, default_value = (re.split("(:-|:_)", raw_key[2:-1].strip()) + [None, None])[:3] - - log_debug("key:", key, " value:", HibenchConf.get(key, "RAWKEY:"+raw_key), "default value:" + repr(default_value)) - if force: - if default_value is None: - return HibenchConf.get(key) -# return HibenchConf.get(key, raw_key) - else: - if spliter == ':_' and not default_value: # no return - return no_value_sign - return HibenchConf.get(key, default_value) - else: - return HibenchConf.get(key, "") or raw_key - - def wildcard_replacement(key, value): - if "*" in key: # we have wildcard replacement - assert len(key.split("*")) == len(value.split("*")), "ERROR! The number of wildcards defined in key and value must be identical: %s -> %s" % (key, value) - key_searcher = re.compile("^"+"(.*)".join(key.split("*"))+"$") - matched_keys_to_remove = [] - for k in HibenchConf.keys(): - matched_keys = key_searcher.match(k) - if matched_keys: - matched_keys_to_remove.append(k) - if not "*" in k: - splited_value = value.split("*") - new_key = splited_value[0] + "".join([matched_keys.groups()[idx]+x for idx,x in enumerate(splited_value[1:])]) - - HibenchConf[new_key] = HibenchConf[k] - HibenchConfRef[new_key] = "Generated by wildcard rule: %s -> %s" % (key, value) -# log_debug(new_key, HibenchConf[k]) - for key in matched_keys_to_remove: - del HibenchConf[key] - return True - return - - p = re.compile("(\$\{\s*[^\s^\$^\}]+\s*\})") - - wildcard_rules=[] - finish = False - while True: - while not finish: - finish = True - for key, value in HibenchConf.items(): - old_value = value - old_key = key - key = p.sub(process_replace, key) - value = p.sub(process_replace, value) - if key != old_key: - #log_debug("update key:", key, old_key) - HibenchConf[key] = HibenchConf[old_key] - del HibenchConf[old_key] - finish = False - elif value != old_value: # we have updated value, try again -# log_debug("Waterfall conf: %s: %s -> %s" % (key, old_value, value)) - HibenchConf[key] = value - finish = False - - - wildcard_rules = [(key, HibenchConf[key]) for key in HibenchConf if "*" in key] - # now, let's check wildcard replacement rules - for key, value in wildcard_rules: - # check if we found a rule like: aaa.*.ccc.*.ddd -> bbb.*.* - - # wildcard replacement is useful for samza conf, which - # seems can place anything under its conf namespaces. - - # The first wildcard in key will match the first wildcard - # in value, etc. The number of wildcard in key and value - # must be identical. However, it'll be impossible to - # switch the order of two wildcards, something like the - # first wildcard in key to match the second wildcard in - # value. I just don't think it'll be needed. - if not wildcard_replacement(key, value): # not wildcard rules? re-add - HibenchConf[key] = value - if wildcard_rules: # need try again - wildcard_rules = [] - else: break - - # all finished, remove values contains no_value_sign - for key in [x for x in HibenchConf if no_value_sign in HibenchConf[x]]: - del HibenchConf[key] - del HibenchConfRef[key] - -def generate_optional_value(): # get some critical values from environment or make a guess - d = os.path.dirname - join = os.path.join - HibenchConf['hibench.home']=d(d(d(os.path.abspath(__file__)))) - del d - HibenchConfRef['hibench.home']="Inferred from relative path of dirname(%s)/../../" % __file__ - - # probe JAVA_HOME - if not HibenchConf.get("java.bin", ""): - # probe java bin - if os.environ.get('JAVA_HOME',''): # lookup in os environment - HibenchConf['java.bin'] = os.path.join(os.environ.get('JAVA_HOME'), "bin", "java") - HibenchConfRef['java.bin'] = "probed from os environment of JAVA_HOME" - else: # lookup in path - path_dirs = os.environ.get('PATH', '').split(':') - for path in path_dirs: - if os.path.isfile(os.path.join(path, "java")): - HibenchConf['java.bin'] = os.path.join(path, "java") - HibenchConfRef['java.bin'] = "probed by lookup in $PATH: " + path - break - else: # still not found? - assert 0, "JAVA_HOME unset or can't found java executable in $PATH" - - # probe hadoop version & release. - if not HibenchConf.get("hibench.hadoop.version", "") or not HibenchConf.get("hibench.hadoop.release", ""): - # check hadoop version first - hadoop_version = "" - cmd = HibenchConf['hibench.hadoop.executable'] +' version | head -1 | cut -d \ -f 2' - if not HibenchConf.get("hibench.hadoop.version", ""): - hadoop_version = shell(cmd).strip() - assert hadoop_version, "ERROR, execute '%s' with no return, please confirm hadoop environment is configured properly." % cmd - if hadoop_version[0] != '1': # hadoop2? or CDH's MR1? - cmd2 = HibenchConf['hibench.hadoop.executable'] + " mradmin 2>&1 | grep yarn" - mradm_result = shell(cmd2).strip() - - if mradm_result: # match with keyword "yarn", must be CDH's MR2, do nothing - pass - else: # didn't match with "yarn", however it calms as hadoop2, must be CDH's MR1 - HibenchConf["hibench.hadoop.version"] = "hadoop1" - HibenchConfRef["hibench.hadoop.version"] = "Probed by: `%s` and `%s`" % (cmd, cmd2) - if not HibenchConf.get("hibench.hadoop.version", ""): - HibenchConf["hibench.hadoop.version"] = "hadoop" + hadoop_version[0] - HibenchConfRef["hibench.hadoop.version"] = "Probed by: " + cmd - - assert HibenchConf["hibench.hadoop.version"] in ["hadoop1", "hadoop2"], "Unknown hadoop version (%s). Auto probe failed, please override `hibench.hadoop.version` to explicitly define this property" % HibenchConf["hibench.hadoop.version"] - - # check hadoop release - if not HibenchConf.get("hibench.hadoop.release", ""): - if not hadoop_version: - hadoop_version = shell(cmd).strip() - HibenchConf["hibench.hadoop.release"] = \ - "cdh4" if "cdh4" in hadoop_version else \ - "cdh5" if "cdh5" in hadoop_version else \ - "apache" if "hadoop" in HibenchConf["hibench.hadoop.version"] else \ - "UNKNOWN" - HibenchConfRef["hibench.hadoop.release"] = "Inferred by: hadoop version, which is:\"%s\"" % hadoop_version - - assert HibenchConf["hibench.hadoop.release"] in ["cdh4", "cdh5", "apache", "hdp"], "Unknown hadoop release. Auto probe failed, please override `hibench.hadoop.release` to explicitly define this property" - - - # probe spark version - if not HibenchConf.get("hibench.spark.version", ""): - spark_home = HibenchConf.get("hibench.spark.home", "") - assert spark_home, "`hibench.spark.home` undefined, please fix it and retry" - try: - release_file = join(spark_home, "RELEASE") - with open(release_file) as f: - spark_version_raw = f.readlines()[0] - #spark_version_raw="Spark 1.2.2-SNAPSHOT (git revision f9d8c5e) built for Hadoop 1.0.4\n" # version sample - spark_version = spark_version_raw.split()[1].strip() - HibenchConfRef["hibench.spark.version"] = "Probed from file %s, parsed by value:%s" % (release_file, spark_version_raw) - except IOError as e: # no release file, fall back to hard way - log("Probing spark verison, may last long at first time...") - shell_cmd = '( cd %s; mvn help:evaluate -Dexpression=project.version 2> /dev/null | grep -v "INFO" | tail -n 1)' % spark_home - spark_version = shell(shell_cmd, timeout = 600).strip() - HibenchConfRef["hibench.spark.version"] = "Probed by shell command: %s, value: %s" % (shell_cmd, spark_version) - - assert spark_version, "Spark version probe failed, please override `hibench.spark.version` to explicitly define this property" - HibenchConf["hibench.spark.version"] = "spark" + spark_version[:3] - - # probe hadoop example jars - if not HibenchConf.get("hibench.hadoop.examples.jar", ""): - if HibenchConf["hibench.hadoop.version"] == "hadoop1": # MR1 - if HibenchConf['hibench.hadoop.release'] == 'apache': # Apache release - HibenchConf["hibench.hadoop.examples.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home']+"/hadoop-examples*.jar") - HibenchConfRef["hibench.hadoop.examples.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/hadoop-examples*.jar" - elif HibenchConf['hibench.hadoop.release'].startswith('cdh'): # CDH release - HibenchConf["hibench.hadoop.examples.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home']+"/share/hadoop/mapreduce1/hadoop-examples*.jar") - HibenchConfRef["hibench.hadoop.examples.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/share/hadoop/mapreduce1/hadoop-examples*.jar" - else: # MR2 - if HibenchConf['hibench.hadoop.release'] == 'apache': # Apache release - HibenchConf["hibench.hadoop.examples.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home'] + "/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar") - HibenchConfRef["hibench.hadoop.examples.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar" - elif HibenchConf['hibench.hadoop.release'].startswith('cdh'): # CDH release - HibenchConf["hibench.hadoop.examples.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home'] + "/share/hadoop/mapreduce2/hadoop-mapreduce-examples-*.jar") - HibenchConfRef["hibench.hadoop.examples.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/share/hadoop/mapreduce2/hadoop-mapreduce-examples-*.jar" - elif HibenchConf['hibench.hadoop.release'].startswith('hdp'): # HDP release - HibenchConf["hibench.hadoop.examples.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home'] + "/hadoop-mapreduce-examples.jar") - HibenchConfRef["hibench.hadoop.examples.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/hadoop-mapreduce-examples.jar" - - # probe hadoop examples test jars (for sleep in hadoop2 only) - if not HibenchConf.get("hibench.hadoop.examples.test.jar", ""): - if HibenchConf["hibench.hadoop.version"] == "hadoop1" and HibenchConf["hibench.hadoop.release"] == "apache": - HibenchConf["hibench.hadoop.examples.test.jar"] = "dummy" - HibenchConfRef["hibench.hadoop.examples.test.jar"]= "Dummy value, not available in hadoop1" - else: - if HibenchConf['hibench.hadoop.release'] == 'apache': - HibenchConf["hibench.hadoop.examples.test.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home'] + "/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient*-tests.jar") - HibenchConfRef["hibench.hadoop.examples.test.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient*-tests.jar" - elif HibenchConf['hibench.hadoop.release'].startswith('cdh'): - if HibenchConf["hibench.hadoop.version"] == "hadoop2": - HibenchConf["hibench.hadoop.examples.test.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home'] + "/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient*-tests.jar") - HibenchConfRef["hibench.hadoop.examples.test.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient*-tests.jar" - elif HibenchConf["hibench.hadoop.version"] == "hadoop1": - HibenchConf["hibench.hadoop.examples.test.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home'] + "/share/hadoop/mapreduce1/hadoop-examples-*.jar") - HibenchConfRef["hibench.hadoop.examples.test.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/share/hadoop/mapreduce1/hadoop-mapreduce-client-jobclient*-tests.jar" - elif HibenchConf['hibench.hadoop.release'].startswith('hdp'): # HDP release - HibenchConf["hibench.hadoop.examples.test.jar"] = OneAndOnlyOneFile(HibenchConf['hibench.hadoop.mapreduce.home'] + "/hadoop-mapreduce-client-jobclient-tests.jar") - HibenchConfRef["hibench.hadoop.examples.test.jar"]= "Inferred by: " + HibenchConf['hibench.hadoop.mapreduce.home']+"/hadoop-mapreduce-client-jobclient-tests.jar" - - # set hibench.sleep.job.jar - if not HibenchConf.get('hibench.sleep.job.jar', ''): - if HibenchConf['hibench.hadoop.release'] == 'apache' and HibenchConf["hibench.hadoop.version"] == "hadoop1": - HibenchConf["hibench.sleep.job.jar"] = HibenchConf['hibench.hadoop.examples.jar'] - HibenchConfRef["hibench.sleep.job.jar"] = "Refer to `hibench.hadoop.examples.jar` according to the evidence of `hibench.hadoop.release` and `hibench.hadoop.version`" - else: - log("probe sleep jar:", HibenchConf['hibench.hadoop.examples.test.jar']) - HibenchConf["hibench.sleep.job.jar"] = HibenchConf['hibench.hadoop.examples.test.jar'] - HibenchConfRef["hibench.sleep.job.jar"] = "Refer to `hibench.hadoop.examples.test.jar` according to the evidence of `hibench.hadoop.release` and `hibench.hadoop.version`" - - # probe hadoop configuration files - if not HibenchConf.get("hibench.hadoop.configure.dir", ""): - if HibenchConf["hibench.hadoop.release"] == "apache" or HibenchConf["hibench.hadoop.release"] == "hdp": # Apache and HDP release - HibenchConf["hibench.hadoop.configure.dir"] = join(HibenchConf["hibench.hadoop.home"], "conf") if HibenchConf["hibench.hadoop.version"] == "hadoop1" \ - else join(HibenchConf["hibench.hadoop.home"], "etc", "hadoop") - HibenchConfRef["hibench.hadoop.configure.dir"] = "Inferred by: 'hibench.hadoop.version' & 'hibench.hadoop.release'" - elif HibenchConf["hibench.hadoop.release"].startswith("cdh"): # CDH release - HibenchConf["hibench.hadoop.configure.dir"] = join(HibenchConf["hibench.hadoop.home"], "etc", "hadoop-mapreduce1") if HibenchConf["hibench.hadoop.version"] == "hadoop1" \ - else join(HibenchConf["hibench.hadoop.home"], "etc", "hadoop") - HibenchConfRef["hibench.hadoop.configure.dir"] = "Inferred by: 'hibench.hadoop.version' & 'hibench.hadoop.release'" - - # set hadoop mapper/reducer property names - if not HibenchConf.get("hibench.hadoop.mapper.name", ""): - HibenchConf["hibench.hadoop.mapper.name"] = "mapred.map.tasks" if HibenchConf["hibench.hadoop.version"] == "hadoop1" else "mapreduce.job.maps" - HibenchConfRef["hibench.hadoop.mapper.name"] = "Inferred by: 'hibench.hadoop.version'" - if not HibenchConf.get("hibench.hadoop.reducer.name", ""): - HibenchConf["hibench.hadoop.reducer.name"] = "mapred.reduce.tasks" if HibenchConf["hibench.hadoop.version"] == "hadoop1" else "mapreduce.job.reduces" - HibenchConfRef["hibench.hadoop.reducer.name"] = "Inferred by: 'hibench.hadoop.version'" - - # probe masters, slaves hostnames - # determine running mode according to spark master configuration - if not (HibenchConf.get("hibench.masters.hostnames", "") or HibenchConf.get("hibench.slaves.hostnames", "")): # no pre-defined hostnames, let's probe - spark_master = HibenchConf['hibench.spark.master'] - if spark_master.startswith("local"): # local mode - HibenchConf['hibench.masters.hostnames'] = '' # no master - HibenchConf['hibench.slaves.hostnames'] = 'localhost' # localhost as slaves - HibenchConfRef['hibench.masters.hostnames'] = HibenchConfRef['hibench.slaves.hostnames'] = "Probed by the evidence of 'hibench.spark.master=%s'" % spark_master - elif spark_master.startswith("spark"): # spark standalone mode - HibenchConf['hibench.masters.hostnames'] = spark_master[8:].split(":")[0] - HibenchConfRef['hibench.masters.hostnames'] = "Probed by the evidence of 'hibench.spark.master=%s'" % spark_master - try: - log(spark_master, HibenchConf['hibench.masters.hostnames']) - with closing(urllib.urlopen('http://%s:8080' % HibenchConf['hibench.masters.hostnames'])) as page: - worker_hostnames=[re.findall("http:\/\/([a-zA-Z\-\._0-9]+):8081", x)[0] for x in page.readlines() if "8081" in x and "worker" in x] - HibenchConf['hibench.slaves.hostnames'] = " ".join(worker_hostnames) - HibenchConfRef['hibench.slaves.hostnames'] = "Probed by parsing "+ 'http://%s:8080' % HibenchConf['hibench.masters.hostnames'] - except Exception as e: - assert 0, "Get workers from spark master's web UI page failed, reason:%s\nPlease check your configurations, network settings, proxy settings, or set `hibench.masters.hostnames` and `hibench.slaves.hostnames` manually to bypass auto-probe" % e - elif spark_master.startswith("yarn"): # yarn mode - yarn_executable = os.path.join(os.path.dirname(HibenchConf['hibench.hadoop.executable']), "yarn") - cmd = "( " + yarn_executable + " node -list 2> /dev/null | grep RUNNING )" - try: - worker_hostnames = [line.split(":")[0] for line in shell(cmd).split("\n")] - HibenchConf['hibench.slaves.hostnames'] = " ".join(worker_hostnames) - HibenchConfRef['hibench.slaves.hostnames'] = "Probed by parsing results from: "+cmd - - # parse yarn resource manager from hadoop conf - yarn_site_file = os.path.join(HibenchConf["hibench.hadoop.configure.dir"], "yarn-site.xml") - with open(yarn_site_file) as f: - file_content = f.read() - match_address=re.findall("\\s*\\s*yarn.resourcemanager.address\s*\<\/name\>\s*\([a-zA-Z\-\._0-9]+)(:\d+)?\<\/value\>", file_content) - match_hostname=re.findall("\\s*\\s*yarn.resourcemanager.hostname\s*\<\/name\>\s*\([a-zA-Z\-\._0-9]+)(:\d+)?\<\/value\>", file_content) - if match_address: - resourcemanager_hostname = match_address[0][0] - HibenchConf['hibench.masters.hostnames'] = resourcemanager_hostname - HibenchConfRef['hibench.masters.hostnames'] = "Parsed from "+ yarn_site_file - elif match_hostname: - resourcemanager_hostname = match_hostname[0][0] - HibenchConf['hibench.masters.hostnames'] = resourcemanager_hostname - HibenchConfRef['hibench.masters.hostnames'] = "Parsed from "+ yarn_site_file - else: - assert 0, "Unknown resourcemanager, please check `hibench.hadoop.configure.dir` and \"yarn-site.xml\" file" - except Exception as e: - assert 0, "Get workers from yarn web UI page failed, reason:%s\nplease set `hibench.masters.hostnames` and `hibench.slaves.hostnames` manually" % e - - # reset hostnames according to gethostbyaddr - names = set(HibenchConf['hibench.masters.hostnames'].split() + HibenchConf['hibench.slaves.hostnames'].split()) - new_name_mapping={} - for name in names: - try: - new_name_mapping[name] = socket.gethostbyaddr(name)[0] - except: # host name lookup failure? - new_name_mapping[name] = name - HibenchConf['hibench.masters.hostnames'] = repr(" ".join([new_name_mapping[x] for x in HibenchConf['hibench.masters.hostnames'].split()])) - HibenchConf['hibench.slaves.hostnames'] = repr(" ".join([new_name_mapping[x] for x in HibenchConf['hibench.slaves.hostnames'].split()])) - - # probe map.java_opts red.java_opts - cmd1 = """cat %s | grep "mapreduce.map.java.opts" | awk -F\< '{print $5}' | awk -F\> '{print $NF}'""" % os.path.join(HibenchConf['hibench.hadoop.configure.dir'], 'mapred-site.xml') - cmd2 = """cat %s | grep "mapreduce.reduce.java.opts" | awk -F\< '{print $5}' | awk -F\> '{print $NF}'""" % os.path.join(HibenchConf['hibench.hadoop.configure.dir'], 'mapred-site.xml') - HibenchConf['hibench.dfsioe.map.java_opts'] = shell(cmd1) - HibenchConfRef['hibench.dfsioe.map.java_opts'] = "Probed by shell command:'%s'" % cmd1 - HibenchConf['hibench.dfsioe.red.java_opts'] = shell(cmd2) - HibenchConfRef['hibench.dfsioe.red.java_opts'] = "Probed by shell command:'%s'" % cmd2 - - -def export_config(workload_name, workload_tail): - join = os.path.join - report_dir = HibenchConf['hibench.report.dir'] - conf_dir = join(report_dir, workload_name, workload_tail, 'conf') - conf_filename= join(conf_dir, "%s.conf" % workload_name) - - spark_conf_dir = join(conf_dir, "sparkbench") - spark_prop_conf_filename = join(spark_conf_dir, "spark.conf") - samza_prop_conf_filename = join(spark_conf_dir, "samza.conf") - sparkbench_prop_conf_filename = join(spark_conf_dir, "sparkbench.conf") - - if not os.path.exists(spark_conf_dir): os.makedirs(spark_conf_dir) - if not os.path.exists(conf_dir): os.makedirs(conf_dir) - - # generate configure for hibench - sources=defaultdict(list) - for env_name, prop_name in HiBenchEnvPropMappingMandatory.items() + HiBenchEnvPropMapping.items(): - source = HibenchConfRef.get(prop_name, 'None') - sources[source].append('%s=%s' % (env_name, HibenchConf.get(prop_name, ''))) - - with open(conf_filename, 'w') as f: - for source in sorted(sources.keys()): - f.write("# Source: %s\n" % source) - f.write("\n".join(sorted(sources[source]))) - f.write("\n\n") - f.write("#Source: add for internal usage\n") - f.write("SPARKBENCH_PROPERTIES_FILES=%s\n" % sparkbench_prop_conf_filename) - f.write("SPARK_PROP_CONF=%s\n" % spark_prop_conf_filename) - f.write("SAMZA_PROP_CONF=%s\n" % samza_prop_conf_filename) - f.write("WORKLOAD_RESULT_FOLDER=%s\n" % join(conf_dir, "..")) - f.write("HIBENCH_WORKLOAD_CONF=%s\n" % conf_filename) - f.write("export HADOOP_EXECUTABLE\n") - f.write("export HADOOP_CONF_DIR\n") - - # generate properties for spark & sparkbench - sources=defaultdict(list) - for prop_name, prop_value in HibenchConf.items(): - source = HibenchConfRef.get(prop_name, 'None') - sources[source].append('%s\t%s' % (prop_name, prop_value)) - # generate configure for sparkbench - with open(spark_prop_conf_filename, 'w') as f: - for source in sorted(sources.keys()): - items = [x for x in sources[source] if x.startswith("spark.")] - if items: - f.write("# Source: %s\n" % source) - f.write("\n".join(sorted(items))) - f.write("\n\n") - # generate configure for samza - with open(samza_prop_conf_filename, 'w') as f: - for source in sorted(sources.keys()): - items = [x for x in sources[source] if x.startswith("samza.")] - if items: - f.write("# Source: %s\n" % source) - f.write("\n".join(sorted(items))) - f.write("\n\n") - # generate configure for spark - with open(sparkbench_prop_conf_filename, 'w') as f: - for source in sorted(sources.keys()): - items = [x for x in sources[source] if x.startswith("sparkbench.") or x.startswith("hibench.")] - if items: - f.write("# Source: %s\n" % source) - f.write("\n".join(sorted(items))) - f.write("\n\n") - - return conf_filename - -if __name__=="__main__": - if len(sys.argv)<4: - raise Exception("Please supply , , [") - conf_root, workload_root, workload_folder = sys.argv[1], sys.argv[2], sys.argv[3] - if len(sys.argv)>4: - patching_config = sys.argv[4] - else: - patching_config = '' - load_config(conf_root, workload_root, workload_folder, patching_config) diff --git a/bin/functions/load_config.py b/bin/functions/load_config.py new file mode 100755 index 000000000..a8bcb66a7 --- /dev/null +++ b/bin/functions/load_config.py @@ -0,0 +1,723 @@ +#!/usr/bin/env python2 +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import os +import glob +import re +import urllib +import socket + +from contextlib import closing +from collections import defaultdict +from hibench_prop_env_mapping import HiBenchEnvPropMappingMandatory, HiBenchEnvPropMapping + +HibenchConf = {} +HibenchConfRef = {} + +# FIXME: use log helper later + + +def log(*s): + if len(s) == 1: + s = s[0] + else: + s = " ".join([str(x) for x in s]) + sys.stderr.write(str(s) + '\n') + + +def log_debug(*s): + # log(*s) + pass + +# copied from http://stackoverflow.com/questions/3575554/python-subprocess-with-timeout-and-large-output-64k +# Comment: I have a better solution, but I'm too lazy to write. +import fcntl +import os +import subprocess +import time + + +def nonBlockRead(output): + fd = output.fileno() + fl = fcntl.fcntl(fd, fcntl.F_GETFL) + fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) + try: + return output.read() + except: + return '' + + +def execute_cmd(cmdline, timeout): + """ + Execute cmdline, limit execution time to 'timeout' seconds. + Uses the subprocess module and subprocess.PIPE. + + Raises TimeoutInterrupt + """ + + p = subprocess.Popen( + cmdline, + bufsize=0, # default value of 0 (unbuffered) is best + shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) + + t_begin = time.time() # Monitor execution time + seconds_passed = 0 + + stdout = '' + stderr = '' + + while p.poll() is None and ( + seconds_passed < timeout or timeout == 0): # Monitor process + time.sleep(0.1) # Wait a little + seconds_passed = time.time() - t_begin + + stdout += nonBlockRead(p.stdout) + stderr += nonBlockRead(p.stderr) + + if seconds_passed >= timeout and timeout > 0: + try: + p.stdout.close() # If they are not closed the fds will hang around until + p.stderr.close() # os.fdlimit is exceeded and cause a nasty exception + p.terminate() # Important to close the fds prior to terminating the process! + # NOTE: Are there any other "non-freed" resources? + except: + pass + + return ('Timeout', stdout, stderr) + + return (p.returncode, stdout, stderr) + + +def shell(cmd, timeout=5): + assert not "${" in cmd, "Error, missing configurations: %s" % ", ".join( + re.findall("\$\{(.*)\}", cmd)) + retcode, stdout, stderr = execute_cmd(cmd, timeout) + if retcode == 'Timeout': + log("ERROR, execute cmd: '%s' timedout." % cmd) + log(" STDOUT:\n" + stdout) + log(" STDERR:\n" + stderr) + log(" Please check!") + assert 0, cmd + " executed timedout for %d seconds" % timeout + + return stdout + + +def exactly_one_file(filename_candidate_list, config_name): + for filename_pattern in filename_candidate_list: + result = exactly_one_file_one_candidate(filename_pattern) + if result != "": + return result + assert 0, "The pattern " + filename_pattern + \ + " matches no files, please set `" + config_name + "` manually" + + +def exactly_one_file_one_candidate(filename_pattern): + files = glob.glob(filename_pattern) + if len(files) == 0: + return "" + elif len(files) == 1: + return files[0] + else: + assert 0, "The pattern " + filename_pattern + \ + " matches more than one file, please remove the redundant files" + +def read_file_content(filepath): + file_content = [] + if(len(glob.glob(filepath)) == 1): + with open(filepath) as f: + file_content = f.readlines() + return file_content + +def parse_conf(conf_root, workload_config_file): + conf_files = sorted(glob.glob(conf_root + "/*.conf")) + \ + sorted(glob.glob(workload_config_file)) + + # load values from conf files + for filename in conf_files: + log("Parsing conf: %s" % filename) + with open(filename) as f: + for line in f.readlines(): + line = line.strip() + if not line: + continue # skip empty lines + if line[0] == '#': + continue # skip comments + try: + key, value = re.split("\s", line, 1) + except ValueError: + key = line.strip() + value = "" + HibenchConf[key] = value.strip() + HibenchConfRef[key] = filename + + +def override_conf_by_paching_conf(): + + # override values from os environment variable settings + # for env_name, prop_name in HiBenchEnvPropMappingMandatory.items() + HiBenchEnvPropMapping.items(): + # if env_name in os.environ: + # env_value = os.getenv(env_name) + # HibenchConf[prop_name] = env_value + # HibenchConfRef[prop_name] = "OS environment variable:%s" % env_name + # override values by patching config + for item in [x for x in patching_config.split(',') if x]: + key, value = re.split('=', item, 1) + HibenchConf[key] = value.strip() + HibenchConfRef[ + key] = "Overrided by parent script during calling: " + item + + +def load_config( + conf_root, + workload_config_file, + workload_folder, + patching_config=""): + abspath = os.path.abspath + conf_root = abspath(conf_root) + workload_config_file = abspath(workload_config_file) + + # get current workload's framework name and store it in framework_name + (dir,framework_name) = os.path.split(workload_folder) + # get workload name + workload_name = os.path.basename(dir) + + parse_conf(conf_root, workload_config_file) + + override_conf_by_paching_conf() + + # generate ref values, replace "${xxx}" to its values + waterfall_config() + # generate auto probe values + generate_optional_value() + # generate ref values again to ensure all values can be found + waterfall_config(force=True) + # check + check_config() + #import pdb;pdb.set_trace() + # Export config to file, let bash script to import as local variables. + print export_config(workload_name, framework_name) + + +def check_config(): # check configures + # Ensure mandatory configures are available + for _, prop_name in HiBenchEnvPropMappingMandatory.items(): + assert HibenchConf.get( + prop_name, None) is not None, "Mandatory configure missing: %s" % prop_name + # Ensure all ref values in configure has been expanded + for _, prop_name in HiBenchEnvPropMappingMandatory.items() + \ + HiBenchEnvPropMapping.items(): + assert "${" not in HibenchConf.get(prop_name, ""), "Unsolved ref key: %s. \n Defined at %s:\n Unsolved value:%s\n" % ( + prop_name, HibenchConfRef.get(prop_name, "unknown"), HibenchConf.get(prop_name, "unknown")) + + +def waterfall_config(force=False): # replace "${xxx}" to its values + no_value_sign = "___###NO_VALUE_SIGN###___" + + def process_replace(m): + raw_key = m.groups()[0] +# key, default_value = (raw_key[2:-1].strip().split(":-") + [None])[:2] + key, spliter, default_value = ( + re.split("(:-|:_)", raw_key[2:-1].strip()) + [None, None])[:3] + + log_debug( + "key:", + key, + " value:", + HibenchConf.get( + key, + "RAWKEY:" + + raw_key), + "default value:" + + repr(default_value)) + if force: + if default_value is None: + return HibenchConf.get(key) +# return HibenchConf.get(key, raw_key) + else: + if spliter == ':_' and not default_value: # no return + return no_value_sign + return HibenchConf.get(key, default_value) + else: + return HibenchConf.get(key, "") or raw_key + + def wildcard_replacement(key, value): + if "*" in key: # we have wildcard replacement + assert len(key.split("*")) == len(value.split("*") + ), "ERROR! The number of wildcards defined in key and value must be identical: %s -> %s" % (key, value) + key_searcher = re.compile("^" + "(.*)".join(key.split("*")) + "$") + matched_keys_to_remove = [] + for k in HibenchConf.keys(): + matched_keys = key_searcher.match(k) + if matched_keys: + matched_keys_to_remove.append(k) + if not "*" in k: + splited_value = value.split("*") + new_key = splited_value[ + 0] + "".join([matched_keys.groups()[idx] + x for idx, x in enumerate(splited_value[1:])]) + + HibenchConf[new_key] = HibenchConf[k] + HibenchConfRef[ + new_key] = "Generated by wildcard rule: %s -> %s" % (key, value) +# log_debug(new_key, HibenchConf[k]) + for key in matched_keys_to_remove: + del HibenchConf[key] + return True + return + + p = re.compile("(\$\{\s*[^\s^\$^\}]+\s*\})") + + wildcard_rules = [] + finish = False + while True: + while not finish: + finish = True + for key, value in HibenchConf.items(): + old_value = value + old_key = key + key = p.sub(process_replace, key) + value = p.sub(process_replace, value) + if key != old_key: + #log_debug("update key:", key, old_key) + HibenchConf[key] = HibenchConf[old_key] + del HibenchConf[old_key] + finish = False + elif value != old_value: # we have updated value, try again + # log_debug("Waterfall conf: %s: %s -> %s" % (key, old_value, value)) + HibenchConf[key] = value + finish = False + + wildcard_rules = [(key, HibenchConf[key]) + for key in HibenchConf if "*" in key] + # now, let's check wildcard replacement rules + for key, value in wildcard_rules: + # check if we found a rule like: aaa.*.ccc.*.ddd -> bbb.*.* + + # wildcard replacement is useful for samza conf, which + # seems can place anything under its conf namespaces. + + # The first wildcard in key will match the first wildcard + # in value, etc. The number of wildcard in key and value + # must be identical. However, it'll be impossible to + # switch the order of two wildcards, something like the + # first wildcard in key to match the second wildcard in + # value. I just don't think it'll be needed. + if not wildcard_replacement( + key, value): # not wildcard rules? re-add + HibenchConf[key] = value + if wildcard_rules: # need try again + wildcard_rules = [] + else: + break + + # all finished, remove values contains no_value_sign + for key in [x for x in HibenchConf if no_value_sign in HibenchConf[x]]: + del HibenchConf[key] + del HibenchConfRef[key] + + +def probe_java_bin(): + # probe JAVA_HOME + if not HibenchConf.get("java.bin", ""): + # probe java bin + if os.environ.get('JAVA_HOME', ''): + # lookup in os environment + HibenchConf['java.bin'] = os.path.join( + os.environ.get('JAVA_HOME'), "bin", "java") + HibenchConfRef[ + 'java.bin'] = "probed from os environment of JAVA_HOME" + else: + # lookup in path + path_dirs = os.environ.get('PATH', '').split(':') + for path in path_dirs: + if os.path.isfile(os.path.join(path, "java")): + HibenchConf['java.bin'] = os.path.join(path, "java") + HibenchConfRef[ + 'java.bin'] = "probed by lookup in $PATH: " + path + break + else: + # still not found? + assert 0, "JAVA_HOME unset or can't found java executable in $PATH" + + +def probe_hadoop_release(): + # probe hadoop release. CDH(only support CDH 5 in HiBench 6.0), HDP, or + # apache + if not HibenchConf.get("hibench.hadoop.release", ""): + cmd_release_and_version = HibenchConf[ + 'hibench.hadoop.executable'] + ' version | head -1' + # version here means, for example apache hadoop {2.7.3} + hadoop_release_and_version = shell(cmd_release_and_version).strip() + + HibenchConf["hibench.hadoop.release"] = \ + "cdh4" if "cdh4" in hadoop_release_and_version else \ + "cdh5" if "cdh5" in hadoop_release_and_version else \ + "apache" if "Hadoop" in hadoop_release_and_version else \ + "UNKNOWN" + HibenchConfRef["hibench.hadoop.release"] = "Inferred by: hadoop executable, the path is:\"%s\"" % HibenchConf[ + 'hibench.hadoop.executable'] + + assert HibenchConf["hibench.hadoop.release"] in ["cdh4", "cdh5", "apache", + "hdp"], "Unknown hadoop release. Auto probe failed, please override `hibench.hadoop.release` to explicitly define this property" + assert HibenchConf[ + "hibench.hadoop.release"] != "cdh4", "Hadoop release CDH4 is not supported in HiBench6.0, please upgrade to CDH5 or use Apache Hadoop/HDP" + + +def probe_hadoop_examples_jars(): + # probe hadoop example jars + if not HibenchConf.get("hibench.hadoop.examples.jar", ""): + examples_jars_candidate_apache0 = HibenchConf[ + 'hibench.hadoop.home'] + "/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar" + examples_jars_candidate_cdh0 = HibenchConf[ + 'hibench.hadoop.home'] + "/share/hadoop/mapreduce2/hadoop-mapreduce-examples-*.jar" + examples_jars_candidate_cdh1 = HibenchConf[ + 'hibench.hadoop.home'] + "/../../jars/hadoop-mapreduce-examples-*.jar" + examples_jars_candidate_hdp0 = HibenchConf[ + 'hibench.hadoop.home'] + "/hadoop-mapreduce-examples.jar" + examples_jars_candidate_list = [ + examples_jars_candidate_apache0, + examples_jars_candidate_cdh0, + examples_jars_candidate_cdh1, + examples_jars_candidate_hdp0] + + HibenchConf["hibench.hadoop.examples.jar"] = exactly_one_file( + examples_jars_candidate_list, "hibench.hadoop.examples.jar") + HibenchConfRef["hibench.hadoop.examples.jar"] = "Inferred by " + \ + HibenchConf["hibench.hadoop.examples.jar"] + + +def probe_hadoop_examples_test_jars(): + # probe hadoop examples test jars + if not HibenchConf.get("hibench.hadoop.examples.test.jar", ""): + examples_test_jars_candidate_apache0 = HibenchConf[ + 'hibench.hadoop.home'] + "/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient*-tests.jar" + examples_test_jars_candidate_cdh0 = HibenchConf[ + 'hibench.hadoop.home'] + "/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient*-tests.jar" + examples_test_jars_candidate_cdh1 = HibenchConf[ + 'hibench.hadoop.home'] + "/../../jars/hadoop-mapreduce-client-jobclient*-tests.jar" + examples_test_jars_candidate_hdp0 = HibenchConf[ + 'hibench.hadoop.home'] + "/hadoop-mapreduce-client-jobclient-tests.jar" + examples_test_jars_candidate_list = [ + examples_test_jars_candidate_apache0, + examples_test_jars_candidate_cdh0, + examples_test_jars_candidate_cdh1, + examples_test_jars_candidate_hdp0] + + HibenchConf["hibench.hadoop.examples.test.jar"] = exactly_one_file( + examples_test_jars_candidate_list, "hibench.hadoop.examples.test.jar") + HibenchConfRef["hibench.hadoop.examples.test.jar"] = "Inferred by " + \ + HibenchConf["hibench.hadoop.examples.test.jar"] + + +def probe_sleep_job_jar(): + # set hibench.sleep.job.jar + if not HibenchConf.get('hibench.sleep.job.jar', ''): + log("probe sleep jar:", HibenchConf[ + 'hibench.hadoop.examples.test.jar']) + HibenchConf["hibench.sleep.job.jar"] = HibenchConf[ + 'hibench.hadoop.examples.test.jar'] + HibenchConfRef[ + "hibench.sleep.job.jar"] = "Refer to `hibench.hadoop.examples.test.jar` according to the evidence of `hibench.hadoop.release`" + + +def probe_hadoop_configure_dir(): + # probe hadoop configuration files + if not HibenchConf.get("hibench.hadoop.configure.dir", ""): + # For Apache, HDP, and CDH release + HibenchConf["hibench.hadoop.configure.dir"] = join( + HibenchConf["hibench.hadoop.home"], "etc", "hadoop") + HibenchConfRef[ + "hibench.hadoop.configure.dir"] = "Inferred by: `hibench.hadoop.home`" + + +def probe_mapper_reducer_names(): + # set hadoop mapper/reducer property names + if not HibenchConf.get("hibench.hadoop.mapper.name", ""): + HibenchConf["hibench.hadoop.mapper.name"] = "mapreduce.job.maps" + HibenchConfRef[ + "hibench.hadoop.mapper.name"] = "Use default mapper name" + if not HibenchConf.get("hibench.hadoop.reducer.name", ""): + HibenchConf["hibench.hadoop.reducer.name"] = "mapreduce.job.reduces" + HibenchConfRef[ + "hibench.hadoop.reducer.name"] = "Use default reducer name" + + +def probe_spark_conf_value(conf_name, default_value): + spark_home = HibenchConf.get("hibench.spark.home", "") + assert spark_home, "`hibench.spark.home` undefined, please fix it and retry" + join = os.path.join + spark_env_file = join(spark_home, "conf/spark-env.sh") + value = default_value + + file_content = read_file_content(spark_env_file) + for line in file_content: + if not line.strip().startswith( + "#") and conf_name in line: + if "\"" in line: + value = line.split("=")[1].split("\"")[1] + elif "\'" in line: + value = line.split("=")[1].split("\'")[1] + else: + value = line.split("=")[1] + value = value.strip() + return value + + +def probe_spark_master_webui_port(): + return probe_spark_conf_value("SPARK_MASTER_WEBUI_PORT", "8080") + + +def probe_spark_worker_webui_port(): + return probe_spark_conf_value("SPARK_WORKER_WEBUI_PORT", "8081") + +def probe_masters_slaves_by_Yarn(): + yarn_executable = os.path.join(os.path.dirname( + HibenchConf['hibench.hadoop.executable']), "yarn") + cmd = "( " + yarn_executable + \ + " node -list 2> /dev/null | grep RUNNING )" + try: + worker_hostnames = [ + line.split(":")[0] for line in shell(cmd).split("\n")] + HibenchConf['hibench.slaves.hostnames'] = " ".join( + worker_hostnames) + HibenchConfRef[ + 'hibench.slaves.hostnames'] = "Probed by parsing results from: " + cmd + + # parse yarn resource manager from hadoop conf + yarn_site_file = os.path.join( + HibenchConf["hibench.hadoop.configure.dir"], "yarn-site.xml") + with open(yarn_site_file) as f: + file_content = f.read() + match_address = re.findall( + "\\s*\\s*yarn.resourcemanager.address[.\w\s]*\<\/name\>\s*\([a-zA-Z\-\._0-9]+)(:\d+)?\<\/value\>", + file_content) + match_hostname = re.findall( + "\\s*\\s*yarn.resourcemanager.hostname[.\w\s]*\<\/name\>\s*\([a-zA-Z\-\._0-9]+)(:\d+)?\<\/value\>", + file_content) + if match_address: + resourcemanager_hostname = match_address[0][0] + HibenchConf[ + 'hibench.masters.hostnames'] = resourcemanager_hostname + HibenchConfRef[ + 'hibench.masters.hostnames'] = "Parsed from " + yarn_site_file + elif match_hostname: + resourcemanager_hostname = match_hostname[0][0] + HibenchConf[ + 'hibench.masters.hostnames'] = resourcemanager_hostname + HibenchConfRef[ + 'hibench.masters.hostnames'] = "Parsed from " + yarn_site_file + else: + assert 0, "Unknown resourcemanager, please check `hibench.hadoop.configure.dir` and \"yarn-site.xml\" file" + except Exception as e: + assert 0, "Get workers from yarn-site.xml page failed, reason:%s\nplease set `hibench.masters.hostnames` and `hibench.slaves.hostnames` manually" % e + + +def probe_masters_slaves_hostnames(): + + # probe masters, slaves hostnames + # determine running mode according to spark master configuration + if not ( + HibenchConf.get( + "hibench.masters.hostnames", + "") and HibenchConf.get( + "hibench.slaves.hostnames", + "")): # no pre-defined hostnames, let's probe + if not (HibenchConf.get("hibench.spark.master", "")): + probe_masters_slaves_by_Yarn() + else: + spark_master = HibenchConf['hibench.spark.master'] + # local mode + if spark_master.startswith("local"): + HibenchConf['hibench.masters.hostnames'] = '' # no master + # localhost as slaves + HibenchConf['hibench.slaves.hostnames'] = 'localhost' + HibenchConfRef['hibench.masters.hostnames'] = HibenchConfRef[ + 'hibench.slaves.hostnames'] = "Probed by the evidence of 'hibench.spark.master=%s'" % spark_master + # spark standalone mode + elif spark_master.startswith("spark"): + HibenchConf['hibench.masters.hostnames'] = spark_master[8:].split(":")[ + 0] + HibenchConfRef[ + 'hibench.masters.hostnames'] = "Probed by the evidence of 'hibench.spark.master=%s'" % spark_master + try: + log(spark_master, HibenchConf['hibench.masters.hostnames']) + master_port = probe_spark_master_webui_port() + worker_port = probe_spark_worker_webui_port() + # Make the assumption that the master is in internal network, and force not to use any proxies + with closing(urllib.urlopen('http://%s:%s' % (HibenchConf['hibench.masters.hostnames'], master_port), proxies={})) as page: + worker_hostnames = [ + re.findall( + "http:\/\/([a-zA-Z\-\._0-9]+):%s" % + worker_port, + x)[0] for x in page.readlines() if "%s" % + worker_port in x and "worker" in x] + HibenchConf['hibench.slaves.hostnames'] = " ".join( + worker_hostnames) + HibenchConfRef['hibench.slaves.hostnames'] = "Probed by parsing " + \ + 'http://%s:%s' % (HibenchConf['hibench.masters.hostnames'], master_port) + except Exception as e: + assert 0, "Get workers from spark master's web UI page failed, \nPlease check your configurations, network settings, proxy settings, or set `hibench.masters.hostnames` and `hibench.slaves.hostnames` manually, master_port: %s, slave_port:%s" % (master_port, worker_port) + # yarn mode + elif spark_master.startswith("yarn"): + probe_masters_slaves_by_Yarn() + # reset hostnames according to gethostbyaddr + names = set( + HibenchConf['hibench.masters.hostnames'].split() + + HibenchConf['hibench.slaves.hostnames'].split()) + new_name_mapping = {} + for name in names: + try: + new_name_mapping[name] = socket.gethostbyaddr(name)[0] + except: # host name lookup failure? + new_name_mapping[name] = name + HibenchConf['hibench.masters.hostnames'] = repr(" ".join( + [new_name_mapping[x] for x in HibenchConf['hibench.masters.hostnames'].split()])) + HibenchConf['hibench.slaves.hostnames'] = repr(" ".join( + [new_name_mapping[x] for x in HibenchConf['hibench.slaves.hostnames'].split()])) + + +def probe_java_opts(): + file_name = os.path.join( + HibenchConf['hibench.hadoop.configure.dir'], + 'mapred-site.xml') + cnt = 0 + map_java_opts_line = "" + reduce_java_opts_line = "" + lines = read_file_content(file_name) + content = "" + for line in lines: + content = content + line + # Do the split for itself so as to deal with any weird xml style + content = content.split("") + for line in content: + if "mapreduce.map.java.opts" in line and cnt + 1 < len(content): + map_java_opts_line = content[cnt + 1] + if "mapreduce.reduce.java.opts" in line and cnt + 1 < len(content): + reduce_java_opts_line = content[cnt + 1] + cnt += 1 + + def add_quotation_marks(line): + if not (line.startswith("'") or line.startswith("\"")): + return repr(line) + if map_java_opts_line != "": + HibenchConf['hibench.dfsioe.map.java_opts'] = add_quotation_marks( + map_java_opts_line.split("<")[0].strip()) + HibenchConfRef['hibench.dfsioe.map.java_opts'] = "Probed by configuration file:'%s'" % os.path.join( + HibenchConf['hibench.hadoop.configure.dir'], 'mapred-site.xml') + if reduce_java_opts_line != "": + HibenchConf['hibench.dfsioe.red.java_opts'] = add_quotation_marks( + reduce_java_opts_line.split("<")[0].strip()) + HibenchConfRef['hibench.dfsioe.red.java_opts'] = "Probed by configuration file:'%s'" % os.path.join( + HibenchConf['hibench.hadoop.configure.dir'], 'mapred-site.xml') + + +def generate_optional_value(): + # get some critical values from environment or make a guess + d = os.path.dirname + join = os.path.join + HibenchConf['hibench.home'] = d(d(d(os.path.abspath(__file__)))) + del d + HibenchConfRef[ + 'hibench.home'] = "Inferred from relative path of dirname(%s)/../../" % __file__ + + probe_java_bin() + probe_hadoop_release() + probe_hadoop_examples_jars() + probe_hadoop_examples_test_jars() + probe_sleep_job_jar() + probe_hadoop_configure_dir() + probe_mapper_reducer_names() + probe_masters_slaves_hostnames() + probe_java_opts() + + +def export_config(workload_name, framework_name): + join = os.path.join + report_dir = HibenchConf['hibench.report.dir'] + conf_dir = join(report_dir, workload_name, framework_name, 'conf') + conf_filename = join(conf_dir, "%s.conf" % workload_name) + + spark_conf_dir = join(conf_dir, "sparkbench") + spark_prop_conf_filename = join(spark_conf_dir, "spark.conf") + sparkbench_prop_conf_filename = join(spark_conf_dir, "sparkbench.conf") + + if not os.path.exists(spark_conf_dir): + os.makedirs(spark_conf_dir) + if not os.path.exists(conf_dir): + os.makedirs(conf_dir) + + # generate configure for hibench + sources = defaultdict(list) + for env_name, prop_name in HiBenchEnvPropMappingMandatory.items() + \ + HiBenchEnvPropMapping.items(): + source = HibenchConfRef.get(prop_name, 'None') + sources[source].append('%s=%s' % + (env_name, HibenchConf.get(prop_name, ''))) + + with open(conf_filename, 'w') as f: + for source in sorted(sources.keys()): + f.write("# Source: %s\n" % source) + f.write("\n".join(sorted(sources[source]))) + f.write("\n\n") + f.write("#Source: add for internal usage\n") + f.write( + "SPARKBENCH_PROPERTIES_FILES=%s\n" % + sparkbench_prop_conf_filename) + f.write("SPARK_PROP_CONF=%s\n" % spark_prop_conf_filename) + f.write("WORKLOAD_RESULT_FOLDER=%s\n" % join(conf_dir, "..")) + f.write("HIBENCH_WORKLOAD_CONF=%s\n" % conf_filename) + f.write("export HADOOP_EXECUTABLE\n") + f.write("export HADOOP_CONF_DIR\n") + + # generate properties for spark & sparkbench + sources = defaultdict(list) + for prop_name, prop_value in HibenchConf.items(): + source = HibenchConfRef.get(prop_name, 'None') + sources[source].append('%s\t%s' % (prop_name, prop_value)) + # generate configure for sparkbench + with open(spark_prop_conf_filename, 'w') as f: + for source in sorted(sources.keys()): + items = [x for x in sources[source] if x.startswith("spark.")] + if items: + f.write("# Source: %s\n" % source) + f.write("\n".join(sorted(items))) + f.write("\n\n") + # generate configure for spark + with open(sparkbench_prop_conf_filename, 'w') as f: + for source in sorted(sources.keys()): + items = [x for x in sources[source] if x.startswith( + "sparkbench.") or x.startswith("hibench.")] + if items: + f.write("# Source: %s\n" % source) + f.write("\n".join(sorted(items))) + f.write("\n\n") + + return conf_filename + +if __name__ == "__main__": + if len(sys.argv) < 4: + raise Exception( + "Please supply , , [") + conf_root, workload_configFile, workload_folder = sys.argv[ + 1], sys.argv[2], sys.argv[3] + if len(sys.argv) > 4: + patching_config = sys.argv[4] + else: + patching_config = '' + load_config(conf_root, workload_configFile, workload_folder, patching_config) diff --git a/bin/functions/test_load_config.py b/bin/functions/test_load_config.py new file mode 100644 index 000000000..b13b1f7db --- /dev/null +++ b/bin/functions/test_load_config.py @@ -0,0 +1,443 @@ +import unittest +import os +import load_config +import mock +import fnmatch +import re +import glob + + +def print_hint_seperator(hint): + print("\n" + hint) + print("--------------------------------") + + +def run_test(test_case): + suite = unittest.TestLoader().loadTestsFromTestCase(test_case) + unittest.TextTestRunner(verbosity=2).run(suite) + + +def parse_conf(): + conf_root = os.path.abspath(".") + "/../../conf" + conf_files = sorted(glob.glob(conf_root + "/*.conf")) + # load values from conf files + for filename in conf_files: + with open(filename) as f: + for line in f.readlines(): + line = line.strip() + if not line: + continue # skip empty lines + if line[0] == '#': + continue # skip comments + try: + key, value = re.split("\s", line, 1) + except ValueError: + key = line.strip() + value = "" + load_config.HibenchConf[key] = value.strip() + load_config.HibenchConfRef[key] = filename + + +def parse_conf_before_probe(): + parse_conf() + load_config.waterfall_config() + + +def get_expected(name): + expected_probe_conf_path = "/test_load_config_answer.conf" + test_load_config_answer = os.path.abspath(".") + expected_probe_conf_path + content = load_config.read_file_content(test_load_config_answer) + for line in content: + line = line.strip() + if not line: + continue # skip empty lines + if line[0] == '#': + continue # skip comments + try: + key, value = re.split("\s", line, 1) + except ValueError: + key = line.strip() + value = "" + if key == name: + return value.strip() + return "" + + +def test_probe_hadoop_examples_jars(): + + def test_probe_hadoop_examples_jars_generator(case_num): + def test(self): + + def exactly_one_file_one_candidate(filename_pattern): + regex = fnmatch.translate(filename_pattern) + reobj = re.compile(regex) + if reobj.match(hadoop_examples_jars_list[case_num][1]): + return hadoop_examples_jars_list[case_num][1] + else: + return "" + + mock_exactly_one_file_one_candidate = mock.Mock( + side_effect=exactly_one_file_one_candidate) + with mock.patch("load_config.exactly_one_file_one_candidate", + mock_exactly_one_file_one_candidate): + try: + from load_config import probe_hadoop_examples_jars + probe_hadoop_examples_jars() + except: + pass + answer = load_config.HibenchConf["hibench.hadoop.examples.jar"] + self.assertEqual( + os.path.abspath(answer), os.path.abspath( + hadoop_examples_jars_list[case_num][1])) + + return test + + hadoop_examples_jars_list = [["apache0", + "/tmp/test/hadoop_home/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar"], + ["cdh0", + "/tmp/test/hadoop_home/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.7.3.jar"], + ["cdh1", + "/tmp/test/hadoop_home/../../jars/hadoop-mapreduce-examples-2.7.3.jar"], + ["hdp0", + "/tmp/test/hadoop_home/hadoop-mapreduce-examples.jar"]] + + for i in range(len(hadoop_examples_jars_list)): + test_name = 'test_%s' % hadoop_examples_jars_list[i][0] + test = test_probe_hadoop_examples_jars_generator(i) + setattr(ProbeHadoopExamplesTestCase, test_name, test) + + print_hint_seperator("Test probe hadoop examples jars:") + run_test(ProbeHadoopExamplesTestCase) + + +def test_probe_hadoop_test_examples_jars(): + def test_probe_hadoop_examples_jars_generator(case_num): + def test(self): + + def exactly_one_file_one_candidate(filename_pattern): + regex = fnmatch.translate(filename_pattern) + reobj = re.compile(regex) + if reobj.match(hadoop_test_examples_jars_list[case_num][1]): + return hadoop_test_examples_jars_list[case_num][1] + else: + return "" + + mock_exactly_one_file_one_candidate = mock.Mock( + side_effect=exactly_one_file_one_candidate) + with mock.patch("load_config.exactly_one_file_one_candidate", + mock_exactly_one_file_one_candidate): + try: + from load_config import probe_hadoop_examples_test_jars + probe_hadoop_examples_test_jars() + except: + pass + answer = load_config.HibenchConf[ + "hibench.hadoop.examples.test.jar"] + self.assertEqual( + os.path.abspath(answer), os.path.abspath( + hadoop_test_examples_jars_list[case_num][1])) + + return test + + hadoop_test_examples_jars_list = [["apache0", + "/tmp/test/hadoop_home/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.3-tests.jar"], + ["cdh0", + "/tmp/test/hadoop_home/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient-2.7.3-tests.jar"], + ["cdh1", + "/tmp/test/hadoop_home/../../jars/hadoop-mapreduce-client-jobclient-2.7.3-tests.jar"], + ["hdp0", + "/tmp/test/hadoop_home/hadoop-mapreduce-client-jobclient-tests.jar"]] + + for i in range(len(hadoop_test_examples_jars_list)): + test_name = 'test_%s' % hadoop_test_examples_jars_list[i][0] + test = test_probe_hadoop_examples_jars_generator(i) + setattr(ProbeHadoopTestExamplesTestCase, test_name, test) + + print_hint_seperator("Test probe hadoop test examples jars:") + run_test(ProbeHadoopTestExamplesTestCase) + + +def test_probe_java_bin(): + print_hint_seperator("Test probe java bin:") + run_test(ProbeJavaBinTestCase) + + +def test_probe_hadoop_release(): + print_hint_seperator("Test probe hadoop release:") + run_test(ProbeHadoopReleaseTestCase) + + +def test_probe_spark_version(): + print_hint_seperator("Test probe spark version") + run_test(ProbeSparkVersionTestCase) + + +def test_probe_hadoop_conf_dir(): + print_hint_seperator("Test probe hadoop conf dir") + run_test(ProbeHadoopConfDirTestCase) + + +def test_probe_spark_conf_value(): + def test_probe_spark_conf_value_generator(case_num): + def test(self): + load_config.HibenchConf[ + "hibench.spark.home"] = "/tmp/test/spark_home" + + conf_name = spark_conf_test_case_list[case_num][1] + line = spark_conf_test_case_list[case_num][2] + default = spark_conf_test_case_list[case_num][3] + + def read_file_content(filepath): + if filepath == "/tmp/test/spark_home/conf/spark-env.sh": + return [line] + else: + return [] + + mock_read_file_content = mock.Mock(side_effect=read_file_content) + with mock.patch("load_config.read_file_content", + mock_read_file_content): + answer = "" + + try: + from load_config import probe_spark_conf_value + answer = probe_spark_conf_value(conf_name, default) + except: + pass + expected = default + if len(line.split("=")) >= 2: + expected = line.split("=")[1] + expected = expected.strip("\'") + expected = expected.strip("\"") + self.assertEqual(str(answer), expected) + + return test + + spark_conf_test_case_list = [["spark_master_webui_port_simple", + "SPARK_MASTER_WEBUI_PORT", + "export SPARK_MASTER_WEBUI_PORT=8880", + "8080"], + ["spark_master_webui_port_single_quotes", + "SPARK_MASTER_WEBUI_PORT", + "export SPARK_MASTER_WEBUI_PORT=\'8880\'", + "8080"], + ["spark_master_webui_port_double_quotes", + "SPARK_MASTER_WEBUI_PORT", + "export SPARK_MASTER_WEBUI_PORT=\"8880\"", + "8080"], + ] + + for i in range(len(spark_conf_test_case_list)): + test_name = 'test_%s' % spark_conf_test_case_list[i][0] + test = test_probe_spark_conf_value_generator(i) + setattr(ProbeSparkConfValueTestCase, test_name, test) + print_hint_seperator("Test probe spark conf value") + run_test(ProbeSparkConfValueTestCase) + + +def test_probe_java_opts(): + print_hint_seperator("Test probe java opts") + run_test(ProbeJavaOptsTestCase) + + +def test_probe_masters_slaves_hostnames(): + print_hint_seperator("Test probe masters slaves hostnames") + run_test(ProbeMastersSlavesHostnamesTestCase) + + +class ProbeHadoopExamplesTestCase(unittest.TestCase): + + def setUp(self): + load_config.HibenchConf[ + "hibench.hadoop.home"] = "/tmp/test/hadoop_home" + + def tearDown(self): + load_config.HibenchConf["hibench.hadoop.examples.jar"] = "" + + +class ProbeHadoopTestExamplesTestCase(unittest.TestCase): + + def setUp(self): + load_config.HibenchConf[ + "hibench.hadoop.home"] = "/tmp/test/hadoop_home" + + def tearDown(self): + load_config.HibenchConf["hibench.hadoop.examples.test.jar"] = "" + + +class ProbeJavaBinTestCase(unittest.TestCase): + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_probe_java_bin(self): + load_config.probe_java_bin() + answer = load_config.HibenchConf["java.bin"] + expected = get_expected("java.bin") + self.assertEqual(answer, expected) + + +class ProbeHadoopReleaseTestCase(unittest.TestCase): + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_probe_hadoop_release(self): + parse_conf_before_probe() + load_config.probe_hadoop_release() + answer = load_config.HibenchConf["hibench.hadoop.release"] + expected = get_expected("hibench.hadoop.release") + self.assertEqual(answer, expected) + + +class ProbeSparkVersionTestCase(unittest.TestCase): + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_probe_spark_version(self): + parse_conf_before_probe() + load_config.probe_spark_version() + answer = load_config.HibenchConf["hibench.spark.version"] + expected = get_expected("hibench.spark.version") + self.assertEqual(answer, expected) + + +class ProbeHadoopConfDirTestCase(unittest.TestCase): + + def expected_hadoop_conf_dir(self): + if not load_config.HibenchConf.get("hibench.hadoop.configure.dir", ""): + hadoop_conf_dir = os.path.join( + load_config.HibenchConf["hibench.hadoop.home"], "etc", "hadoop") + else: + hadoop_conf_dir = load_config.HibenchConf[ + "hibench.hadoop.configure.dir"] + return hadoop_conf_dir + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_probe_hadoop_conf_dir(self): + parse_conf_before_probe() + load_config.probe_hadoop_configure_dir() + answer = load_config.HibenchConf["hibench.hadoop.configure.dir"] + expected = self.expected_hadoop_conf_dir() + self.assertEqual(answer, expected) + + +class ProbeSparkConfValueTestCase(unittest.TestCase): + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_probe_spark_conf_value_default_value(self): + parse_conf_before_probe() + conf_name = "Whatever~" + default_value = "RIGHT_ANSWER" + answer = load_config.probe_spark_conf_value(conf_name, default_value) + expected = default_value + self.assertEqual(answer, expected) + + +class ProbeJavaOptsTestCase(unittest.TestCase): + + def setUp(self): + load_config.HibenchConf[ + "hibench.hadoop.home"] = "/tmp/test/hadoop_home" + load_config.HibenchConf[ + "hibench.hadoop.configure.dir"] = "/tmp/test/hadoop_home/etc/hadoop" + + def tearDown(self): + pass + + def test_probe_java_opts(self): + + mapred_site_path = load_config.HibenchConf[ + "hibench.hadoop.configure.dir"] + "/mapred-site.xml" + + mapred_site_content = "mapreduce.map.java.opts-Xmx1536M -DpreferIPv4Stack=truemapreduce.reduce.java.opts-Xmx1536M -DpreferIPv4Stack=true" + expected_map_java_opts = "-Xmx1536M -DpreferIPv4Stack=true" + expected_reduce_java_opts = "-Xmx1536M -DpreferIPv4Stack=true" + + def read_file_content_java_opts(filepath): + if filepath == "/tmp/test/hadoop_home/etc/hadoop/mapred-site.xml": + return [mapred_site_content] + else: + return [] + + mock_read_file_content_java_opts = mock.Mock( + side_effect=read_file_content_java_opts) + with mock.patch("load_config.read_file_content", + mock_read_file_content_java_opts): + answer = "" + + try: + from load_config import probe_java_opts + probe_java_opts() + answer = "" + except: + pass + + answer_map_java_opts = load_config.HibenchConf[ + 'hibench.dfsioe.map.java_opts'] + answer_red_java_opts = load_config.HibenchConf[ + 'hibench.dfsioe.red.java_opts'] + if answer_map_java_opts.startswith("\'"): + expected_map_java_opts = "\'" + expected_map_java_opts + "\'" + elif answer_map_java_opts.startswith("\""): + expected_map_java_opts = "\"" + expected_map_java_opts + "\"" + self.assertEqual(answer_map_java_opts, expected_map_java_opts) + if answer_red_java_opts.startswith("\'"): + expected_reduce_java_opts = "\'" + expected_reduce_java_opts + "\'" + elif answer_red_java_opts.startswith("\""): + expected_reduce_java_opts = "\"" + expected_reduce_java_opts + "\"" + self.assertEqual(answer_red_java_opts, expected_reduce_java_opts) + + +class ProbeMastersSlavesHostnamesTestCase(unittest.TestCase): + + def setUp(self): + pass + + def tearDown(self): + pass + + def test_probe_masters_slaves_hostnames(self): + load_config.probe_masters_slaves_hostnames() + answer_masters_hostnames = load_config.HibenchConf[ + 'hibench.masters.hostnames'] + answer_slaves_hostnames = load_config.HibenchConf[ + 'hibench.slaves.hostnames'] + expected_masters_hostnames = get_expected("hibench.masters.hostnames") + expected_slaves_hostnames = get_expected("hibench.slaves.hostnames") + self.assertEqual( + answer_masters_hostnames.strip("\'"), + expected_masters_hostnames) + self.assertEqual( + answer_slaves_hostnames.strip("\'"), + expected_slaves_hostnames) + +if __name__ == '__main__': + test_probe_hadoop_examples_jars() + test_probe_hadoop_test_examples_jars() + test_probe_java_bin() + test_probe_hadoop_release() + test_probe_spark_version() + test_probe_hadoop_conf_dir() + test_probe_spark_conf_value() + test_probe_java_opts() + test_probe_masters_slaves_hostnames() diff --git a/bin/functions/test_load_config_answer.conf b/bin/functions/test_load_config_answer.conf new file mode 100644 index 000000000..ebf86c849 --- /dev/null +++ b/bin/functions/test_load_config_answer.conf @@ -0,0 +1,5 @@ +java.bin /usr/java/jdk1.8.0_05/bin/java +hibench.hadoop.release apache +hibench.spark.version spark1.6 +hibench.masters.hostnames localhost +hibench.slaves.hostnames localhost diff --git a/bin/functions/workload-functions.sh b/bin/functions/workload-functions.sh index 2f9ec27cf..a7827ab6a 100644 --- a/bin/functions/workload-functions.sh +++ b/bin/functions/workload-functions.sh @@ -26,16 +26,15 @@ HIBENCH_CONF_FOLDER=${HIBENCH_CONF_FOLDER:-${workload_func_bin}/../../conf} function enter_bench(){ # declare the entrance of a workload assert $1 "Workload name not specified." - assert $2 "Workload root not specified." - assert $3 "Workload folder not specified." + assert $2 "Workload config file not specified." + assert $3 "Current workload folder not specified." export HIBENCH_CUR_WORKLOAD_NAME=$1 - workload_root=$2 + workload_config_file=$2 workload_folder=$3 shift 3 patching_args=$@ echo "patching args=$patching_args" - local CONF_FILE=`${workload_func_bin}/load-config.py ${HIBENCH_CONF_FOLDER} $workload_root $workload_folder $patching_args` -# ${workload_func_bin}/load-config.py ${HIBENCH_CONF_FOLDER} $workload_root $workload_folder $patching_args + local CONF_FILE=`${workload_func_bin}/load_config.py ${HIBENCH_CONF_FOLDER} $workload_config_file $workload_folder $patching_args` . $CONF_FILE } @@ -111,11 +110,7 @@ function gen_report() { # dump the result to report file function rmr-hdfs(){ # rm -r for hdfs assert $1 "dir parameter missing" - if [ $HADOOP_VERSION == "hadoop1" ] && [ "$HADOOP_RELEASE" == "apache" ]; then - RMDIR_CMD="fs -rmr -skipTrash" - else - RMDIR_CMD="fs -rm -r -skipTrash" - fi + RMDIR_CMD="fs -rm -r -skipTrash" local CMD="$HADOOP_EXECUTABLE --config $HADOOP_CONF_DIR $RMDIR_CMD $1" echo -e "${BCyan}hdfs rm -r: ${Cyan}${CMD}${Color_Off}" > /dev/stderr execute_withlog ${CMD} @@ -152,11 +147,7 @@ function upload-to-hdfs(){ function dus-hdfs(){ # du -s for hdfs assert $1 "dir parameter missing" - if [ $HADOOP_VERSION == "hadoop1" ] && [ "$HADOOP_RELEASE" == "apache" ]; then - DUS_CMD="fs -dus" - else - DUS_CMD="fs -du -s" - fi + DUS_CMD="fs -du -s" local CMD="$HADOOP_EXECUTABLE --config $HADOOP_CONF_DIR $DUS_CMD $1" echo -e "${BPurple}hdfs du -s: ${Purple}${CMD}${Color_Off}" > /dev/stderr execute_withlog ${CMD} @@ -191,34 +182,6 @@ function dir_size() { done } -function check_compress() { - if [ "x"$HADOOP_VERSION == "xhadoop2" ]; then - - if [ $COMPRESS -eq 1 ]; then - COMPRESS_OPT="-Dmapreduce.map.output.compress=true \ - -Dmapreduce.map.output.compress.codec=$COMPRESS_CODEC_MAP \ - -Dmapreduce.output.fileoutputformat.compress=true \ - -Dmapreduce.output.fileoutputformat.compress.codec=$COMPRESS_CODEC \ - -Dmapreduce.output.fileoutputformat.compress.type=BLOCK " - else - COMPRESS_OPT="-Dmapreduce.output.fileoutputformat.compress=false " - fi - - else - if [ $COMPRESS -eq 1 ]; then - - COMPRESS_OPT="-Dmapred.map.output.compress=true \ - -Dmapred.map.output.compress.codec=$COMPRESS_CODEC_MAP \ - -Dmapred.output.compress=true \ - -Dmapred.output.compression.codec=$COMPRESS_CODEC \ - -Dmapred.output.compression.type=BLOCK " - - else - COMPRESS_OPT="-Dmapred.output.compress=false" - fi - fi -} - function run-spark-job() { LIB_JARS= while (($#)); do @@ -243,11 +206,11 @@ function run-spark-job() { if [[ -n "${YARN_EXECUTOR_CORES:-}" ]]; then YARN_OPTS="${YARN_OPTS} --executor-cores ${YARN_EXECUTOR_CORES}" fi - if [[ -n "${YARN_EXECUTOR_MEMORY:-}" ]]; then - YARN_OPTS="${YARN_OPTS} --executor-memory ${YARN_EXECUTOR_MEMORY}" + if [[ -n "${SPARK_YARN_EXECUTOR_MEMORY:-}" ]]; then + YARN_OPTS="${YARN_OPTS} --executor-memory ${SPARK_YARN_EXECUTOR_MEMORY}" fi - if [[ -n "${YARN_DRIVER_MEMORY:-}" ]]; then - YARN_OPTS="${YARN_OPTS} --driver-memory ${YARN_DRIVER_MEMORY}" + if [[ -n "${SPAKR_YARN_DRIVER_MEMORY:-}" ]]; then + YARN_OPTS="${YARN_OPTS} --driver-memory ${SPARK_YARN_DRIVER_MEMORY}" fi fi if [[ "$CLS" == *.py ]]; then @@ -270,16 +233,24 @@ function run-spark-job() { fi } -function run-streaming-job (){ - run-spark-job --jars ${STREAMINGBENCH_JARS} $@ -} - function run-storm-job(){ - CMD="${STORM_BIN_HOME}/storm jar ${STREAMBENCH_STORM_JAR} $@" + CMD="${STORM_HOME}/bin/storm jar ${STREAMBENCH_STORM_JAR} $@" echo -e "${BGreen}Submit Storm Job: ${Green}$CMD${Color_Off}" execute_withlog $CMD } +function run-gearpump-app(){ + CMD="${GEARPUMP_HOME}/bin/gear app -executors ${STREAMBENCH_GEARPUMP_EXECUTORS} -jar ${STREAMBENCH_GEARPUMP_JAR} $@" + echo -e "${BGreen}Submit Gearpump Application: ${Green}$CMD${Color_Off}" + execute_withlog $CMD +} + +function run-flink-job(){ + CMD="${FLINK_HOME}/bin/flink run -p ${STREAMBENCH_FLINK_PARALLELISM} -m ${HIBENCH_FLINK_MASTER} $@ ${STREAMBENCH_FLINK_JAR} ${SPARKBENCH_PROPERTIES_FILES}" + echo -e "${BGreen}Submit Flink Job: ${Green}$CMD${Color_Off}" + execute_withlog $CMD +} + function run-hadoop-job(){ ENABLE_MONITOR=1 if [ "$1" = "--without-monitor" ]; then @@ -310,12 +281,12 @@ function run-hadoop-job(){ } function ensure-hivebench-release(){ - if [ ! -e ${DEPENDENCY_DIR}"/hivebench/target/"$HIVE_RELEASE".tar.gz" ]; then + if [ ! -e ${HIBENCH_HOME}"/hadoopbench/sql/target/"$HIVE_RELEASE".tar.gz" ]; then assert 0 "Error: The hive bin file hasn't be downloaded by maven, please check!" exit fi - cd ${DEPENDENCY_DIR}"/hivebench/target" + cd ${HIBENCH_HOME}"/hadoopbench/sql/target" if [ ! -d $HIVE_HOME ]; then tar zxf $HIVE_RELEASE".tar.gz" fi @@ -323,12 +294,12 @@ function ensure-hivebench-release(){ } function ensure-mahout-release (){ - if [ ! -e ${DEPENDENCY_DIR}"/mahout/target/"$MAHOUT_RELEASE".tar.gz" ]; then + if [ ! -e ${HIBENCH_HOME}"/hadoopbench/mahout/target/"$MAHOUT_RELEASE".tar.gz" ]; then assert 0 "Error: The mahout bin file hasn't be downloaded by maven, please check!" exit fi - cd ${DEPENDENCY_DIR}"/mahout/target" + cd ${HIBENCH_HOME}"/hadoopbench/mahout/target" if [ ! -d $MAHOUT_HOME ]; then tar zxf $MAHOUT_RELEASE".tar.gz" fi @@ -365,8 +336,19 @@ function export_withlog () { export ${var_name} } +function command_exist () +{ + result=$(which $1) + if [ $? -eq 0 ] + then + return 0 + else + return 1 + fi +} + function ensure-nutchindexing-release () { - if [ ! -e ${DEPENDENCY_DIR}"/nutchindexing/target/apache-nutch-1.2-bin.tar.gz" ]; then + if [ ! -e ${HIBENCH_HOME}"/hadoopbench/nutchindexing/target/apache-nutch-1.2-bin.tar.gz" ]; then assert 0 "Error: The nutch bin file hasn't be downloaded by maven, please check!" exit fi @@ -374,13 +356,7 @@ function ensure-nutchindexing-release () { NUTCH_ROOT=${WORKLOAD_RESULT_FOLDER} cp -a $NUTCH_DIR/nutch $NUTCH_ROOT - if [ $HADOOP_VERSION == "hadoop1" ]; then - cp $NUTCH_ROOT/nutch/conf/nutch-site-mr1.xml $NUTCH_ROOT/nutch/conf/nutch-site.xml - elif [ $HADOOP_VERSION == "hadoop2" ]; then - cp $NUTCH_ROOT/nutch/conf/nutch-site-mr2.xml $NUTCH_ROOT/nutch/conf/nutch-site.xml - fi - - cd ${DEPENDENCY_DIR}"/nutchindexing/target" + cd ${HIBENCH_HOME}"/hadoopbench/nutchindexing/target" if [ ! -d $NUTCH_HOME ]; then tar zxf apache-nutch-1.2-bin.tar.gz fi @@ -392,17 +368,15 @@ function ensure-nutchindexing-release () { cp $NUTCH_ROOT/nutch/bin/nutch $NUTCH_HOME_WORKLOAD/bin # Patching jcl-over-slf4j version against cdh or hadoop2 - if [ $HADOOP_VERSION == "hadoop2" ] || [ ${HADOOP_RELEASE:0:3} == "cdh" ]; then - mkdir $NUTCH_HOME_WORKLOAD/temp - unzip -q $NUTCH_HOME_WORKLOAD/nutch-1.2.job -d $NUTCH_HOME_WORKLOAD/temp - rm -f $NUTCH_HOME_WORKLOAD/temp/lib/jcl-over-slf4j-*.jar - rm -f $NUTCH_HOME_WORKLOAD/temp/lib/slf4j-log4j*.jar - cp ${NUTCH_DIR}/target/dependency/jcl-over-slf4j-*.jar $NUTCH_HOME_WORKLOAD/temp/lib - rm -f $NUTCH_HOME_WORKLOAD/nutch-1.2.job - cd $NUTCH_HOME_WORKLOAD/temp - zip -qr $NUTCH_HOME_WORKLOAD/nutch-1.2.job * - rm -rf $NUTCH_HOME_WORKLOAD/temp - fi + mkdir $NUTCH_HOME_WORKLOAD/temp + unzip -q $NUTCH_HOME_WORKLOAD/nutch-1.2.job -d $NUTCH_HOME_WORKLOAD/temp + rm -f $NUTCH_HOME_WORKLOAD/temp/lib/jcl-over-slf4j-*.jar + rm -f $NUTCH_HOME_WORKLOAD/temp/lib/slf4j-log4j*.jar + cp ${NUTCH_DIR}/target/dependency/jcl-over-slf4j-*.jar $NUTCH_HOME_WORKLOAD/temp/lib + rm -f $NUTCH_HOME_WORKLOAD/nutch-1.2.job + cd $NUTCH_HOME_WORKLOAD/temp + zip -qr $NUTCH_HOME_WORKLOAD/nutch-1.2.job * + rm -rf $NUTCH_HOME_WORKLOAD/temp echo $NUTCH_HOME_WORKLOAD } @@ -419,11 +393,11 @@ set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; set ${MAP_CONFIG_NAME}=$NUM_MAPS; set ${REDUCER_CONFIG_NAME}=$NUM_REDS; set hive.stats.autogather=false; -${HIVE_SQL_COMPRESS_OPTS} + DROP TABLE IF EXISTS uservisits; -CREATE EXTERNAL TABLE uservisits (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SEQUENCEFILE LOCATION '$INPUT_HDFS/uservisits'; +CREATE EXTERNAL TABLE uservisits (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '$INPUT_HDFS/uservisits'; DROP TABLE IF EXISTS uservisits_aggre; -CREATE EXTERNAL TABLE uservisits_aggre ( sourceIP STRING, sumAdRevenue DOUBLE) STORED AS SEQUENCEFILE LOCATION '$OUTPUT_HDFS/uservisits_aggre'; +CREATE EXTERNAL TABLE uservisits_aggre ( sourceIP STRING, sumAdRevenue DOUBLE) STORED AS TEXTFILE LOCATION '$OUTPUT_HDFS/uservisits_aggre'; INSERT OVERWRITE TABLE uservisits_aggre SELECT sourceIP, SUM(adRevenue) FROM uservisits GROUP BY sourceIP; EOF } @@ -441,14 +415,13 @@ set ${MAP_CONFIG_NAME}=$NUM_MAPS; set ${REDUCER_CONFIG_NAME}=$NUM_REDS; set hive.stats.autogather=false; -${HIVE_SQL_COMPRESS_OPTS} DROP TABLE IF EXISTS rankings; -CREATE EXTERNAL TABLE rankings (pageURL STRING, pageRank INT, avgDuration INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SEQUENCEFILE LOCATION '$INPUT_HDFS/rankings'; +CREATE EXTERNAL TABLE rankings (pageURL STRING, pageRank INT, avgDuration INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '$INPUT_HDFS/rankings'; DROP TABLE IF EXISTS uservisits_copy; -CREATE EXTERNAL TABLE uservisits_copy (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SEQUENCEFILE LOCATION '$INPUT_HDFS/uservisits'; +CREATE EXTERNAL TABLE uservisits_copy (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '$INPUT_HDFS/uservisits'; DROP TABLE IF EXISTS rankings_uservisits_join; -CREATE EXTERNAL TABLE rankings_uservisits_join ( sourceIP STRING, avgPageRank DOUBLE, totalRevenue DOUBLE) STORED AS SEQUENCEFILE LOCATION '$OUTPUT_HDFS/rankings_uservisits_join'; +CREATE EXTERNAL TABLE rankings_uservisits_join ( sourceIP STRING, avgPageRank DOUBLE, totalRevenue DOUBLE) STORED AS TEXTFILE LOCATION '$OUTPUT_HDFS/rankings_uservisits_join'; INSERT OVERWRITE TABLE rankings_uservisits_join SELECT sourceIP, avg(pageRank), sum(adRevenue) as totalRevenue FROM rankings R JOIN (SELECT sourceIP, destURL, adRevenue FROM uservisits_copy UV WHERE (datediff(UV.visitDate, '1999-01-01')>=0 AND datediff(UV.visitDate, '2000-01-01')<=0)) NUV ON (R.pageURL = NUV.destURL) group by sourceIP order by totalRevenue DESC; EOF } @@ -466,12 +439,11 @@ set ${MAP_CONFIG_NAME}=$NUM_MAPS; set ${REDUCER_CONFIG_NAME}=$NUM_REDS; set hive.stats.autogather=false; -${HIVE_SQL_COMPRESS_OPTS} DROP TABLE IF EXISTS uservisits; -CREATE EXTERNAL TABLE uservisits (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SEQUENCEFILE LOCATION '$INPUT_HDFS/uservisits'; +CREATE EXTERNAL TABLE uservisits (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '$INPUT_HDFS/uservisits'; DROP TABLE IF EXISTS uservisits_copy; -CREATE EXTERNAL TABLE uservisits_copy (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SEQUENCEFILE LOCATION '$OUTPUT_HDFS/uservisits_copy'; +CREATE EXTERNAL TABLE uservisits_copy (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '$OUTPUT_HDFS/uservisits_copy'; INSERT OVERWRITE TABLE uservisits_copy SELECT * FROM uservisits; EOF diff --git a/bin/run-all.sh b/bin/run-all.sh index 16487dda8..97bd0fd1e 100755 --- a/bin/run-all.sh +++ b/bin/run-all.sh @@ -15,40 +15,53 @@ # limitations under the License. set -u -DIR=`dirname "$0"` -DIR=`cd "${DIR}/.."; pwd` +current_dir=`dirname "$0"` +root_dir=`cd "${current_dir}/.."; pwd` -. ${DIR}/bin/functions/color.sh +. ${root_dir}/bin/functions/color.sh -for benchmark in `cat $DIR/conf/benchmarks.lst`; do +for benchmark in `cat $root_dir/conf/benchmarks.lst`; do if [[ $benchmark == \#* ]]; then continue fi echo -e "${UYellow}${BYellow}Prepare ${Yellow}${UYellow}${benchmark} ${BYellow}...${Color_Off}" - - WORKLOAD=$DIR/workloads/${benchmark} + + benchmark="${benchmark/./\/}" + + WORKLOAD=$root_dir/bin/workloads/${benchmark} echo -e "${BCyan}Exec script: ${Cyan}${WORKLOAD}/prepare/prepare.sh${Color_Off}" "${WORKLOAD}/prepare/prepare.sh" if [ $? -ne 0 ] then - echo "ERROR: ${benchmark} prepare failed!" + echo "ERROR: ${benchmark} prepare failed!" continue fi - for target in `cat $DIR/conf/languages.lst`; do - if [[ $target == \#* ]]; then + for framework in `cat $root_dir/conf/frameworks.lst`; do + if [[ $framework == \#* ]]; then + continue + fi + + if [ $benchmark == "micro/dfsioe" ] && [ $framework == "spark" ]; then continue fi - echo -e "${UYellow}${BYellow}Run ${Yellow}${UYellow}${benchmark}/${target}${Color_Off}" - echo -e "${BCyan}Exec script: ${Cyan}$WORKLOAD/${target}/bin/run.sh${Color_Off}" - $WORKLOAD/${target}/bin/run.sh + if [ $benchmark == "websearch/nutchindexing" ] && [ $framework == "spark" ]; then + continue + fi + if [ $benchmark == "graph/nweight" ] && [ $framework == "hadoop" ]; then + continue + fi + + echo -e "${UYellow}${BYellow}Run ${Yellow}${UYellow}${benchmark}/${framework}${Color_Off}" + echo -e "${BCyan}Exec script: ${Cyan}$WORKLOAD/${framework}/run.sh${Color_Off}" + $WORKLOAD/${framework}/run.sh result=$? if [ $result -ne 0 ] then - echo -e "${On_IRed}ERROR: ${benchmark}/${target} failed to run successfully.${Color_Off}" + echo -e "${On_IRed}ERROR: ${benchmark}/${framework} failed to run successfully.${Color_Off}" exit $result fi done diff --git a/workloads/nweight/prepare/prepare.sh b/bin/workloads/graph/nweight/prepare/prepare.sh similarity index 70% rename from workloads/nweight/prepare/prepare.sh rename to bin/workloads/graph/nweight/prepare/prepare.sh index 2f0750335..86303e03a 100755 --- a/workloads/nweight/prepare/prepare.sh +++ b/bin/workloads/graph/nweight/prepare/prepare.sh @@ -14,18 +14,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/graph/nweight.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench NWeightPrepare ${workload_root} ${workload_folder} +enter_bench NWeightPrepare ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.nweight.datagen.NWeightDataGenerator $MODEL_INPUT $INPUT_HDFS $EDGES +run-spark-job com.intel.hibench.sparkbench.graph.nweight.NWeightDataGenerator $MODEL_INPUT $INPUT_HDFS $EDGES END_TIME=`timestamp` diff --git a/bin/workloads/graph/nweight/spark/run.sh b/bin/workloads/graph/nweight/spark/run.sh new file mode 100755 index 000000000..7c9d67f8f --- /dev/null +++ b/bin/workloads/graph/nweight/spark/run.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/graph/nweight.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench ScalaSparkNWeight ${workload_config} ${current_dir} +show_bannar start + +rmr-hdfs $OUTPUT_HDFS || true + +SIZE=`dir_size $INPUT_HDFS` +START_TIME=`timestamp` +run-spark-job com.intel.hibench.sparkbench.graph.nweight.NWeight $INPUT_HDFS $OUTPUT_HDFS $DEGREE $MAX_OUT_EDGES $NUM_PARTITION $STORAGE_LEVEL $DISABLE_KRYO $MODEL +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} ${SIZE} +show_bannar finish +leave_bench diff --git a/workloads/dfsioe/mapreduce/bin/run-read.sh b/bin/workloads/micro/dfsioe/hadoop/run-read.sh similarity index 86% rename from workloads/dfsioe/mapreduce/bin/run-read.sh rename to bin/workloads/micro/dfsioe/hadoop/run-read.sh index 8748915d6..bf4a16876 100755 --- a/workloads/dfsioe/mapreduce/bin/run-read.sh +++ b/bin/workloads/micro/dfsioe/hadoop/run-read.sh @@ -14,12 +14,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/dfsioe.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopDfsioe-read ${workload_root} ${workload_folder} + +enter_bench HadoopDfsioe-read ${workload_config} ${current_dir} show_bannar start # path check diff --git a/workloads/dfsioe/mapreduce/bin/run-write.sh b/bin/workloads/micro/dfsioe/hadoop/run-write.sh similarity index 86% rename from workloads/dfsioe/mapreduce/bin/run-write.sh rename to bin/workloads/micro/dfsioe/hadoop/run-write.sh index 09f1c6f68..4a1c325b4 100755 --- a/workloads/dfsioe/mapreduce/bin/run-write.sh +++ b/bin/workloads/micro/dfsioe/hadoop/run-write.sh @@ -14,12 +14,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/dfsioe.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopDfsioe-write ${workload_root} ${workload_folder} + +enter_bench HadoopDfsioe-write ${workload_config} ${current_dir} show_bannar start #path check diff --git a/workloads/dfsioe/mapreduce/bin/run.sh b/bin/workloads/micro/dfsioe/hadoop/run.sh similarity index 95% rename from workloads/dfsioe/mapreduce/bin/run.sh rename to bin/workloads/micro/dfsioe/hadoop/run.sh index f6d21f095..c762b7e41 100755 --- a/workloads/dfsioe/mapreduce/bin/run.sh +++ b/bin/workloads/micro/dfsioe/hadoop/run.sh @@ -15,7 +15,6 @@ # limitations under the License. workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` ${workload_folder}/run-read.sh ${workload_folder}/run-write.sh diff --git a/workloads/dfsioe/prepare/prepare.sh b/bin/workloads/micro/dfsioe/prepare/prepare.sh similarity index 81% rename from workloads/dfsioe/prepare/prepare.sh rename to bin/workloads/micro/dfsioe/prepare/prepare.sh index b2e63cf53..6b8a12827 100755 --- a/workloads/dfsioe/prepare/prepare.sh +++ b/bin/workloads/micro/dfsioe/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/dfsioe.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareDFSIOE ${workload_root} ${workload_folder} +enter_bench HadoopPrepareDFSIOE ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true @@ -31,7 +32,7 @@ run-hadoop-job ${DATATOOLS} org.apache.hadoop.fs.dfsioe.TestDFSIOEnh -Dmapreduce.map.java.opts=\"-Dtest.build.data=${INPUT_HDFS} ${MAP_JAVA_OPTS}\" \ -Dmapreduce.reduce.java.opts=\"-Dtest.build.data=${INPUT_HDFS} ${RED_JAVA_OPTS}\" \ -Dtest.build.data=${INPUT_HDFS} \ - -write -skipAnalyze -nrFiles ${RD_NUM_OF_FILES} -fileSize ${RD_FILE_SIZE} -bufferSize 4096 + -write -skipAnalyze -nrFiles ${RD_NUM_OF_FILES} -fileSize ${RD_FILE_SIZE} -bufferSize 4096 END_TIME=`timestamp` @@ -40,4 +41,3 @@ stop-monitor $MONITOR_PID show_bannar finish leave_bench - diff --git a/workloads/sleep/mapreduce/bin/run.sh b/bin/workloads/micro/sleep/hadoop/run.sh similarity index 79% rename from workloads/sleep/mapreduce/bin/run.sh rename to bin/workloads/micro/sleep/hadoop/run.sh index 6d71d512c..c18a00125 100755 --- a/workloads/sleep/mapreduce/bin/run.sh +++ b/bin/workloads/micro/sleep/hadoop/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/sleep.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopSleep ${workload_root} ${workload_folder} +enter_bench HadoopSleep ${workload_config} ${current_dir} show_bannar start START_TIME=`timestamp` @@ -30,4 +31,3 @@ SIZE="0" gen_report ${START_TIME} ${END_TIME} ${SIZE} show_bannar finish leave_bench - diff --git a/workloads/sleep/prepare/prepare.sh b/bin/workloads/micro/sleep/prepare/prepare.sh similarity index 76% rename from workloads/sleep/prepare/prepare.sh rename to bin/workloads/micro/sleep/prepare/prepare.sh index 4e8b6daee..f2d9cb156 100755 --- a/workloads/sleep/prepare/prepare.sh +++ b/bin/workloads/micro/sleep/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/sleep.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench PrepareSleep ${workload_root} ${workload_folder} +enter_bench PrepareSleep ${workload_config} ${current_dir} show_bannar start echo -e "${On_Blue}Prepare sleep: nothing to do${Color_Off}" @@ -27,5 +28,3 @@ echo -e "${On_Blue}Prepare sleep: nothing to do${Color_Off}" show_bannar finish leave_bench - - diff --git a/workloads/sleep/spark/python/bin/run.sh b/bin/workloads/micro/sleep/spark/run.sh similarity index 72% rename from workloads/sleep/spark/python/bin/run.sh rename to bin/workloads/micro/sleep/spark/run.sh index 7208c43e9..ac9ce9203 100755 --- a/workloads/sleep/spark/python/bin/run.sh +++ b/bin/workloads/micro/sleep/spark/run.sh @@ -14,16 +14,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/sleep.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench PythonSparkSleep ${workload_root} ${workload_folder} +enter_bench ScalaSparkSleep ${workload_config} ${current_dir} show_bannar start START_TIME=`timestamp` -run-spark-job ${HIBENCH_PYTHON_PATH}/sleep.py $MAP_SLEEP_TIME +run-spark-job com.intel.hibench.sparkbench.micro.ScalaSleep $MAP_SLEEP_TIME END_TIME=`timestamp` SIZE="0" diff --git a/bin/workloads/micro/sort/hadoop/run.sh b/bin/workloads/micro/sort/hadoop/run.sh new file mode 100755 index 000000000..e128a7bd8 --- /dev/null +++ b/bin/workloads/micro/sort/hadoop/run.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/sort.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench HadoopSort ${workload_config} ${current_dir} +show_bannar start + +rmr-hdfs $OUTPUT_HDFS || true + +SIZE=`dir_size $INPUT_HDFS` +START_TIME=`timestamp` +run-hadoop-job ${HADOOP_EXAMPLES_JAR} sort -outKey org.apache.hadoop.io.Text -outValue org.apache.hadoop.io.Text -r ${NUM_REDS} ${INPUT_HDFS} ${OUTPUT_HDFS} + +END_TIME=`timestamp` +gen_report ${START_TIME} ${END_TIME} ${SIZE} +show_bannar finish +leave_bench diff --git a/workloads/wordcount/prepare/prepare.sh b/bin/workloads/micro/sort/prepare/prepare.sh similarity index 64% rename from workloads/wordcount/prepare/prepare.sh rename to bin/workloads/micro/sort/prepare/prepare.sh index 4fcea29c4..23072dbe3 100755 --- a/workloads/wordcount/prepare/prepare.sh +++ b/bin/workloads/micro/sort/prepare/prepare.sh @@ -14,22 +14,24 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/sort.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareWordcount ${workload_root} ${workload_folder} +enter_bench HadoopPrepareSort ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true START_TIME=`timestamp` + run-hadoop-job ${HADOOP_EXAMPLES_JAR} randomtextwriter \ - -D ${BYTES_TOTAL_NAME}=${DATASIZE} \ - -D ${MAP_CONFIG_NAME}=${NUM_MAPS} \ - -D ${REDUCER_CONFIG_NAME}=${NUM_REDS} \ - ${COMPRESS_OPT} \ + -D mapreduce.randomtextwriter.totalbytes=${DATASIZE} \ + -D mapreduce.randomtextwriter.bytespermap=$(( ${DATASIZE} / ${NUM_MAPS} )) \ + -D mapreduce.job.maps=${NUM_MAPS} \ + -D mapreduce.job.reduces=${NUM_REDS} \ ${INPUT_HDFS} -#run-spark-job com.intel.sparkbench.datagen.RandomTextWriter $INPUT_HDFS ${DATASIZE} END_TIME=`timestamp` - +show_bannar finish +leave_bench diff --git a/workloads/pagerank/spark/python/bin/run.sh b/bin/workloads/micro/sort/spark/run.sh similarity index 73% rename from workloads/pagerank/spark/python/bin/run.sh rename to bin/workloads/micro/sort/spark/run.sh index e920a3471..2988866c0 100755 --- a/workloads/pagerank/spark/python/bin/run.sh +++ b/bin/workloads/micro/sort/spark/run.sh @@ -14,22 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/sort.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench PythonSparkPagerank ${workload_root} ${workload_folder} +enter_bench ScalaSparkSort ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-spark-job ${HIBENCH_PYTHON_PATH}/pagerank.py $INPUT_HDFS/edges $OUTPUT_HDFS $NUM_ITERATIONS +run-spark-job com.intel.hibench.sparkbench.micro.ScalaSort $INPUT_HDFS $OUTPUT_HDFS END_TIME=`timestamp` gen_report ${START_TIME} ${END_TIME} ${SIZE} show_bannar finish leave_bench - diff --git a/workloads/nweight/spark/scala/bin/run.sh b/bin/workloads/micro/terasort/hadoop/run.sh similarity index 71% rename from workloads/nweight/spark/scala/bin/run.sh rename to bin/workloads/micro/terasort/hadoop/run.sh index da2d83287..e7a1e8758 100755 --- a/workloads/nweight/spark/scala/bin/run.sh +++ b/bin/workloads/micro/terasort/hadoop/run.sh @@ -14,19 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/micro/terasort.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench ScalaSparkNWeight ${workload_root} ${workload_folder} +enter_bench HadoopTerasort ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.nweight.NWeight $INPUT_HDFS $OUTPUT_HDFS $DEGREE $MAX_OUT_EDGES $NUM_PARTITION $STORAGE_LEVEL $DISABLE_KRYO $MODEL +run-hadoop-job ${HADOOP_EXAMPLES_JAR} terasort \ + -D mapreduce.job.reduces=${NUM_REDS} \ + ${INPUT_HDFS} ${OUTPUT_HDFS} END_TIME=`timestamp` gen_report ${START_TIME} ${END_TIME} ${SIZE} diff --git a/workloads/terasort/prepare/prepare.sh b/bin/workloads/micro/terasort/prepare/prepare.sh similarity index 73% rename from workloads/terasort/prepare/prepare.sh rename to bin/workloads/micro/terasort/prepare/prepare.sh index bd58dcfe7..8c2266196 100755 --- a/workloads/terasort/prepare/prepare.sh +++ b/bin/workloads/micro/terasort/prepare/prepare.sh @@ -14,25 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/micro/terasort.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareTerasort ${workload_root} ${workload_folder} +enter_bench HadoopPrepareTerasort ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true START_TIME=`timestamp` run-hadoop-job ${HADOOP_EXAMPLES_JAR} teragen \ - -D${MAP_CONFIG_NAME}=${NUM_MAPS} \ - -D${REDUCER_CONFIG_NAME}=${NUM_REDS} \ + -D mapreduce.job.maps=${NUM_MAPS} \ + -D mapreduce.job.reduces=${NUM_REDS} \ ${DATASIZE} ${INPUT_HDFS} END_TIME=`timestamp` show_bannar finish leave_bench - - - - diff --git a/workloads/wordcount/spark/python/bin/run.sh b/bin/workloads/micro/terasort/spark/run.sh similarity index 72% rename from workloads/wordcount/spark/python/bin/run.sh rename to bin/workloads/micro/terasort/spark/run.sh index a8386e943..85a235b0b 100755 --- a/workloads/wordcount/spark/python/bin/run.sh +++ b/bin/workloads/micro/terasort/spark/run.sh @@ -14,23 +14,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/micro/terasort.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench PythonSparkWordcount ${workload_root} ${workload_folder} +enter_bench ScalaSparkTerasort ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-spark-job ${HIBENCH_PYTHON_PATH}/wordcount.py $INPUT_HDFS $OUTPUT_HDFS +run-spark-job com.intel.hibench.sparkbench.micro.ScalaTeraSort $INPUT_HDFS $OUTPUT_HDFS END_TIME=`timestamp` gen_report ${START_TIME} ${END_TIME} ${SIZE} show_bannar finish leave_bench - diff --git a/workloads/wordcount/mapreduce/bin/run.sh b/bin/workloads/micro/wordcount/hadoop/run.sh similarity index 58% rename from workloads/wordcount/mapreduce/bin/run.sh rename to bin/workloads/micro/wordcount/hadoop/run.sh index 27ff1ee8e..eda71f5ed 100755 --- a/workloads/wordcount/mapreduce/bin/run.sh +++ b/bin/workloads/micro/wordcount/hadoop/run.sh @@ -14,21 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopWordcount ${workload_root} ${workload_folder} +enter_bench HadoopWordcount ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-hadoop-job ${HADOOP_EXAMPLES_JAR} wordcount ${COMPRESS_OPT} \ - -D ${MAP_CONFIG_NAME}=${NUM_MAPS} \ - -D ${REDUCER_CONFIG_NAME}=${NUM_REDS} \ +run-hadoop-job ${HADOOP_EXAMPLES_JAR} wordcount \ + -D mapreduce.job.maps=${NUM_MAPS} \ + -D mapreduce.job.reduces=${NUM_REDS} \ -D mapreduce.inputformat.class=org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat \ -D mapreduce.outputformat.class=org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat \ -D mapreduce.job.inputformat.class=org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat \ @@ -39,16 +40,3 @@ END_TIME=`timestamp` gen_report ${START_TIME} ${END_TIME} ${SIZE} show_bannar finish leave_bench - -# run bench -#$HADOOP_EXECUTABLE jar $HADOOP_EXAMPLES_JAR wordcount \ -# $COMPRESS_OPT \ -# -D $CONFIG_REDUCER_NUMBER=${NUM_REDS} \ -# -D mapreduce.inputformat.class=org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat \ -# -D mapreduce.outputformat.class=org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat \ -# -D mapreduce.job.inputformat.class=org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat \ -# -D mapreduce.job.outputformat.class=org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat \ -# $INPUT_HDFS $OUTPUT_HDFS \ -# 2>&1 | tee ${DIR}/$TMPLOGFILE - - diff --git a/workloads/sort/prepare/prepare.sh b/bin/workloads/micro/wordcount/prepare/prepare.sh similarity index 64% rename from workloads/sort/prepare/prepare.sh rename to bin/workloads/micro/wordcount/prepare/prepare.sh index 5cf44b61a..548da96b2 100755 --- a/workloads/sort/prepare/prepare.sh +++ b/bin/workloads/micro/wordcount/prepare/prepare.sh @@ -14,27 +14,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareSort ${workload_root} ${workload_folder} +enter_bench HadoopPrepareWordcount ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true START_TIME=`timestamp` + run-hadoop-job ${HADOOP_EXAMPLES_JAR} randomtextwriter \ - -D ${BYTES_TOTAL_NAME}=${DATASIZE} \ - -D ${MAP_CONFIG_NAME}=${NUM_MAPS} \ - -D ${REDUCER_CONFIG_NAME}=${NUM_REDS} \ - ${COMPRESS_OPT} \ + -D mapreduce.randomtextwriter.totalbytes=${DATASIZE} \ + -D mapreduce.randomtextwriter.bytespermap=$(( ${DATASIZE} / ${NUM_MAPS} )) \ + -D mapreduce.job.maps=${NUM_MAPS} \ + -D mapreduce.job.reduces=${NUM_REDS} \ ${INPUT_HDFS} -#run-spark-job com.intel.sparkbench.datagen.RandomTextWriter $INPUT_HDFS ${DATASIZE} END_TIME=`timestamp` show_bannar finish leave_bench -#un-spark-job com.intel.sparkbench.datagen.RandomTextWriter $INPUT_HDFS ${DATASIZE} - diff --git a/workloads/pagerank/spark/java/bin/run.sh b/bin/workloads/micro/wordcount/spark/run.sh similarity index 72% rename from workloads/pagerank/spark/java/bin/run.sh rename to bin/workloads/micro/wordcount/spark/run.sh index 3ab256ab4..d3c1fc02c 100755 --- a/workloads/pagerank/spark/java/bin/run.sh +++ b/bin/workloads/micro/wordcount/spark/run.sh @@ -14,22 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/micro/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench JavaSparkPagerank ${workload_root} ${workload_folder} +enter_bench ScalaSparkWordcount ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-spark-job org.apache.spark.examples.JavaPageRank $INPUT_HDFS/edges $OUTPUT_HDFS $NUM_ITERATIONS +run-spark-job com.intel.hibench.sparkbench.micro.ScalaWordCount $INPUT_HDFS $OUTPUT_HDFS END_TIME=`timestamp` gen_report ${START_TIME} ${END_TIME} ${SIZE} show_bannar finish leave_bench - diff --git a/workloads/bayes/mapreduce/bin/run.sh b/bin/workloads/ml/bayes/hadoop/run.sh similarity index 56% rename from workloads/bayes/mapreduce/bin/run.sh rename to bin/workloads/ml/bayes/hadoop/run.sh index fa09ca725..d45a410c4 100755 --- a/workloads/bayes/mapreduce/bin/run.sh +++ b/bin/workloads/ml/bayes/hadoop/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/ml/bayes.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopBayes ${workload_root} ${workload_folder} +enter_bench HadoopBayes ${workload_config} ${current_dir} show_bannar start ensure-mahout-release @@ -30,12 +31,21 @@ SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` # strip spaces after "-D" -COMPRESS_OPT=`echo $COMPRESS_OPT | sed -r 's/-D /-D/g'` +COMPRESS_OPT=-Dmapreduce.output.fileoutputformat.compress=false MONITOR_PID=`start-monitor` CMD1="$MAHOUT_HOME/bin/mahout seq2sparse ${COMPRESS_OPT} -i ${INPUT_HDFS} -o ${OUTPUT_HDFS}/vectors -lnorm -nv -wt tfidf -ng ${NGRAMS} --numReducers $NUM_REDS" execute_withlog ${CMD1} -CMD2="$MAHOUT_HOME/bin/mahout trainnb ${COMPRESS_OPT} -i ${OUTPUT_HDFS}/vectors/tfidf-vectors -el -o ${OUTPUT_HDFS}/model -li ${OUTPUT_HDFS}/labelindex -ow --tempDir ${OUTPUT_HDFS}/temp" +if [ ${HADOOP_RELEASE} == "cdh5" ] +then + CMD2="$MAHOUT_HOME/bin/mahout trainnb ${COMPRESS_OPT} -i ${OUTPUT_HDFS}/vectors/tfidf-vectors -el -o ${OUTPUT_HDFS}/model -li ${OUTPUT_HDFS}/labelindex -ow --tempDir ${OUTPUT_HDFS}/temp" +elif [ ${HADOOP_RELEASE} == "apache" ] +then + CMD2="$MAHOUT_HOME/bin/mahout trainnb ${COMPRESS_OPT} -i ${OUTPUT_HDFS}/vectors/tfidf-vectors -o ${OUTPUT_HDFS}/model -li ${OUTPUT_HDFS}/labelindex -ow --tempDir ${OUTPUT_HDFS}/temp" +elif [ ${HADOOP_RELEASE} == "hdp" ] +then + CMD2="$MAHOUT_HOME/bin/mahout trainnb ${COMPRESS_OPT} -i ${OUTPUT_HDFS}/vectors/tfidf-vectors -o ${OUTPUT_HDFS}/model -li ${OUTPUT_HDFS}/labelindex -ow --tempDir ${OUTPUT_HDFS}/temp" +fi execute_withlog ${CMD2} END_TIME=`timestamp` @@ -44,12 +54,3 @@ stop-monitor $MONITOR_PID gen_report ${START_TIME} ${END_TIME} ${SIZE} show_bannar finish leave_bench - - -#$MAHOUT_HOME/bin/mahout seq2sparse \ -# $COMPRESS_OPT -i ${INPUT_HDFS} -o ${OUTPUT_HDFS}/vectors -lnorm -nv -wt tfidf -ng ${NGRAMS} --numReducers $NUM_REDS - -#$MAHOUT_HOME/bin/mahout trainnb \ -# $COMPRESS_OPT -i ${OUTPUT_HDFS}/vectors/tfidf-vectors -el -o ${OUTPUT_HDFS}/model -li ${OUTPUT_HDFS}/labelindex -ow --tempDir ${OUTPUT_HDFS}/temp - - diff --git a/workloads/bayes/prepare/prepare.sh b/bin/workloads/ml/bayes/prepare/prepare.sh similarity index 75% rename from workloads/bayes/prepare/prepare.sh rename to bin/workloads/ml/bayes/prepare/prepare.sh index 359554851..53c181845 100755 --- a/workloads/bayes/prepare/prepare.sh +++ b/bin/workloads/ml/bayes/prepare/prepare.sh @@ -14,26 +14,27 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/ml/bayes.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareBayes ${workload_root} ${workload_folder} +enter_bench HadoopPrepareBayes ${workload_config} ${current_dir} show_bannar start rmr-hdfs ${INPUT_HDFS} || true START_TIME=`timestamp` OPTION="-t bayes \ -b ${BAYES_BASE_HDFS} \ - -n ${BAYES_INPUT} \ + -n Input \ -m ${NUM_MAPS} \ -r ${NUM_REDS} \ -p ${PAGES} \ -class ${CLASSES} \ -o sequence" -run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} ${DATATOOLS_COMPRESS_OPT} +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} END_TIME=`timestamp` show_bannar finish diff --git a/workloads/bayes/spark/scala/bin/run.sh b/bin/workloads/ml/bayes/spark/run.sh similarity index 83% rename from workloads/bayes/spark/scala/bin/run.sh rename to bin/workloads/ml/bayes/spark/run.sh index 362e126df..68ac4067e 100755 --- a/workloads/bayes/spark/scala/bin/run.sh +++ b/bin/workloads/ml/bayes/spark/run.sh @@ -13,13 +13,13 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/ml/bayes.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench ScalaSparkBayes ${workload_root} ${workload_folder} +enter_bench ScalaSparkBayes ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true diff --git a/workloads/kmeans/mapreduce/bin/run.sh b/bin/workloads/ml/kmeans/hadoop/run.sh similarity index 68% rename from workloads/kmeans/mapreduce/bin/run.sh rename to bin/workloads/ml/kmeans/hadoop/run.sh index a0e00fccd..664a37a63 100755 --- a/workloads/kmeans/mapreduce/bin/run.sh +++ b/bin/workloads/ml/kmeans/hadoop/run.sh @@ -14,23 +14,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/ml/kmeans.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopKmeans ${workload_root} ${workload_folder} +enter_bench HadoopKmeans ${workload_config} ${current_dir} show_bannar start ensure-mahout-release rmr-hdfs $OUTPUT_HDFS || true -# strip spaces after "-D" -COMPRESS_OPT=`echo $COMPRESS_OPT | sed -r 's/-D /-D/g'` - SIZE=`dir_size $INPUT_HDFS` -OPTION="${COMPRESS_OPT} -i ${INPUT_SAMPLE} -c ${INPUT_CLUSTER} -o ${OUTPUT_HDFS} -x ${MAX_ITERATION} -ow -cl -cd 0.5 -dm org.apache.mahout.common.distance.EuclideanDistanceMeasure -xm mapreduce" +OPTION="-i ${INPUT_SAMPLE} -c ${INPUT_CLUSTER} -o ${OUTPUT_HDFS} -x ${MAX_ITERATION} -ow -cl -cd 0.5 -dm org.apache.mahout.common.distance.EuclideanDistanceMeasure -xm mapreduce" CMD="${MAHOUT_HOME}/bin/mahout kmeans ${OPTION}" MONITOR_PID=`start-monitor` START_TIME=`timestamp` diff --git a/workloads/kmeans/prepare/prepare.sh b/bin/workloads/ml/kmeans/prepare/prepare.sh similarity index 58% rename from workloads/kmeans/prepare/prepare.sh rename to bin/workloads/ml/kmeans/prepare/prepare.sh index 1052df9ba..5c53bdee7 100755 --- a/workloads/kmeans/prepare/prepare.sh +++ b/bin/workloads/ml/kmeans/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/ml/kmeans.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareKmeans ${workload_root} ${workload_folder} +enter_bench HadoopPrepareKmeans ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true @@ -30,14 +31,8 @@ START_TIME=`timestamp` OPTION="-sampleDir ${INPUT_SAMPLE} -clusterDir ${INPUT_CLUSTER} -numClusters ${NUM_OF_CLUSTERS} -numSamples ${NUM_OF_SAMPLES} -samplesPerFile ${SAMPLES_PER_INPUTFILE} -sampleDimension ${DIMENSIONS}" export HADOOP_CLASSPATH=`${MAHOUT_HOME}/bin/mahout classpath` export_withlog HADOOP_CLASSPATH -#run-hadoop-job ${DATATOOLS} org.apache.mahout.clustering.kmeans.GenKMeansDataset -libjars $MAHOUT_HOME/mahout-core-0.7-job.jar,$MAHOUT_HOME/mahout-examples-0.7-job.jar -D hadoop.job.history.user.location=${INPUT_SAMPLE} ${OPTION} -run-hadoop-job ${DATATOOLS} org.apache.mahout.clustering.kmeans.GenKMeansDataset -D hadoop.job.history.user.location=${INPUT_SAMPLE} ${KMEANS_COMPRESS_OPT} ${OPTION} +run-hadoop-job ${DATATOOLS} org.apache.mahout.clustering.kmeans.GenKMeansDataset -D hadoop.job.history.user.location=${INPUT_SAMPLE} ${OPTION} END_TIME=`timestamp` show_bannar finish leave_bench - - -#run-spark-job --jars $MAHOUT_HOME/mahout-core-0.7.jar,$MAHOUT_HOME/mahout-examples-0.7-job.jar com.intel.sparkbench.datagen.convert.KmeansConvert ${INPUT_SAMPLE} ${INPUT_HDFS} -#${SPARK_HOME}/bin/spark-submit --jars $MAHOUT_HOME/core/target/mahout-core-0.7.jar,$MAHOUT_HOME/examples/target/mahout-examples-0.7-job.jar --class com.intel.sparkbench.datagen.convert.KmeansConvert --master ${SPARK_MASTER} ${SPARKBENCH_JAR} ${INPUT_SAMPLE} ${INPUT_HDFS} - diff --git a/workloads/sort/spark/scala/bin/run.sh b/bin/workloads/ml/kmeans/spark/run.sh similarity index 71% rename from workloads/sort/spark/scala/bin/run.sh rename to bin/workloads/ml/kmeans/spark/run.sh index a70c2b319..fbfdfa66f 100755 --- a/workloads/sort/spark/scala/bin/run.sh +++ b/bin/workloads/ml/kmeans/spark/run.sh @@ -14,24 +14,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/ml/kmeans.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench ScalaSparkSort ${workload_root} ${workload_folder} +enter_bench ScalaSparkKmeans ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.sort.ScalaSort $INPUT_HDFS $OUTPUT_HDFS + +run-spark-job com.intel.hibench.sparkbench.ml.DenseKMeans -k $K --numIterations $MAX_ITERATION $INPUT_HDFS/samples END_TIME=`timestamp` gen_report ${START_TIME} ${END_TIME} ${SIZE} show_bannar finish leave_bench - - - diff --git a/workloads/aggregation/mapreduce/bin/run.sh b/bin/workloads/sql/aggregation/hadoop/run.sh similarity index 82% rename from workloads/aggregation/mapreduce/bin/run.sh rename to bin/workloads/sql/aggregation/hadoop/run.sh index d79fd73f7..196c9910f 100755 --- a/workloads/aggregation/mapreduce/bin/run.sh +++ b/bin/workloads/sql/aggregation/hadoop/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/aggregation.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopAggregation ${workload_root} ${workload_folder} +enter_bench HadoopAggregation ${workload_config} ${current_dir} show_bannar start ensure-hivebench-release diff --git a/workloads/aggregation/prepare/prepare.sh b/bin/workloads/sql/aggregation/prepare/prepare.sh similarity index 76% rename from workloads/aggregation/prepare/prepare.sh rename to bin/workloads/sql/aggregation/prepare/prepare.sh index 2e0a558b0..03a8131fe 100755 --- a/workloads/aggregation/prepare/prepare.sh +++ b/bin/workloads/sql/aggregation/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/aggregation.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareAggregation ${workload_root} ${workload_folder} +enter_bench HadoopPrepareAggregation ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true @@ -32,10 +33,10 @@ OPTION="-t hive \ -r ${NUM_REDS} \ -p ${PAGES} \ -v ${USERVISITS} \ - -o sequence" + -o text" START_TIME=`timestamp` -run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} ${DATATOOLS_COMPRESS_OPT} +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} END_TIME=`timestamp` SIZE="0" diff --git a/workloads/aggregation/spark/java/bin/run.sh b/bin/workloads/sql/aggregation/spark/run.sh similarity index 74% rename from workloads/aggregation/spark/java/bin/run.sh rename to bin/workloads/sql/aggregation/spark/run.sh index 5cd336282..da1f3d36a 100755 --- a/workloads/aggregation/spark/java/bin/run.sh +++ b/bin/workloads/sql/aggregation/spark/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/aggregation.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench JavaSparkAggregation ${workload_root} ${workload_folder} +enter_bench ScalaSparkAggregation ${workload_config} ${current_dir} show_bannar start # prepare SQL @@ -28,7 +29,7 @@ prepare-sql-aggregation ${HIVEBENCH_SQL_FILE} START_TIME=`timestamp` rmr-hdfs $OUTPUT_HDFS -run-spark-job com.intel.sparkbench.sql.JavaSparkSQLBench JavaAggregation ${HIVEBENCH_SQL_FILE} +run-spark-job com.intel.hibench.sparkbench.sql.ScalaSparkSQLBench ScalaAggregation ${HIVEBENCH_SQL_FILE} END_TIME=`timestamp` sleep 5 diff --git a/workloads/join/mapreduce/bin/run.sh b/bin/workloads/sql/join/hadoop/run.sh similarity index 83% rename from workloads/join/mapreduce/bin/run.sh rename to bin/workloads/sql/join/hadoop/run.sh index 040f35f61..2475ebe9b 100755 --- a/workloads/join/mapreduce/bin/run.sh +++ b/bin/workloads/sql/join/hadoop/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/join.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopJoin ${workload_root} ${workload_folder} +enter_bench HadoopJoin ${workload_config} ${current_dir} show_bannar start ensure-hivebench-release diff --git a/workloads/join/prepare/prepare.sh b/bin/workloads/sql/join/prepare/prepare.sh similarity index 77% rename from workloads/join/prepare/prepare.sh rename to bin/workloads/sql/join/prepare/prepare.sh index 919eac477..9ab8b1fd8 100755 --- a/workloads/join/prepare/prepare.sh +++ b/bin/workloads/sql/join/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/join.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareJoin ${workload_root} ${workload_folder} +enter_bench HadoopPrepareJoin ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true @@ -32,14 +33,12 @@ OPTION="-t hive \ -r ${NUM_REDS} \ -p ${PAGES} \ -v ${USERVISITS} \ - -o sequence" + -o text" START_TIME=`timestamp` -run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} ${DATATOOLS_COMPRESS_OPT} +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} END_TIME=`timestamp` SIZE="0" show_bannar finish leave_bench - - diff --git a/workloads/join/spark/java/bin/run.sh b/bin/workloads/sql/join/spark/run.sh similarity index 75% rename from workloads/join/spark/java/bin/run.sh rename to bin/workloads/sql/join/spark/run.sh index 35a62e7f7..2c66e21f1 100755 --- a/workloads/join/spark/java/bin/run.sh +++ b/bin/workloads/sql/join/spark/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/join.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench JavaSparkJoin ${workload_root} ${workload_folder} +enter_bench ScalaSparkJoin ${workload_config} ${current_dir} show_bannar start # prepare SQL @@ -29,7 +30,7 @@ prepare-sql-join ${HIVEBENCH_SQL_FILE} START_TIME=`timestamp` SIZE=`dir_size $INPUT_HDFS` rmr-hdfs $OUTPUT_HDFS -run-spark-job com.intel.sparkbench.sql.JavaSparkSQLBench JavaJoin ${HIVEBENCH_SQL_FILE} +run-spark-job com.intel.hibench.sparkbench.sql.ScalaSparkSQLBench ScalaJoin ${HIVEBENCH_SQL_FILE} sleep 5 END_TIME=`timestamp` @@ -37,4 +38,3 @@ END_TIME=`timestamp` gen_report ${START_TIME} ${END_TIME} ${SIZE:-0} show_bannar finish leave_bench - diff --git a/workloads/scan/mapreduce/bin/run.sh b/bin/workloads/sql/scan/hadoop/run.sh similarity index 83% rename from workloads/scan/mapreduce/bin/run.sh rename to bin/workloads/sql/scan/hadoop/run.sh index e8ef7c785..2c644b909 100755 --- a/workloads/scan/mapreduce/bin/run.sh +++ b/bin/workloads/sql/scan/hadoop/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/scan.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopScan ${workload_root} ${workload_folder} +enter_bench HadoopScan ${workload_config} ${current_dir} show_bannar start ensure-hivebench-release diff --git a/workloads/scan/prepare/prepare.sh b/bin/workloads/sql/scan/prepare/prepare.sh similarity index 77% rename from workloads/scan/prepare/prepare.sh rename to bin/workloads/sql/scan/prepare/prepare.sh index 941585c1d..1dc041c21 100755 --- a/workloads/scan/prepare/prepare.sh +++ b/bin/workloads/sql/scan/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/scan.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareScan ${workload_root} ${workload_folder} +enter_bench HadoopPrepareScan ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true @@ -32,10 +33,10 @@ OPTION="-t hive \ -r ${NUM_REDS} \ -p ${PAGES} \ -v ${USERVISITS} \ - -o sequence" + -o text" START_TIME=`timestamp` -run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} ${DATATOOLS_COMPRESS_OPT} +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} END_TIME=`timestamp` SIZE="0" diff --git a/workloads/scan/spark/scala/bin/run.sh b/bin/workloads/sql/scan/spark/run.sh similarity index 75% rename from workloads/scan/spark/scala/bin/run.sh rename to bin/workloads/sql/scan/spark/run.sh index 5b6641bf2..ff1d8bf85 100755 --- a/workloads/scan/spark/scala/bin/run.sh +++ b/bin/workloads/sql/scan/spark/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/sql/scan.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench ScalaSparkScan ${workload_root} ${workload_folder} +enter_bench ScalaSparkScan ${workload_config} ${current_dir} show_bannar start # prepare SQL @@ -28,7 +29,7 @@ prepare-sql-scan ${HIVEBENCH_SQL_FILE} START_TIME=`timestamp` rmr-hdfs $OUTPUT_HDFS -run-spark-job com.intel.sparkbench.sql.ScalaSparkSQLBench ScalaScan ${HIVEBENCH_SQL_FILE} +run-spark-job com.intel.hibench.sparkbench.sql.ScalaSparkSQLBench ScalaScan ${HIVEBENCH_SQL_FILE} END_TIME=`timestamp` sleep 5 diff --git a/bin/workloads/streaming/fixwindow/flink/run.sh b/bin/workloads/streaming/fixwindow/flink/run.sh new file mode 100755 index 000000000..3399592b3 --- /dev/null +++ b/bin/workloads/streaming/fixwindow/flink/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/fixwindow.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench FlinkFixWindow ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-flink-job -c com.intel.hibench.flinkbench.RunBench +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/fixwindow/gearpump/run.sh b/bin/workloads/streaming/fixwindow/gearpump/run.sh new file mode 100755 index 000000000..07f44e497 --- /dev/null +++ b/bin/workloads/streaming/fixwindow/gearpump/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/fixwindow.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench GearpumpFixWindow ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-gearpump-app com.intel.hibench.gearpumpbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/fixwindow/prepare/dataGen.sh b/bin/workloads/streaming/fixwindow/prepare/dataGen.sh new file mode 100755 index 000000000..5d5b0fc8f --- /dev/null +++ b/bin/workloads/streaming/fixwindow/prepare/dataGen.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/fixwindow.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StreamingFixWindowPrepare ${workload_config} ${current_dir} +show_bannar start + +DATA_FILE1=${STREAMING_DATA1_DIR}/uservisits +DATA_FILE2=${STREAMING_DATA2_SAMPLE_DIR} + +JVM_OPTS="-Xmx1024M -server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=bin/../logs -cp ${DATATOOLS}" + +printFullLog + +CMD="$JAVA_BIN $JVM_OPTS com.intel.hibench.datagen.streaming.DataGenerator $SPARKBENCH_PROPERTIES_FILES $DATA_FILE1 0 $DATA_FILE2 0" +echo -e "${BGreen}Sending streaming data to kafka, periodically: ${Green}$CMD${Color_Off}" +execute_withlog $CMD + +show_bannar finish diff --git a/workloads/streamingbench/prepare/genSeedDataset.sh b/bin/workloads/streaming/fixwindow/prepare/genSeedDataset.sh similarity index 69% rename from workloads/streamingbench/prepare/genSeedDataset.sh rename to bin/workloads/streaming/fixwindow/prepare/genSeedDataset.sh index b15820ae1..0f30a5b45 100755 --- a/workloads/streamingbench/prepare/genSeedDataset.sh +++ b/bin/workloads/streaming/fixwindow/prepare/genSeedDataset.sh @@ -14,17 +14,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -#This script takes t argument scaleFactor +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/fixwindow.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" # generate seed data1 by hive -enter_bench HadoopPrepareDatafile1 ${workload_root} ${workload_folder} +enter_bench HadoopPrepareDatafile1 ${workload_config} ${current_dir} show_bannar start +PAGES=120000 +USERVISITS=1000000 + rmr-hdfs $STREAMING_DATA_DIR || true echo -e "${On_Blue}Pages:${PAGES}, USERVISITS:${USERVISITS}${Color_Off}" @@ -37,7 +40,7 @@ OPTION="-t hive \ -v ${USERVISITS}" START_TIME=`timestamp` -run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} ${DATATOOLS_COMPRESS_OPT} +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} END_TIME=`timestamp` SIZE="0" @@ -45,16 +48,13 @@ show_bannar finish leave_bench # generate seed data2 by kmeans -enter_bench HadoopPrepareDatafile2 ${workload_root} ${workload_folder} +enter_bench HadoopPrepareDatafile2 ${workload_config} ${current_dir} show_bannar start rmr-hdfs $STREAMING_DATA2_SAMPLE_DIR || true -OPTION="-sampleDir ${STREAMING_DATA2_SAMPLE_DIR} -clusterDir ${STREAMING_DATA2_CLUSTER_DIR} -numClusters ${NUM_OF_CLUSTERS} -numSamples ${NUM_OF_SAMPLES} -samplesPerFile ${SAMPLES_PER_INPUTFILE} -sampleDimension ${DIMENSIONS} -textOutput" -export HADOOP_CLASSPATH=`${MAHOUT_HOME}/bin/mahout classpath` -export_withlog HADOOP_CLASSPATH +OPTION="-sampleDir ${STREAMING_DATA2_SAMPLE_DIR} -clusterDir ${STREAMING_DATA2_CLUSTER_DIR} -numClusters 5 -numSamples 3000000 -samplesPerFile 600000 -sampleDimension 20 -textOutput" run-hadoop-job ${DATATOOLS} org.apache.mahout.clustering.kmeans.GenKMeansDataset -D hadoop.job.history.user.location=${STREAMING_DATA2_SAMPLE_DIR} ${OPTION} END_TIME=`timestamp` show_bannar finish leave_bench - diff --git a/bin/workloads/streaming/fixwindow/spark/run.sh b/bin/workloads/streaming/fixwindow/spark/run.sh new file mode 100755 index 000000000..05136bc00 --- /dev/null +++ b/bin/workloads/streaming/fixwindow/spark/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/fixwindow.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench SparkStreamingFixWindow ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-spark-job com.intel.hibench.sparkbench.streaming.RunBench $SPARKBENCH_PROPERTIES_FILES +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/fixwindow/storm/run.sh b/bin/workloads/streaming/fixwindow/storm/run.sh new file mode 100755 index 000000000..57012ae54 --- /dev/null +++ b/bin/workloads/streaming/fixwindow/storm/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/fixwindow.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StormFixWindow ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} storm +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/fixwindow/trident/run.sh b/bin/workloads/streaming/fixwindow/trident/run.sh new file mode 100755 index 000000000..5140d6eb9 --- /dev/null +++ b/bin/workloads/streaming/fixwindow/trident/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/fixwindow.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StormTridentFixWindow ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} trident +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/workloads/sleep/spark/scala/bin/run.sh b/bin/workloads/streaming/identity/flink/run.sh similarity index 69% rename from workloads/sleep/spark/scala/bin/run.sh rename to bin/workloads/streaming/identity/flink/run.sh index 54a470be6..c6aaaedf0 100755 --- a/workloads/sleep/spark/scala/bin/run.sh +++ b/bin/workloads/streaming/identity/flink/run.sh @@ -14,20 +14,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/identity.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench ScalaSparkSleep ${workload_root} ${workload_folder} +enter_bench FlinkIdentity ${workload_config} ${current_dir} show_bannar start START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.sleep.ScalaSleep $MAP_SLEEP_TIME +printFullLog +run-flink-job -c com.intel.hibench.flinkbench.RunBench END_TIME=`timestamp` -SIZE="0" -gen_report ${START_TIME} ${END_TIME} ${SIZE} +gen_report ${START_TIME} ${END_TIME} 0 show_bannar finish leave_bench - diff --git a/bin/workloads/streaming/identity/gearpump/run.sh b/bin/workloads/streaming/identity/gearpump/run.sh new file mode 100755 index 000000000..7bed0ffd4 --- /dev/null +++ b/bin/workloads/streaming/identity/gearpump/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/identity.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench GearpumpIdentity ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-gearpump-app com.intel.hibench.gearpumpbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/identity/prepare/dataGen.sh b/bin/workloads/streaming/identity/prepare/dataGen.sh new file mode 100755 index 000000000..3eb05ba52 --- /dev/null +++ b/bin/workloads/streaming/identity/prepare/dataGen.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/identity.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StreamingIdentityPrepare ${workload_config} ${current_dir} +show_bannar start + +DATA_FILE1=${STREAMING_DATA1_DIR}/uservisits +DATA_FILE2=${STREAMING_DATA2_SAMPLE_DIR} + +JVM_OPTS="-Xmx1024M -server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=bin/../logs -cp ${DATATOOLS}" + +printFullLog + +CMD="$JAVA_BIN $JVM_OPTS com.intel.hibench.datagen.streaming.DataGenerator $SPARKBENCH_PROPERTIES_FILES $DATA_FILE1 0 $DATA_FILE2 0" +echo -e "${BGreen}Sending streaming data to kafka, periodically: ${Green}$CMD${Color_Off}" +execute_withlog $CMD + +show_bannar finish diff --git a/bin/workloads/streaming/identity/prepare/genSeedDataset.sh b/bin/workloads/streaming/identity/prepare/genSeedDataset.sh new file mode 100755 index 000000000..4b6756035 --- /dev/null +++ b/bin/workloads/streaming/identity/prepare/genSeedDataset.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/identity.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + + +# generate seed data1 by hive +enter_bench HadoopPrepareDatafile1 ${workload_config} ${current_dir} +show_bannar start + +PAGES=120000 +USERVISITS=1000000 + +rmr-hdfs $STREAMING_DATA_DIR || true +echo -e "${On_Blue}Pages:${PAGES}, USERVISITS:${USERVISITS}${Color_Off}" + +OPTION="-t hive \ + -b ${STREAMING_DATA_DIR} \ + -n ${STREAMING_DATA1_NAME} \ + -m ${NUM_MAPS} \ + -r ${NUM_REDS} \ + -p ${PAGES} \ + -v ${USERVISITS}" + +START_TIME=`timestamp` +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} +END_TIME=`timestamp` +SIZE="0" + +show_bannar finish +leave_bench + +# generate seed data2 by kmeans +enter_bench HadoopPrepareDatafile2 ${workload_config} ${current_dir} +show_bannar start + +rmr-hdfs $STREAMING_DATA2_SAMPLE_DIR || true +OPTION="-sampleDir ${STREAMING_DATA2_SAMPLE_DIR} -clusterDir ${STREAMING_DATA2_CLUSTER_DIR} -numClusters 5 -numSamples 3000000 -samplesPerFile 600000 -sampleDimension 20 -textOutput" +run-hadoop-job ${DATATOOLS} org.apache.mahout.clustering.kmeans.GenKMeansDataset -D hadoop.job.history.user.location=${STREAMING_DATA2_SAMPLE_DIR} ${OPTION} +END_TIME=`timestamp` + +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/identity/spark/run.sh b/bin/workloads/streaming/identity/spark/run.sh new file mode 100755 index 000000000..a4d028a87 --- /dev/null +++ b/bin/workloads/streaming/identity/spark/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/identity.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench SparkStreamingIdentity ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-spark-job com.intel.hibench.sparkbench.streaming.RunBench $SPARKBENCH_PROPERTIES_FILES +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/workloads/streamingbench/spark/bin/run.sh b/bin/workloads/streaming/identity/storm/run.sh similarity index 67% rename from workloads/streamingbench/spark/bin/run.sh rename to bin/workloads/streaming/identity/storm/run.sh index 172301de3..b05b28ff2 100755 --- a/workloads/streamingbench/spark/bin/run.sh +++ b/bin/workloads/streaming/identity/storm/run.sh @@ -14,19 +14,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/identity.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench SparkStreamingBench ${workload_root} ${workload_folder} +enter_bench StormIdentity ${workload_config} ${current_dir} show_bannar start START_TIME=`timestamp` printFullLog -run-streaming-job com.intel.hibench.streambench.spark.RunBench $SPARKBENCH_PROPERTIES_FILES +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} storm END_TIME=`timestamp` -gen_report ${START_TIME} ${END_TIME} 0 # FIXME, size should be throughput +gen_report ${START_TIME} ${END_TIME} 0 show_bannar finish - +leave_bench diff --git a/workloads/terasort/spark/scala/bin/run.sh b/bin/workloads/streaming/identity/trident/run.sh similarity index 67% rename from workloads/terasort/spark/scala/bin/run.sh rename to bin/workloads/streaming/identity/trident/run.sh index 9ee13eebe..55c63ca89 100755 --- a/workloads/terasort/spark/scala/bin/run.sh +++ b/bin/workloads/streaming/identity/trident/run.sh @@ -14,22 +14,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/identity.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench ScalaSparkTerasort ${workload_root} ${workload_folder} +enter_bench StormTridentIdentity ${workload_config} ${current_dir} show_bannar start -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.terasort.ScalaTeraSort $INPUT_HDFS $OUTPUT_HDFS +printFullLog +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} trident END_TIME=`timestamp` -gen_report ${START_TIME} ${END_TIME} ${SIZE} +gen_report ${START_TIME} ${END_TIME} 0 show_bannar finish leave_bench - diff --git a/bin/workloads/streaming/repartition/flink/run.sh b/bin/workloads/streaming/repartition/flink/run.sh new file mode 100755 index 000000000..b60d16150 --- /dev/null +++ b/bin/workloads/streaming/repartition/flink/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/repartition.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench FlinkRepartition ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-flink-job -c com.intel.hibench.flinkbench.RunBench +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/workloads/terasort/spark/java/bin/run.sh b/bin/workloads/streaming/repartition/gearpump/run.sh similarity index 67% rename from workloads/terasort/spark/java/bin/run.sh rename to bin/workloads/streaming/repartition/gearpump/run.sh index 2300db2f7..57a63de99 100755 --- a/workloads/terasort/spark/java/bin/run.sh +++ b/bin/workloads/streaming/repartition/gearpump/run.sh @@ -14,22 +14,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/repartition.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench JavaSparkTerasort ${workload_root} ${workload_folder} +enter_bench GearpumpRepartition ${workload_config} ${current_dir} show_bannar start -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.terasort.JavaTeraSort $INPUT_HDFS $OUTPUT_HDFS +printFullLog +run-gearpump-app com.intel.hibench.gearpumpbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} END_TIME=`timestamp` -gen_report ${START_TIME} ${END_TIME} ${SIZE} +gen_report ${START_TIME} ${END_TIME} 0 show_bannar finish leave_bench - diff --git a/bin/workloads/streaming/repartition/prepare/dataGen.sh b/bin/workloads/streaming/repartition/prepare/dataGen.sh new file mode 100755 index 000000000..db58b407d --- /dev/null +++ b/bin/workloads/streaming/repartition/prepare/dataGen.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/repartition.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StreamingRepartitionPrepare ${workload_config} ${current_dir} +show_bannar start + +DATA_FILE1=${STREAMING_DATA1_DIR}/uservisits +DATA_FILE2=${STREAMING_DATA2_SAMPLE_DIR} + +JVM_OPTS="-Xmx1024M -server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=bin/../logs -cp ${DATATOOLS}" + +printFullLog + +CMD="$JAVA_BIN $JVM_OPTS com.intel.hibench.datagen.streaming.DataGenerator $SPARKBENCH_PROPERTIES_FILES $DATA_FILE1 0 $DATA_FILE2 0" +echo -e "${BGreen}Sending streaming data to kafka, periodically: ${Green}$CMD${Color_Off}" +execute_withlog $CMD + +show_bannar finish diff --git a/bin/workloads/streaming/repartition/prepare/genSeedDataset.sh b/bin/workloads/streaming/repartition/prepare/genSeedDataset.sh new file mode 100755 index 000000000..a40da7198 --- /dev/null +++ b/bin/workloads/streaming/repartition/prepare/genSeedDataset.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/repartition.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + + +# generate seed data1 by hive +enter_bench HadoopPrepareDatafile1 ${workload_config} ${current_dir} +show_bannar start + +PAGES=120000 +USERVISITS=1000000 + +rmr-hdfs $STREAMING_DATA_DIR || true +echo -e "${On_Blue}Pages:${PAGES}, USERVISITS:${USERVISITS}${Color_Off}" + +OPTION="-t hive \ + -b ${STREAMING_DATA_DIR} \ + -n ${STREAMING_DATA1_NAME} \ + -m ${NUM_MAPS} \ + -r ${NUM_REDS} \ + -p ${PAGES} \ + -v ${USERVISITS}" + +START_TIME=`timestamp` +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} +END_TIME=`timestamp` +SIZE="0" + +show_bannar finish +leave_bench + +# generate seed data2 by kmeans +enter_bench HadoopPrepareDatafile2 ${workload_config} ${current_dir} +show_bannar start + +rmr-hdfs $STREAMING_DATA2_SAMPLE_DIR || true +OPTION="-sampleDir ${STREAMING_DATA2_SAMPLE_DIR} -clusterDir ${STREAMING_DATA2_CLUSTER_DIR} -numClusters 5 -numSamples 3000000 -samplesPerFile 600000 -sampleDimension 20 -textOutput" +run-hadoop-job ${DATATOOLS} org.apache.mahout.clustering.kmeans.GenKMeansDataset -D hadoop.job.history.user.location=${STREAMING_DATA2_SAMPLE_DIR} ${OPTION} +END_TIME=`timestamp` + +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/repartition/spark/run.sh b/bin/workloads/streaming/repartition/spark/run.sh new file mode 100755 index 000000000..7f83359b0 --- /dev/null +++ b/bin/workloads/streaming/repartition/spark/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/repartition.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench SparkStreamingRepartition ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-spark-job com.intel.hibench.sparkbench.streaming.RunBench $SPARKBENCH_PROPERTIES_FILES +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/repartition/storm/run.sh b/bin/workloads/streaming/repartition/storm/run.sh new file mode 100755 index 000000000..aed508ef2 --- /dev/null +++ b/bin/workloads/streaming/repartition/storm/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/repartition.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StormRepartition ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} storm +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/repartition/trident/run.sh b/bin/workloads/streaming/repartition/trident/run.sh new file mode 100755 index 000000000..c6dc9289a --- /dev/null +++ b/bin/workloads/streaming/repartition/trident/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/repartition.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StormTridentRepartition ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} trident +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/wordcount/flink/run.sh b/bin/workloads/streaming/wordcount/flink/run.sh new file mode 100755 index 000000000..e38e67ae0 --- /dev/null +++ b/bin/workloads/streaming/wordcount/flink/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench FlinkWordcount ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-flink-job -c com.intel.hibench.flinkbench.RunBench +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/wordcount/gearpump/run.sh b/bin/workloads/streaming/wordcount/gearpump/run.sh new file mode 100755 index 000000000..ff95435b1 --- /dev/null +++ b/bin/workloads/streaming/wordcount/gearpump/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench GearpumpWordcount ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-gearpump-app com.intel.hibench.gearpumpbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/wordcount/prepare/dataGen.sh b/bin/workloads/streaming/wordcount/prepare/dataGen.sh new file mode 100755 index 000000000..13fe8cb35 --- /dev/null +++ b/bin/workloads/streaming/wordcount/prepare/dataGen.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StreamingWordcountPrepare ${workload_config} ${current_dir} +show_bannar start + +DATA_FILE1=${STREAMING_DATA1_DIR}/uservisits +DATA_FILE2=${STREAMING_DATA2_SAMPLE_DIR} + +JVM_OPTS="-Xmx1024M -server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=bin/../logs -cp ${DATATOOLS}" + +printFullLog + +CMD="$JAVA_BIN $JVM_OPTS com.intel.hibench.datagen.streaming.DataGenerator $SPARKBENCH_PROPERTIES_FILES $DATA_FILE1 0 $DATA_FILE2 0" +echo -e "${BGreen}Sending streaming data to kafka, periodically: ${Green}$CMD${Color_Off}" +execute_withlog $CMD + +show_bannar finish diff --git a/bin/workloads/streaming/wordcount/prepare/genSeedDataset.sh b/bin/workloads/streaming/wordcount/prepare/genSeedDataset.sh new file mode 100755 index 000000000..e160233e5 --- /dev/null +++ b/bin/workloads/streaming/wordcount/prepare/genSeedDataset.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + + +# generate seed data1 by hive +enter_bench HadoopPrepareDatafile1 ${workload_config} ${current_dir} +show_bannar start + +PAGES=120000 +USERVISITS=1000000 + +rmr-hdfs $STREAMING_DATA_DIR || true +echo -e "${On_Blue}Pages:${PAGES}, USERVISITS:${USERVISITS}${Color_Off}" + +OPTION="-t hive \ + -b ${STREAMING_DATA_DIR} \ + -n ${STREAMING_DATA1_NAME} \ + -m ${NUM_MAPS} \ + -r ${NUM_REDS} \ + -p ${PAGES} \ + -v ${USERVISITS}" + +START_TIME=`timestamp` +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} +END_TIME=`timestamp` +SIZE="0" + +show_bannar finish +leave_bench + +# generate seed data2 by kmeans +enter_bench HadoopPrepareDatafile2 ${workload_config} ${current_dir} +show_bannar start + +rmr-hdfs $STREAMING_DATA2_SAMPLE_DIR || true +OPTION="-sampleDir ${STREAMING_DATA2_SAMPLE_DIR} -clusterDir ${STREAMING_DATA2_CLUSTER_DIR} -numClusters 5 -numSamples 3000000 -samplesPerFile 600000 -sampleDimension 20 -textOutput" +run-hadoop-job ${DATATOOLS} org.apache.mahout.clustering.kmeans.GenKMeansDataset -D hadoop.job.history.user.location=${STREAMING_DATA2_SAMPLE_DIR} ${OPTION} +END_TIME=`timestamp` + +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/wordcount/spark/run.sh b/bin/workloads/streaming/wordcount/spark/run.sh new file mode 100755 index 000000000..80ad6b606 --- /dev/null +++ b/bin/workloads/streaming/wordcount/spark/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench SparkStreamingWordcount ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-spark-job com.intel.hibench.sparkbench.streaming.RunBench $SPARKBENCH_PROPERTIES_FILES +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/wordcount/storm/run.sh b/bin/workloads/streaming/wordcount/storm/run.sh new file mode 100755 index 000000000..2984edb5f --- /dev/null +++ b/bin/workloads/streaming/wordcount/storm/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StormWordcount ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} storm +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/bin/workloads/streaming/wordcount/trident/run.sh b/bin/workloads/streaming/wordcount/trident/run.sh new file mode 100755 index 000000000..55038a8b0 --- /dev/null +++ b/bin/workloads/streaming/wordcount/trident/run.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/streaming/wordcount.conf +. "${root_dir}/bin/functions/load-bench-config.sh" + +enter_bench StormTridentWordcount ${workload_config} ${current_dir} +show_bannar start + +START_TIME=`timestamp` +printFullLog +run-storm-job com.intel.hibench.stormbench.RunBench ${SPARKBENCH_PROPERTIES_FILES} trident +END_TIME=`timestamp` + +gen_report ${START_TIME} ${END_TIME} 0 +show_bannar finish +leave_bench diff --git a/workloads/nutchindexing/mapreduce/bin/run.sh b/bin/workloads/websearch/nutchindexing/hadoop/run.sh similarity index 60% rename from workloads/nutchindexing/mapreduce/bin/run.sh rename to bin/workloads/websearch/nutchindexing/hadoop/run.sh index 2ab992a50..73b4f9411 100755 --- a/workloads/nutchindexing/mapreduce/bin/run.sh +++ b/bin/workloads/websearch/nutchindexing/hadoop/run.sh @@ -14,20 +14,34 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/websearch/nutchindexing.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopNutchindexing ${workload_root} ${workload_folder} +enter_bench HadoopNutchindexing ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true +command_exist zip +if [ $? -ne 0 ] + then + echo -e "\e[31mcan't find zip command,for ubuntu system, you can try use command line 'apt-get install zip'\e[0m" + exit +fi +command_exist unzip +if [ $? -ne 0 ] + then + echo -e "\e[31mcan't find unzip command,for ubuntu system, you can try use command line 'apt-get install unzip'\e[0m" + exit +fi + + NUTCH_HOME_WORKLOAD=`ensure-nutchindexing-release` -NUTCH_DEPENDENCY_DIR=$DEPENDENCY_DIR"/nutchindexing/target/dependency" +NUTCH_DEPENDENCY_DIR=$root_dir"/hadoopbench/nutchindexing/target/dependency" cd $NUTCH_HOME_WORKLOAD - SIZE=`dir_size $INPUT_HDFS` MONITOR_PID=`start-monitor` START_TIME=`timestamp` @@ -35,7 +49,9 @@ START_TIME=`timestamp` export_withlog HIBENCH_WORKLOAD_CONF NUTCH_CONF_DIR=$HADOOP_CONF_DIR:$NUTCH_HOME_WORKLOAD/conf export_withlog NUTCH_CONF_DIR -CMD="$NUTCH_HOME_WORKLOAD/bin/nutch index ${COMPRESS_OPT} $OUTPUT_HDFS $INPUT_HDFS/crawldb $INPUT_HDFS/linkdb $INPUT_HDFS/segments/*" + +CMD="$NUTCH_HOME_WORKLOAD/bin/nutch index -D mapreduce.output.fileoutputformat.compress=false $OUTPUT_HDFS $INPUT_HDFS/crawldb $INPUT_HDFS/linkdb $INPUT_HDFS/segments/*" +echo $CMD execute_withlog $CMD END_TIME=`timestamp` @@ -51,4 +67,4 @@ leave_bench #SIZE=`$HADOOP_EXECUTABLE fs -dus $INPUT_HDFS | grep -o [0-9]* ` #export NUTCH_CONF_DIR=$HADOOP_CONF_DIR:$NUTCH_HOME/conf -#$NUTCH_HOME/bin/nutch index $COMPRESS_OPTS $OUTPUT_HDFS $INPUT_HDFS/crawldb $INPUT_HDFS/linkdb $INPUT_HDFS/segments/* \ No newline at end of file +#$NUTCH_HOME/bin/nutch index $COMPRESS_OPTS $OUTPUT_HDFS $INPUT_HDFS/crawldb $INPUT_HDFS/linkdb $INPUT_HDFS/segments/* diff --git a/workloads/nutchindexing/prepare/prepare.sh b/bin/workloads/websearch/nutchindexing/prepare/prepare.sh similarity index 76% rename from workloads/nutchindexing/prepare/prepare.sh rename to bin/workloads/websearch/nutchindexing/prepare/prepare.sh index 9dac93815..3abb71668 100755 --- a/workloads/nutchindexing/prepare/prepare.sh +++ b/bin/workloads/websearch/nutchindexing/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../../ +workload_config=${root_dir}/conf/workloads/websearch/nutchindexing.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPrepareNutchindexing ${workload_root} ${workload_folder} +enter_bench HadoopPrepareNutchindexing ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true @@ -37,7 +38,7 @@ OPTION="-t nutch \ -p ${PAGES} \ -o sequence" -run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} 2>&1 ${DATATOOLS_COMPRESS_OPT} 2>&1 +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} 2>&1 END_TIME=`timestamp` stop-monitor $MONITOR_PID diff --git a/workloads/pagerank/mapreduce/bin/run.sh b/bin/workloads/websearch/pagerank/hadoop/run.sh similarity index 58% rename from workloads/pagerank/mapreduce/bin/run.sh rename to bin/workloads/websearch/pagerank/hadoop/run.sh index 880d1e3b9..d3e6df8c3 100755 --- a/workloads/pagerank/mapreduce/bin/run.sh +++ b/bin/workloads/websearch/pagerank/hadoop/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/websearch/pagerank.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPagerank ${workload_root} ${workload_folder} +enter_bench HadoopPagerank ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true @@ -28,9 +29,9 @@ SIZE=`dir_size $INPUT_HDFS` if [ $BLOCK -eq 0 ] then - OPTION="${COMPRESS_OPT} ${INPUT_HDFS}/edges ${OUTPUT_HDFS} ${PAGES} ${NUM_REDS} ${NUM_ITERATIONS} nosym new" + OPTION="${INPUT_HDFS}/edges ${OUTPUT_HDFS} ${PAGES} ${NUM_REDS} ${NUM_ITERATIONS} nosym new" else - OPTION="${COMPRESS_OPT} ${OUTPUT_HDFS} ${PAGES} ${NUM_REDS} ${NUM_ITERATIONS} ${BLOCK_WIDTH}" + OPTION=" ${OUTPUT_HDFS} ${PAGES} ${NUM_REDS} ${NUM_ITERATIONS} ${BLOCK_WIDTH}" fi MONITOR_PID=`start-monitor` @@ -41,18 +42,18 @@ if [ $BLOCK -eq 0 ] then run-hadoop-job ${PEGASUS_JAR} pegasus.PagerankNaive $OPTION else - run-hadoop-job ${PEGASUS_JAR} pegasus.PagerankInitVector ${COMPRESS_OPT} ${OUTPUT_HDFS}/pr_initvector ${PAGES} ${NUM_REDS} + run-hadoop-job ${PEGASUS_JAR} pegasus.PagerankInitVector ${OUTPUT_HDFS}/pr_initvector ${PAGES} ${NUM_REDS} rmr-hdfs ${OUTPUT_HDFS}/pr_input rmr-hdfs ${OUTPUT_HDFS}/pr_iv_block - run-hadoop-job ${PEGASUS_JAR} pegasus.matvec.MatvecPrep ${COMPRESS_OPT} ${OUTPUT_HDFS}/pr_initvector ${OUTPUT_HDFS}/pr_iv_block ${PAGES} ${BLOCK_WIDTH} ${NUM_REDS} s makesym + run-hadoop-job ${PEGASUS_JAR} pegasus.matvec.MatvecPrep ${OUTPUT_HDFS}/pr_initvector ${OUTPUT_HDFS}/pr_iv_block ${PAGES} ${BLOCK_WIDTH} ${NUM_REDS} s makesym rmr-hdfs ${OUTPUT_HDFS}/pr_initvector rmr-hdfs ${OUTPUT_HDFS}/pr_edge_colnorm - run-hadoop-job ${PEGASUS_JAR} pegasus.PagerankPrep ${COMPRESS_OPT} ${INPUT_HDFS}/edges ${OUTPUT_HDFS}/pr_edge_colnorm ${NUM_REDS} makesym + run-hadoop-job ${PEGASUS_JAR} pegasus.PagerankPrep ${INPUT_HDFS}/edges ${OUTPUT_HDFS}/pr_edge_colnorm ${NUM_REDS} makesym rmr-hdfs ${OUTPUT_HDFS}/pr_edge_block - run-hadoop-job ${PEGASUS_JAR} pegasus.matvec.MatvecPrep ${COMPRESS_OPT} ${OUTPUT_HDFS}/pr_edge_colnorm ${OUTPUT_HDFS}/pr_edge_block ${PAGES} ${BLOCK_WIDTH} ${NUM_REDS} null nosym + run-hadoop-job ${PEGASUS_JAR} pegasus.matvec.MatvecPrep ${OUTPUT_HDFS}/pr_edge_colnorm ${OUTPUT_HDFS}/pr_edge_block ${PAGES} ${BLOCK_WIDTH} ${NUM_REDS} null nosym rmr-hdfs ${OUTPUT_HDFS}/pr_edge_colnorm run-hadoop-job ${PEGASUS_JAR} pegasus.PagerankBlock ${OPTION} diff --git a/workloads/pagerank/prepare/prepare.sh b/bin/workloads/websearch/pagerank/prepare/prepare.sh similarity index 70% rename from workloads/pagerank/prepare/prepare.sh rename to bin/workloads/websearch/pagerank/prepare/prepare.sh index cc614809b..c980e2ff5 100755 --- a/workloads/pagerank/prepare/prepare.sh +++ b/bin/workloads/websearch/pagerank/prepare/prepare.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/websearch/pagerank.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench HadoopPreparePagerank ${workload_root} ${workload_folder} +enter_bench HadoopPreparePagerank ${workload_config} ${current_dir} show_bannar start rmr-hdfs $INPUT_HDFS || true @@ -27,21 +28,17 @@ START_TIME=`timestamp` OPTION="-t pagerank \ -b ${PAGERANK_BASE_HDFS} \ - -n ${PAGERANK_INPUT} \ + -n Input \ -m ${NUM_MAPS} \ -r ${NUM_REDS} \ -p ${PAGES} \ -pbalance -pbalance \ -o text" -run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} ${DATATOOLS_COMPRESS_OPT} +run-hadoop-job ${DATATOOLS} HiBench.DataGen ${OPTION} END_TIME=`timestamp` show_bannar finish leave_bench - - -#run-spark-job com.intel.sparkbench.datagen.convert.PagerankConvert ${INPUT_HDFS_DIR}/edges ${INPUT_HDFS} - diff --git a/workloads/pagerank/spark/scala/bin/run.sh b/bin/workloads/websearch/pagerank/spark/run.sh similarity index 79% rename from workloads/pagerank/spark/scala/bin/run.sh rename to bin/workloads/websearch/pagerank/spark/run.sh index 31d4d449e..3adec58ce 100755 --- a/workloads/pagerank/spark/scala/bin/run.sh +++ b/bin/workloads/websearch/pagerank/spark/run.sh @@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" +current_dir=`dirname "$0"` +current_dir=`cd "$current_dir"; pwd` +root_dir=${current_dir}/../../../../.. +workload_config=${root_dir}/conf/workloads/websearch/pagerank.conf +. "${root_dir}/bin/functions/load-bench-config.sh" -enter_bench ScalaSparkPagerank ${workload_root} ${workload_folder} +enter_bench ScalaSparkPagerank ${workload_config} ${current_dir} show_bannar start rmr-hdfs $OUTPUT_HDFS || true diff --git a/common/pom.xml b/common/pom.xml new file mode 100644 index 000000000..13de95d79 --- /dev/null +++ b/common/pom.xml @@ -0,0 +1,96 @@ + + + + + 4.0.0 + + com.intel.hibench + hibench + 6.0-SNAPSHOT + + + com.intel.hibench + hibench-common + jar + 6.0-SNAPSHOT + hibench-common + + + + com.codahale.metrics + metrics-jvm + 3.0.2 + + + org.apache.kafka + kafka_2.11 + 0.8.2.1 + + + + + + + net.alchim31.maven + scala-maven-plugin + + ${scala.binary.version} + ${scala.version} + + + + scala-compile-first + process-resources + + add-source + compile + + + + scala-test-compile + process-test-resources + + testCompile + + + + + + maven-assembly-plugin + ${maven-assembly-plugin.version} + + ${project.build.finalName} + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + + diff --git a/src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKStringSerializer.java b/common/src/main/java/com/intel/hibench/common/HiBenchConfig.java similarity index 50% rename from src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKStringSerializer.java rename to common/src/main/java/com/intel/hibench/common/HiBenchConfig.java index 4639437fa..2c1521c79 100644 --- a/src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKStringSerializer.java +++ b/common/src/main/java/com/intel/hibench/common/HiBenchConfig.java @@ -15,35 +15,29 @@ * limitations under the License. */ -package com.intel.hibench.streambench.zkHelper; -import java.io.UnsupportedEncodingException; +package com.intel.hibench.common; -import org.I0Itec.zkclient.exception.ZkMarshallingError; -import org.I0Itec.zkclient.serialize.ZkSerializer; +/** + * common configurations used in HiBench project are defined here. Later we plan to move this file + * to higher project. + */ +public class HiBenchConfig { -public class ZKStringSerializer implements ZkSerializer { + // ===================================== + // Spark Related Conf + // ===================================== + public static String SPARK_MASTER = "hibench.spark.master"; - @Override - public Object deserialize(byte[] bytes) throws ZkMarshallingError { - if (bytes == null) - return null; - try { - return new String(bytes,"UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return null; - } + // ===================================== + // DFS Related Conf + // ===================================== + public static String DFS_MASTER = "hibench.hdfs.master"; - @Override - public byte[] serialize(Object data) throws ZkMarshallingError { - try { - return ((String)data).getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return null; - } + // ===================================== + // YARN Related Conf + // ===================================== + public static String YARN_EXECUTOR_NUMBER = "hibench.yarn.executor.num"; + public static String YARN_EXECUTOR_CORES = "hibench.yarn.executor.cores"; } diff --git a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/utils/ConfigLoader.java b/common/src/main/java/com/intel/hibench/common/streaming/ConfigLoader.java similarity index 98% rename from src/streambench/datagen/src/main/java/com/intel/hibench/streambench/utils/ConfigLoader.java rename to common/src/main/java/com/intel/hibench/common/streaming/ConfigLoader.java index bb4ad16a5..ffaf8b9bd 100644 --- a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/utils/ConfigLoader.java +++ b/common/src/main/java/com/intel/hibench/common/streaming/ConfigLoader.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.intel.hibench.streambench.utils; +package com.intel.hibench.common.streaming; import java.io.BufferedReader; import java.io.FileNotFoundException; diff --git a/src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/OffsetResetUpdater.java b/common/src/main/java/com/intel/hibench/common/streaming/KMeansData.java similarity index 73% rename from src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/OffsetResetUpdater.java rename to common/src/main/java/com/intel/hibench/common/streaming/KMeansData.java index 3f55455eb..7461dfe99 100644 --- a/src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/OffsetResetUpdater.java +++ b/common/src/main/java/com/intel/hibench/common/streaming/KMeansData.java @@ -15,20 +15,22 @@ * limitations under the License. */ -package com.intel.hibench.streambench.zkHelper; +package com.intel.hibench.common.streaming; -import org.I0Itec.zkclient.DataUpdater; +public class KMeansData { + long id; + double[] data; -public class OffsetResetUpdater implements DataUpdater { + public KMeansData(long id, double[] data) { + this.id = id; + this.data = data; + } - T newOffset; - public OffsetResetUpdater(T offset){ - newOffset=offset; - } - - @Override - public T update(T l) { - return newOffset; - } + public double[] getData() { + return data; + } + public long getId() { + return id; + } } diff --git a/common/src/main/java/com/intel/hibench/common/streaming/KMeansDataParser.java b/common/src/main/java/com/intel/hibench/common/streaming/KMeansDataParser.java new file mode 100644 index 000000000..50613a03c --- /dev/null +++ b/common/src/main/java/com/intel/hibench/common/streaming/KMeansDataParser.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming; + +// raw numeric data format: +// 8 {0:-60.196392992004334,5:620.4421901009101,14:420.4220612785746,13:185.21083185702275,15:483.72692251215295,1:594.7827813502976,3:140.3239790342253,16:3.104707691856035,9:635.8535653005378,19:322.0711157700041,11:87.66295667498484,18:857.7858889856491,17:101.49594891724111,2:921.839749304954,6:697.4655671122938,7:367.3720748762538,8:855.4795500704753,10:564.4074585413068,4:913.7870598326768,12:275.71369666459043} +// 9 {0:53.780307992655864,5:670.9608085434543,14:427.8278718060577,13:-42.1599560546298,15:509.38987065684455,1:575.0478527061222,3:111.01989708300927,16:48.39876690814693,9:546.0244129369196,19:344.88758399392515,11:35.63727678698427,18:826.8387868256459,17:100.39105575653751,2:972.7568962232599,6:743.3101817500838,7:367.5321255830725,8:897.5852428056947,10:705.1143980643583,4:891.1293114411877,12:364.63401807787426} +public class KMeansDataParser { + // assume maximum dimension of k means data is 2048. Should be large enough. + private static final int MAXIMUM_NUMERIC_COLUMNS = 2048; + + static public KMeansData parse(String line) { + double[] data = new double[MAXIMUM_NUMERIC_COLUMNS]; + + String[] elements = line.split("[{}:,\\s]+"); + long id = Long.parseLong(elements[0]); + + for (int i = 1; i < elements.length; i +=2) { + int index = Integer.parseInt(elements[i]); + + if (index < MAXIMUM_NUMERIC_COLUMNS) { + double value = Double.parseDouble(elements[i+1]); + data[index] = value; + } + } + return new KMeansData(id, data); + } +} diff --git a/common/src/main/java/com/intel/hibench/common/streaming/Platform.java b/common/src/main/java/com/intel/hibench/common/streaming/Platform.java new file mode 100644 index 000000000..b69d7e8e6 --- /dev/null +++ b/common/src/main/java/com/intel/hibench/common/streaming/Platform.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming; + +public enum Platform { + + SPARK("spark"), + FLINK("flink"), + STORM("storm"), + TRIDENT("trident"), + GEARPUMP("gearpump"), + SAMZA("samza"); + + private final String platform; + + Platform(String platform) { + this.platform = platform; + } +} diff --git a/common/src/main/java/com/intel/hibench/common/streaming/StreamBenchConfig.java b/common/src/main/java/com/intel/hibench/common/streaming/StreamBenchConfig.java new file mode 100644 index 000000000..1c43e845b --- /dev/null +++ b/common/src/main/java/com/intel/hibench/common/streaming/StreamBenchConfig.java @@ -0,0 +1,105 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming; + +/** + * All name of configurations used in StreamBench are defined here. Later I plan to refactor + * property name. With this mapping layer, the underlying Java/Scala code don't need to be + * changed. + */ +public class StreamBenchConfig { + // ===================================== + // General StreamBench Conf + // ===================================== + public static String TESTCASE = "hibench.streambench.testCase"; + + public static String ZK_HOST = "hibench.streambench.zkHost"; + + public static String CONSUMER_GROUP = "hibench.streambench.kafka.consumerGroup"; + + public static String KAFKA_TOPIC = "hibench.streambench.kafka.topic"; + + public static String KAFKA_BROKER_LIST = "hibench.streambench.kafka.brokerList"; + + public static String KAFKA_OFFSET_RESET = "hibench.streambench.kafka.offsetReset"; + + public static String KAFKA_TOPIC_PARTITIONS = "hibench.streambench.kafka.topicPartitions"; + + public static String DEBUG_MODE = "hibench.streambench.debugMode"; + + // ===================================== + // TestCase related + // ===================================== + // TODO: Once we remove all sample testcases, this config could be removed. + public static String SAMPLE_PROBABILITY = "hibench.streambench.sampleProbability"; + + public static String FixWINDOW_DURATION = "hibench.streambench.fixWindowDuration"; + + public static String FixWINDOW_SLIDESTEP = "hibench.streambench.fixWindowSlideStep"; + + // ===================================== + // Data Generator Related Conf + // ===================================== + public static String DATAGEN_RECORDS_PRE_INTERVAL = "hibench.streambench.datagen.recordsPerInterval"; + + public static String DATAGEN_INTERVAL_SPAN = "hibench.streambench.datagen.intervalSpan"; + + public static String DATAGEN_TOTAL_RECORDS = "hibench.streambench.datagen.totalRecords"; + + public static String DATAGEN_TOTAL_ROUNDS = "hibench.streambench.datagen.totalRounds"; + + public static String DATAGEN_RECORD_LENGTH = "hibench.streambench.datagen.recordLength"; + + public static String DATAGEN_PRODUCER_NUMBER = "hibench.streambench.datagen.producerNumber"; + // ===================================== + // Spark Streaming Related Conf + // ===================================== + public static String SPARK_BATCH_INTERVAL = "hibench.streambench.spark.batchInterval"; + + public static String SPARK_CHECKPOINT_PATH = "hibench.streambench.spark.checkpointPath"; + + public static String SPARK_ENABLE_WAL = "hibench.streambench.spark.enableWAL"; + + public static String SPARK_USE_DIRECT_MODE = "hibench.streambench.spark.useDirectMode"; + + public static String SPARK_STORAGE_LEVEL = "hibench.streambench.spark.storageLevel"; + + public static String SPARK_RECEIVER_NUMBER = "hibench.streambench.spark.receiverNumber"; + + // ====================================== + // Flink Related Conf + // ====================================== + public static String FLINK_BUFFERTIMEOUT = "hibench.streambench.flink.bufferTimeout"; + + public static String FLINK_CHECKPOINTDURATION = "hibench.streambench.flink.checkpointDuration"; + + // ====================================== + // Storm Related Conf + // ====================================== + public static String STORM_WORKERCOUNT = "hibench.streambench.storm.worker_count"; + public static String STORM_SPOUT_THREADS = "hibench.streambench.storm.spout_threads"; + public static String STORM_BOLT_THREADS = "hibench.streambench.storm.bolt_threads"; + public static String STORM_ACKON = "hibench.streambench.storm.ackon"; + public static String STORM_LOCAL_SHUFFLE = "hibench.streambench.storm.localshuffle"; + + // ===================================== + // Gearpump Related Conf + // ===================================== + public static String GEARPUMP_PARALLELISM = "hibench.streambench.gearpump.parallelism"; + +} diff --git a/common/src/main/java/com/intel/hibench/common/streaming/TestCase.java b/common/src/main/java/com/intel/hibench/common/streaming/TestCase.java new file mode 100644 index 000000000..59e0d55d2 --- /dev/null +++ b/common/src/main/java/com/intel/hibench/common/streaming/TestCase.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming; + +public enum TestCase { + + // Do nothing with input events. It's useful to test the native schedule cost + IDENTITY("identity"), + + // Repartition input events to ensure data shuffle happening + REPARTITION("repartition"), + + // Wordcount is used to test the performance of state operator + WORDCOUNT("wordcount"), + + // FixWindow is used to test the performance of window operator + FIXWINDOW("fixwindow"), + + + // ====== Following TestCase hasn't been finalized ====== + PROJECT("project"), + + SAMPLE("sample"), + + GREP("grep"), + + DISTINCTCOUNT("distinctCount"), + + STATISTICS("statistics"); + // ========================================================= + + private String name; + + TestCase(String name) { + this.name = name; + } + + // Convert input name to uppercase and return related value of TestCase type + public static TestCase withValue(String name) {return TestCase.valueOf(name.toUpperCase()); } +} diff --git a/common/src/main/java/com/intel/hibench/common/streaming/UserVisit.java b/common/src/main/java/com/intel/hibench/common/streaming/UserVisit.java new file mode 100644 index 000000000..5d9c109e6 --- /dev/null +++ b/common/src/main/java/com/intel/hibench/common/streaming/UserVisit.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming; + +import java.io.Serializable; + +/** + * I only add three fields here, we can add more later if we need them. + */ +public class UserVisit implements Serializable{ + String ip; + String sessionId; // TODO: Not sure about the meaning of this field + String browser; + + + public UserVisit(String ip, String sessionId, String browser) { + this.browser = browser; + this.ip = ip; + this.sessionId = sessionId; + } + + public String getBrowser() { + return browser; + } + + public String getIp() { + return ip; + } + + public String getSessionId() { + return sessionId; + } +} diff --git a/common/src/main/java/com/intel/hibench/common/streaming/UserVisitParser.java b/common/src/main/java/com/intel/hibench/common/streaming/UserVisitParser.java new file mode 100644 index 000000000..1f10831e1 --- /dev/null +++ b/common/src/main/java/com/intel/hibench/common/streaming/UserVisitParser.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming; + +// raw uservisit table format: +// 0 227.209.164.46,nbizrgdziebsaecsecujfjcqtvnpcnxxwiopmddorcxnlijdizgoi,1991-06-10,0.115967035,Mozilla/5.0 (iPhone; U; CPU like Mac OS X)AppleWebKit/420.1 (KHTML like Gecko) Version/3.0 Mobile/4A93Safari/419.3,YEM,YEM-AR,snowdrops,1 +// 0 35.143.225.164,nbizrgdziebsaecsecujfjcqtvnpcnxxwiopmddorcxnlijdizgoi,1996-05-31,0.8792629,Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML like Gecko) Chrome/0.2.149.27 Safari/525.13,PRT,PRT-PT,fraternally,8 +// 0 34.57.45.175,nbizrgdziebtsaecsecujfjcqtvnpcnxxwiopmddorcxnlijdizgoi,2001-06-29,0.14202267,Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1),DOM,DOM-ES,Gaborone's,7 +public class UserVisitParser { + + public static UserVisit parse(String line) { + String[] elements = line.split("[\\s,]+"); + String ip = elements[1]; + String sessionId = elements[2]; + String browser = elements[5]; + return new UserVisit(ip, sessionId, browser); + } +} diff --git a/common/src/main/scala/com/intel/hibench/common/streaming/metrics/FetchJob.scala b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/FetchJob.scala new file mode 100644 index 000000000..90da0b1ff --- /dev/null +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/FetchJob.scala @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming.metrics + +import java.util.concurrent.Callable + +import com.codahale.metrics.Histogram + +class FetchJob(zkConnect: String, topic: String, partition: Int, + histogram: Histogram) extends Callable[FetchJobResult] { + + override def call(): FetchJobResult = { + val result = new FetchJobResult() + val consumer = new KafkaConsumer(zkConnect, topic, partition) + while (consumer.hasNext) { + val times = new String(consumer.next(), "UTF-8").split(":") + val startTime = times(0).toLong + val endTime = times(1).toLong + // correct negative value which might be caused by difference of system time + histogram.update(Math.max(0, endTime - startTime)) + result.update(startTime, endTime) + } + println(s"Collected ${result.count} results for partition: ${partition}") + result + } +} + +class FetchJobResult(var minTime: Long, var maxTime: Long, var count: Long) { + + def this() = this(Long.MaxValue, Long.MinValue, 0) + + def update(startTime: Long ,endTime: Long): Unit = { + count += 1 + + if(startTime < minTime) { + minTime = startTime + } + + if(endTime > maxTime) { + maxTime = endTime + } + } +} diff --git a/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaCollector.scala b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaCollector.scala new file mode 100644 index 000000000..4898b1859 --- /dev/null +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaCollector.scala @@ -0,0 +1,114 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.common.streaming.metrics + +import java.io.{FileWriter, File} +import java.util.Date +import java.util.concurrent.{TimeUnit, Future, Executors} + +import com.codahale.metrics.{UniformReservoir, Histogram} +import kafka.utils.{ZKStringSerializer, ZkUtils} +import org.I0Itec.zkclient.ZkClient + +import scala.collection.mutable.ArrayBuffer + + +class KafkaCollector(zkConnect: String, metricsTopic: String, + outputDir: String, sampleNumber: Int, desiredThreadNum: Int) extends LatencyCollector { + + private val histogram = new Histogram(new UniformReservoir(sampleNumber)) + private val threadPool = Executors.newFixedThreadPool(desiredThreadNum) + private val fetchResults = ArrayBuffer.empty[Future[FetchJobResult]] + + def start(): Unit = { + val partitions = getPartitions(metricsTopic, zkConnect) + + println("Starting MetricsReader for kafka topic: " + metricsTopic) + + partitions.foreach(partition => { + val job = new FetchJob(zkConnect, metricsTopic, partition, histogram) + val fetchFeature = threadPool.submit(job) + fetchResults += fetchFeature + }) + + threadPool.shutdown() + threadPool.awaitTermination(30, TimeUnit.MINUTES) + + val finalResults = fetchResults.map(_.get()).reduce((a, b) => { + val minTime = Math.min(a.minTime, b.minTime) + val maxTime = Math.max(a.maxTime, b.maxTime) + val count = a.count + b.count + new FetchJobResult(minTime, maxTime, count) + }) + + report(finalResults.minTime, finalResults.maxTime, finalResults.count) + } + + private def getPartitions(topic: String, zkConnect: String): Seq[Int] = { + val zkClient = new ZkClient(zkConnect, 6000, 6000, ZKStringSerializer) + try { + ZkUtils.getPartitionsForTopics(zkClient, Seq(topic)).flatMap(_._2).toSeq + } finally { + zkClient.close() + } + } + + + private def report(minTime: Long, maxTime: Long, count: Long): Unit = { + val outputFile = new File(outputDir, metricsTopic + ".csv") + println(s"written out metrics to ${outputFile.getCanonicalPath}") + val header = "time,count,throughput(msgs/s),max_latency(ms),mean_latency(ms),min_latency(ms)," + + "stddev_latency(ms),p50_latency(ms),p75_latency(ms),p95_latency(ms),p98_latency(ms)," + + "p99_latency(ms),p999_latency(ms)\n" + val fileExists = outputFile.exists() + if (!fileExists) { + val parent = outputFile.getParentFile + if (!parent.exists()) { + parent.mkdirs() + } + outputFile.createNewFile() + } + val outputFileWriter = new FileWriter(outputFile, true) + if (!fileExists) { + outputFileWriter.append(header) + } + val time = new Date(System.currentTimeMillis()).toString + val count = histogram.getCount + val snapshot = histogram.getSnapshot + val throughput = count * 1000 / (maxTime - minTime) + outputFileWriter.append(s"$time,$count,$throughput," + + s"${formatDouble(snapshot.getMax)}," + + s"${formatDouble(snapshot.getMean)}," + + s"${formatDouble(snapshot.getMin)}," + + s"${formatDouble(snapshot.getStdDev)}," + + s"${formatDouble(snapshot.getMedian)}," + + s"${formatDouble(snapshot.get75thPercentile())}," + + s"${formatDouble(snapshot.get95thPercentile())}," + + s"${formatDouble(snapshot.get98thPercentile())}," + + s"${formatDouble(snapshot.get99thPercentile())}," + + s"${formatDouble(snapshot.get999thPercentile())}\n") + outputFileWriter.close() + } + + private def formatDouble(d: Double): String = { + "%.3f".format(d) + } + +} + + diff --git a/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaConsumer.scala b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaConsumer.scala new file mode 100644 index 000000000..e94c83ba0 --- /dev/null +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaConsumer.scala @@ -0,0 +1,98 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.common.streaming.metrics + +import java.util.Properties + +import kafka.api.{OffsetRequest, FetchRequestBuilder} +import kafka.common.ErrorMapping._ +import kafka.common.TopicAndPartition +import kafka.consumer.{ConsumerConfig, SimpleConsumer} +import kafka.message.MessageAndOffset +import kafka.utils.{ZKStringSerializer, ZkUtils, Utils} +import org.I0Itec.zkclient.ZkClient + +class KafkaConsumer(zookeeperConnect: String, topic: String, partition: Int) { + + private val CLIENT_ID = "metrics_reader" + private val props = new Properties() + props.put("zookeeper.connect", zookeeperConnect) + props.put("group.id", CLIENT_ID) + private val config = new ConsumerConfig(props) + private val consumer = createConsumer + + private val earliestOffset = consumer + .earliestOrLatestOffset(TopicAndPartition(topic, partition), OffsetRequest.EarliestTime, -1) + private var nextOffset: Long = earliestOffset + private var iterator: Iterator[MessageAndOffset] = getIterator(nextOffset) + + def next(): Array[Byte] = { + val mo = iterator.next() + val message = mo.message + + nextOffset = mo.nextOffset + + Utils.readBytes(message.payload) + } + + def hasNext: Boolean = { + @annotation.tailrec + def hasNextHelper(iter: Iterator[MessageAndOffset], newIterator: Boolean): Boolean = { + if (iter.hasNext) true + else if (newIterator) false + else { + iterator = getIterator(nextOffset) + hasNextHelper(iterator, newIterator = true) + } + } + hasNextHelper(iterator, newIterator = false) + } + + def close(): Unit = { + consumer.close() + } + + private def createConsumer: SimpleConsumer = { + val zkClient = new ZkClient(zookeeperConnect, 6000, 6000, ZKStringSerializer) + try { + val leader = ZkUtils.getLeaderForPartition(zkClient, topic, partition) + .getOrElse(throw new RuntimeException( + s"leader not available for TopicAndPartition($topic, $partition)")) + val broker = ZkUtils.getBrokerInfo(zkClient, leader) + .getOrElse(throw new RuntimeException(s"broker info not found for leader $leader")) + new SimpleConsumer(broker.host, broker.port, + config.socketTimeoutMs, config.socketReceiveBufferBytes, CLIENT_ID) + } catch { + case e: Exception => + throw e + } finally { + zkClient.close() + } + } + + private def getIterator(offset: Long): Iterator[MessageAndOffset] = { + val request = new FetchRequestBuilder() + .addFetch(topic, partition, offset, config.fetchMessageMaxBytes) + .build() + + val response = consumer.fetch(request) + response.errorCode(topic, partition) match { + case NoError => response.messageSet(topic, partition).iterator + case error => throw exceptionFor(error) + } + } +} diff --git a/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaReporter.scala b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaReporter.scala new file mode 100644 index 000000000..b08a9374d --- /dev/null +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/KafkaReporter.scala @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.common.streaming.metrics + +import java.util.Properties + +import org.apache.kafka.clients.producer.{ProducerRecord, KafkaProducer} +import org.apache.kafka.common.serialization.StringSerializer + +/** + * This has to be created at server side + */ +class KafkaReporter(topic: String, bootstrapServers: String) extends LatencyReporter { + + private val producer = ProducerSingleton.getInstance(bootstrapServers) + + override def report(startTime: Long, endTime: Long): Unit = { + producer.send(new ProducerRecord[String, String](topic, null, s"$startTime:$endTime")) + } +} + +object ProducerSingleton { + @volatile private var instance : Option[KafkaProducer[String, String]] = None + + def getInstance(bootstrapServers: String): KafkaProducer[String, String] = synchronized { + if (!instance.isDefined) { + synchronized { + if(!instance.isDefined) { + val props = new Properties() + props.put("bootstrap.servers", bootstrapServers) + instance = Some(new KafkaProducer(props, new StringSerializer, new StringSerializer)) + } + } + } + instance.get + } +} \ No newline at end of file diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractTridentSpoutTops.java b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/LatencyCollector.scala similarity index 80% rename from src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractTridentSpoutTops.java rename to common/src/main/scala/com/intel/hibench/common/streaming/metrics/LatencyCollector.scala index 6c30af33c..53589704d 100644 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractTridentSpoutTops.java +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/LatencyCollector.scala @@ -15,12 +15,10 @@ * limitations under the License. */ -package com.intel.hibench.streambench.storm.topologies; +package com.intel.hibench.common.streaming.metrics -import storm.trident.TridentTopology; +trait LatencyCollector { -public class AbstractTridentSpoutTops { - public void setTopology(TridentTopology topology) { + def start(): Unit - } } diff --git a/src/sparkbench/src/main/java/com/intel/sparkbench/IOCommonWrap.java b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/LatencyReporter.scala similarity index 78% rename from src/sparkbench/src/main/java/com/intel/sparkbench/IOCommonWrap.java rename to common/src/main/scala/com/intel/hibench/common/streaming/metrics/LatencyReporter.scala index f237cc400..fcd2ea793 100644 --- a/src/sparkbench/src/main/java/com/intel/sparkbench/IOCommonWrap.java +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/LatencyReporter.scala @@ -14,14 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.intel.hibench.common.streaming.metrics -package com.intel.sparkbench; +trait LatencyReporter extends java.io.Serializable { + + def report(startTime: Long, endTime: Long): Unit -/* - * A wrapper for py4j to call - */ -public class IOCommonWrap { - public static String getProperty(String key){ - return IOCommon$.MODULE$.getProperty(key).getOrElse(null); - } } diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/CommonArg.java b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/MetricsReader.scala similarity index 60% rename from src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/CommonArg.java rename to common/src/main/scala/com/intel/hibench/common/streaming/metrics/MetricsReader.scala index f62024b49..8b91b72cc 100644 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/CommonArg.java +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/MetricsReader.scala @@ -14,24 +14,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.intel.hibench.common.streaming.metrics -package com.intel.hibench.streambench.samza.micro; +object MetricsReader extends App { -class CommonArg { - static private String separator = "\\s+"; - static private int fieldIndex = 1; - static private String pattern = "the"; - static private double prob = 0.1; - static public String getSeparator() { - return separator; - } - static public int getFieldIndex() { - return fieldIndex; - } - static public String getPattern() { - return pattern; - } - static public double getProb() { - return prob; + if (args.length < 5) { + System.err.println("args: need to be specified!") + System.exit(1) } + + val zookeeperConnect = args(0) + val topic = args(1) + val outputDir = args(2) + val sampleNum = args(3).toInt + val threadNum = args(4).toInt + val latencyCollector = new KafkaCollector(zookeeperConnect, topic, outputDir, sampleNum, threadNum) + latencyCollector.start() } diff --git a/common/src/main/scala/com/intel/hibench/common/streaming/metrics/MetricsUtil.scala b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/MetricsUtil.scala new file mode 100644 index 000000000..51b094f72 --- /dev/null +++ b/common/src/main/scala/com/intel/hibench/common/streaming/metrics/MetricsUtil.scala @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.common.streaming.metrics + +import com.intel.hibench.common.streaming.Platform +import kafka.admin.AdminUtils +import kafka.utils.ZKStringSerializer +import org.I0Itec.zkclient.ZkClient + +object MetricsUtil { + + val TOPIC_CONF_FILE_NAME = "metrics_topic.conf" + + def getTopic(platform: Platform, sourceTopic: String, producerNum: Int, + recordPerInterval: Long, intervalSpan: Int): String = { + val topic = s"${platform}_${sourceTopic}_${producerNum}_${recordPerInterval}" + + s"_${intervalSpan}_${System.currentTimeMillis()}" + println(s"metrics is being written to kafka topic $topic") + topic + } + + def createTopic(zkConnect: String, topic: String, partitions: Int): Unit = { + val zkClient = new ZkClient(zkConnect, 6000, 6000, ZKStringSerializer) + try { + AdminUtils.createTopic(zkClient, topic, partitions, 1) + while (!AdminUtils.topicExists(zkClient, topic)) { + Thread.sleep(100) + } + } catch { + case e: Exception => + throw e + } finally { + zkClient.close() + } + } +} diff --git a/conf/.gitignore b/conf/.gitignore deleted file mode 100644 index 9c94b840f..000000000 --- a/conf/.gitignore +++ /dev/null @@ -1 +0,0 @@ -sparkbench-config.sh diff --git a/conf/00-default-properties.conf b/conf/00-default-properties.conf deleted file mode 100644 index 0fee0959d..000000000 --- a/conf/00-default-properties.conf +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/env python -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - - - -# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE # -# # -# This conf file is part of hibench distribution, provided for a # -# definition of and clarify base configuration for internal mechanism # -# of hibench and not intended for modifications by users. # -# # -# Any configuration should goes on 99-user_defined_properties.conf. # -# # -# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE # - - - - -#====================================================== -# basic hadoop conf -#====================================================== - -# default hadoop executable path -hibench.hadoop.executable ${hibench.hadoop.home}/bin/hadoop - -# Hadoop MapReduce home dir, should be same to Hadoop home by default -hibench.hadoop.mapreduce.home ${hibench.hadoop.home} - -#====================================================== -# basic spark conf -#====================================================== - -# Empty values, will probe automatically. If auto-probe failed, please -# set the correct values in 99-user_defined_properties.conf -java.bin -hibench.hadoop.version -hibench.hadoop.release -hibench.hadoop.configure.dir -hibench.spark.version -hibench.masters.hostnames -hibench.slaves.hostnames -hibench.dfsioe.map.java_opts -hibench.dfsioe.red.java_opts - -# default spark master if unspecified -hibench.spark.master local[1] - -#====================================================== -# Report files -#====================================================== - -# default report formats -hibench.report.formats "%-12s %-10s %-8s %-20s %-20s %-20s %-20s\n" - -# default report dir path -hibench.report.dir ${hibench.home}/report - -# default report file name -hibench.report.name hibench.report - -#====================================================== -# basic sparkbench jars -#====================================================== - -hibench.dependency.dir ${hibench.home}/src -hibench.sparkbench.jar ${hibench.home}/src/sparkbench/target/sparkbench-5.0-SNAPSHOT-${hibench.hadoop.version.mr}-${hibench.spark.version}-jar-with-dependencies.jar - -# convert table: -# hibench.hadoop.version hibench.hadoop.version.mr -# hadoop1 -> MR1 -# hadoop2 -> MR2 -hibench.hadoop.version.mr ${hibench.consts.mr.${hibench.hadoop.version}} -hibench.consts.mr.hadoop1 MR1 -hibench.consts.mr.hadoop2 MR2 - -# hibench config folder -hibench.configure.dir ${hibench.home}/conf - -# sparkbench python workloads -hibench.sparkbench.python.dir ${hibench.home}/src/sparkbench/src/main/python - -# default hibench HDFS root -hibench.hdfs.data.dir ${hibench.hdfs.master}/HiBench - -# path of hibench datatools -hibench.hibench.datatool.dir ${hibench.home}/src/autogen/target/autogen-5.0-SNAPSHOT-jar-with-dependencies.jar - -# jar of sleep job (which is different for hadoop1/2, and apache/cdh -# release) it'll auto probed by python scripts. However, you can -# explicitly define here: -hibench.sleep.job.jar - -# default values of hibench mapper/reducer workloads -hibench.default.map.parallelism 2 -hibench.default.shuffle.parallelism 2 - -# Default YARN resource configuration -hibench.yarn.executor.num 1 -hibench.yarn.executor.cores 1 -hibench.yarn.executor.memory ${spark.executor.memory} -hibench.yarn.driver.memory ${spark.driver.memory} - -#====================================================== -# workload home/input/ouput path -#====================================================== - -hibench.hive.home ${hibench.dependency.dir}/hivebench/target/${hibench.hive.release} -hibench.hive.release hive-0.12.0-bin -hibench.hivebench.template.dir ${hibench.dependency.dir}/hivebench/hive_template -hibench.hive.dir.name.input ${hibench.workload.dir.name.input} -hibench.hive.dir.name.ouput ${hibench.workload.dir.name.output} -hibench.kmeans.dir.name.input ${hibench.workload.dir.name.input} -hibench.kmeans.dir.name.output ${hibench.workload.dir.name.output} -hibench.bayes.dir.name.input ${hibench.workload.dir.name.input} -hibench.bayes.dir.name.output ${hibench.workload.dir.name.output} -hibench.pagerank.dir.name.input ${hibench.workload.dir.name.input} -hibench.pagerank.dir.name.output ${hibench.workload.dir.name.output} -hibench.pagerank.pegasus.dir ${hibench.dependency.dir}/pegasus/target/pegasus-2.0-SNAPSHOT.jar -hibench.mahout.home ${hibench.dependency.dir}/mahout/target/${hibench.mahout.release} -hibench.mahout.release.apache mahout-distribution-0.9 -hibench.mahout.release.hdp mahout-distribution-0.9 -hibench.mahout.release.cdh4 mahout-0.7-cdh4.7.1 -hibench.mahout.release.cdh5 mahout-0.9-cdh5.1.0 -hibench.mahout.release ${hibench.mahout.release.${hibench.hadoop.release}} - -hibench.nutch.dir.name.input ${hibench.workload.dir.name.input} -hibench.nutch.dir.name.output ${hibench.workload.dir.name.output} -hibench.nutch.nutchindexing.dir ${hibench.dependency.dir}/nutchindexing/ -hibench.nutch.release nutch-1.2 -hibench.nutch.home ${hibench.dependency.dir}/nutchindexing/target/${hibench.nutch.release} - -hibench.dfsioe.dir.name.input ${hibench.workload.dir.name.input} -hibench.dfsioe.dir.name.output ${hibench.workload.dir.name.output} - -hibench.randomtextwriter.bytestotal.hadoop1.name test.randomtextwrite.total_bytes -hibench.randomtextwriter.bytestotal.hadoop2.name mapreduce.randomtextwriter.totalbytes -hibench.randomtextwriter.bytestotal.name ${hibench.randomtextwriter.bytestotal.${hibench.hadoop.version}.name} - -hibench.nweight.model_path ${hibench.dependency.dir}/sparkbench/src/main/scala/com/intel/sparkbench/nweight/model/user-features - -# Workload Input/Output name setting for compress/uncompress mode -hibench.workload.dir.name.compress_disable.input Input -hibench.workload.dir.name.compress_disable.output Output -hibench.workload.dir.name.compress_enable.input Input-comp-${hibench.compress.codec.profile} -hibench.workload.dir.name.compress_enable.output Output-comp-${hibench.compress.codec.profile} - -hibench.workload.dir.name.input ${hibench.workload.dir.name.compress_${hibench.compress.profile}.input} -hibench.workload.dir.name.output ${hibench.workload.dir.name.compress_${hibench.compress.profile}.output} - -#====================================================== -# Compression configurations -#====================================================== - -# compression options for hadoop -hibench.workload.compress.enable.options "-D ${hibench.compress.map.output.compress.name}=true -D ${hibench.compress.map.output.compress.codec.name}=${hibench.compress.map.output.compress.codec.value} -D ${hibench.compress.output.fileoutputformat.compress.name}=true -D ${hibench.compress.output.fileoutputformat.compress.codec.name}=${hibench.compress.output.fileoutputformat.compress.codec.value} -D ${hibench.compress.output.fileoutputformat.compress.type.name}=BLOCK" -hibench.workload.compress.disable.options "-D ${hibench.compress.output.fileoutputformat.compress.name}=false" -hibench.workload.compress.options ${hibench.workload.compress.${hibench.compress.profile}.options} - -# compression options for datatools -hibench.workload.compress.enable.datatools.options "-c ${hibench.compress.map.output.compress.codec.value}" -hibench.workload.compress.disable.datatools.options -hibench.workload.compress.datatools.options ${hibench.workload.compress.${hibench.compress.profile}.datatools.options} - -# compression options for kmeans generator -hibench.workload.compress.enable.kmeans_gen.options "-compress true -compressCodec ${hibench.compress.map.output.compress.codec.value} -compressType BLOCK" -hibench.workload.compress.disable.kmeans_gen.options "-compress false" -hibench.workload.compress.kmeans_gen.options ${hibench.workload.compress.${hibench.compress.profile}.kmeans_gen.options} - -# compression options for hive -hibench.workload.compress.enable.hive.options set hive.exec.compress.output=true; ${hibench.workload.compress.hive.${hibench.hadoop.version}.options} -hibench.workload.compress.disable.hive.options -hibench.workload.compress.hive.hadoop1.options set ${hibench.compress.output.fileoutputformat.compress.name}=true; set ${hibench.compress.output.fileoutputformat.compress.type.name}=BLOCK; set ${hibench.compress.map.output.compress.codec.name}=${hibench.compress.map.output.compress.codec.value}; -hibench.workload.compress.hive.hadoop2.options set mapreduce.jobtracker.address=ignorethis; set hive.exec.show.job.failure.debug.info=false; set ${hibench.compress.map.output.compress.codec.name}=true; set ${hibench.compress.map.output.compress.codec.name}=${hibench.compress.map.output.compress.codec.value}; set ${hibench.compress.output.fileoutputformat.compress.name}=true; set ${hibench.compress.output.fileoutputformat.compress.codec.name}=${hibench.compress.output.fileoutputformat.compress.codec.value}; set ${hibench.compress.output.fileoutputformat.compress.type.name}=BLOCK; -hibench.workload.compress.hive.options "${hibench.workload.compress.${hibench.compress.profile}.hive.options}" - -#compression options for sparkbecnh -sparkbench.codec.selection ${sparkbench.codec.${hibench.compress.profile}.options} -sparkbench.codec.disable.options None -sparkbench.codec.enable.options ${hibench.compress.codec} - -hibench.compress.map.output.compress.hadoop1.name mapred.map.output.compress -hibench.compress.map.output.compress.codec.hadoop1.name mapred.map.output.compress.codec -hibench.compress.output.fileoutputformat.compress.hadoop1.name mapred.output.compress -hibench.compress.output.fileoutputformat.compress.codec.hadoop1.name mapred.output.compression.codec -hibench.compress.output.fileoutputformat.compress.type.hadoop1.name mapred.output.compression.type - -hibench.compress.map.output.compress.hadoop2.name mapreduce.map.output.compress -hibench.compress.map.output.compress.codec.hadoop2.name mapreduce.map.output.compress.codec -hibench.compress.output.fileoutputformat.compress.hadoop2.name mapreduce.output.fileoutputformat.compress -hibench.compress.output.fileoutputformat.compress.codec.hadoop2.name mapreduce.output.fileoutputformat.compress.codec -hibench.compress.output.fileoutputformat.compress.type.hadoop2.name mapreduce.output.fileoutputformat.compress.type - -hibench.compress.map.output.compress.name ${hibench.compress.map.output.compress.${hibench.hadoop.version}.name} -hibench.compress.map.output.compress.codec.name ${hibench.compress.map.output.compress.codec.${hibench.hadoop.version}.name} -hibench.compress.output.fileoutputformat.compress.name ${hibench.compress.output.fileoutputformat.compress.${hibench.hadoop.version}.name} -hibench.compress.output.fileoutputformat.compress.codec.name ${hibench.compress.output.fileoutputformat.compress.codec.${hibench.hadoop.version}.name} -hibench.compress.output.fileoutputformat.compress.type.name ${hibench.compress.output.fileoutputformat.compress.type.${hibench.hadoop.version}.name} - -hibench.compress.map.output.compress.codec.value ${hibench.compress.codec.map} -hibench.compress.output.fileoutputformat.compress.codec.value ${hibench.compress.codec} - - -#====================================================== -# Default profile selections for data scale & compression -#====================================================== - -# Compression codec profile relation -hibench.compress.codec ${hibench.compress.${hibench.compress.codec.profile}.codec} -# map codec share with global compression codec -hibench.compress.codec.map ${hibench.compress.${hibench.compress.codec.profile}.codec} - -# Avaiable compress codec profiles -hibench.compress.snappy.codec org.apache.hadoop.io.compress.SnappyCodec -hibench.compress.default.codec org.apache.hadoop.io.compress.DefaultCodec -hibench.compress.lzo.codec com.hadoop.compression.lzo.LzoCodec - -# Default data scale profile selections. Available options: tiny, small, large, ..., defined in 10-data-scale-profile.conf -hibench.scale.profile tiny -# Default compression options selection: enable, disable -hibench.compress.profile enable -# Default compression codec profile selection: snappy, lzo, default -hibench.compress.codec.profile snappy - -#====================================================== -# Outputformat settings -#====================================================== - -# input/output format settings, not heavily tested. DO NOT MODIFY -# Available formats: Text, Sequence. Defaults: Text -# Specifiy Compress codec, None -> no compress. Defaults: None -sparkbench.inputformat Sequence -sparkbench.inputformat.codec ${sparkbench.codec.selection} - -sparkbench.outputformat Sequence -sparkbench.outputformat.codec ${sparkbench.codec.selection} - -#====================================================== -# Export hibench configurations to spark properties -#====================================================== - -# set spark parallelism property according to hibench's parallelism value -spark.default.parallelism ${hibench.default.map.parallelism} - -# set spark sql's default shuffle partitions according to hibench's parallelism value -spark.sql.shuffle.partitions ${hibench.default.map.parallelism} diff --git a/conf/01-default-streamingbench.conf b/conf/01-default-streamingbench.conf deleted file mode 100644 index c28e0e8ab..000000000 --- a/conf/01-default-streamingbench.conf +++ /dev/null @@ -1,146 +0,0 @@ -# Two data sets(text and numeric) are available, app argument indicates to use which -#app=micro-sketch #use text dataset, avg record size: 60 bytes -#app=micro-statistics #use numeric dataset, avg record size: 200 bytes -hibench.streamingbench.app micro-sketch - -# Text dataset can be scaled in terms of record size -hibench.streamingbench.prepare.textdataset_recordsize_factor - -# Two modes of generator: push,periodic -# Push means to send data to kafka cluster as fast as it could -# Periodic means sending data according to sending rate specification -#hibench.streamingbench.prepare.mode push -hibench.streamingbench.prepare.mode periodic - -# Under push mode: number of total records that will be generated -hibench.streamingbench.prepare.push.records 900000000 - -# Following three params are under periodic mode -# Bytes to push per interval -hibench.streamingbench.prepare.periodic.recordPerInterval 600000 - -# Interval time (in ms) -hibench.streamingbench.prepare.periodic.intervalSpan 5000 - -# Total round count of data send -hibench.streamingbench.prepare.periodic.totalRound 100 - -# zookeeper host:port of kafka cluster - -#example: hostname:9092 -hibench.streamingbench.zookeeper.host HOSTNAME:HOSTPORT - -#Parallel config -# number of nodes that will receive kafka input -hibench.streamingbench.receiver_nodes 4 - -############### -#Benchmark args -#Note to ensure benchName to be consistent with datagen type. Numeric data for statistics and text data for others -# available benchname: identity sample project grep wordcount distinctcount statistics - -hibench.streamingbench.benchname identity - -#common args -# the topic that spark will receive input data -hibench.streamingbench.topic_name ${hibench.streamingbench.benchname} - -# Spark stream batch interval (in seconds) -hibench.streamingbench.batch_interval 10 - -# consumer group of the spark consumer for kafka -hibench.streamingbench.consumer_group HiBench - -# expected number of records to be processed -hibench.streamingbench.record_count 900000000 - -#sketch/distinctcount/statistics arg -# the field index of the record that will be extracted -hibench.streamingbench.field_index 1 - -#sketch/wordcount/distinctcount/statistics arg -# the seperator between fields of a single record -hibench.streamingbench.separator \\s+ - -#sample arg -# probability that a record will be taken as a sample -hibench.streamingbench.prob 0.1 - -#grep arg -# the substring that will be checked to see if contained in a record -hibench.streamingbench.pattern the - -#common arg -# indicate RDD storage level. -# 1 for memory only 1 copy. Others for default mem_disk_ser 2 copies -hibench.streamingbench.copies 2 - -# indicate whether to test the write ahead log new feature -# set true to test WAL feature -hibench.streamingbench.testWAL false - -# if testWAL is true, this path to store stream context in hdfs shall be specified. If false, it can be empty -hibench.streamingbench.checkpoint_path - -#common arg -# indicate whether in debug mode for correctness verfication -hibench.streamingbench.debug false - -# whether to use direct approach or not ( sparkstreaming only ) -hibench.streamingbench.direct_mode true - -# Kafka broker lists, used for direct mode, written in mode "host:port,host:port,..." - -# example: hostname:9092 -hibench.streamingbench.brokerList HOSTNAME:HOSTPORT - -hibench.streamingbench.broker_list_with_quote "${hibench.streamingbench.brokerList}" - -# storm bench conf - -# STORM_BIN_HOME -hibench.streamingbench.storm.home /PATH/TO/STORM/HOME - -# Kafka home -hibench.streamingbench.kafka.home /PATH/TO/KAFKA/HOME - - -#Cluster config -# nimbus of storm cluster -hibench.streamingbench.storm.nimbus HOSTNAME_OF_STORM -hibench.streamingbench.storm.nimbusAPIPort 6627 - -# time interval to contact nimbus to judge if finished -hibench.streamingbench.storm.nimbusContactInterval 10 - - -#Parallel config - -# number of workers of Storm. Number of most bolt threads is also equal to this param. -hibench.streamingbench.storm.worker_count 12 - -# number of kafka spout threads of Storm -hibench.streamingbench.storm.spout_threads 12 - -# number of bolt threads altogether -hibench.streamingbench.storm.bolt_threads 12 - -# kafka arg indicating whether to read data from kafka from the start or go on to read from last position -hibench.streamingbench.storm.read_from_start true - -# whether to turn on ack -hibench.streamingbench.storm.ackon true - -# Added for default rules: -hibench.streamingbench.jars ${hibench.streamingbench.sparkbench.jar} -hibench.streamingbench.sparkbench.jar ${hibench.home}/src/streambench/sparkbench/target/streaming-bench-spark_0.1-5.0-SNAPSHOT-${hibench.spark.version}-jar-with-dependencies.jar -hibench.streamingbench.stormbench.jar ${hibench.home}/src/streambench/stormbench/target/streaming-bench-storm-0.1-SNAPSHOT-jar-with-dependencies.jar -hibench.streamingbench.datagen.jar ${hibench.home}/src/streambench/datagen/target/datagen-0.0.1-jar-with-dependencies.jar -hibench.streamingbench.storm.bin ${hibench.streamingbench.storm.home}/bin -hibench.streamingbench.zkhelper.jar ${hibench.home}/src/streambench/zkHelper/target/streaming-bench-zkhelper-0.1-SNAPSHOT-jar-with-dependencies.jar - -# default path setting for store of data1 & data2 -hibench.streamingbench.datagen.dir ${hibench.hdfs.data.dir}/Streaming - -# partition size settings -hibench.streamingbench.partitions 1 diff --git a/conf/10-data-scale-profile.conf b/conf/10-data-scale-profile.conf deleted file mode 100644 index 135fc50ee..000000000 --- a/conf/10-data-scale-profile.conf +++ /dev/null @@ -1,235 +0,0 @@ -#Sleep -hibench.sleep.tiny.mapper.seconds 3 -hibench.sleep.tiny.reducer.seconds 3 -hibench.sleep.small.mapper.seconds 30 -hibench.sleep.small.reducer.seconds 30 -hibench.sleep.large.mapper.seconds 90 -hibench.sleep.large.reducer.seconds 45 -hibench.sleep.huge.mapper.seconds 90 -hibench.sleep.huge.reducer.seconds 45 -hibench.sleep.gigantic.mapper.seconds 90 -hibench.sleep.gigantic.reducer.seconds 45 -hibench.sleep.bigdata.mapper.seconds 10 -hibench.sleep.bigdata.reducer.seconds 10 - - -#Aggregation -hibench.aggregation.tiny.uservisits 1000 -hibench.aggregation.tiny.pages 120 -hibench.aggregation.small.uservisits 100000 -hibench.aggregation.small.pages 12000 -hibench.aggregation.large.uservisits 1000000 -hibench.aggregation.large.pages 120000 -hibench.aggregation.huge.uservisits 10000000 -hibench.aggregation.huge.pages 1200000 -hibench.aggregation.gigantic.uservisits 100000000 -hibench.aggregation.gigantic.pages 12000000 -hibench.aggregation.bigdata.uservisits 1000000000 -hibench.aggregation.bigdata.pages 100000000 - -#Scan -hibench.scan.tiny.uservisits 1000 -hibench.scan.tiny.pages 120 -hibench.scan.small.uservisits 100000 -hibench.scan.small.pages 12000 -hibench.scan.large.uservisits 1000000 -hibench.scan.large.pages 120000 -hibench.scan.huge.uservisits 10000000 -hibench.scan.huge.pages 1200000 -hibench.scan.gigantic.uservisits 100000000 -hibench.scan.gigantic.pages 12000000 -hibench.scan.bigdata.uservisits 2000000000 -hibench.scan.bigdata.pages 10000000 - - -#Join -hibench.join.tiny.uservisits 1000 -hibench.join.tiny.pages 120 -hibench.join.small.uservisits 100000 -hibench.join.small.pages 12000 -hibench.join.large.uservisits 1000000 -hibench.join.large.pages 120000 -hibench.join.huge.uservisits 10000000 -hibench.join.huge.pages 1200000 -hibench.join.gigantic.uservisits 100000000 -hibench.join.gigantic.pages 12000000 -hibench.join.bigdata.uservisits 5000000000 -hibench.join.bigdata.pages 120000000 - -#Sort -# datasize=> bytes of data -hibench.sort.tiny.datasize 32000 -hibench.sort.small.datasize 3200000 -hibench.sort.large.datasize 320000000 -hibench.sort.huge.datasize 3200000000 -hibench.sort.gigantic.datasize 32000000000 -hibench.sort.bigdata.datasize 300000000000 - -#Wordcount -# datasize=> bytes of data -hibench.wordcount.tiny.datasize 32000 -hibench.wordcount.small.datasize 320000000 -hibench.wordcount.large.datasize 3200000000 -hibench.wordcount.huge.datasize 32000000000 -hibench.wordcount.gigantic.datasize 320000000000 -hibench.wordcount.bigdata.datasize 1600000000000 - -#Terasort -# datasize=> record number of data, 100 bytes per record -hibench.terasort.tiny.datasize 32000 -hibench.terasort.small.datasize 3200000 -hibench.terasort.large.datasize 32000000 -hibench.terasort.huge.datasize 320000000 -hibench.terasort.gigantic.datasize 3200000000 -hibench.terasort.bigdata.datasize 6000000000 - -#Bayes -hibench.bayes.tiny.pages 25000 -hibench.bayes.tiny.classes 10 -hibench.bayes.tiny.ngrams 1 -hibench.bayes.small.pages 30000 -hibench.bayes.small.classes 100 -hibench.bayes.small.ngrams 2 -hibench.bayes.large.pages 100000 -hibench.bayes.large.classes 100 -hibench.bayes.large.ngrams 2 -hibench.bayes.huge.pages 500000 -hibench.bayes.huge.classes 100 -hibench.bayes.huge.ngrams 2 -hibench.bayes.gigantic.pages 1000000 -hibench.bayes.gigantic.classes 100 -hibench.bayes.gigantic.ngrams 2 -hibench.bayes.bigdata.pages 20000000 -hibench.bayes.bigdata.classes 20000 -hibench.bayes.bigdata.ngrams 2 - -#Kmeans -hibench.kmeans.tiny.num_of_clusters 5 -hibench.kmeans.tiny.dimensions 3 -hibench.kmeans.tiny.num_of_samples 30000 -hibench.kmeans.tiny.samples_per_inputfile 6000 -hibench.kmeans.tiny.max_iteration 5 -hibench.kmeans.tiny.k 10 -hibench.kmeans.tiny.convergedist 0.5 -hibench.kmeans.small.num_of_clusters 5 -hibench.kmeans.small.dimensions 20 -hibench.kmeans.small.num_of_samples 3000000 -hibench.kmeans.small.samples_per_inputfile 600000 -hibench.kmeans.small.max_iteration 5 -hibench.kmeans.small.k 10 -hibench.kmeans.small.convergedist 0.5 -hibench.kmeans.large.num_of_clusters 5 -hibench.kmeans.large.dimensions 20 -hibench.kmeans.large.num_of_samples 20000000 -hibench.kmeans.large.samples_per_inputfile 4000000 -hibench.kmeans.large.max_iteration 5 -hibench.kmeans.large.k 10 -hibench.kmeans.large.convergedist 0.5 -hibench.kmeans.huge.num_of_clusters 5 -hibench.kmeans.huge.dimensions 20 -hibench.kmeans.huge.num_of_samples 100000000 -hibench.kmeans.huge.samples_per_inputfile 20000000 -hibench.kmeans.huge.max_iteration 5 -hibench.kmeans.huge.k 10 -hibench.kmeans.huge.convergedist 0.5 -hibench.kmeans.gigantic.num_of_clusters 5 -hibench.kmeans.gigantic.dimensions 20 -hibench.kmeans.gigantic.num_of_samples 200000000 -hibench.kmeans.gigantic.samples_per_inputfile 40000000 -hibench.kmeans.gigantic.max_iteration 5 -hibench.kmeans.gigantic.k 10 -hibench.kmeans.gigantic.convergedist 0.5 -hibench.kmeans.bigdata.num_of_clusters 5 -hibench.kmeans.bigdata.dimensions 20 -hibench.kmeans.bigdata.num_of_samples 1200000000 -hibench.kmeans.bigdata.samples_per_inputfile 40000000 -hibench.kmeans.bigdata.max_iteration 10 -hibench.kmeans.bigdata.k 10 -hibench.kmeans.bigdata.convergedist 0.5 - -#Pagerank -hibench.pagerank.tiny.pages 50 -hibench.pagerank.tiny.num_iterations 1 -hibench.pagerank.tiny.block 0 -hibench.pagerank.tiny.block_width 16 -hibench.pagerank.small.pages 5000 -hibench.pagerank.small.num_iterations 3 -hibench.pagerank.small.block 0 -hibench.pagerank.small.block_width 16 -hibench.pagerank.large.pages 500000 -hibench.pagerank.large.num_iterations 3 -hibench.pagerank.large.block 0 -hibench.pagerank.large.block_width 16 -hibench.pagerank.huge.pages 5000000 -hibench.pagerank.huge.num_iterations 3 -hibench.pagerank.huge.block 0 -hibench.pagerank.huge.block_width 16 -hibench.pagerank.gigantic.pages 50000000 -hibench.pagerank.gigantic.num_iterations 3 -hibench.pagerank.gigantic.block 0 -hibench.pagerank.gigantic.block_width 16 -hibench.pagerank.bigdata.pages 30000000 -hibench.pagerank.bigdata.num_iterations 3 -hibench.pagerank.bigdata.block 0 -hibench.pagerank.bigdata.block_width 16 - -#Nutchindexing -hibench.nutch.tiny.pages 25000 -hibench.nutch.small.pages 1000000 -hibench.nutch.large.pages 1000000000 -hibench.nutch.huge.pages 10000000000 -hibench.nutch.gigantic.pages 100000000000 -hibench.nutch.bigdata.pages 100000000000 - -#DFSIOE -#Unit: number_of_file -> as name suggests -#Unit: filesize -> MB of file size -hibench.dfsioe.tiny.read.number_of_files 16 -hibench.dfsioe.tiny.read.file_size 1 -hibench.dfsioe.tiny.write.number_of_files 16 -hibench.dfsioe.tiny.write.file_size 1 - -hibench.dfsioe.small.read.number_of_files 32 -hibench.dfsioe.small.read.file_size 10 -hibench.dfsioe.small.write.number_of_files 32 -hibench.dfsioe.small.write.file_size 10 - -hibench.dfsioe.large.read.number_of_files 64 -hibench.dfsioe.large.read.file_size 10 -hibench.dfsioe.large.write.number_of_files 64 -hibench.dfsioe.large.write.file_size 10 - -hibench.dfsioe.huge.read.number_of_files 256 -hibench.dfsioe.huge.read.file_size 100 -hibench.dfsioe.huge.write.number_of_files 256 -hibench.dfsioe.huge.write.file_size 100 - -hibench.dfsioe.gigantic.read.number_of_files 512 -hibench.dfsioe.gigantic.read.file_size 400 -hibench.dfsioe.gigantic.write.number_of_files 512 -hibench.dfsioe.gigantic.write.file_size 400 - -hibench.dfsioe.bigdata.read.number_of_files 2048 -hibench.dfsioe.bigdata.read.file_size 1000 -hibench.dfsioe.bigdata.write.number_of_files 2048 -hibench.dfsioe.bigdata.write.file_size 1000 - -#NWeight -hibench.nweight.tiny.edges 100000 -hibench.nweight.tiny.degree 3 -hibench.nweight.tiny.max_out_edges 30 -hibench.nweight.small.edges 1000000 -hibench.nweight.small.degree 3 -hibench.nweight.small.max_out_edges 30 -hibench.nweight.large.edges 10000000 -hibench.nweight.large.degree 3 -hibench.nweight.large.max_out_edges 30 -hibench.nweight.huge.edges 100000000 -hibench.nweight.huge.degree 3 -hibench.nweight.huge.max_out_edges 30 -hibench.nweight.gigantic.edges 425000000 -hibench.nweight.gigantic.degree 3 -hibench.nweight.gigantic.max_out_edges 30 -hibench.nweight.bigdata.edges 4250000000 -hibench.nweight.bigdata.degree 3 -hibench.nweight.bigdata.max_out_edges 30 diff --git a/conf/20-samza-common.conf b/conf/20-samza-common.conf deleted file mode 100644 index 28c449d5c..000000000 --- a/conf/20-samza-common.conf +++ /dev/null @@ -1,40 +0,0 @@ -# YARN -samza_internal.yarn.package.path ${hibench.home}/src/streambench/samzabench/target/streaming-bench-samza-0.1-SNAPSHOT-dist.tar.gz -samza.yarn.package.path ${hibench.streamingbench.datagen.dir}/samza_package/streaming-bench-samza-0.1-SNAPSHOT-dist.tar.gz -samza.yarn.container.count 1 - -# Metrics -samza.metrics.reporters snapshot -samza.metrics.reporter.snapshot.class org.apache.samza.metrics.reporter.MetricsSnapshotReporterFactory -samza.metrics.reporter.snapshot.stream kafka.metrics - -# Serializers -samza.serializers.registry.json.class org.apache.samza.serializers.JsonSerdeFactory -samza.serializers.registry.metrics.class org.apache.samza.serializers.MetricsSnapshotSerdeFactory -samza.serializers.registry.string.class org.apache.samza.serializers.StringSerdeFactory -samza.serializers.registry.integer.class org.apache.samza.serializers.IntegerSerdeFactory - -# Systems -samza.systems.kafka.samza.factory org.apache.samza.system.kafka.KafkaSystemFactory -samza.systems.kafka.samza.msg.serde string -samza.systems.kafka.streams.metrics.samza.msg.serde metrics -samza.systems.kafka.consumer.zookeeper.connect ${hibench.streamingbench.zookeeper.host}/ -samza.systems.kafka.consumer.auto.offset.reset smallest -samza.systems.kafka.producer.bootstrap.servers ${hibench.streamingbench.brokerList} -samza.systems.kafka.producer.metadata.broker.list ${hibench.streamingbench.brokerList} - -# Override replication factor (NOTE: Your number of brokers must be greater than replication factor!) -samza.task.checkpoint.replication.factor 1 -samza_internal.partitions ${hibench.streamingbench.partitions} - -# Tasks -samza.task.checkpoint.factory org.apache.samza.checkpoint.kafka.KafkaCheckpointManagerFactory -samza.task.checkpoint.system kafka - -# workload stubs -samza.job.factory.class org.apache.samza.job.yarn.YarnJobFactory - -# mapping task properties -samza_workload_conf.${hibench.streamingbench.benchname}.* samza.* - - diff --git a/conf/30-samza-workloads.conf b/conf/30-samza-workloads.conf deleted file mode 100644 index 444772e8c..000000000 --- a/conf/30-samza-workloads.conf +++ /dev/null @@ -1,153 +0,0 @@ -# identity -#========= -# Job -samza_workload_conf.identity.job.name identity - -# Task -samza_workload_conf.identity.task.class com.intel.hibench.streambench.samza.micro.Identity -samza_workload_conf.identity.task.inputs kafka.${hibench.streamingbench.topic_name} - -# Systems -samza_workload_conf.identity.systems.kafka.streams.${hibench.streamingbench.topic_name}.samza.offset.default oldest - - -# wordcount -#========== -# Job -samza_workload_conf.wordcount.job.name wordcount - -# Task -samza_workload_conf.wordcount.task.class com.intel.hibench.streambench.samza.micro.Wordcount -samza_workload_conf.wordcount.task.inputs kafka.${samza_internal.wordcount.kafka.input.name} - -# kafka input name, hard coded, do not change -samza_internal.wordcount.kafka.input.name wordcount-source - -# Systems -samza_workload_conf.wordcount.systems.kafka.streams.${samza_internal.wordcount.kafka.input.name}.samza.offset.default oldest -samza_workload_conf.wordcount.systems.kafka.streams.${samza_internal.wordcount.kafka.input.name}.samza.key.serde string -samza_workload_conf.wordcount.systems.kafka.streams.${samza_internal.wordcount.kafka.input.name}.samza.msg.serde string - -# statistics -#========== -# Job -samza_workload_conf.statistics.job.name statistics -samza_workload_conf.statistics.task.class com.intel.hibench.streambench.samza.micro.Statistics -samza_workload_conf.statistics.task.inputs kafka.${samza_internal.statistics.kafka.input.name} - -# kafka input name, hard coded, do not change -samza_internal.statistics.kafka.input.name numbers - - -# Systems -samza_workload_conf.statistics.systems.kafka.streams.${samza_internal.statistics.kafka.input.name}.samza.offset.default oldest -samza_workload_conf.statistics.systems.kafka.streams.${samza_internal.statistics.kafka.input.name}.samza.key.serde string -samza_workload_conf.statistics.systems.kafka.streams.${samza_internal.statistics.kafka.input.name}.samza.msg.serde string - -# distinctcount -#========== -# Job -samza_workload_conf.distinctcount.job.name distinctcount - -# Task -samza_workload_conf.distinctcount.task.class com.intel.hibench.streambench.samza.micro.DistinctCount -samza_workload_conf.distinctcount.task.inputs kafka.${samza_internal.distinctcount.kafka.input.name} - -# kafka input name, hard coded, do not change -samza_internal.distinctcount.kafka.input.name words - -# Systems -samza_workload_conf.distinctcount.systems.kafka.streams.${samza_internal.distinctcount.kafka.input.name}.samza.offset.default oldest -samza_workload_conf.distinctcount.systems.kafka.streams.${samza_internal.distinctcount.kafka.input.name}.samza.key.serde string -samza_workload_conf.distinctcount.systems.kafka.streams.${samza_internal.distinctcount.kafka.input.name}.samza.msg.serde string - -# split -#========== -# Job -samza_workload_conf.split.job.name split - -# Task -samza_workload_conf.split.task.class com.intel.hibench.streambench.samza.micro.Split -samza_workload_conf.split.task.inputs kafka.${samza_internal.split.inputs} -samza_internal.split.inputs ${hibench.streamingbench.topic_name} - -# Systems -samza_workload_conf.split.systems.kafka.streams.${samza_internal.split.inputs}.samza.offset.default oldest -samza_workload_conf.split.systems.kafka.streams.${samza_internal.split.inputs}.samza.key.serde string -samza_workload_conf.split.systems.kafka.streams.${samza_internal.split.inputs}.samza.msg.serde string -samza_workload_conf.split.systems.kafka.streams.words.samza.key.serde string -samza_workload_conf.split.systems.kafka.streams.words.samza.msg.serde string - -# extract for distinctcount -#========== -#Job -samza_workload_conf.extractfordistinctcount.job.name extract-for-distinctcount - -# Task -samza_workload_conf.extractfordistinctcount.task.class com.intel.hibench.streambench.samza.micro.ExtractForDistinctcount -samza_workload_conf.extractfordistinctcount.task.inputs kafka.${samza_internal.extractfordistinctcount.inputs} -samza_internal.extractfordistinctcount.inputs ${hibench.streamingbench.topic_name} - - -# Systems -samza_workload_conf.extractfordistinctcount.systems.kafka.streams.${samza_internal.extractfordistinctcount.inputs}.samza.offset.default oldest -samza_workload_conf.extractfordistinctcount.systems.kafka.streams.${samza_internal.extractfordistinctcount.inputs}.samza.key.serde string -samza_workload_conf.extractfordistinctcount.systems.kafka.streams.${samza_internal.extractfordistinctcount.inputs}.samza.msg.serde string -samza_workload_conf.extractfordistinctcount.systems.kafka.streams.numbers.samza.key.serde string -samza_workload_conf.extractfordistinctcount.systems.kafka.streams.numbers.samza.msg.serde string - -# extract for statistics -#========== -#Job -samza_workload_conf.extractforstatistics.job.name extract-for-statistics - -# Task -samza_workload_conf.extractforstatistics.task.class com.intel.hibench.streambench.samza.micro.ExtractForStatistics -samza_workload_conf.extractforstatistics.task.inputs kafka.${samza_internal.extractforstatistics.inputs} -samza_internal.extractforstatistics.inputs ${hibench.streamingbench.topic_name} - - -# Systems -samza_workload_conf.extractforstatistics.systems.kafka.streams.${samza_internal.extractforstatistics.inputs}.samza.offset.default oldest -samza_workload_conf.extractforstatistics.systems.kafka.streams.${samza_internal.extractforstatistics.inputs}.samza.key.serde string -samza_workload_conf.extractforstatistics.systems.kafka.streams.${samza_internal.extractforstatistics.inputs}.samza.msg.serde string -samza_workload_conf.extractforstatistics.systems.kafka.streams.numbers.samza.key.serde string -samza_workload_conf.extractforstatistics.systems.kafka.streams.numbers.samza.msg.serde string - - -# project -#======== -samza_workload_conf.project.job.name project - -# Task -samza_workload_conf.project.task.class com.intel.hibench.streambench.samza.micro.Projection -samza_workload_conf.project.task.inputs kafka.${hibench.streamingbench.topic_name} - -# Systems -samza_workload_conf.project.systems.kafka.streams.${hibench.streamingbench.topic_name}.samza.offset.default oldest - - -# metrics -#========== -# metrics -samza_workload_conf.metrics.job.factory.class org.apache.samza.job.local.ThreadJobFactory -samza_workload_conf.metrics.job.name count-metrics - -# Task -samza_workload_conf.metrics.task.class com.intel.hibench.streambench.samza.metrics.CountMetrics -samza_workload_conf.metrics.task.inputs kafka.metrics -samza_workload_conf.metrics.task.command.class org.apache.samza.job.ShellCommandBuilder - -# Serializers -samza_workload_conf.metrics.serializers.registry.json.class org.apache.samza.serializers.JsonSerdeFactory -samza_workload_conf.metrics.serializers.registry.metrics.class org.apache.samza.serializers.MetricsSnapshotSerdeFactory -samza_workload_conf.metrics.serializers.registry.string.class org.apache.samza.serializers.StringSerdeFactory - -# Systems -samza_workload_conf.metrics.systems.kafka.samza.factory org.apache.samza.system.kafka.KafkaSystemFactory -#systems.kafka.samza.msg.serde=string -samza_workload_conf.metrics.systems.kafka.streams.metrics.samza.msg.serde metrics -samza_workload_conf.metrics.systems.kafka.consumer.zookeeper.connect ${hibench.streamingbench.zookeeper.host} -samza_workload_conf.metrics.systems.kafka.consumer.auto.offset.reset largest -samza_workload_conf.metrics.systems.kafka.producer.bootstrap.servers ${hibench.streamingbench.brokerList} -samza_workload_conf.metrics.systems.kafka.producer.metadata.broker.list ${hibench.streamingbench.brokerList} diff --git a/conf/99-user_defined_properties.conf.template b/conf/99-user_defined_properties.conf.template deleted file mode 100644 index aa7d39211..000000000 --- a/conf/99-user_defined_properties.conf.template +++ /dev/null @@ -1,120 +0,0 @@ -#====================================================== -# Mandatory settings -#====================================================== - -# Hadoop home -hibench.hadoop.home /PATH/TO/YOUR/HADOOP/ROOT - -# Spark home -hibench.spark.home /PATH/TO/YOUR/SPARK/ROOT - -# HDFS master, set according to hdfs-site.xml -hibench.hdfs.master hdfs://HOSTNAME:HDFSPORT - -# Spark master -# standalone mode: `spark://xxx:7077` -# YARN mode: `yarn-client` -# unset: fallback to `local[1]` -hibench.spark.master yarn-client - -#====================================================== -# Not mandatory but important settings -#====================================================== - -# `hibench.hadoop.executable` is used to auto probe hadoop version and -# hadoop release, which is critical for further configurations. Most -# cases `hadoop` executable be placed under HADOOP_HOME/bin. However, -# in some cases such as CDH?/MR1, it must be explicitly defined: - -#hibench.hadoop.executable ${hibench.hadoop.home}/bin-mapreduce1/hadoop - -# `hibench.hadoop.version` will be auto probed according to -# `hibench.hadoop.executable` version information report. However, for -# CDH release, both `hadoop version` of MR1 and MR2 will produce same -# report, which can't probe right MR versions. You'll need to -# explicitly define MR versions here. - -#hibench.hadoop.version hadoop1 - -# `hibench.spark.version` is used to choose which sparkbench workload -# jar. Mostly situation it'll be auto probed. Please override if spark -# version is not probed correctly. For spark version after 1.6, please -# set it to spark1.6 -# Note, supported values: `spark1.2` to `spark1.6` - -#hibench.spark.version spark1.6 - -#====================================================== -# Optional settings -#====================================================== - -# Important parameters -#--------------------- - -# execute parallelism settings -hibench.default.map.parallelism 12 -hibench.default.shuffle.parallelism 6 - -# YARN resource configuration -hibench.yarn.executor.num 4 -hibench.yarn.executor.cores 4 - -# Spark only properties -#---------------------- - -# executor/driver memory in standalone & YARN mode -spark.executor.memory 4G -spark.driver.memory 4G - -# Compression -spark.rdd.compress false -# compression codec: lz4, lzf, snappy, put class path here accordingly. -spark.shuffle.compress false -spark.broadcast.compress false -spark.io.compression.codec org.apache.spark.io.SnappyCompressionCodec - -# Akka -spark.akka.frameSize 1000 -spark.akka.timeout 600 - -# mllib will use KyroSerializer, ensure the buffer is large enough -spark.kryoserializer.buffer.mb 2000 - -# Data scale, Compression profile selection -#------------------------------------------ - -# Data scale profile: tiny, small, large, ..., defined in 10-data-scale-profile.conf -hibench.scale.profile large -# Compression options selection: enable, disable -hibench.compress.profile disable -# Compression codec profile selection: snappy, lzo, default -hibench.compress.codec.profile snappy - -# Streaming settings -#------------------- -# Available benchname: identity sample project grep wordcount distinctcount statistics -hibench.streamingbench.benchname identity - -# data scale of streaming data -hibench.streamingbench.scale.profile ${hibench.scale.profile} - -# zookeeper host:port of kafka cluster -#example hostname:2181 -hibench.streamingbench.zookeeper.host HOSTNAME:HOSTPORT - -# Kafka broker lists, used for direct mode, written in mode "host:port,host:port,..." -#example hostname:9092 -hibench.streamingbench.brokerList HOSTNAME:HOSTPORT - -# Storm home -hibench.streamingbench.storm.home /PATH/TO/STORM/HOME - -# Kafka home -hibench.streamingbench.kafka.home /PATH/TO/KAFKA/HOME - -#Cluster config -# nimbus of storm cluster -hibench.streamingbench.storm.nimbus HOSTNAME_TO_STORM_NIMBUS - -# partition size settings -hibench.streamingbench.partitions 1 diff --git a/conf/benchmarks.lst b/conf/benchmarks.lst index b080e1ff6..3c6d76843 100644 --- a/conf/benchmarks.lst +++ b/conf/benchmarks.lst @@ -1,12 +1,17 @@ -aggregation -join -kmeans -pagerank -scan -sleep -sort -wordcount -bayes -terasort -nutchindexing -dfsioe +micro.sleep +micro.sort +micro.terasort +micro.wordcount +micro.dfsioe + +sql.aggregation +sql.join +sql.scan + +websearch.nutchindexing +websearch.pagerank + +ml.bayes +ml.kmeans + +graph.nweight diff --git a/conf/example/kafka/serv1.properties b/conf/example/kafka/serv1.properties deleted file mode 100644 index d3a93a37a..000000000 --- a/conf/example/kafka/serv1.properties +++ /dev/null @@ -1,126 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# see kafka.server.KafkaConfig for additional details and defaults - -############################# Server Basics ############################# - -# The id of the broker. This must be set to a unique integer for each broker. -broker.id=4671 - -############################# Socket Server Settings ############################# - -# The port the socket server listens on -port=9092 - -# Hostname the broker will bind to. If not set, the server will bind to all interfaces -#host.name=localhost - -# Hostname the broker will advertise to producers and consumers. If not set, it uses the -# value for "host.name" if configured. Otherwise, it will use the value returned from -# java.net.InetAddress.getCanonicalHostName(). -#advertised.host.name= - -# The port to publish to ZooKeeper for clients to use. If this is not set, -# it will publish the same port that the broker binds to. -#advertised.port= - -# The number of threads handling network requests -num.network.threads=4 - -# The number of threads doing disk I/O -num.io.threads=4 - -# The send buffer (SO_SNDBUF) used by the socket server -socket.send.buffer.bytes=62914560 - -# The receive buffer (SO_RCVBUF) used by the socket server -socket.receive.buffer.bytes=62914560 - -# The maximum size of a request that the socket server will accept (protection against OOM) -socket.request.max.bytes=104857600 - - -############################# Log Basics ############################# - -# A comma seperated list of directories under which to store log files -log.dirs=/mnt/DP_disk7/kafka-logs-1,/mnt/DP_disk6/kafka-logs-1,/mnt/DP_disk8/kafka-logs-1,/mnt/DP_disk9/kafka-logs-1 - -# The default number of log partitions per topic. More partitions allow greater -# parallelism for consumption, but this will also result in more files across -# the brokers. -num.partitions=4 - -############################# Log Flush Policy ############################# - -# Messages are immediately written to the filesystem but by default we only fsync() to sync -# the OS cache lazily. The following configurations control the flush of data to disk. -# There are a few important trade-offs here: -# 1. Durability: Unflushed data may be lost if you are not using replication. -# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. -# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks. -# The settings below allow one to configure the flush policy to flush data after a period of time or -# every N messages (or both). This can be done globally and overridden on a per-topic basis. - -# The number of messages to accept before forcing a flush of data to disk -#log.flush.interval.messages=10000 - -# The maximum amount of time a message can sit in a log before we force a flush -#log.flush.interval.ms=1000 - -############################# Log Retention Policy ############################# - -# The following configurations control the disposal of log segments. The policy can -# be set to delete segments after a period of time, or after a given size has accumulated. -# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens -# from the end of the log. - -# The minimum age of a log file to be eligible for deletion -log.retention.hours=168 - -# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining -# segments don't drop below log.retention.bytes. -#log.retention.bytes=1073741824 - -# The maximum size of a log segment file. When this size is reached a new log segment will be created. -log.segment.bytes=536870912 - -# The interval at which log segments are checked to see if they can be deleted according -# to the retention policies -log.retention.check.interval.ms=60000 - -# By default the log cleaner is disabled and the log retention policy will default to just delete segments after their retention expires. -# If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log compaction. -log.cleaner.enable=false - -############################# Zookeeper ############################# - -# Zookeeper connection string (see zookeeper docs for details). -# This is a comma separated host:port pairs, each corresponding to a zk -# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". -# You can also append an optional chroot string to the urls to specify the -# root directory for all kafka znodes. -zookeeper.connect=sr464:2181 - -# Timeout in ms for connecting to zookeeper -zookeeper.connection.timeout.ms=1000000 - -# metrics reporter properties -kafka.metrics.polling.interval.secs=5 -kafka.metrics.reporters=kafka.metrics.KafkaCSVMetricsReporter -kafka.csv.metrics.dir=/tmp/kafka_metrics -# Disable csv reporting by default. -kafka.csv.metrics.reporter.enabled=false - -replica.lag.max.messages=10000000 diff --git a/conf/example/kafka/serv2.properties b/conf/example/kafka/serv2.properties deleted file mode 100644 index 8a04fe450..000000000 --- a/conf/example/kafka/serv2.properties +++ /dev/null @@ -1,126 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# see kafka.server.KafkaConfig for additional details and defaults - -############################# Server Basics ############################# - -# The id of the broker. This must be set to a unique integer for each broker. -broker.id=4672 - -############################# Socket Server Settings ############################# - -# The port the socket server listens on -port=9093 - -# Hostname the broker will bind to. If not set, the server will bind to all interfaces -#host.name=localhost - -# Hostname the broker will advertise to producers and consumers. If not set, it uses the -# value for "host.name" if configured. Otherwise, it will use the value returned from -# java.net.InetAddress.getCanonicalHostName(). -#advertised.host.name= - -# The port to publish to ZooKeeper for clients to use. If this is not set, -# it will publish the same port that the broker binds to. -#advertised.port= - -# The number of threads handling network requests -num.network.threads=4 - -# The number of threads doing disk I/O -num.io.threads=4 - -# The send buffer (SO_SNDBUF) used by the socket server -socket.send.buffer.bytes=62914560 - -# The receive buffer (SO_RCVBUF) used by the socket server -socket.receive.buffer.bytes=62914560 - -# The maximum size of a request that the socket server will accept (protection against OOM) -socket.request.max.bytes=104857600 - - -############################# Log Basics ############################# - -# A comma seperated list of directories under which to store log files -log.dirs=/mnt/DP_disk7/kafka-logs-2,/mnt/DP_disk6/kafka-logs-2,/mnt/DP_disk8/kafka-logs-2,/mnt/DP_disk9/kafka-logs-2 - -# The default number of log partitions per topic. More partitions allow greater -# parallelism for consumption, but this will also result in more files across -# the brokers. -num.partitions=4 - -############################# Log Flush Policy ############################# - -# Messages are immediately written to the filesystem but by default we only fsync() to sync -# the OS cache lazily. The following configurations control the flush of data to disk. -# There are a few important trade-offs here: -# 1. Durability: Unflushed data may be lost if you are not using replication. -# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. -# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks. -# The settings below allow one to configure the flush policy to flush data after a period of time or -# every N messages (or both). This can be done globally and overridden on a per-topic basis. - -# The number of messages to accept before forcing a flush of data to disk -#log.flush.interval.messages=10000 - -# The maximum amount of time a message can sit in a log before we force a flush -#log.flush.interval.ms=1000 - -############################# Log Retention Policy ############################# - -# The following configurations control the disposal of log segments. The policy can -# be set to delete segments after a period of time, or after a given size has accumulated. -# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens -# from the end of the log. - -# The minimum age of a log file to be eligible for deletion -log.retention.hours=168 - -# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining -# segments don't drop below log.retention.bytes. -#log.retention.bytes=1073741824 - -# The maximum size of a log segment file. When this size is reached a new log segment will be created. -log.segment.bytes=536870912 - -# The interval at which log segments are checked to see if they can be deleted according -# to the retention policies -log.retention.check.interval.ms=60000 - -# By default the log cleaner is disabled and the log retention policy will default to just delete segments after their retention expires. -# If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log compaction. -log.cleaner.enable=false - -############################# Zookeeper ############################# - -# Zookeeper connection string (see zookeeper docs for details). -# This is a comma separated host:port pairs, each corresponding to a zk -# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". -# You can also append an optional chroot string to the urls to specify the -# root directory for all kafka znodes. -zookeeper.connect=sr464:2181 - -# Timeout in ms for connecting to zookeeper -zookeeper.connection.timeout.ms=1000000 - -# metrics reporter properties -kafka.metrics.polling.interval.secs=5 -kafka.metrics.reporters=kafka.metrics.KafkaCSVMetricsReporter -kafka.csv.metrics.dir=/tmp/kafka_metrics -# Disable csv reporting by default. -kafka.csv.metrics.reporter.enabled=false - -replica.lag.max.messages=10000000 diff --git a/conf/example/kafka/serv3.properties b/conf/example/kafka/serv3.properties deleted file mode 100644 index 2cf147b06..000000000 --- a/conf/example/kafka/serv3.properties +++ /dev/null @@ -1,126 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# see kafka.server.KafkaConfig for additional details and defaults - -############################# Server Basics ############################# - -# The id of the broker. This must be set to a unique integer for each broker. -broker.id=4673 - -############################# Socket Server Settings ############################# - -# The port the socket server listens on -port=9094 - -# Hostname the broker will bind to. If not set, the server will bind to all interfaces -#host.name=localhost - -# Hostname the broker will advertise to producers and consumers. If not set, it uses the -# value for "host.name" if configured. Otherwise, it will use the value returned from -# java.net.InetAddress.getCanonicalHostName(). -#advertised.host.name= - -# The port to publish to ZooKeeper for clients to use. If this is not set, -# it will publish the same port that the broker binds to. -#advertised.port= - -# The number of threads handling network requests -num.network.threads=4 - -# The number of threads doing disk I/O -num.io.threads=4 - -# The send buffer (SO_SNDBUF) used by the socket server -socket.send.buffer.bytes=62914560 - -# The receive buffer (SO_RCVBUF) used by the socket server -socket.receive.buffer.bytes=62914560 - -# The maximum size of a request that the socket server will accept (protection against OOM) -socket.request.max.bytes=104857600 - - -############################# Log Basics ############################# - -# A comma seperated list of directories under which to store log files -log.dirs=/mnt/DP_disk7/kafka-logs-3,/mnt/DP_disk6/kafka-logs-3,/mnt/DP_disk8/kafka-logs-3,/mnt/DP_disk9/kafka-logs-3 - -# The default number of log partitions per topic. More partitions allow greater -# parallelism for consumption, but this will also result in more files across -# the brokers. -num.partitions=4 - -############################# Log Flush Policy ############################# - -# Messages are immediately written to the filesystem but by default we only fsync() to sync -# the OS cache lazily. The following configurations control the flush of data to disk. -# There are a few important trade-offs here: -# 1. Durability: Unflushed data may be lost if you are not using replication. -# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. -# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks. -# The settings below allow one to configure the flush policy to flush data after a period of time or -# every N messages (or both). This can be done globally and overridden on a per-topic basis. - -# The number of messages to accept before forcing a flush of data to disk -#log.flush.interval.messages=10000 - -# The maximum amount of time a message can sit in a log before we force a flush -#log.flush.interval.ms=1000 - -############################# Log Retention Policy ############################# - -# The following configurations control the disposal of log segments. The policy can -# be set to delete segments after a period of time, or after a given size has accumulated. -# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens -# from the end of the log. - -# The minimum age of a log file to be eligible for deletion -log.retention.hours=168 - -# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining -# segments don't drop below log.retention.bytes. -#log.retention.bytes=1073741824 - -# The maximum size of a log segment file. When this size is reached a new log segment will be created. -log.segment.bytes=536870912 - -# The interval at which log segments are checked to see if they can be deleted according -# to the retention policies -log.retention.check.interval.ms=60000 - -# By default the log cleaner is disabled and the log retention policy will default to just delete segments after their retention expires. -# If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log compaction. -log.cleaner.enable=false - -############################# Zookeeper ############################# - -# Zookeeper connection string (see zookeeper docs for details). -# This is a comma separated host:port pairs, each corresponding to a zk -# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". -# You can also append an optional chroot string to the urls to specify the -# root directory for all kafka znodes. -zookeeper.connect=sr464:2181 - -# Timeout in ms for connecting to zookeeper -zookeeper.connection.timeout.ms=1000000 - -# metrics reporter properties -kafka.metrics.polling.interval.secs=5 -kafka.metrics.reporters=kafka.metrics.KafkaCSVMetricsReporter -kafka.csv.metrics.dir=/tmp/kafka_metrics -# Disable csv reporting by default. -kafka.csv.metrics.reporter.enabled=false - -replica.lag.max.messages=10000000 diff --git a/conf/example/kafka/serv4.properties b/conf/example/kafka/serv4.properties deleted file mode 100644 index a4d09db0c..000000000 --- a/conf/example/kafka/serv4.properties +++ /dev/null @@ -1,126 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# see kafka.server.KafkaConfig for additional details and defaults - -############################# Server Basics ############################# - -# The id of the broker. This must be set to a unique integer for each broker. -broker.id=4674 - -############################# Socket Server Settings ############################# - -# The port the socket server listens on -port=9095 - -# Hostname the broker will bind to. If not set, the server will bind to all interfaces -#host.name=localhost - -# Hostname the broker will advertise to producers and consumers. If not set, it uses the -# value for "host.name" if configured. Otherwise, it will use the value returned from -# java.net.InetAddress.getCanonicalHostName(). -#advertised.host.name= - -# The port to publish to ZooKeeper for clients to use. If this is not set, -# it will publish the same port that the broker binds to. -#advertised.port= - -# The number of threads handling network requests -num.network.threads=4 - -# The number of threads doing disk I/O -num.io.threads=4 - -# The send buffer (SO_SNDBUF) used by the socket server -socket.send.buffer.bytes=62914560 - -# The receive buffer (SO_RCVBUF) used by the socket server -socket.receive.buffer.bytes=62914560 - -# The maximum size of a request that the socket server will accept (protection against OOM) -socket.request.max.bytes=104857600 - - -############################# Log Basics ############################# - -# A comma seperated list of directories under which to store log files -log.dirs=/mnt/DP_disk7/kafka-logs-4,/mnt/DP_disk6/kafka-logs-4,/mnt/DP_disk8/kafka-logs-4,/mnt/DP_disk9/kafka-logs-4 - -# The default number of log partitions per topic. More partitions allow greater -# parallelism for consumption, but this will also result in more files across -# the brokers. -num.partitions=4 - -############################# Log Flush Policy ############################# - -# Messages are immediately written to the filesystem but by default we only fsync() to sync -# the OS cache lazily. The following configurations control the flush of data to disk. -# There are a few important trade-offs here: -# 1. Durability: Unflushed data may be lost if you are not using replication. -# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. -# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks. -# The settings below allow one to configure the flush policy to flush data after a period of time or -# every N messages (or both). This can be done globally and overridden on a per-topic basis. - -# The number of messages to accept before forcing a flush of data to disk -#log.flush.interval.messages=10000 - -# The maximum amount of time a message can sit in a log before we force a flush -#log.flush.interval.ms=1000 - -############################# Log Retention Policy ############################# - -# The following configurations control the disposal of log segments. The policy can -# be set to delete segments after a period of time, or after a given size has accumulated. -# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens -# from the end of the log. - -# The minimum age of a log file to be eligible for deletion -log.retention.hours=168 - -# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining -# segments don't drop below log.retention.bytes. -#log.retention.bytes=1073741824 - -# The maximum size of a log segment file. When this size is reached a new log segment will be created. -log.segment.bytes=536870912 - -# The interval at which log segments are checked to see if they can be deleted according -# to the retention policies -log.retention.check.interval.ms=60000 - -# By default the log cleaner is disabled and the log retention policy will default to just delete segments after their retention expires. -# If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log compaction. -log.cleaner.enable=false - -############################# Zookeeper ############################# - -# Zookeeper connection string (see zookeeper docs for details). -# This is a comma separated host:port pairs, each corresponding to a zk -# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". -# You can also append an optional chroot string to the urls to specify the -# root directory for all kafka znodes. -zookeeper.connect=sr464:2181 - -# Timeout in ms for connecting to zookeeper -zookeeper.connection.timeout.ms=1000000 - -# metrics reporter properties -kafka.metrics.polling.interval.secs=5 -kafka.metrics.reporters=kafka.metrics.KafkaCSVMetricsReporter -kafka.csv.metrics.dir=/tmp/kafka_metrics -# Disable csv reporting by default. -kafka.csv.metrics.reporter.enabled=false - -replica.lag.max.messages=10000000 diff --git a/conf/example/zookeeper/zoo.cfg b/conf/example/zookeeper/zoo.cfg deleted file mode 100644 index 3d2c3eb6d..000000000 --- a/conf/example/zookeeper/zoo.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# path to store zookeeper data -dataDir=/home/xxx/var/zookeeper - -clientPort=2181 -tickTime=2000 -maxClientCnxns=60 diff --git a/conf/flink.conf.template b/conf/flink.conf.template new file mode 100644 index 000000000..3f7115d81 --- /dev/null +++ b/conf/flink.conf.template @@ -0,0 +1,8 @@ +hibench.streambench.flink.home /PATH/TO/YOUR/FLINK/HOME + +hibench.flink.master HOSTNAME:PORT + +# Default parallelism of flink job +hibench.streambench.flink.parallelism 20 +hibench.streambench.flink.bufferTimeout 10 +hibench.streambench.flink.checkpointDuration 1000 diff --git a/conf/frameworks.lst b/conf/frameworks.lst new file mode 100644 index 000000000..32ecfe2af --- /dev/null +++ b/conf/frameworks.lst @@ -0,0 +1,2 @@ +hadoop +spark \ No newline at end of file diff --git a/conf/gearpump.conf.template b/conf/gearpump.conf.template new file mode 100644 index 000000000..ba7088e95 --- /dev/null +++ b/conf/gearpump.conf.template @@ -0,0 +1,5 @@ +hibench.streambench.gearpump.home /PATH/TO/YOUR/GEARPUMP/HOME + +hibench.streambench.gearpump.parallelism 12 + +hibench.streambench.gearpump.executors 12 \ No newline at end of file diff --git a/conf/hadoop.conf.template b/conf/hadoop.conf.template new file mode 100644 index 000000000..aad2f52be --- /dev/null +++ b/conf/hadoop.conf.template @@ -0,0 +1,19 @@ +# Hadoop home +hibench.hadoop.home /PATH/TO/YOUR/HADOOP/ROOT + +# The path of hadoop executable +hibench.hadoop.executable ${hibench.hadoop.home}/bin/hadoop + +# Hadoop configraution directory +hibench.hadoop.configure.dir ${hibench.hadoop.home}/etc/hadoop + +# The root HDFS path to store HiBench data +hibench.hdfs.master hdfs://localhost:8020 + + +# Hadoop release provider. Supported value: apache, cdh5, hdp +hibench.hadoop.release apache + +#Hadoop version. Only hadoop2 is supported +#TODO: remove this +hibench.hadoop.version hadoop2 diff --git a/conf/hibench.conf b/conf/hibench.conf new file mode 100644 index 000000000..21f7d694d --- /dev/null +++ b/conf/hibench.conf @@ -0,0 +1,113 @@ +hibench.scale.profile small + +hibench.default.map.parallelism 12 +hibench.default.shuffle.parallelism 12 + +#====================================================== +# Report files +#====================================================== +# default report formats +hibench.report.formats "%-12s %-10s %-8s %-20s %-20s %-20s %-20s\n" + +# default report dir path +hibench.report.dir ${hibench.home}/report + +# default report file name +hibench.report.name hibench.report + +# input/output format settings. Available formats: Text, Sequence. +sparkbench.inputformat Sequence +sparkbench.outputformat Sequence + +# hibench config folder +hibench.configure.dir ${hibench.home}/conf + +# default hibench HDFS root +hibench.hdfs.data.dir ${hibench.hdfs.master}/HiBench + +# path of hibench jars +hibench.hibench.datatool.dir ${hibench.home}/autogen/target/autogen-6.0-SNAPSHOT-jar-with-dependencies.jar +hibench.sparkbench.jar ${hibench.home}/sparkbench/assembly/target/sparkbench-assembly-6.0-SNAPSHOT-dist.jar +hibench.streambench.stormbench.jar ${hibench.home}/stormbench/streaming/target/stormbench-streaming-6.0-SNAPSHOT.jar +hibench.streambench.gearpump.jar ${hibench.home}/gearpumpbench/streaming/target/gearpumpbench-streaming-6.0-SNAPSHOT-jar-with-dependencies.jar +hibench.streambench.flinkbench.jar ${hibench.home}/flinkbench/streaming/target/flinkbench-streaming-6.0-SNAPSHOT-jar-with-dependencies.jar + +#====================================================== +# workload home/input/ouput path +#====================================================== +hibench.hive.home ${hibench.home}/hadoopbench/sql/target/${hibench.hive.release} +hibench.hive.release hive-0.12.0-bin +hibench.hivebench.template.dir ${hibench.home}/hadoopbench/sql/hive_template +hibench.bayes.dir.name.input ${hibench.workload.dir.name.input} +hibench.bayes.dir.name.output ${hibench.workload.dir.name.output} + +hibench.mahout.release.apache apache-mahout-distribution-0.11.0 +hibench.mahout.release.hdp apache-mahout-distribution-0.11.0 +hibench.mahout.release.cdh5 mahout-0.9-cdh5.1.0 +hibench.mahout.release ${hibench.mahout.release.${hibench.hadoop.release}} +hibench.mahout.home ${hibench.home}/hadoopbench/mahout/target/${hibench.mahout.release} + +hibench.workload.input +hibench.workload.output +hibench.workload.dir.name.input Input +hibench.workload.dir.name.output Output + +hibench.nutch.dir.name.input ${hibench.workload.dir.name.input} +hibench.nutch.dir.name.output ${hibench.workload.dir.name.output} +hibench.nutch.nutchindexing.dir ${hibench.home}/hadoopbench/nutchindexing/ +hibench.nutch.release nutch-1.2 +hibench.nutch.home ${hibench.home}/hadoopbench/nutchindexing/target/${hibench.nutch.release} + +hibench.dfsioe.dir.name.input ${hibench.workload.dir.name.input} +hibench.dfsioe.dir.name.output ${hibench.workload.dir.name.output} + + +#====================================================== +# Streaming General +#====================================================== +# Indicate whether in debug mode for correctness verfication (default: false) +hibench.streambench.debugMode false +hibench.streambench.sampleProbability 0.1 +hibench.streambench.fixWindowDuration 10000 +hibench.streambench.fixWindowSlideStep 10000 + + +#====================================================== +# Kafka for streaming benchmarks +#====================================================== +hibench.streambench.kafka.home /PATH/TO/YOUR/KAFKA/HOME +# zookeeper host:port of kafka cluster, host1:port1,host2:port2... +hibench.streambench.zkHost +# Kafka broker lists, written in mode host:port,host:port,.. +hibench.streambench.kafka.brokerList +hibench.streambench.kafka.consumerGroup HiBench +# number of partitions of generated topic (default 20) +hibench.streambench.kafka.topicPartitions 20 +# consumer group of the consumer for kafka (default: HiBench) +hibench.streambench.kafka.consumerGroup HiBench +# Set the starting offset of kafkaConsumer (default: largest) +hibench.streambench.kafka.offsetReset largest + + +#====================================================== +# Data generator for streaming benchmarks +#====================================================== +# Interval span in millisecond (default: 50) +hibench.streambench.datagen.intervalSpan 50 +# Number of records to generate per interval span (default: 5) +hibench.streambench.datagen.recordsPerInterval 5 +# fixed length of record (default: 200) +hibench.streambench.datagen.recordLength 200 +# Number of KafkaProducer running on different thread (default: 1) +hibench.streambench.datagen.producerNumber 1 +# Total round count of data send (default: -1 means infinity) +hibench.streambench.datagen.totalRounds -1 +# Number of total records that will be generated (default: -1 means infinity) +hibench.streambench.datagen.totalRecords -1 +# default path to store seed files (default: ${hibench.hdfs.data.dir}/Streaming) +hibench.streambench.datagen.dir ${hibench.hdfs.data.dir}/Streaming +# default path setting for genearate data1 & data2 +hibench.streambench.datagen.data1.name Seed +hibench.streambench.datagen.data1.dir ${hibench.streambench.datagen.dir}/${hibench.streambench.datagen.data1.name} +hibench.streambench.datagen.data2_cluster.dir ${hibench.streambench.datagen.dir}/Kmeans/Cluster +hibench.streambench.datagen.data2_samples.dir ${hibench.streambench.datagen.dir}/Kmeans/Samples diff --git a/conf/languages.lst b/conf/languages.lst deleted file mode 100644 index 12c34791b..000000000 --- a/conf/languages.lst +++ /dev/null @@ -1,4 +0,0 @@ -mapreduce -spark/java -spark/scala -spark/python diff --git a/conf/spark.conf.template b/conf/spark.conf.template new file mode 100644 index 000000000..e6adea698 --- /dev/null +++ b/conf/spark.conf.template @@ -0,0 +1,47 @@ +# Spark home +hibench.spark.home /PATH/TO/YOUR/SPARK/HOME + +# Spark master +# standalone mode: `spark://xxx:7077` +# YARN mode: `yarn-client` +# unset: fallback to `local[1]` +hibench.spark.master yarn-client + +# executor number and cores when running on Yarn +hibench.yarn.executor.num 2 +hibench.yarn.executor.cores 4 + +# executor and driver memory in standalone & YARN mode +spark.executor.memory 4g +spark.driver.memory 4g + +# set spark parallelism property according to hibench's parallelism value +spark.default.parallelism ${hibench.default.map.parallelism} + +# set spark sql's default shuffle partitions according to hibench's parallelism value +spark.sql.shuffle.partitions ${hibench.default.map.parallelism} + + +#====================================================== +# Spark Streaming +#====================================================== +# Spark streaming Batchnterval in millisecond (default 100) +hibench.streambench.spark.batchInterval 100 + +# Number of nodes that will receive kafka input (default: 4) +hibench.streambench.spark.receiverNumber 4 + +# Indicate RDD storage level. (default: 2) +# 0 = StorageLevel.MEMORY_ONLY +# 1 = StorageLevel.MEMORY_AND_DISK_SER +# other = StorageLevel.MEMORY_AND_DISK_SER_2 +hibench.streambench.spark.storageLevel 2 + +# indicate whether to test the write ahead log new feature (default: false) +hibench.streambench.spark.enableWAL false + +# if testWAL is true, this path to store stream context in hdfs shall be specified. If false, it can be empty (default: /var/tmp) +hibench.streambench.spark.checkpointPath /var/tmp + +# whether to use direct approach or not (dafault: true) +hibench.streambench.spark.useDirectMode true diff --git a/conf/storm.conf.template b/conf/storm.conf.template new file mode 100644 index 000000000..c12b646d7 --- /dev/null +++ b/conf/storm.conf.template @@ -0,0 +1,25 @@ +# nimbus of storm cluster +hibench.streambench.storm.nimbus HOSTNAME_OF_STORM_NIMBUS +hibench.streambench.storm.nimbusAPIPort 6627 + +hibench.streambench.storm.home /PATH/TO/YOUR/STORM/HOME + +# number of workers of Storm. Number of most bolt threads is also equal to this param. +hibench.streambench.storm.worker_count 12 + +# number of kafka spout threads of Storm +hibench.streambench.storm.spout_threads 12 + +# number of bolt threads altogether +hibench.streambench.storm.bolt_threads 12 + +hibench.streambench.storm.localshuffle true + +# time interval to contact nimbus to judge if finished +hibench.streambench.storm.nimbusContactInterval 10 + +# kafka arg indicating whether to read data from kafka from the start or go on to read from last position +hibench.streambench.storm.read_from_start true + +# whether to turn on ack +hibench.streambench.storm.ackon true diff --git a/conf/workloads/graph/nweight.conf b/conf/workloads/graph/nweight.conf new file mode 100644 index 000000000..6ac69c4bb --- /dev/null +++ b/conf/workloads/graph/nweight.conf @@ -0,0 +1,36 @@ +hibench.nweight.tiny.edges 100000 +hibench.nweight.tiny.degree 3 +hibench.nweight.tiny.max_out_edges 30 +hibench.nweight.small.edges 1000000 +hibench.nweight.small.degree 3 +hibench.nweight.small.max_out_edges 30 +hibench.nweight.large.edges 10000000 +hibench.nweight.large.degree 3 +hibench.nweight.large.max_out_edges 30 +hibench.nweight.huge.edges 100000000 +hibench.nweight.huge.degree 3 +hibench.nweight.huge.max_out_edges 30 +hibench.nweight.gigantic.edges 425000000 +hibench.nweight.gigantic.degree 3 +hibench.nweight.gigantic.max_out_edges 30 +hibench.nweight.bigdata.edges 4250000000 +hibench.nweight.bigdata.degree 3 +hibench.nweight.bigdata.max_out_edges 30 + +hibench.nweight.edges ${hibench.nweight.${hibench.scale.profile}.edges} +hibench.nweight.degree ${hibench.nweight.${hibench.scale.profile}.degree} +hibench.nweight.max_out_edges ${hibench.nweight.${hibench.scale.profile}.max_out_edges} + +hibench.nweight.partitions ${hibench.default.map.parallelism} +# storageLevel for the RDDs 0: off-heap 1: disk_only 3: memory_only 5: memory_ser 7: memory_and_disk 9: memory_and_disk_ser +hibench.nweight.storage_level 7 +hibench.nweight.disable_kryo false +# run nweight in graphx or pregel +hibench.nweight.model graphx + +hibench.nweight.model_path ${hibench.home}/sparkbench/graph/src/main/resources/nweight-user-features + +# export for shell script +hibench.workload.input ${hibench.hdfs.data.dir}/NWeight/Input +hibench.workload.output ${hibench.hdfs.data.dir}/NWeight/Output +hibench.workload.edges ${hibench.nweight.edges} diff --git a/conf/workloads/micro/dfsioe.conf b/conf/workloads/micro/dfsioe.conf new file mode 100644 index 000000000..b0e2ab471 --- /dev/null +++ b/conf/workloads/micro/dfsioe.conf @@ -0,0 +1,42 @@ +#DFSIOE +#Unit: number_of_file -> as name suggests +#Unit: filesize -> MB of file size +hibench.dfsioe.tiny.read.number_of_files 16 +hibench.dfsioe.tiny.read.file_size 1 +hibench.dfsioe.tiny.write.number_of_files 16 +hibench.dfsioe.tiny.write.file_size 1 + +hibench.dfsioe.small.read.number_of_files 32 +hibench.dfsioe.small.read.file_size 10 +hibench.dfsioe.small.write.number_of_files 32 +hibench.dfsioe.small.write.file_size 10 + +hibench.dfsioe.large.read.number_of_files 64 +hibench.dfsioe.large.read.file_size 10 +hibench.dfsioe.large.write.number_of_files 64 +hibench.dfsioe.large.write.file_size 10 + +hibench.dfsioe.huge.read.number_of_files 256 +hibench.dfsioe.huge.read.file_size 100 +hibench.dfsioe.huge.write.number_of_files 256 +hibench.dfsioe.huge.write.file_size 100 + +hibench.dfsioe.gigantic.read.number_of_files 512 +hibench.dfsioe.gigantic.read.file_size 400 +hibench.dfsioe.gigantic.write.number_of_files 512 +hibench.dfsioe.gigantic.write.file_size 400 + +hibench.dfsioe.bigdata.read.number_of_files 2048 +hibench.dfsioe.bigdata.read.file_size 1000 +hibench.dfsioe.bigdata.write.number_of_files 2048 +hibench.dfsioe.bigdata.write.file_size 1000 + +hibench.dfsioe.read.number_of_files ${hibench.dfsioe.${hibench.scale.profile}.read.number_of_files} +hibench.dfsioe.read.file_size ${hibench.dfsioe.${hibench.scale.profile}.read.file_size} +hibench.dfsioe.write.number_of_files ${hibench.dfsioe.${hibench.scale.profile}.write.number_of_files} +hibench.dfsioe.write.file_size ${hibench.dfsioe.${hibench.scale.profile}.write.file_size} + +# export for shell script +hibench.workload.input ${hibench.hdfs.data.dir}/Dfsioe/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Dfsioe/Output + diff --git a/conf/workloads/micro/sleep.conf b/conf/workloads/micro/sleep.conf new file mode 100755 index 000000000..838d74e2a --- /dev/null +++ b/conf/workloads/micro/sleep.conf @@ -0,0 +1,20 @@ +#sleep +hibench.sleep.tiny.mapper.seconds 3 +hibench.sleep.tiny.reducer.seconds 3 +hibench.sleep.small.mapper.seconds 30 +hibench.sleep.small.reducer.seconds 30 +hibench.sleep.large.mapper.seconds 90 +hibench.sleep.large.reducer.seconds 45 +hibench.sleep.huge.mapper.seconds 90 +hibench.sleep.huge.reducer.seconds 45 +hibench.sleep.gigantic.mapper.seconds 90 +hibench.sleep.gigantic.reducer.seconds 45 +hibench.sleep.bigdata.mapper.seconds 10 +hibench.sleep.bigdata.reducer.seconds 10 + +hibench.sleep.mapper.seconds ${hibench.sleep.${hibench.scale.profile}.mapper.seconds} +hibench.sleep.reducer.seconds ${hibench.sleep.${hibench.scale.profile}.reducer.seconds} + +# export for shell script +hibench.workload.input dummy +hibench.workload.output dummy diff --git a/conf/workloads/micro/sort.conf b/conf/workloads/micro/sort.conf new file mode 100644 index 000000000..b8eb25f62 --- /dev/null +++ b/conf/workloads/micro/sort.conf @@ -0,0 +1,15 @@ +#Sort +# datasize=> bytes of data +hibench.sort.tiny.datasize 32000 +hibench.sort.small.datasize 3200000 +hibench.sort.large.datasize 320000000 +hibench.sort.huge.datasize 3200000000 +hibench.sort.gigantic.datasize 32000000000 +hibench.sort.bigdata.datasize 300000000000 + +hibench.workload.datasize ${hibench.sort.${hibench.scale.profile}.datasize} + +# export for shell script +hibench.workload.input ${hibench.hdfs.data.dir}/Sort/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Sort/Output + diff --git a/conf/workloads/micro/terasort.conf b/conf/workloads/micro/terasort.conf new file mode 100644 index 000000000..48efc9469 --- /dev/null +++ b/conf/workloads/micro/terasort.conf @@ -0,0 +1,13 @@ +#datagen +hibench.terasort.tiny.datasize 32000 +hibench.terasort.small.datasize 3200000 +hibench.terasort.large.datasize 32000000 +hibench.terasort.huge.datasize 320000000 +hibench.terasort.gigantic.datasize 3200000000 +hibench.terasort.bigdata.datasize 6000000000 + +hibench.workload.datasize ${hibench.terasort.${hibench.scale.profile}.datasize} + +# export for shell script +hibench.workload.input ${hibench.hdfs.data.dir}/Terasort/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Terasort/Output \ No newline at end of file diff --git a/conf/workloads/micro/wordcount.conf b/conf/workloads/micro/wordcount.conf new file mode 100755 index 000000000..ee267cc44 --- /dev/null +++ b/conf/workloads/micro/wordcount.conf @@ -0,0 +1,16 @@ +#datagen +hibench.wordcount.tiny.datasize 32000 +hibench.wordcount.small.datasize 320000000 +hibench.wordcount.large.datasize 3200000000 +hibench.wordcount.huge.datasize 32000000000 +hibench.wordcount.gigantic.datasize 320000000000 +hibench.wordcount.bigdata.datasize 1600000000000 + +hibench.workload.datasize ${hibench.wordcount.${hibench.scale.profile}.datasize} + +# export for shell script +hibench.workload.input ${hibench.hdfs.data.dir}/Wordcount/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Wordcount/Output + + + diff --git a/conf/workloads/ml/bayes.conf b/conf/workloads/ml/bayes.conf new file mode 100644 index 000000000..fb2b11574 --- /dev/null +++ b/conf/workloads/ml/bayes.conf @@ -0,0 +1,30 @@ +hibench.bayes.tiny.pages 25000 +hibench.bayes.tiny.classes 10 +hibench.bayes.tiny.ngrams 1 +hibench.bayes.small.pages 30000 +hibench.bayes.small.classes 100 +hibench.bayes.small.ngrams 2 +hibench.bayes.large.pages 100000 +hibench.bayes.large.classes 100 +hibench.bayes.large.ngrams 2 +hibench.bayes.huge.pages 500000 +hibench.bayes.huge.classes 100 +hibench.bayes.huge.ngrams 2 +hibench.bayes.gigantic.pages 1000000 +hibench.bayes.gigantic.classes 100 +hibench.bayes.gigantic.ngrams 2 +hibench.bayes.bigdata.pages 20000000 +hibench.bayes.bigdata.classes 20000 +hibench.bayes.bigdata.ngrams 2 + +hibench.bayes.pages ${hibench.bayes.${hibench.scale.profile}.pages} +hibench.bayes.classes ${hibench.bayes.${hibench.scale.profile}.classes} +hibench.bayes.ngrams ${hibench.bayes.${hibench.scale.profile}.ngrams} +hibench.bayes.base.hdfs ${hibench.hdfs.data.dir}/Bayes + + +hibench.workload.input ${hibench.hdfs.data.dir}/Bayes/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Bayes/Output +hibench.workload.pages ${hibench.bayes.pages} +hibench.workload.classes ${hibench.bayes.classes} + diff --git a/conf/workloads/ml/kmeans.conf b/conf/workloads/ml/kmeans.conf new file mode 100644 index 000000000..004c26477 --- /dev/null +++ b/conf/workloads/ml/kmeans.conf @@ -0,0 +1,56 @@ +hibench.kmeans.tiny.num_of_clusters 5 +hibench.kmeans.tiny.dimensions 3 +hibench.kmeans.tiny.num_of_samples 30000 +hibench.kmeans.tiny.samples_per_inputfile 6000 +hibench.kmeans.tiny.max_iteration 5 +hibench.kmeans.tiny.k 10 +hibench.kmeans.tiny.convergedist 0.5 +hibench.kmeans.small.num_of_clusters 5 +hibench.kmeans.small.dimensions 20 +hibench.kmeans.small.num_of_samples 3000000 +hibench.kmeans.small.samples_per_inputfile 600000 +hibench.kmeans.small.max_iteration 5 +hibench.kmeans.small.k 10 +hibench.kmeans.small.convergedist 0.5 +hibench.kmeans.large.num_of_clusters 5 +hibench.kmeans.large.dimensions 20 +hibench.kmeans.large.num_of_samples 20000000 +hibench.kmeans.large.samples_per_inputfile 4000000 +hibench.kmeans.large.max_iteration 5 +hibench.kmeans.large.k 10 +hibench.kmeans.large.convergedist 0.5 +hibench.kmeans.huge.num_of_clusters 5 +hibench.kmeans.huge.dimensions 20 +hibench.kmeans.huge.num_of_samples 100000000 +hibench.kmeans.huge.samples_per_inputfile 20000000 +hibench.kmeans.huge.max_iteration 5 +hibench.kmeans.huge.k 10 +hibench.kmeans.huge.convergedist 0.5 +hibench.kmeans.gigantic.num_of_clusters 5 +hibench.kmeans.gigantic.dimensions 20 +hibench.kmeans.gigantic.num_of_samples 200000000 +hibench.kmeans.gigantic.samples_per_inputfile 40000000 +hibench.kmeans.gigantic.max_iteration 5 +hibench.kmeans.gigantic.k 10 +hibench.kmeans.gigantic.convergedist 0.5 +hibench.kmeans.bigdata.num_of_clusters 5 +hibench.kmeans.bigdata.dimensions 20 +hibench.kmeans.bigdata.num_of_samples 1200000000 +hibench.kmeans.bigdata.samples_per_inputfile 40000000 +hibench.kmeans.bigdata.max_iteration 10 +hibench.kmeans.bigdata.k 10 +hibench.kmeans.bigdata.convergedist 0.5 + +hibench.kmeans.num_of_clusters ${hibench.kmeans.${hibench.scale.profile}.num_of_clusters} +hibench.kmeans.dimensions ${hibench.kmeans.${hibench.scale.profile}.dimensions} +hibench.kmeans.num_of_samples ${hibench.kmeans.${hibench.scale.profile}.num_of_samples} +hibench.kmeans.samples_per_inputfile ${hibench.kmeans.${hibench.scale.profile}.samples_per_inputfile} +hibench.kmeans.max_iteration ${hibench.kmeans.${hibench.scale.profile}.max_iteration} +hibench.kmeans.k ${hibench.kmeans.${hibench.scale.profile}.k} +hibench.kmeans.convergedist ${hibench.kmeans.${hibench.scale.profile}.convergedist} +hibench.kmeans.base.hdfs ${hibench.hdfs.data.dir}/Kmeans +hibench.kmeans.input.sample ${hibench.workload.input}/samples +hibench.kmeans.input.cluster ${hibench.workload.input}/cluster + +hibench.workload.input ${hibench.hdfs.data.dir}/Kmeans/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Kmeans/Output \ No newline at end of file diff --git a/conf/workloads/sql/aggregation.conf b/conf/workloads/sql/aggregation.conf new file mode 100644 index 000000000..71fdbc775 --- /dev/null +++ b/conf/workloads/sql/aggregation.conf @@ -0,0 +1,25 @@ +#Aggregation +hibench.aggregation.tiny.uservisits 1000 +hibench.aggregation.tiny.pages 120 +hibench.aggregation.small.uservisits 100000 +hibench.aggregation.small.pages 12000 +hibench.aggregation.large.uservisits 1000000 +hibench.aggregation.large.pages 120000 +hibench.aggregation.huge.uservisits 10000000 +hibench.aggregation.huge.pages 1200000 +hibench.aggregation.gigantic.uservisits 100000000 +hibench.aggregation.gigantic.pages 12000000 +hibench.aggregation.bigdata.uservisits 1000000000 +hibench.aggregation.bigdata.pages 100000000 + +# default configurations here +hibench.aggregation.uservisits ${hibench.aggregation.${hibench.scale.profile}.uservisits} +hibench.aggregation.pages ${hibench.aggregation.${hibench.scale.profile}.pages} +#hibench.aggregation.base_hdfs ${hibench.hdfs.data.dir}/Aggregation + +# export for shell script +hibench.hive.base.hdfs ${hibench.hdfs.data.dir}/Aggregation +hibench.workload.input ${hibench.hdfs.data.dir}/Aggregation/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Aggregation/Output +hibench.workload.pages ${hibench.aggregation.pages} +hibench.workload.uservisits ${hibench.aggregation.uservisits} diff --git a/conf/workloads/sql/join.conf b/conf/workloads/sql/join.conf new file mode 100644 index 000000000..2b16c2984 --- /dev/null +++ b/conf/workloads/sql/join.conf @@ -0,0 +1,24 @@ +#Join +hibench.join.tiny.uservisits 1000 +hibench.join.tiny.pages 120 +hibench.join.small.uservisits 100000 +hibench.join.small.pages 12000 +hibench.join.large.uservisits 1000000 +hibench.join.large.pages 120000 +hibench.join.huge.uservisits 10000000 +hibench.join.huge.pages 1200000 +hibench.join.gigantic.uservisits 100000000 +hibench.join.gigantic.pages 12000000 +hibench.join.bigdata.uservisits 5000000000 +hibench.join.bigdata.pages 120000000 + +hibench.join.uservisits ${hibench.join.${hibench.scale.profile}.uservisits} +hibench.join.pages ${hibench.join.${hibench.scale.profile}.pages} + +# export for shell script +hibench.hive.base.hdfs ${hibench.hdfs.data.dir}/Join +hibench.workload.input ${hibench.hdfs.data.dir}/Join/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Join/Output +hibench.workload.pages ${hibench.join.pages} +hibench.workload.uservisits ${hibench.join.uservisits} + diff --git a/conf/workloads/sql/scan.conf b/conf/workloads/sql/scan.conf new file mode 100644 index 000000000..60e06cee3 --- /dev/null +++ b/conf/workloads/sql/scan.conf @@ -0,0 +1,24 @@ +#Scan +hibench.scan.tiny.uservisits 1000 +hibench.scan.tiny.pages 120 +hibench.scan.small.uservisits 100000 +hibench.scan.small.pages 12000 +hibench.scan.large.uservisits 1000000 +hibench.scan.large.pages 120000 +hibench.scan.huge.uservisits 10000000 +hibench.scan.huge.pages 1200000 +hibench.scan.gigantic.uservisits 100000000 +hibench.scan.gigantic.pages 12000000 +hibench.scan.bigdata.uservisits 2000000000 +hibench.scan.bigdata.pages 10000000 + +# default configurations here +hibench.scan.uservisits ${hibench.scan.${hibench.scale.profile}.uservisits} +hibench.scan.pages ${hibench.scan.${hibench.scale.profile}.pages} + +# export for shell script +hibench.hive.base.hdfs ${hibench.hdfs.data.dir}/Scan +hibench.workload.input ${hibench.hdfs.data.dir}/Scan/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Scan/Output +hibench.workload.uservisits ${hibench.scan.uservisits} +hibench.workload.pages ${hibench.scan.pages} diff --git a/conf/workloads/streaming/fixwindow.conf b/conf/workloads/streaming/fixwindow.conf new file mode 100644 index 000000000..2915631db --- /dev/null +++ b/conf/workloads/streaming/fixwindow.conf @@ -0,0 +1,4 @@ +hibench.streambench.testCase fixwindow +hibench.streambench.kafka.topic fixwindow +hibench.streambench.fixWindowDuration 10000 +hibench.streambench.fixWindowSlideStep 10000 \ No newline at end of file diff --git a/conf/workloads/streaming/identity.conf b/conf/workloads/streaming/identity.conf new file mode 100644 index 000000000..d95ec65e5 --- /dev/null +++ b/conf/workloads/streaming/identity.conf @@ -0,0 +1,2 @@ +hibench.streambench.testCase identity +hibench.streambench.kafka.topic identity \ No newline at end of file diff --git a/conf/workloads/streaming/repartition.conf b/conf/workloads/streaming/repartition.conf new file mode 100644 index 000000000..014d001be --- /dev/null +++ b/conf/workloads/streaming/repartition.conf @@ -0,0 +1,2 @@ +hibench.streambench.testCase repartition +hibench.streambench.kafka.topic repartition \ No newline at end of file diff --git a/conf/workloads/streaming/wordcount.conf b/conf/workloads/streaming/wordcount.conf new file mode 100644 index 000000000..6b7cf42b2 --- /dev/null +++ b/conf/workloads/streaming/wordcount.conf @@ -0,0 +1,2 @@ +hibench.streambench.testCase wordcount +hibench.streambench.kafka.topic wordcount \ No newline at end of file diff --git a/conf/workloads/websearch/nutchindexing.conf b/conf/workloads/websearch/nutchindexing.conf new file mode 100644 index 000000000..a767be59a --- /dev/null +++ b/conf/workloads/websearch/nutchindexing.conf @@ -0,0 +1,15 @@ +hibench.nutch.tiny.pages 25000 +hibench.nutch.small.pages 1000000 +hibench.nutch.large.pages 1000000000 +hibench.nutch.huge.pages 10000000000 +hibench.nutch.gigantic.pages 100000000000 +hibench.nutch.bigdata.pages 100000000000 + +hibench.nutch.pages ${hibench.nutch.${hibench.scale.profile}.pages} +hibench.nutch.base.hdfs ${hibench.hdfs.data.dir}/Nutchindexing + + +hibench.workload.input ${hibench.hdfs.data.dir}/Nutchindexing/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Nutchindexing/Output +hibench.workload.pages ${hibench.nutch.pages} + diff --git a/conf/workloads/websearch/pagerank.conf b/conf/workloads/websearch/pagerank.conf new file mode 100644 index 000000000..665033708 --- /dev/null +++ b/conf/workloads/websearch/pagerank.conf @@ -0,0 +1,37 @@ +#Pagerank +hibench.pagerank.tiny.pages 50 +hibench.pagerank.tiny.num_iterations 1 +hibench.pagerank.tiny.block 0 +hibench.pagerank.tiny.block_width 16 +hibench.pagerank.small.pages 5000 +hibench.pagerank.small.num_iterations 3 +hibench.pagerank.small.block 0 +hibench.pagerank.small.block_width 16 +hibench.pagerank.large.pages 500000 +hibench.pagerank.large.num_iterations 3 +hibench.pagerank.large.block 0 +hibench.pagerank.large.block_width 16 +hibench.pagerank.huge.pages 5000000 +hibench.pagerank.huge.num_iterations 3 +hibench.pagerank.huge.block 0 +hibench.pagerank.huge.block_width 16 +hibench.pagerank.gigantic.pages 50000000 +hibench.pagerank.gigantic.num_iterations 3 +hibench.pagerank.gigantic.block 0 +hibench.pagerank.gigantic.block_width 16 +hibench.pagerank.bigdata.pages 30000000 +hibench.pagerank.bigdata.num_iterations 3 +hibench.pagerank.bigdata.block 0 +hibench.pagerank.bigdata.block_width 16 + +hibench.pagerank.pages ${hibench.pagerank.${hibench.scale.profile}.pages} +hibench.pagerank.num_iterations ${hibench.pagerank.${hibench.scale.profile}.num_iterations} +hibench.pagerank.block ${hibench.pagerank.${hibench.scale.profile}.block} +hibench.pagerank.block_width ${hibench.pagerank.${hibench.scale.profile}.block_width} +hibench.pagerank.base.hdfs ${hibench.hdfs.data.dir}/Pagerank + +hibench.workload.input ${hibench.hdfs.data.dir}/Pagerank/Input +hibench.workload.output ${hibench.hdfs.data.dir}/Pagerank/Output +hibench.workload.pages ${hibench.pagerank.pages} + +hibench.pagerank.pegasus.dir ${hibench.home}/hadoopbench/pegasus/target/pegasus-2.0-SNAPSHOT.jar \ No newline at end of file diff --git a/flinkbench/pom.xml b/flinkbench/pom.xml new file mode 100644 index 000000000..1c24e7813 --- /dev/null +++ b/flinkbench/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + + + com.intel.hibench + hibench + 6.0-SNAPSHOT + + + com.intel.hibench + flinkbench + pom + 6.0-SNAPSHOT + flinkbench + + + + streaming + + streaming + + + + + allModules + + streaming + + + + !modules + + + + + diff --git a/flinkbench/streaming/pom.xml b/flinkbench/streaming/pom.xml new file mode 100644 index 000000000..81ec87d96 --- /dev/null +++ b/flinkbench/streaming/pom.xml @@ -0,0 +1,101 @@ + + + + + 4.0.0 + + com.intel.hibench + flinkbench + 6.0-SNAPSHOT + + + com.intel.hibench.flinkbench + flinkbench-streaming + jar + flinkbench-streaming + + + 1.0.3 + 2.4.2 + + + + + apache.snapshots + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots/ + + false + + + true + + + + + + + com.intel.hibench + hibench-common + ${project.version} + + + org.apache.flink + flink-core + ${flinkVersion} + compile + + + org.apache.flink + flink-connector-kafka-0.8_2.11 + ${flinkVersion} + compile + + + org.apache.flink + flink-streaming-java_2.11 + ${flinkVersion} + compile + + + + + + + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + + diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/RunBench.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/RunBench.java new file mode 100644 index 000000000..24039adff --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/RunBench.java @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.flinkbench; + +import com.intel.hibench.flinkbench.microbench.*; +import com.intel.hibench.flinkbench.util.BenchLogUtil; +import com.intel.hibench.flinkbench.util.FlinkBenchConfig; +import com.intel.hibench.common.streaming.ConfigLoader; +import com.intel.hibench.common.streaming.metrics.MetricsUtil; +import com.intel.hibench.common.streaming.StreamBenchConfig; +import com.intel.hibench.common.streaming.Platform; + +public class RunBench { + public static void main(String[] args) throws Exception { + runAll(args); + } + + public static void runAll(String[] args) throws Exception { + + if (args.length < 1) + BenchLogUtil.handleError("Usage: RunBench "); + + ConfigLoader cl = new ConfigLoader(args[0]); + + // Prepare configuration + FlinkBenchConfig conf = new FlinkBenchConfig(); + conf.brokerList = cl.getProperty(StreamBenchConfig.KAFKA_BROKER_LIST); + conf.zkHost = cl.getProperty(StreamBenchConfig.ZK_HOST); + conf.testCase = cl.getProperty(StreamBenchConfig.TESTCASE); + conf.topic = cl.getProperty(StreamBenchConfig.KAFKA_TOPIC); + conf.consumerGroup = cl.getProperty(StreamBenchConfig.CONSUMER_GROUP); + conf.bufferTimeout = Long.parseLong(cl.getProperty(StreamBenchConfig.FLINK_BUFFERTIMEOUT)); + conf.offsetReset = cl.getProperty(StreamBenchConfig.KAFKA_OFFSET_RESET); + conf.windowDuration = cl.getProperty(StreamBenchConfig.FixWINDOW_DURATION); + conf.windowSlideStep = cl.getProperty(StreamBenchConfig.FixWINDOW_SLIDESTEP); + + conf.checkpointDuration = Long.parseLong(cl.getProperty(StreamBenchConfig.FLINK_CHECKPOINTDURATION)); + int producerNum = Integer.parseInt(cl.getProperty(StreamBenchConfig.DATAGEN_PRODUCER_NUMBER)); + long recordsPerInterval = Long.parseLong(cl.getProperty(StreamBenchConfig.DATAGEN_RECORDS_PRE_INTERVAL)); + int intervalSpan = Integer.parseInt(cl.getProperty(StreamBenchConfig.DATAGEN_INTERVAL_SPAN)); + conf.reportTopic = MetricsUtil.getTopic(Platform.FLINK, conf.testCase, producerNum, recordsPerInterval, intervalSpan); + int reportTopicPartitions = Integer.parseInt(cl.getProperty(StreamBenchConfig.KAFKA_TOPIC_PARTITIONS)); + MetricsUtil.createTopic(conf.zkHost, conf.reportTopic, reportTopicPartitions); + + // Main testcase logic + String testCase = conf.testCase; + + if (testCase.equals("wordcount")) { + WordCount wordCount = new WordCount(); + wordCount.processStream(conf); + } else if (testCase.equals("identity")) { + Identity identity = new Identity(); + identity.processStream(conf); + } else if (testCase.equals("repartition")) { + Repartition repartition = new Repartition(); + repartition.processStream(conf); + } else if (testCase.equals("fixwindow")) { + FixedWindow window = new FixedWindow(); + window.processStream(conf); + } + } +} diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/datasource/StreamBase.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/datasource/StreamBase.java new file mode 100644 index 000000000..06152d19a --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/datasource/StreamBase.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.flinkbench.datasource; + +import com.intel.hibench.flinkbench.util.KeyedTupleSchema; +import com.intel.hibench.flinkbench.util.FlinkBenchConfig; + +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.streaming.api.functions.source.SourceFunction; +import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer08; + +import java.util.Properties; + +public abstract class StreamBase { + + private SourceFunction> dataStream; + + public SourceFunction> getDataStream() { + return this.dataStream; + } + + public void createDataStream(FlinkBenchConfig config) throws Exception { + + Properties properties = new Properties(); + properties.setProperty("zookeeper.connect", config.zkHost); + properties.setProperty("group.id", config.consumerGroup); + properties.setProperty("bootstrap.servers", config.brokerList); + properties.setProperty("auto.offset.reset", config.offsetReset); + + this.dataStream = new FlinkKafkaConsumer08>( + config.topic, + new KeyedTupleSchema(), + properties); + } + + public void processStream(FlinkBenchConfig config) throws Exception { + } +} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SpoutTops.scala b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/metrics/Metrics.java similarity index 76% rename from src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SpoutTops.scala rename to flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/metrics/Metrics.java index 00f5816fe..894c0f47d 100644 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SpoutTops.scala +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/metrics/Metrics.java @@ -15,13 +15,8 @@ * limitations under the License. */ -package com.intel.hibench.streambench.spark.microbench +package com.intel.hibench.flinkbench.metrics; -import org.apache.spark.streaming.StreamingContext -import org.apache.spark.streaming.dstream.DStream - -trait SpoutTops { - def processStreamData(lines:DStream[String],ssc:StreamingContext){ - - } +public class Metrics { + //TODO get the timestamp of original data and calculate the latency } diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/FixedWindow.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/FixedWindow.java new file mode 100644 index 000000000..f3a7cb382 --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/FixedWindow.java @@ -0,0 +1,61 @@ +package com.intel.hibench.flinkbench.microbench; + +import com.intel.hibench.flinkbench.datasource.StreamBase; +import com.intel.hibench.flinkbench.util.FlinkBenchConfig; + +import org.apache.flink.api.common.functions.MapFunction; +import org.apache.flink.api.common.functions.ReduceFunction; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; + +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.UserVisitParser; + +import org.apache.flink.streaming.api.windowing.time.Time; + +public class FixedWindow extends StreamBase { + + @Override + public void processStream(final FlinkBenchConfig config) throws Exception { + + final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); + env.setBufferTimeout(config.bufferTimeout); + env.enableCheckpointing(config.checkpointDuration); + + createDataStream(config); + DataStream> dataStream = env.addSource(getDataStream()); + long windowDuration = Long.parseLong(config.windowDuration); + long windowSlideStep = Long.parseLong(config.windowSlideStep); + + dataStream.map(new MapFunction, Tuple2>>() { + + @Override + public Tuple2> map(Tuple2 value) throws Exception { + + String ip = UserVisitParser.parse(value.f1).getIp(); + return new Tuple2>(ip, new Tuple2(Long.parseLong(value.f0), 1)); + } + }) + .keyBy(0) + .timeWindow(Time.milliseconds(windowDuration), Time.milliseconds(windowSlideStep)) + .reduce(new ReduceFunction>>() { + @Override + public Tuple2> reduce(Tuple2> v1, Tuple2> v2) throws Exception { + return new Tuple2>(v1.f0, new Tuple2(Math.min(v1.f1.f0, v2.f1.f0), v1.f1.f1 + v2.f1.f1)); + } + }).map(new MapFunction>, String>() { + + @Override + public String map(Tuple2> value) throws Exception { + KafkaReporter kafkaReporter = new KafkaReporter(config.reportTopic, config.brokerList); + for (int i = 0; i < value.f1.f1; i++) { + kafkaReporter.report(value.f1.f0, System.currentTimeMillis()); + } + return value.f0; + } + }); + + env.execute("Fixed Window Job"); + } +} diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/Identity.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/Identity.java new file mode 100644 index 000000000..9144b942b --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/Identity.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.flinkbench.microbench; + +import com.intel.hibench.flinkbench.datasource.StreamBase; +import com.intel.hibench.flinkbench.util.FlinkBenchConfig; + +import org.apache.flink.api.common.functions.MapFunction; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; + +import com.intel.hibench.common.streaming.metrics.KafkaReporter; + +public class Identity extends StreamBase { + + @Override + public void processStream(final FlinkBenchConfig config) throws Exception { + + final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); + env.setBufferTimeout(config.bufferTimeout); + + createDataStream(config); + DataStream> dataStream = env.addSource(getDataStream()); + + dataStream.map(new MapFunction, Tuple2>() { + + @Override + public Tuple2 map(Tuple2 value) throws Exception { + KafkaReporter kafkaReporter = new KafkaReporter(config.reportTopic, config.brokerList); + + kafkaReporter.report(Long.parseLong(value.f0), System.currentTimeMillis()); + return value; + } + }); + + env.execute("Identity Job"); + } +} diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/Repartition.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/Repartition.java new file mode 100644 index 000000000..3968febaa --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/Repartition.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.flinkbench.microbench; + +import com.intel.hibench.flinkbench.datasource.StreamBase; +import com.intel.hibench.flinkbench.util.FlinkBenchConfig; + +import org.apache.flink.api.common.functions.MapFunction; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; + +import com.intel.hibench.common.streaming.metrics.KafkaReporter; + +public class Repartition extends StreamBase { + + @Override + public void processStream(final FlinkBenchConfig config) throws Exception { + + final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); + env.setBufferTimeout(config.bufferTimeout); + + createDataStream(config); + DataStream> dataStream = env.addSource(getDataStream()); + + dataStream.rebalance().map( + new MapFunction, Tuple2>() { + + @Override + public Tuple2 map(Tuple2 value) throws Exception { + KafkaReporter kafkaReporter = new KafkaReporter(config.reportTopic, config.brokerList); + + kafkaReporter.report(Long.parseLong(value.f0), System.currentTimeMillis()); + return value; + } + }); + + + env.execute("Repartition Job"); + } +} diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/WordCount.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/WordCount.java new file mode 100644 index 000000000..6919d2190 --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/microbench/WordCount.java @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.flinkbench.microbench; + +import com.intel.hibench.flinkbench.datasource.StreamBase; +import com.intel.hibench.flinkbench.util.FlinkBenchConfig; + +import org.apache.flink.api.common.functions.MapFunction; +import org.apache.flink.api.common.functions.RichMapFunction; +import org.apache.flink.api.common.state.ValueState; +import org.apache.flink.api.common.state.ValueStateDescriptor; +import org.apache.flink.api.common.typeinfo.TypeHint; +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.configuration.Configuration; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; + +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.UserVisitParser; + +public class WordCount extends StreamBase { + + @Override + public void processStream(final FlinkBenchConfig config) throws Exception { + final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); + env.setBufferTimeout(config.bufferTimeout); + env.enableCheckpointing(config.checkpointDuration); + createDataStream(config); + DataStream> dataStream = env.addSource(getDataStream()); + dataStream + .map(new MapFunction, Tuple2>>() { + @Override + public Tuple2> map(Tuple2 input) throws Exception { + String ip = UserVisitParser.parse(input.f1).getIp(); + //map record to > type + return new Tuple2>(ip, new Tuple2(input.f0, 1)); + } + }) + .keyBy(0) + .map(new RichMapFunction>, Tuple2>>() { + private transient ValueState sum; + + @Override + public Tuple2> map(Tuple2> input) throws Exception { + int currentSum = sum.value(); + currentSum += input.f1.f1; + sum.update(currentSum); + KafkaReporter kafkaReporter = new KafkaReporter(config.reportTopic, config.brokerList); + kafkaReporter.report(Long.parseLong(input.f1.f0), System.currentTimeMillis()); + return new Tuple2>(input.f0, new Tuple2(input.f1.f0, currentSum)); + } + + @Override + public void open(Configuration config) { + ValueStateDescriptor descriptor = + new ValueStateDescriptor( + "count", // the state name + TypeInformation.of(new TypeHint() { + }), // type information + 0); // default value of the state, if nothing was set + sum = getRuntimeContext().getState(descriptor); + } + }); + env.execute("Word Count Job"); + } +} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractStormSpoutTops.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/BenchLogUtil.java similarity index 54% rename from src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractStormSpoutTops.java rename to flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/BenchLogUtil.java index f31e00f5f..11de64365 100644 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/AbstractStormSpoutTops.java +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/BenchLogUtil.java @@ -15,26 +15,40 @@ * limitations under the License. */ -package com.intel.hibench.streambench.storm.topologies; +package com.intel.hibench.flinkbench.util; -import backtype.storm.topology.TopologyBuilder; -import backtype.storm.topology.base.BaseRichSpout; -import com.intel.hibench.streambench.storm.spout.ConstructSpoutUtil; -import com.intel.hibench.streambench.storm.util.StormBenchConfig; +import java.io.File; +import java.io.PrintWriter; -public class AbstractStormSpoutTops { - protected StormBenchConfig config; +public class BenchLogUtil { + private static PrintWriter out; - public AbstractStormSpoutTops(StormBenchConfig c) { - config=c; - } + public static void init() throws Exception { + File file = new File("/tmp/benchlog-flink.txt"); + out = new PrintWriter(file); + } - public void setSpout(TopologyBuilder builder){ - BaseRichSpout spout= ConstructSpoutUtil.constructSpout(); - builder.setSpout("spout", spout, config.spoutThreads); + public static void logMsg(String msg) { + try { + if (out == null) { + init(); + } + } catch (Exception e) { + e.printStackTrace(); } + out.println(msg); + out.flush(); + System.out.println(msg); + } - public void setBolt(TopologyBuilder builder){ - + public static void close() { + if (out != null) { + out.close(); } + } + + public static void handleError(String msg) { + System.err.println(msg); + System.exit(1); + } } diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/ProjectStream.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/FlinkBenchConfig.java similarity index 58% rename from src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/ProjectStream.java rename to flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/FlinkBenchConfig.java index 1d565c76c..ac7f25562 100644 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/ProjectStream.java +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/FlinkBenchConfig.java @@ -15,23 +15,30 @@ * limitations under the License. */ -package com.intel.hibench.streambench.storm.micro; +package com.intel.hibench.flinkbench.util; -import backtype.storm.topology.*; +import java.io.Serializable; -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.topologies.*; +public class FlinkBenchConfig implements Serializable { + public String testCase; + // Kafka related + public String zkHost; + public String brokerList; + public String topic; + public String consumerGroup; + public String offsetReset; + public String reportTopic; + + public String separator; + public int fieldIndex; + public double prob; + public String pattern; + public String windowDuration; + public String windowSlideStep; + + // Flink related + public long bufferTimeout; + public long checkpointDuration; -public class ProjectStream extends SingleSpoutTops{ - - public ProjectStream(StormBenchConfig config){ - super(config); - } - - public void setBolt(TopologyBuilder builder){ - builder.setBolt("sketchAndPrint",new ProjectStreamBolt(config.fieldIndex,config.separator),config.boltThreads).shuffleGrouping("spout"); - } - - } diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/KeyedTupleSchema.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/KeyedTupleSchema.java new file mode 100644 index 000000000..35f7960ec --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/KeyedTupleSchema.java @@ -0,0 +1,39 @@ +package com.intel.hibench.flinkbench.util; + +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.api.java.typeutils.TupleTypeInfo; +import org.apache.flink.api.java.typeutils.TypeExtractor; +import org.apache.flink.streaming.util.serialization.KeyedDeserializationSchema; +import org.apache.flink.streaming.util.serialization.KeyedSerializationSchema; + +import java.io.IOException; + +public class KeyedTupleSchema implements KeyedSerializationSchema>, KeyedDeserializationSchema> { + + @Override + public byte[] serializeKey(Tuple2 element) { + return element.f0.getBytes(); + } + + @Override + public byte[] serializeValue(Tuple2 element) { + return element.f1.getBytes(); + } + + @Override + public Tuple2 deserialize(byte[] messageKey, byte[] message, String topic, int partition, long offset) throws IOException { + return new Tuple2(new String(messageKey), new String(message)); + } + + @Override + public boolean isEndOfStream(Tuple2 nextElement) { + return false; + } + + @Override + public TypeInformation> getProducedType() { + return new TupleTypeInfo>(TypeExtractor.createTypeInfo(String.class), TypeExtractor.createTypeInfo(String.class)); + } +} + diff --git a/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/StringTupleSchema.java b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/StringTupleSchema.java new file mode 100644 index 000000000..803c9378f --- /dev/null +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/StringTupleSchema.java @@ -0,0 +1,60 @@ +package com.intel.hibench.flinkbench.util; + +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.api.java.typeutils.TupleTypeInfo; +import org.apache.flink.api.java.typeutils.TypeExtractor; +import org.apache.flink.streaming.util.serialization.DeserializationSchema; +import org.apache.flink.streaming.util.serialization.SerializationSchema; + +/** + * Very simple serialization schema for strings of tuple. + */ +public class StringTupleSchema implements DeserializationSchema>, SerializationSchema> { + + private static final long serialVersionUID = 1L; + + @Override + public Tuple2 deserialize(byte[] message) { + byte[] str1 = new byte[message.length]; + byte[] str2 = new byte[message.length]; + int index = 0; + for (int i = 0; i < message.length; i++) { + + if (message[i] == ' ') { + index = i; + break; + } + str1[i] = message[i]; + } + for (int i = index + 1; i < message.length; i++) { + str2[i - index - 1] = message[i]; + } + return new Tuple2(new String(str1, 0, index), new String(str2, 0, message.length - index - 1)); + } + + @Override + public boolean isEndOfStream(Tuple2 nextElement) { + return false; + } + + @Override + public byte[] serialize(Tuple2 element) { + byte[] str1 = element.f0.getBytes(); + byte[] str2 = element.f1.getBytes(); + int len1 = str1.length; + int len2 = str2.length; + byte[] result = new byte[len1 + len2 + 1]; + System.arraycopy(str1, 0, result, 0, len1); + result[len1] = ' '; + for (int i = len1 + 1; i <= len1 + len2; i++) { + result[i] = str2[i - len1 - 1]; + } + return result; + } + + @Override + public TypeInformation> getProducedType() { + return new TupleTypeInfo>(TypeExtractor.createTypeInfo(String.class), TypeExtractor.createTypeInfo(String.class)); + } +} diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/pythonconverter/MahoutVectorToStringConverter.scala b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/Utils.java similarity index 63% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/pythonconverter/MahoutVectorToStringConverter.scala rename to flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/Utils.java index cf8176945..14afba463 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/pythonconverter/MahoutVectorToStringConverter.scala +++ b/flinkbench/streaming/src/main/java/com/intel/hibench/flinkbench/util/Utils.java @@ -15,16 +15,20 @@ * limitations under the License. */ -package com.intel.sparkbench.datagen.pythonconverter +package com.intel.hibench.flinkbench.util; -import scala.collection.JavaConversions._ +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; -import org.apache.spark.api.python.Converter -import org.apache.mahout.math.VectorWritable +public class Utils { -class MahoutVectorToStringConverter extends Converter[Any, String]{ - override def convert(obj: Any): String = { - val result = obj.asInstanceOf[VectorWritable] - result.toString + public static Map readAndParseConfig(FlinkBenchConfig config) throws IllegalAccessException { + Map map = new HashMap(); + Field[] fields = config.getClass().getFields(); + for (Field f : fields) { + map.put(f.getName(), f.get(config).toString()); + } + return map; } } diff --git a/gearpumpbench/pom.xml b/gearpumpbench/pom.xml new file mode 100644 index 000000000..6c31b7f0a --- /dev/null +++ b/gearpumpbench/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + + + com.intel.hibench + hibench + 6.0-SNAPSHOT + + + com.intel.hibench + gearpumpbench + pom + 6.0-SNAPSHOT + gearpumpbench + + + + streaming + + streaming + + + + + allModules + + streaming + + + + !modules + + + + + diff --git a/gearpumpbench/streaming/pom.xml b/gearpumpbench/streaming/pom.xml new file mode 100644 index 000000000..65dbae149 --- /dev/null +++ b/gearpumpbench/streaming/pom.xml @@ -0,0 +1,144 @@ + + + + + 4.0.0 + + com.intel.hibench + gearpumpbench + 6.0-SNAPSHOT + + + com.intel.hibench.gearpumpbench + gearpumpbench-streaming + jar + gearpumpbench-streaming + + 0.8.1 + 2.11.8 + 2.11 + 7.1.0 + + + + + apache.snapshots + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots/ + + false + + + true + + + + gearpump-shaded-repo + Vincent at Bintray + http://dl.bintray.com/fvunicorn/maven + + + + + + com.intel.hibench + hibench-common + ${project.version} + + + org.apache.gearpump + gearpump-core_2.11 + ${gearpumpVersion} + provided + + + org.apache.gearpump + gearpump-streaming_2.11 + ${gearpumpVersion} + provided + + + org.apache.gearpump + gearpump-external-kafka_2.11 + ${gearpumpVersion} + + + org.eclipse.collections + eclipse-collections-api + ${eclipseCollectionsVersion} + + + org.eclipse.collections + eclipse-collections + ${eclipseCollectionsVersion} + + + + + target/scala-${scala.binary.version}/classes + target/scala-${scala.binary.version}/test-classes + + + net.alchim31.maven + scala-maven-plugin + + ${scala.binary.version} + ${scala.version} + + + + scala-compile-first + process-resources + + add-source + compile + + + + scala-test-compile + process-test-resources + + testCompile + + + + + + + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + + diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/RunBench.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/RunBench.scala new file mode 100644 index 000000000..0a7320730 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/RunBench.scala @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench + +import com.intel.hibench.common.streaming.{TestCase, StreamBenchConfig, Platform, ConfigLoader} +import com.intel.hibench.common.streaming.metrics.MetricsUtil +import com.intel.hibench.common.streaming.TestCase +import com.intel.hibench.gearpumpbench.application._ +import com.intel.hibench.gearpumpbench.source.KafkaSourceProvider +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.cluster.client.ClientContext + +object RunBench { + def main(args: Array[String]) { + this.run(args) + } + + def run(args: Array[String]) { + val context = ClientContext() + implicit val system = context.system + implicit val sourceProvider = new KafkaSourceProvider() + val confLoader = new ConfigLoader(args(0)) + val gearConf = getConfig(confLoader) + + val benchmark = TestCase.withValue(gearConf.benchName) match { + case TestCase.WORDCOUNT => new WordCount(gearConf) + case TestCase.IDENTITY => new IdentityApp(gearConf) + case TestCase.FIXWINDOW => new WindowCount(gearConf) + } + + val benchConf = UserConfig.empty + .withValue(GearpumpConfig.BENCH_CONFIG, gearConf) + context.submit(benchmark.application(benchConf)) + context.close() + } + + private def getConfig(conf: ConfigLoader): GearpumpConfig = { + val benchName = conf.getProperty(StreamBenchConfig.TESTCASE) + val topic = conf.getProperty(StreamBenchConfig.KAFKA_TOPIC) + val zkHost = conf.getProperty(StreamBenchConfig.ZK_HOST) + val consumerGroup = conf.getProperty(StreamBenchConfig.CONSUMER_GROUP) + val parallelism = conf.getProperty(StreamBenchConfig.GEARPUMP_PARALLELISM).toInt + val brokerList = conf.getProperty(StreamBenchConfig.KAFKA_BROKER_LIST) + val prob = conf.getProperty(StreamBenchConfig.SAMPLE_PROBABILITY).toDouble + val reporterTopic = getReporterTopic(conf) + val reporterTopicPartitions = conf.getProperty(StreamBenchConfig.KAFKA_TOPIC_PARTITIONS).toInt + MetricsUtil.createTopic(zkHost, reporterTopic, reporterTopicPartitions) + + val windowDuration = conf.getProperty(StreamBenchConfig.FixWINDOW_DURATION).toLong + val windowStep = conf.getProperty(StreamBenchConfig.FixWINDOW_SLIDESTEP).toLong + + GearpumpConfig(benchName, zkHost, brokerList, consumerGroup, topic, + parallelism, prob, reporterTopic, windowDuration, windowStep) + } + + private def getReporterTopic(conf: ConfigLoader): String = { + val topic = conf.getProperty(StreamBenchConfig.KAFKA_TOPIC) + val producerNum: Int = conf.getProperty(StreamBenchConfig.DATAGEN_PRODUCER_NUMBER).toInt + val recordPerInterval = conf.getProperty(StreamBenchConfig.DATAGEN_RECORDS_PRE_INTERVAL).toLong + val intervalSpan: Int = conf.getProperty(StreamBenchConfig.DATAGEN_INTERVAL_SPAN).toInt + MetricsUtil.getTopic(Platform.GEARPUMP, topic, producerNum, recordPerInterval, intervalSpan) + } +} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/GrepStreamJob.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/BasicApplication.scala similarity index 52% rename from src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/GrepStreamJob.scala rename to gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/BasicApplication.scala index 3e6037810..f45a004da 100644 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/GrepStreamJob.scala +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/BasicApplication.scala @@ -14,25 +14,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.intel.hibench.gearpumpbench.application -package com.intel.hibench.streambench.spark.microbench +import com.intel.hibench.common.streaming.TestCase +import com.intel.hibench.common.streaming.metrics.{KafkaReporter, LatencyReporter} +import com.intel.hibench.gearpumpbench.source.SourceProvider +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.streaming.task.Task +import org.apache.gearpump.streaming.{Processor, StreamApplication} -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.dstream.DStream -import org.apache.spark.streaming.StreamingContext -import com.intel.hibench.streambench.spark.util.BenchLogUtil +abstract class BasicApplication(conf: GearpumpConfig)(implicit sourceProvider: SourceProvider) { + val benchName: TestCase -class GrepStreamJob(subClassParams:ParamEntity,patternStr:String) extends RunBenchJobWithInit(subClassParams){ - override def processStreamData(lines:DStream[String],ssc:StreamingContext){ - BenchLogUtil.logMsg("In GrepStreamJob") - val pattern=patternStr - val debug=subClassParams.debug - val matches=lines.filter(_.contains(pattern)) - - if(debug){ - matches.print() - }else{ - matches.foreachRDD( rdd => rdd.foreach( _ => Unit )) - } + def getSource(): Processor[_ <: Task] = { + sourceProvider.getSourceProcessor(conf) } + + def application(benchConfig: UserConfig): StreamApplication } diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/IdentityApp.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/IdentityApp.scala new file mode 100644 index 000000000..4cf871ec3 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/IdentityApp.scala @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench.application + +import com.intel.hibench.gearpumpbench.source.SourceProvider +import com.intel.hibench.gearpumpbench.task.Identity +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import com.intel.hibench.common.streaming.TestCase +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.partitioner.ShufflePartitioner +import org.apache.gearpump.streaming.{Processor, StreamApplication} +import org.apache.gearpump.util.Graph +import org.apache.gearpump.util.Graph._ + +class IdentityApp(conf: GearpumpConfig)(implicit sourceProvider: SourceProvider) extends BasicApplication(conf) { + override val benchName = TestCase.IDENTITY + + override def application(benchConfig: UserConfig): StreamApplication = { + val source = getSource() + val partitioner = new ShufflePartitioner + val identity = Processor[Identity](conf.parallelism) + StreamApplication("identity", Graph(source ~ partitioner ~> identity), benchConfig) + } +} + diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/WindowCount.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/WindowCount.scala new file mode 100644 index 000000000..4b68c6296 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/WindowCount.scala @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench.application + +import com.intel.hibench.gearpumpbench.source.SourceProvider +import com.intel.hibench.gearpumpbench.task.{Parser, SlidingWindow} +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import com.intel.hibench.common.streaming.TestCase +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.partitioner.ShufflePartitioner +import org.apache.gearpump.streaming.{Processor, StreamApplication} +import org.apache.gearpump.util.Graph +import org.apache.gearpump.util.Graph._ + +class WindowCount(conf: GearpumpConfig)(implicit sourceProvider: SourceProvider) extends BasicApplication(conf) { + override val benchName = TestCase.FIXWINDOW + + override def application(benchConfig: UserConfig): StreamApplication = { + val source = getSource() + val partitioner = new ShufflePartitioner + val parser = Processor[Parser](conf.parallelism) + val slidingWindow = Processor[SlidingWindow](conf.parallelism) + StreamApplication("windowCount", Graph(source ~ partitioner ~> parser ~> slidingWindow), benchConfig) + } +} diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/WordCount.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/WordCount.scala new file mode 100644 index 000000000..b4e3b97c5 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/application/WordCount.scala @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.gearpumpbench.application + +import com.intel.hibench.gearpumpbench.source.SourceProvider +import com.intel.hibench.gearpumpbench.task.{Parser, Sum} +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import com.intel.hibench.common.streaming.TestCase +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.partitioner.ShufflePartitioner +import org.apache.gearpump.streaming.{Processor, StreamApplication} +import org.apache.gearpump.util.Graph +import org.apache.gearpump.util.Graph._ + +class WordCount(conf: GearpumpConfig)(implicit sourceProvider: SourceProvider) extends BasicApplication(conf) { + override val benchName = TestCase.WORDCOUNT + + override def application(benchConfig: UserConfig): StreamApplication = { + val source = getSource() + val partitioner = new ShufflePartitioner + val parser = Processor[Parser](conf.parallelism) + val sum = Processor[Sum](conf.parallelism) + StreamApplication("wordCount", Graph(source ~ partitioner ~> parser ~> sum), benchConfig) + } +} diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/InMemorySourceProvider.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/InMemorySourceProvider.scala new file mode 100644 index 000000000..6f473fa5d --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/InMemorySourceProvider.scala @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench.source + +import com.intel.hibench.gearpumpbench.source.InMemorySourceProvider.InMemorySourceTask +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import org.apache.gearpump.streaming.Processor +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.streaming.task.Task +import org.apache.gearpump.streaming.task.TaskContext +import org.apache.gearpump.Message +import org.apache.gearpump.streaming.task.StartTime + +class InMemorySourceProvider extends SourceProvider { + override def getSourceProcessor(conf: GearpumpConfig): Processor[_ <: Task] = { + Processor[InMemorySourceTask](conf.parallelism) + } +} + +object InMemorySourceProvider { + + class InMemorySourceTask(taskContext: TaskContext, conf: UserConfig) extends Task(taskContext, conf) { + val TEXT_TO_SPLIT = + """ + | Licensed to the Apache Software Foundation (ASF) under one + | or more contributor license agreements. See the NOTICE file + | distributed with this work for additional information + | regarding copyright ownership. The ASF licenses this file + | to you under the Apache License, Version 2.0 (the + | "License"); you may not use this file except in compliance + | with the License. You may obtain a copy of the License at + | + | http://www.apache.org/licenses/LICENSE-2.0 + | + | Unless required by applicable law or agreed to in writing, software + | distributed under the License is distributed on an "AS IS" BASIS, + | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + | See the License for the specific language governing permissions and + | limitations under the License. + """.stripMargin + + override def onStart(startTime: StartTime): Unit = { + self ! Message("start") + } + + var times = 0 + val MAX = 1000 * 1000 + + override def onNext(msg: Message): Unit = { + if (times < MAX) { + TEXT_TO_SPLIT.lines.foreach { line => + taskContext.output(Message(line, System.currentTimeMillis())) + } + times += 1 + self ! Message("continue") + } + + } + } + +} diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/KafkaSourceProvider.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/KafkaSourceProvider.scala new file mode 100644 index 000000000..f6ff31dc3 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/KafkaSourceProvider.scala @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench.source + +import java.util.Properties + +import akka.actor.ActorSystem +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import com.twitter.bijection.Injection +import org.apache.gearpump.Message +import org.apache.gearpump.streaming.Processor +import org.apache.gearpump.streaming.kafka.KafkaSource +import org.apache.gearpump.streaming.kafka.util.KafkaConfig +import org.apache.gearpump.streaming.source.DataSourceProcessor +import org.apache.gearpump.streaming.task.Task +import org.apache.gearpump.streaming.transaction.api.MessageDecoder + +class KafkaSourceProvider(implicit actorSystem: ActorSystem) extends SourceProvider { + override def getSourceProcessor(conf: GearpumpConfig): Processor[_ <: Task] = { + getKafkaSource(conf.zkHost, conf.brokerList, conf.topic, conf.parallelism) + } + + private def getKafkaSource(zkConnect: String, bootstrapServers: String, topic: String, parallelism: Int): Processor[_ <: Task] = { + val props = new Properties + props.put(KafkaConfig.ZOOKEEPER_CONNECT_CONFIG, zkConnect) + props.put(KafkaConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers) + props.put(KafkaConfig.FETCH_SLEEP_MS_CONFIG, new Integer(1)) + props.put(KafkaConfig.MESSAGE_DECODER_CLASS_CONFIG, classOf[KeyValueDecoder]) + props.put(KafkaConfig.CONSUMER_START_OFFSET_CONFIG, new java.lang.Long(-1)) + + val kafkaSource = new KafkaSource(topic, props) + DataSourceProcessor(kafkaSource, parallelism) + } +} + +class KeyValueDecoder extends MessageDecoder { + override def fromBytes(key: Array[Byte], value: Array[Byte]): Message = { + Message(Injection.invert[String, Array[Byte]](value).get, + Injection.invert[String, Array[Byte]](key).get.toLong) + } +} diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/SourceProvider.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/SourceProvider.scala new file mode 100644 index 000000000..51b64a284 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/source/SourceProvider.scala @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench.source + +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import org.apache.gearpump.streaming.Processor +import org.apache.gearpump.streaming.task.Task + +trait SourceProvider { + def getSourceProcessor(conf: GearpumpConfig): Processor[_ <: Task] +} diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Identity.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Identity.scala new file mode 100644 index 000000000..2252bb9ef --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Identity.scala @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench.task + +import com.intel.hibench.common.streaming.metrics.KafkaReporter +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import org.apache.gearpump.Message +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.streaming.task.{Task, TaskContext} + +class Identity(taskContext: TaskContext, conf: UserConfig) extends Task(taskContext, conf) { + private val benchConfig = conf.getValue[GearpumpConfig](GearpumpConfig.BENCH_CONFIG).get + val reporter = new KafkaReporter(benchConfig.reporterTopic, benchConfig.brokerList) + + override def onNext(msg: Message): Unit = { + taskContext.output(msg) + reporter.report(msg.timestamp, System.currentTimeMillis()) + } +} diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Parser.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Parser.scala new file mode 100644 index 000000000..2490d5140 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Parser.scala @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.gearpumpbench.task + +import com.intel.hibench.common.streaming.UserVisitParser +import org.apache.gearpump.Message +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.streaming.task.{Task, TaskContext} + +class Parser(taskContext: TaskContext, conf: UserConfig) extends Task(taskContext, conf) { + + import taskContext.output + + override def onNext(msg: Message): Unit = { + val userVisit = UserVisitParser.parse(msg.msg.asInstanceOf[String]) + output(new Message(userVisit.getIp, msg.timestamp)) + } +} diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/SlidingWindow.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/SlidingWindow.scala new file mode 100644 index 000000000..8a5148520 --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/SlidingWindow.scala @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.gearpumpbench.task + +import com.intel.hibench.common.streaming.metrics.KafkaReporter +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import org.apache.gearpump.{Message, TimeStamp} +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.streaming.task.{Task, TaskContext} +import org.eclipse.collections.api.block.procedure.Procedure +import org.eclipse.collections.impl.map.mutable.UnifiedMap +import org.eclipse.collections.impl.map.sorted.mutable.TreeSortedMap + +import scala.collection.mutable.ArrayBuffer + +class SlidingWindow(taskContext: TaskContext, conf: UserConfig) extends Task(taskContext, conf) { + private val benchConfig = conf.getValue[GearpumpConfig](GearpumpConfig.BENCH_CONFIG).get + private val windowDuration = benchConfig.windowDuration + private val windowStep = benchConfig.windowSlideStep + val reporter = new KafkaReporter(benchConfig.reporterTopic, benchConfig.brokerList) + + // windowStartTime -> (ip -> (minMessageTime, count)) + private val windowCounts = new TreeSortedMap[Long, UnifiedMap[String, (TimeStamp, Long)]] + + override def onNext(message: Message): Unit = { + val ip = message.msg.asInstanceOf[String] + val msgTime = System.currentTimeMillis() + getWindows(msgTime).foreach { window => + val countsByIp = if (windowCounts.containsKey(window)) { + windowCounts.get(window) + } else { + new UnifiedMap[String, (TimeStamp, Long)] + } + val (minTime, count) = if (countsByIp.containsKey(ip)) { + countsByIp.get(ip) + } else { + (msgTime, 0L) + } + countsByIp.put(ip, (Math.min(msgTime, minTime), count + 1L)) + windowCounts.put(window, countsByIp) + } + + var hasNext = true + while (hasNext && !windowCounts.isEmpty) { + val windowStart = windowCounts.firstKey() + if (msgTime >= (windowStart + windowDuration)) { + val countsByIp = windowCounts.remove(windowStart) + countsByIp.forEachValue(new Procedure[(TimeStamp, Long)]() { + override def value(tuple: (TimeStamp, Long)): Unit = { + (1 to tuple._2.toInt).foreach(i => reporter.report(tuple._1, msgTime)) + } + }) + } else { + hasNext = false + } + } + } + + private def getWindows(timestamp: TimeStamp): List[TimeStamp] = { + val windows = ArrayBuffer.empty[TimeStamp] + var start = lastStartFor(timestamp) + windows += start + start -= windowStep + while (start >= timestamp) { + windows += start + start -= windowStep + } + windows.toList + } + + private def lastStartFor(timestamp: TimeStamp): TimeStamp = { + timestamp - (timestamp + windowStep) % windowStep + } +} + diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Sum.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Sum.scala new file mode 100644 index 000000000..94689c60d --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/task/Sum.scala @@ -0,0 +1,23 @@ +package com.intel.hibench.gearpumpbench.task + +import com.intel.hibench.common.streaming.metrics.KafkaReporter +import com.intel.hibench.gearpumpbench.util.GearpumpConfig +import org.apache.gearpump.Message +import org.apache.gearpump.cluster.UserConfig +import org.apache.gearpump.streaming.task.{Task, TaskContext} + +import scala.collection.mutable + +class Sum(taskContext: TaskContext, conf: UserConfig) extends Task(taskContext, conf) { + private val benchConfig = conf.getValue[GearpumpConfig](GearpumpConfig.BENCH_CONFIG).get + val reporter = new KafkaReporter(benchConfig.reporterTopic, benchConfig.brokerList) + private val map: mutable.HashMap[String, Long] = new mutable.HashMap[String, Long]() + + override def onNext(msg: Message): Unit = { + if (null != msg) { + val current = map.getOrElse(msg.msg.asInstanceOf[String], 0L) + map.put(msg.msg.asInstanceOf[String], current + 1) + reporter.report(msg.timestamp, System.currentTimeMillis()) + } + } +} \ No newline at end of file diff --git a/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/util/GearpumpConfig.scala b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/util/GearpumpConfig.scala new file mode 100644 index 000000000..84c6cd45d --- /dev/null +++ b/gearpumpbench/streaming/src/main/scala/com/intel/hibench/gearpumpbench/util/GearpumpConfig.scala @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.gearpumpbench.util + +case class GearpumpConfig( + benchName: String, + zkHost: String, + brokerList: String, + consumerGroup: String, + topic: String, + parallelism: Int, + prob: Double, + reporterTopic: String, + windowDuration: Long, + windowSlideStep: Long, + pattern: String = " ", + fieldIndex: Int = 0, + separator: String = "\\s+" + ) + +object GearpumpConfig { + + val BENCH_CONFIG = "gearpump.bench.config" + val BENCH_LATENCY_REPORTER = "gearpump.bench.latency.reporter" +} diff --git a/hadoopbench/.gitignore b/hadoopbench/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/hadoopbench/mahout/pom.xml b/hadoopbench/mahout/pom.xml new file mode 100644 index 000000000..0342ae51e --- /dev/null +++ b/hadoopbench/mahout/pom.xml @@ -0,0 +1,57 @@ + + 4.0.0 + + + com.intel.hibench + hadoopbench + 6.0-SNAPSHOT + + + com.intel.hibench.hadoopbench + mahout + jar + + + http://archive.apache.org + dist/mahout/0.11.0/apache-mahout-distribution-0.11.0.tar.gz + 32bb8d9429671c651ff8233676739f1f + http://archive.cloudera.com + cdh5/cdh/5/mahout-0.9-cdh5.1.0.tar.gz + aa953e0353ac104a22d314d15c88d78f + + + + + + com.googlecode.maven-download-plugin + download-maven-plugin + ${download-maven-plugin.version} + + + process-sources + + wget + + + ${repo1}/${file1} + ${checksum1} + + + + extra-download-execution + process-sources + + wget + + + ${repo2}/${file2} + ${checksum2} + + + + + + + diff --git a/src/nutchindexing/nutch/bin/nutch b/hadoopbench/nutchindexing/nutch/bin/nutch similarity index 100% rename from src/nutchindexing/nutch/bin/nutch rename to hadoopbench/nutchindexing/nutch/bin/nutch diff --git a/src/nutchindexing/nutch/conf/nutch-site-mr2.xml b/hadoopbench/nutchindexing/nutch/conf/nutch-site.xml similarity index 100% rename from src/nutchindexing/nutch/conf/nutch-site-mr2.xml rename to hadoopbench/nutchindexing/nutch/conf/nutch-site.xml diff --git a/src/nutchindexing/pom.xml b/hadoopbench/nutchindexing/pom.xml similarity index 92% rename from src/nutchindexing/pom.xml rename to hadoopbench/nutchindexing/pom.xml index 3a3a9f270..49144afd2 100644 --- a/src/nutchindexing/pom.xml +++ b/hadoopbench/nutchindexing/pom.xml @@ -4,13 +4,13 @@ com.intel.hibench - hibench - 5.0-SNAPSHOT + hadoopbench + 6.0-SNAPSHOT - com.intel.hibench + com.intel.hibench.hadoopbench nutchindexing - 5.0-SNAPSHOT + 6.0-SNAPSHOT jar diff --git a/hadoopbench/pegasus/pom.xml b/hadoopbench/pegasus/pom.xml new file mode 100644 index 000000000..63f57c908 --- /dev/null +++ b/hadoopbench/pegasus/pom.xml @@ -0,0 +1,27 @@ + + 4.0.0 + + + com.intel.hibench + hadoopbench + 6.0-SNAPSHOT + + + com.intel.hibench.hadoopbench + pegasus + jar + + 2.0-SNAPSHOT + PEGASUS: A Peta-Scale Graph Mining System + http://www.cs.cmu.edu/~pegasus/index.htm + + + + org.apache.hadoop + hadoop-core + ${hadoop.mr1.version} + + + diff --git a/src/pegasus/src/main/java/pegasus/column_joiner/JoinTablePegasus.java b/hadoopbench/pegasus/src/main/java/pegasus/column_joiner/JoinTablePegasus.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/column_joiner/JoinTablePegasus.java rename to hadoopbench/pegasus/src/main/java/pegasus/column_joiner/JoinTablePegasus.java diff --git a/src/pegasus/src/main/java/pegasus/con_cmpth/ConCmpt.java b/hadoopbench/pegasus/src/main/java/pegasus/con_cmpth/ConCmpt.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/con_cmpth/ConCmpt.java rename to hadoopbench/pegasus/src/main/java/pegasus/con_cmpth/ConCmpt.java diff --git a/src/pegasus/src/main/java/pegasus/con_cmpth/ConCmptBlock.java b/hadoopbench/pegasus/src/main/java/pegasus/con_cmpth/ConCmptBlock.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/con_cmpth/ConCmptBlock.java rename to hadoopbench/pegasus/src/main/java/pegasus/con_cmpth/ConCmptBlock.java diff --git a/src/pegasus/src/main/java/pegasus/con_cmpth/ConCmptIVGen.java b/hadoopbench/pegasus/src/main/java/pegasus/con_cmpth/ConCmptIVGen.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/con_cmpth/ConCmptIVGen.java rename to hadoopbench/pegasus/src/main/java/pegasus/con_cmpth/ConCmptIVGen.java diff --git a/src/pegasus/src/main/java/pegasus/degdist/DegDist.java b/hadoopbench/pegasus/src/main/java/pegasus/degdist/DegDist.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/degdist/DegDist.java rename to hadoopbench/pegasus/src/main/java/pegasus/degdist/DegDist.java diff --git a/src/pegasus/src/main/java/pegasus/hadi/Hadi.java b/hadoopbench/pegasus/src/main/java/pegasus/hadi/Hadi.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/hadi/Hadi.java rename to hadoopbench/pegasus/src/main/java/pegasus/hadi/Hadi.java diff --git a/src/pegasus/src/main/java/pegasus/hadi/HadiBlock.java b/hadoopbench/pegasus/src/main/java/pegasus/hadi/HadiBlock.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/hadi/HadiBlock.java rename to hadoopbench/pegasus/src/main/java/pegasus/hadi/HadiBlock.java diff --git a/src/pegasus/src/main/java/pegasus/hadi/HadiIVGen.java b/hadoopbench/pegasus/src/main/java/pegasus/hadi/HadiIVGen.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/hadi/HadiIVGen.java rename to hadoopbench/pegasus/src/main/java/pegasus/hadi/HadiIVGen.java diff --git a/src/pegasus/src/main/java/pegasus/heigen/L1norm.java b/hadoopbench/pegasus/src/main/java/pegasus/heigen/L1norm.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/heigen/L1norm.java rename to hadoopbench/pegasus/src/main/java/pegasus/heigen/L1norm.java diff --git a/src/pegasus/src/main/java/pegasus/heigen/L1normBlock.java b/hadoopbench/pegasus/src/main/java/pegasus/heigen/L1normBlock.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/heigen/L1normBlock.java rename to hadoopbench/pegasus/src/main/java/pegasus/heigen/L1normBlock.java diff --git a/src/pegasus/src/main/java/pegasus/heigen/NormalizeVector.java b/hadoopbench/pegasus/src/main/java/pegasus/heigen/NormalizeVector.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/heigen/NormalizeVector.java rename to hadoopbench/pegasus/src/main/java/pegasus/heigen/NormalizeVector.java diff --git a/src/pegasus/src/main/java/pegasus/heigen/Saxpy.java b/hadoopbench/pegasus/src/main/java/pegasus/heigen/Saxpy.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/heigen/Saxpy.java rename to hadoopbench/pegasus/src/main/java/pegasus/heigen/Saxpy.java diff --git a/src/pegasus/src/main/java/pegasus/heigen/SaxpyBlock.java b/hadoopbench/pegasus/src/main/java/pegasus/heigen/SaxpyBlock.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/heigen/SaxpyBlock.java rename to hadoopbench/pegasus/src/main/java/pegasus/heigen/SaxpyBlock.java diff --git a/src/pegasus/src/main/java/pegasus/heigen/SaxpyTextoutput.java b/hadoopbench/pegasus/src/main/java/pegasus/heigen/SaxpyTextoutput.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/heigen/SaxpyTextoutput.java rename to hadoopbench/pegasus/src/main/java/pegasus/heigen/SaxpyTextoutput.java diff --git a/src/pegasus/src/main/java/pegasus/heigen/ScalarMult.java b/hadoopbench/pegasus/src/main/java/pegasus/heigen/ScalarMult.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/heigen/ScalarMult.java rename to hadoopbench/pegasus/src/main/java/pegasus/heigen/ScalarMult.java diff --git a/src/pegasus/src/main/java/pegasus/matvec/MatvecNaive.java b/hadoopbench/pegasus/src/main/java/pegasus/matvec/MatvecNaive.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/matvec/MatvecNaive.java rename to hadoopbench/pegasus/src/main/java/pegasus/matvec/MatvecNaive.java diff --git a/src/pegasus/src/main/java/pegasus/matvec/MatvecPrep.java b/hadoopbench/pegasus/src/main/java/pegasus/matvec/MatvecPrep.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/matvec/MatvecPrep.java rename to hadoopbench/pegasus/src/main/java/pegasus/matvec/MatvecPrep.java diff --git a/src/pegasus/src/main/java/pegasus/matvec/MatvecUtils.java b/hadoopbench/pegasus/src/main/java/pegasus/matvec/MatvecUtils.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/matvec/MatvecUtils.java rename to hadoopbench/pegasus/src/main/java/pegasus/matvec/MatvecUtils.java diff --git a/src/pegasus/src/main/java/pegasus/pagerank/PagerankBlock.java b/hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankBlock.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/pagerank/PagerankBlock.java rename to hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankBlock.java diff --git a/src/pegasus/src/main/java/pegasus/pagerank/PagerankInitVector.java b/hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankInitVector.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/pagerank/PagerankInitVector.java rename to hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankInitVector.java diff --git a/src/pegasus/src/main/java/pegasus/pagerank/PagerankNaive.java b/hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankNaive.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/pagerank/PagerankNaive.java rename to hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankNaive.java diff --git a/src/pegasus/src/main/java/pegasus/pagerank/PagerankPrep.java b/hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankPrep.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/pagerank/PagerankPrep.java rename to hadoopbench/pegasus/src/main/java/pegasus/pagerank/PagerankPrep.java diff --git a/src/pegasus/src/main/java/pegasus/pegasus/GIMV.java b/hadoopbench/pegasus/src/main/java/pegasus/pegasus/GIMV.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/pegasus/GIMV.java rename to hadoopbench/pegasus/src/main/java/pegasus/pegasus/GIMV.java diff --git a/src/pegasus/src/main/java/pegasus/pegasus/PegasusUtils.java b/hadoopbench/pegasus/src/main/java/pegasus/pegasus/PegasusUtils.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/pegasus/PegasusUtils.java rename to hadoopbench/pegasus/src/main/java/pegasus/pegasus/PegasusUtils.java diff --git a/src/pegasus/src/main/java/pegasus/rwr/RWRBlock.java b/hadoopbench/pegasus/src/main/java/pegasus/rwr/RWRBlock.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/rwr/RWRBlock.java rename to hadoopbench/pegasus/src/main/java/pegasus/rwr/RWRBlock.java diff --git a/src/pegasus/src/main/java/pegasus/rwr/RWRNaive.java b/hadoopbench/pegasus/src/main/java/pegasus/rwr/RWRNaive.java similarity index 100% rename from src/pegasus/src/main/java/pegasus/rwr/RWRNaive.java rename to hadoopbench/pegasus/src/main/java/pegasus/rwr/RWRNaive.java diff --git a/hadoopbench/pom.xml b/hadoopbench/pom.xml new file mode 100644 index 000000000..9bb1988ac --- /dev/null +++ b/hadoopbench/pom.xml @@ -0,0 +1,68 @@ + + 4.0.0 + + + com.intel.hibench + hibench + 6.0-SNAPSHOT + + + com.intel.hibench + hadoopbench + pom + 6.0-SNAPSHOT + hadoopbench + + + + micro + + + + + + graph + + + + + + ml + + mahout + + + + + websearch + + pegasus + nutchindexing + + + + + sql + + sql + + + + + allModules + + sql + mahout + pegasus + nutchindexing + + + + !modules + + + + + diff --git a/src/hivebench/hive_template/bin/hive b/hadoopbench/sql/hive_template/bin/hive similarity index 100% rename from src/hivebench/hive_template/bin/hive rename to hadoopbench/sql/hive_template/bin/hive diff --git a/src/hivebench/hive_template/conf/hive-site.xml b/hadoopbench/sql/hive_template/conf/hive-site.xml similarity index 100% rename from src/hivebench/hive_template/conf/hive-site.xml rename to hadoopbench/sql/hive_template/conf/hive-site.xml diff --git a/hadoopbench/sql/pom.xml b/hadoopbench/sql/pom.xml new file mode 100644 index 000000000..a0394b685 --- /dev/null +++ b/hadoopbench/sql/pom.xml @@ -0,0 +1,43 @@ + + 4.0.0 + + + com.intel.hibench + hadoopbench + 6.0-SNAPSHOT + + + com.intel.hibench.hadoopbench + hadoopbench-sql + 6.0-SNAPSHOT + jar + hadoopbench-sql + + + http://archive.apache.org + dist/hive/hive-0.12.0/hive-0.12.0-bin.tar.gz + + + + + + com.googlecode.maven-download-plugin + download-maven-plugin + ${download-maven-plugin.version} + + + process-sources + + wget + + + ${repo}/${file} + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..77d151306 --- /dev/null +++ b/pom.xml @@ -0,0 +1,167 @@ + + 4.0.0 + + com.intel.hibench + hibench + 6.0-SNAPSHOT + pom + hibench + http://maven.apache.org + + + 1.6 + 1.6 + UTF-8 + 2.10.4 + 2.10 + 1.7.5 + 1.2.17 + 3.2.0 + 0.9 + 1.2.2a + 3.8.1 + 1.6.0 + 1.6 + 2.4.0 + 1.2.1 + 3.2.0 + 3.2 + 2.5.3 + 2.3.2 + 1.9.1 + 1.2.0 + 8.1.14.v20131031 + 2.2.1 + 1.11.3 + 6.5.15 + + + + + junit + junit + ${junit.version} + test + + + log4j + log4j + ${log4j.version} + compile + + + + + + central + + Maven Repository + https://repo1.maven.org/maven2 + + true + + + false + + + + apache-repo + Apache Repository + https://repository.apache.org/content/repositories/releases + + true + + + false + + + + scala-tools.org + Scala-tools Maven 2 Repository + https://oss.sonatype.org/content/groups/scala-tools/ + + + + + scala-tools.org + Scala-tools Maven2 Repository + https://oss.sonatype.org/content/groups/scala-tools/ + + + + + + + + net.alchim31.maven + scala-maven-plugin + ${scala-maven-plugin.version} + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + + + + common + autogen + + + + + sparkbench + + sparkbench + + + + + flinkbench + + flinkbench + + + + + gearpumpbench + + gearpumpbench + + + + + hadoopbench + + hadoopbench + + + + + stormbench + + stormbench + + + + + defaultbench + + sparkbench + flinkbench + gearpumpbench + hadoopbench + stormbench + + + true + + + + + diff --git a/sparkbench/assembly/pom.xml b/sparkbench/assembly/pom.xml new file mode 100644 index 000000000..1a53518fd --- /dev/null +++ b/sparkbench/assembly/pom.xml @@ -0,0 +1,156 @@ + + + 4.0.0 + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-assembly + pom + sparkbench project assembly + + + + com.intel.hibench.sparkbench + sparkbench-common + ${project.version} + + + + + + + maven-assembly-plugin + ${maven-assembly-plugin.version} + + + dist + package + + single + + + + src/main/assembly/assembly.xml + + + + + + + + + + + micro + + + com.intel.hibench.sparkbench + sparkbench-micro + ${project.version} + + + + + + ml + + + com.intel.hibench.sparkbench + sparkbench-ml + ${project.version} + + + + + + websearch + + + com.intel.hibench.sparkbench + sparkbench-websearch + ${project.version} + + + + + + graph + + + com.intel.hibench.sparkbench + sparkbench-graph + ${project.version} + + + + + + sql + + + com.intel.hibench.sparkbench + sparkbench-sql + ${project.version} + + + + + + streaming + + + com.intel.hibench.sparkbench + sparkbench-streaming + ${project.version} + + + + + + allModules + + + com.intel.hibench.sparkbench + sparkbench-micro + ${project.version} + + + com.intel.hibench.sparkbench + sparkbench-ml + ${project.version} + + + com.intel.hibench.sparkbench + sparkbench-websearch + ${project.version} + + + com.intel.hibench.sparkbench + sparkbench-graph + ${project.version} + + + com.intel.hibench.sparkbench + sparkbench-sql + ${project.version} + + + com.intel.hibench.sparkbench + sparkbench-streaming + ${project.version} + + + + + !modules + + + + + diff --git a/sparkbench/assembly/src/main/assembly/assembly.xml b/sparkbench/assembly/src/main/assembly/assembly.xml new file mode 100644 index 000000000..9a0126578 --- /dev/null +++ b/sparkbench/assembly/src/main/assembly/assembly.xml @@ -0,0 +1,15 @@ + + dist + + jar + + false + + + + false + true + true + + + diff --git a/sparkbench/common/pom.xml b/sparkbench/common/pom.xml new file mode 100644 index 000000000..45ede60cc --- /dev/null +++ b/sparkbench/common/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-common + jar + sparkbench-common + + + + org.apache.spark + spark-core_${scala.binary.version} + ${spark.version} + provided + + + org.apache.hadoop + hadoop-common + ${hadoop.mr2.version} + + + diff --git a/sparkbench/common/src/main/scala/com/intel/hibench/sparkbench/common/IOCommon.scala b/sparkbench/common/src/main/scala/com/intel/hibench/sparkbench/common/IOCommon.scala new file mode 100644 index 000000000..74a8d8a33 --- /dev/null +++ b/sparkbench/common/src/main/scala/com/intel/hibench/sparkbench/common/IOCommon.scala @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.common + +import java.io.{File, FileInputStream, IOException, InputStreamReader} +import java.util.Properties + +import org.apache.hadoop.io.compress.CompressionCodec +import org.apache.hadoop.io.{NullWritable, Text} +import org.apache.hadoop.mapred.SequenceFileOutputFormat +import org.apache.spark.rdd.RDD +import org.apache.spark.{SparkContext, SparkException} + +import scala.collection.JavaConversions._ +import scala.collection.mutable.HashMap +import scala.reflect.ClassTag +import scala.reflect.runtime.universe.TypeTag + +class IOCommon(val sc:SparkContext) { + def load[T:ClassTag:TypeTag](filename:String, force_format:Option[String]=None) = { + val input_format = force_format.getOrElse( + IOCommon.getProperty("sparkbench.inputformat").getOrElse("Text")) + + input_format match { + case "Text" => + sc.textFile(filename) + + case "Sequence" => + sc.sequenceFile[NullWritable, Text](filename).map(_._2.toString) + + case _ => throw new UnsupportedOperationException(s"Unknown inpout format: $input_format") + } + } + + def save(filename:String, data:RDD[_], prefix:String) = { + val output_format = IOCommon.getProperty(prefix).getOrElse("Text") + val output_format_codec = + loadClassByName[CompressionCodec](IOCommon.getProperty(prefix + ".codec")) + + output_format match { + case "Text" => + if (output_format_codec.isEmpty) data.saveAsTextFile(filename) + else data.saveAsTextFile(filename, output_format_codec.get) + + case "Sequence" => + val sequence_data = data.map(x => (NullWritable.get(), new Text(x.toString))) + if (output_format_codec.isEmpty) { + sequence_data.saveAsHadoopFile[SequenceFileOutputFormat[NullWritable, Text]](filename) + } else { + sequence_data.saveAsHadoopFile[SequenceFileOutputFormat[NullWritable, Text]](filename, + output_format_codec.get) + } + + case _ => throw new UnsupportedOperationException(s"Unknown output format: $output_format") + } + } + + def save(filename:String, data:RDD[_]):Unit = save(filename, data, "sparkbench.outputformat") + + private def loadClassByName[T](name:Option[String]) = { + if (!name.isEmpty) Some(Class.forName(name.get) + .newInstance.asInstanceOf[T].getClass) else None + } + + private def callMethod[T, R](obj:T, method_name:String) = + obj.getClass.getMethod(method_name).invoke(obj).asInstanceOf[R] + } + +object IOCommon { + private val sparkbench_conf: HashMap[String, String] = + getPropertiesFromFile(System.getenv("SPARKBENCH_PROPERTIES_FILES")) + + def getPropertiesFromFile(filenames: String): HashMap[String, String] = { + val result = new HashMap[String, String] + filenames.split(',').filter(_.stripMargin.length > 0).foreach { filename => + val file = new File(filename) + require(file.exists, s"Properties file $file does not exist") + require(file.isFile, s"Properties file $file is not a normal file") + + val inReader = new InputStreamReader(new FileInputStream(file), "UTF-8") + try { + val properties = new Properties() + properties.load(inReader) + result ++= properties.stringPropertyNames() + .map(k => (k, properties(k).trim)).toMap + } catch { + case e: IOException => + val message = s"Failed when loading Sparkbench properties file $file" + throw new SparkException(message, e) + } finally { + inReader.close() + } + } + result.filter{case (key, value) => value.toLowerCase != "none"} + } + + def getProperty(key:String):Option[String] = sparkbench_conf.get(key) + + def dumpProperties(): Unit = sparkbench_conf + .foreach{case (key, value)=> println(s"$key\t\t$value")} + } diff --git a/src/sparkbench/src/main/scala/org/apache/spark/BaseRangePartitioner.scala b/sparkbench/common/src/main/scala/org/apache/spark/BaseRangePartitioner.scala similarity index 98% rename from src/sparkbench/src/main/scala/org/apache/spark/BaseRangePartitioner.scala rename to sparkbench/common/src/main/scala/org/apache/spark/BaseRangePartitioner.scala index 879db33f3..c9bc3523f 100644 --- a/src/sparkbench/src/main/scala/org/apache/spark/BaseRangePartitioner.scala +++ b/sparkbench/common/src/main/scala/org/apache/spark/BaseRangePartitioner.scala @@ -33,8 +33,8 @@ import scala.util.hashing._ */ class BaseRangePartitioner [K : Ordering : ClassTag, V] - (@transient partitions: Int, - @transient rdd: RDD[_ <: Product2[K,V]], + (@transient private val partitions: Int, + @transient private val rdd: RDD[_ <: Product2[K,V]], private var ascending: Boolean = true) extends Partitioner { // Adopted from scala's RangePartitioner diff --git a/src/sparkbench/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scala b/sparkbench/common/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scala similarity index 98% rename from src/sparkbench/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scala rename to sparkbench/common/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scala index e7476d3b6..a6dd9f98f 100644 --- a/src/sparkbench/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scala +++ b/sparkbench/common/src/main/scala/org/apache/spark/ConfigurableOrderedRDDFunctions.scala @@ -31,7 +31,7 @@ import scala.reflect.ClassTag class ConfigurableOrderedRDDFunctions[K : Ordering : ClassTag, V: ClassTag, P <: Product2[K, V] : ClassTag] - (self: RDD[P]) extends Logging with Serializable { + (self: RDD[P]) extends Serializable { private val ordering = implicitly[Ordering[K]] def sortByKeyWithPartitioner(partitioner: Partitioner, diff --git a/sparkbench/graph/.gitignore b/sparkbench/graph/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/sparkbench/graph/pom.xml b/sparkbench/graph/pom.xml new file mode 100644 index 000000000..0b6fef1f6 --- /dev/null +++ b/sparkbench/graph/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-graph + jar + 6.0-SNAPSHOT + sparkbench-graph + + + + com.intel.hibench.sparkbench + sparkbench-common + ${project.version} + + + org.apache.spark + spark-core_${scala.binary.version} + ${spark.version} + provided + + + org.apache.spark + spark-mllib_${scala.binary.version} + ${spark.version} + provided + + + org.apache.spark + spark-graphx_${scala.binary.version} + ${spark.version} + provided + + + it.unimi.dsi + fastutil + ${fastutil.version} + + + diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/model/user-features b/sparkbench/graph/src/main/resources/nweight-user-features similarity index 100% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/model/user-features rename to sparkbench/graph/src/main/resources/nweight-user-features diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/Driver.scala b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/Driver.scala similarity index 73% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/Driver.scala rename to sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/Driver.scala index d3c1543f1..d87e00aae 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/Driver.scala +++ b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/Driver.scala @@ -1,14 +1,25 @@ -package com.intel.sparkbench.nweight +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.graph.nweight import org.apache.spark.{SparkContext, SparkConf} -import org.apache.spark.SparkContext._ -import org.apache.spark.rdd.RDD import org.apache.spark.storage.StorageLevel -import org.apache.spark.scheduler.{JobLogger, StatsReportListener} - -import com.esotericsoftware.kryo.{Kryo, Serializer => KSerializer} -import com.esotericsoftware.kryo.io.{Input => KryoInput, Output => KryoOutput} -import com.esotericsoftware.kryo.serializers.{JavaSerializer => KryoJavaSerializer} +import org.apache.spark.scheduler.StatsReportListener /** * Compute NWeight for Graph G(V, E) as defined below @@ -63,8 +74,7 @@ object NWeight extends Serializable{ else sparkConf.setAppName("NWeightPregel") val sc = new SparkContext(sparkConf) - - sc.addSparkListener(new JobLogger) + sc.addSparkListener(new StatsReportListener) if (model.toLowerCase == "graphx") { diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/GraphxNWeight.scala b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/GraphxNWeight.scala similarity index 69% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/GraphxNWeight.scala rename to sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/GraphxNWeight.scala index 5c6969431..0fe40b7be 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/GraphxNWeight.scala +++ b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/GraphxNWeight.scala @@ -1,8 +1,24 @@ -package com.intel.sparkbench.nweight +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.graph.nweight import scala.collection.JavaConversions._ import org.apache.spark.SparkContext -import org.apache.spark.SparkContext._ import org.apache.spark.rdd.RDD import org.apache.spark.HashPartitioner import org.apache.spark.storage.StorageLevel @@ -19,15 +35,15 @@ import it.unimi.dsi.fastutil.longs.Long2DoubleOpenHashMap object GraphxNWeight extends Serializable{ - def mapF(edge: EdgeTriplet[SizedPriorityQueue, Double]) = { - val m = new Long2DoubleOpenHashMap() - val w1 = edge.attr + def mapF(edge: EdgeContext[SizedPriorityQueue, Double, Long2DoubleOpenHashMap]) = { + val theMap = new Long2DoubleOpenHashMap() + val edgeAttribute = edge.attr val id = edge.srcId edge.dstAttr.foreach{ case (target, wn) => if (target != id) - m.put(target, wn*w1) + theMap.put(target, wn * edgeAttribute) } - Iterator((id, m)) + Iterator((id, theMap)) } def reduceF(c1: Long2DoubleOpenHashMap, c2: Long2DoubleOpenHashMap) = { @@ -37,7 +53,7 @@ object GraphxNWeight extends Serializable{ c1 } - def updateF (id: VertexId, vdata: SizedPriorityQueue, msg: Option[Long2DoubleOpenHashMap]) = { + def updateF(id: VertexId, vdata: SizedPriorityQueue, msg: Option[Long2DoubleOpenHashMap]) = { vdata.clear() val weightMap = msg.orNull if (weightMap != null) { @@ -78,7 +94,7 @@ object GraphxNWeight extends Serializable{ var msg: RDD[(VertexId, Long2DoubleOpenHashMap)] = null for (i <- 2 to step) { - msg = g.mapReduceTriplets(mapF _, reduceF _, Some(g.vertices , EdgeDirection.In)) + msg = g.aggregateMessages(mapF _, reduceF _, TripletFields.Src) g = g.outerJoinVertices(msg)(updateF _).persist(storageLevel) } @@ -96,4 +112,3 @@ object GraphxNWeight extends Serializable{ }.saveAsTextFile(output) } } - diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/datagen/NWeightDataGenerator.scala b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/NWeightDataGenerator.scala similarity index 80% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/datagen/NWeightDataGenerator.scala rename to sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/NWeightDataGenerator.scala index d67f895ad..7ee02446a 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/datagen/NWeightDataGenerator.scala +++ b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/NWeightDataGenerator.scala @@ -1,11 +1,26 @@ -package com.intel.sparkbench.nweight.datagen +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.graph.nweight import java.io._ -import com.intel.sparkbench.IOCommon - +import com.intel.hibench.sparkbench.common.IOCommon import org.apache.spark.HashPartitioner -import org.apache.hadoop.fs.{FileSystem, Path} import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.mllib.recommendation.{MatrixFactorizationModel, Rating} import org.apache.spark.rdd.RDD diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/PregelNWeight.scala b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/PregelNWeight.scala similarity index 65% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/PregelNWeight.scala rename to sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/PregelNWeight.scala index cff2d21fe..9fbf20752 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/PregelNWeight.scala +++ b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/PregelNWeight.scala @@ -1,19 +1,39 @@ -package com.intel.sparkbench.nweight +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.graph.nweight import scala.collection.JavaConversions._ import org.apache.spark.SparkContext -import org.apache.spark.SparkContext._ -import org.apache.spark.rdd.RDD import org.apache.spark.HashPartitioner import org.apache.spark.storage.StorageLevel import org.apache.spark.graphx._ import org.apache.spark.graphx.impl.GraphImpl import it.unimi.dsi.fastutil.longs.Long2DoubleOpenHashMap -/** * Compute NWeight for Graph G(V, E) as defined below * Weight(1)(u, v) = edge(u, v) - * Weight(n)(u, v) = Sum (over {x|there are edges (u, x) and (x, v)}) Weight(n-1)(u, x)*Weight(1)(x, v) +/** + * Compute NWeight for Graph G(V, E) as defined below. + * + * Weight(1)(u, v) = edge(u, v) + * Weight(n)(u, v) = + * Sum (over {x|there are edges (u, x) and (x, v)}) Weight(n-1)(u, x) * Weight(1)(x, v) * - * Input is given in Text file format. Each line represents a Node and all out edges of that node (edge weight specified) + * Input is given in Text file format. Each line represents a Node and all out edges of that node + * (edge weight specified) * :, : ...) */ @@ -33,7 +53,8 @@ object PregelNWeight extends Serializable{ def mergMsg(c1: Long2DoubleOpenHashMap, c2: Long2DoubleOpenHashMap) = { c2.long2DoubleEntrySet() .fastIterator() - .foreach(pair => c1.put(pair.getLongKey(), c1.get(pair.getLongKey()) + pair.getDoubleValue())) + .foreach(pair => + c1.put(pair.getLongKey(), c1.get(pair.getLongKey()) + pair.getDoubleValue())) c1 } @@ -70,7 +91,8 @@ object PregelNWeight extends Serializable{ var g = GraphImpl(edges, new SizedPriorityQueue(maxDegree), storageLevel, storageLevel).cache() - g = Pregel(g, new Long2DoubleOpenHashMap, step, EdgeDirection.In)(vProg _, sendMsg _, mergMsg _) + g = Pregel(g, new Long2DoubleOpenHashMap, step, EdgeDirection.In)( + vProg _, sendMsg _, mergMsg _) g.vertices.map { case (vid, vdata) => var s = new StringBuilder diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/Utils.scala b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/Utils.scala similarity index 53% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/Utils.scala rename to sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/Utils.scala index 6b5dc878b..1a6ffd39a 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/nweight/Utils.scala +++ b/sparkbench/graph/src/main/scala/com/intel/hibench/sparkbench/graph/nweight/Utils.scala @@ -1,4 +1,21 @@ -package com.intel.sparkbench.nweight +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.graph.nweight import it.unimi.dsi.fastutil.objects.ObjectHeaps @@ -6,7 +23,19 @@ class SizedPriorityQueue( val capacity:Int) extends Traversable[(Long, Double)] with Serializable { protected val buf = new Array[(Long, Double)](capacity) protected val comparator = new java.util.Comparator[(Long, Double)] with Serializable { - override def compare(m1: (Long, Double), m2: (Long, Double)) = if (m1._2 < m2._2) -1 else (if (m1._2 > m2._2) 1 else (if (m1._1 < m2._1) -1 else (if (m1._1 > m2._1) 1 else 0))) + override def compare(m1: (Long, Double), m2: (Long, Double)) : Int = { + if (m1._2 < m2._2) { + -1 + } else if (m1._2 > m2._2) { + 1 + } else if (m1._1 < m2._1) { + -1 + } else if (m1._1 > m2._1) { + 1 + } else { + 0 + } + } } protected var size_ = 0 @@ -18,7 +47,6 @@ class SizedPriorityQueue( } def fullySorted(): Array[(Long, Double)] = { - import scala.collection.JavaConversions._ val slicedBuf = buf.slice(0, size_ - 1) java.util.Arrays.sort(slicedBuf, comparator) slicedBuf diff --git a/sparkbench/micro/pom.xml b/sparkbench/micro/pom.xml new file mode 100644 index 000000000..c3ebfacbe --- /dev/null +++ b/sparkbench/micro/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-micro + jar + sparkbench micro benchmark + + + + com.intel.hibench.sparkbench + sparkbench-common + ${project.version} + + + org.apache.spark + spark-core_${scala.binary.version} + ${spark.version} + provided + + + org.apache.hadoop + hadoop-mapreduce-examples + ${hadoop.mr2.version} + + + org.apache.hadoop + hadoop-client + ${hadoop.mr2.version} + + + org.apache.hadoop + hadoop-hdfs + + + + + diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSleep.scala b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaSleep.scala similarity index 97% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSleep.scala rename to sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaSleep.scala index 4417765e2..d079a3ef1 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSleep.scala +++ b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaSleep.scala @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.intel.sparkbench.sleep +package com.intel.hibench.sparkbench.micro import org.apache.spark.{SparkConf, SparkContext} diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSort.scala b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaSort.scala similarity index 93% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSort.scala rename to sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaSort.scala index 8de86ad39..36ef945df 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSort.scala +++ b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaSort.scala @@ -15,11 +15,12 @@ * limitations under the License. */ -package com.intel.sparkbench.sort +package com.intel.hibench.sparkbench.micro + +import com.intel.hibench.sparkbench.common.IOCommon -import com.intel.sparkbench.IOCommon import org.apache.spark._ -import org.apache.spark.rdd._ +import org.apache.spark.rdd.RDD import scala.reflect.ClassTag diff --git a/src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR2/ScalaTeraSort.scala b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaTeraSort.scala similarity index 88% rename from src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR2/ScalaTeraSort.scala rename to sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaTeraSort.scala index 8b1c010bd..fee8f242f 100644 --- a/src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR2/ScalaTeraSort.scala +++ b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaTeraSort.scala @@ -15,14 +15,14 @@ * limitations under the License. */ -package com.intel.sparkbench.terasort +package com.intel.hibench.sparkbench.micro -import com.intel.sparkbench.IOCommon -import org.apache.hadoop.examples.terasort.{TeraInputFormat,TeraOutputFormat} +import com.intel.hibench.sparkbench.common.IOCommon +import org.apache.hadoop.examples.terasort.{TeraInputFormat, TeraOutputFormat} import org.apache.hadoop.io.Text +import org.apache.hadoop.io.BytesWritable import org.apache.spark._ import org.apache.spark.rdd._ -import org.apache.spark.SparkContext._ import scala.reflect.ClassTag @@ -30,7 +30,10 @@ object ScalaTeraSort { implicit def rddToSampledOrderedRDDFunctions[K: Ordering : ClassTag, V: ClassTag] (rdd: RDD[(K, V)]) = new ConfigurableOrderedRDDFunctions[K, V, (K, V)](rdd) - implicit def ArrayByteOrdering: Ordering[Array[Byte]] = Ordering.fromLessThan{case (a, b)=> a.compareTo(b)<0} + implicit def ArrayByteOrdering: Ordering[Array[Byte]] = Ordering.fromLessThan { + case (a, b) => (new BytesWritable(a).compareTo(new BytesWritable(b))) < 0 + } + def main(args: Array[String]) { if (args.length != 2) { System.err.println( @@ -57,7 +60,6 @@ object ScalaTeraSort { sorted_data.saveAsNewAPIHadoopFile[TeraOutputFormat](args(1)) //io.save(args(1), sorted_data) - sc.stop() } } diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaWordCount.scala b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaWordCount.scala similarity index 92% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaWordCount.scala rename to sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaWordCount.scala index 198f15b3c..f55a5b61b 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaWordCount.scala +++ b/sparkbench/micro/src/main/scala/com/intel/sparkbench/micro/ScalaWordCount.scala @@ -15,11 +15,10 @@ * limitations under the License. */ -package com.intel.sparkbench.wordcount +package com.intel.hibench.sparkbench.micro -import com.intel.sparkbench.IOCommon +import com.intel.hibench.sparkbench.common.IOCommon import org.apache.spark.{SparkConf, SparkContext} -import org.apache.spark.SparkContext._ /* * Adopted from spark's example: https://spark.apache.org/examples.html diff --git a/sparkbench/ml/pom.xml b/sparkbench/ml/pom.xml new file mode 100644 index 000000000..c20495d5d --- /dev/null +++ b/sparkbench/ml/pom.xml @@ -0,0 +1,57 @@ + + 4.0.0 + + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-ml + jar + sparkbench machine learning benchmark + + + + com.intel.hibench.sparkbench + sparkbench-common + ${project.version} + + + org.apache.spark + spark-core_${scala.binary.version} + ${spark.version} + provided + + + org.apache.spark + spark-mllib_${scala.binary.version} + ${spark.version} + provided + + + com.github.scopt + scopt_2.10 + ${scopt.version} + + + org.apache.mahout + mahout-core + ${mahout.version} + + + org.apache.hadoop + hadoop-core + + + + + org.apache.mahout + mahout-math + ${mahout.version} + + + diff --git a/src/sparkbench/src/main/scala/org/apache/spark/examples/mllib/DenseKMeans.scala b/sparkbench/ml/src/main/scala/com/intel/sparkbench/ml/DenseKMeans.scala similarity index 94% rename from src/sparkbench/src/main/scala/org/apache/spark/examples/mllib/DenseKMeans.scala rename to sparkbench/ml/src/main/scala/com/intel/sparkbench/ml/DenseKMeans.scala index 99af61359..9b69f1b13 100644 --- a/src/sparkbench/src/main/scala/org/apache/spark/examples/mllib/DenseKMeans.scala +++ b/sparkbench/ml/src/main/scala/com/intel/sparkbench/ml/DenseKMeans.scala @@ -15,11 +15,7 @@ * limitations under the License. */ -/* - * Copied from org.apache.spark.examples.mllib.DenseKMeans - */ - -package org.apache.spark.examples.mllib +package com.intel.hibench.sparkbench.ml import org.apache.hadoop.io.LongWritable import org.apache.log4j.{Level, Logger} @@ -28,9 +24,9 @@ import org.apache.spark.mllib.clustering.KMeans import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.{SparkConf, SparkContext} import scopt.OptionParser -import org.apache.spark.SparkContext._ /** + * * An example k-means app. Run with * {{{ * ./bin/run-example org.apache.spark.examples.mllib.DenseKMeans [options] @@ -44,7 +40,7 @@ object DenseKMeans { val Random, Parallel = Value } - import org.apache.spark.examples.mllib.DenseKMeans.InitializationMode._ + import com.intel.hibench.sparkbench.ml.DenseKMeans.InitializationMode._ case class Params( input: String = null, @@ -121,3 +117,4 @@ object DenseKMeans { sc.stop() } } + diff --git a/src/sparkbench/src/main/scala/org/apache/spark/examples/mllib/SparseNaiveBayes.scala b/sparkbench/ml/src/main/scala/com/intel/sparkbench/ml/SparseNaiveBayes.scala similarity index 100% rename from src/sparkbench/src/main/scala/org/apache/spark/examples/mllib/SparseNaiveBayes.scala rename to sparkbench/ml/src/main/scala/com/intel/sparkbench/ml/SparseNaiveBayes.scala diff --git a/sparkbench/pom.xml b/sparkbench/pom.xml new file mode 100644 index 000000000..3226a1690 --- /dev/null +++ b/sparkbench/pom.xml @@ -0,0 +1,148 @@ + + 4.0.0 + + + com.intel.hibench + hibench + 6.0-SNAPSHOT + + + com.intel.hibench + sparkbench + pom + 6.0-SNAPSHOT + sparkbench + + + common + assembly + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + net.alchim31.maven + scala-maven-plugin + + ${scala.binary.version} + ${scala.version} + + + + scala-compile-first + process-resources + + add-source + compile + + + + scala-test-compile + process-test-resources + + testCompile + + + + + + + + + + micro + + micro + + + + + graph + + graph + + + + + ml + + ml + + + + + websearch + + websearch + + + + + sql + + sql + + + + + streaming + + streaming + + + + + allModules + + micro + ml + websearch + graph + sql + streaming + + + + !modules + + + + + + spark1.6 + + 1.6.0 + 1.6 + + + + spark + 1.6 + + + + + + spark2.0 + + 2.0.0 + 2.0 + 2.11.8 + 2.11 + + + + spark + 2.0 + + + + + diff --git a/sparkbench/sql/.gitignore b/sparkbench/sql/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/sparkbench/sql/pom.xml b/sparkbench/sql/pom.xml new file mode 100644 index 000000000..de525865f --- /dev/null +++ b/sparkbench/sql/pom.xml @@ -0,0 +1,38 @@ + + + 4.0.0 + + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-sql + jar + 6.0-SNAPSHOT + sparkbench-sql + + + + com.intel.hibench.sparkbench + sparkbench-common + ${project.version} + + + org.apache.spark + spark-core_${scala.binary.version} + ${spark.version} + provided + + + org.apache.spark + spark-hive_${scala.binary.version} + ${spark.version} + provided + + + diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSparkSQLBench.scala b/sparkbench/sql/src/main/scala/com/intel/hibench/sparkbench/sql/ScalaSparkSQLBench.scala similarity index 97% rename from src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSparkSQLBench.scala rename to sparkbench/sql/src/main/scala/com/intel/hibench/sparkbench/sql/ScalaSparkSQLBench.scala index c103ac686..a458d49b5 100644 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/ScalaSparkSQLBench.scala +++ b/sparkbench/sql/src/main/scala/com/intel/hibench/sparkbench/sql/ScalaSparkSQLBench.scala @@ -15,7 +15,7 @@ * limitations under the License. */ -package com.intel.sparkbench.sql +package com.intel.hibench.sparkbench.sql import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.hive.HiveContext diff --git a/sparkbench/streaming/pom.xml b/sparkbench/streaming/pom.xml new file mode 100644 index 000000000..07bd05fec --- /dev/null +++ b/sparkbench/streaming/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-streaming + jar + sparkbench-streaming + + + + com.intel.hibench + hibench-common + ${project.version} + + + org.apache.spark + spark-core_${scala.binary.version} + ${spark.version} + provided + + + org.apache.spark + spark-streaming_${scala.binary.version} + ${spark.version} + provided + + + org.apache.spark + spark-streaming-kafka_${scala.binary.version} + ${spark.version} + + + diff --git a/src/streambench/sparkbench/src/main/resource/config.properties b/sparkbench/streaming/src/main/resource/config.properties similarity index 100% rename from src/streambench/sparkbench/src/main/resource/config.properties rename to sparkbench/streaming/src/main/resource/config.properties diff --git a/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/RunBench.scala b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/RunBench.scala new file mode 100644 index 000000000..941f896c8 --- /dev/null +++ b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/RunBench.scala @@ -0,0 +1,119 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.streaming + +import com.intel.hibench.common.HiBenchConfig +import com.intel.hibench.common.streaming.{TestCase, StreamBenchConfig, Platform, ConfigLoader} +import com.intel.hibench.common.streaming.metrics.MetricsUtil +import com.intel.hibench.sparkbench.streaming.util.SparkBenchConfig +import com.intel.hibench.sparkbench.streaming.application._ +import kafka.serializer.StringDecoder +import org.apache.spark.SparkConf +import org.apache.spark.streaming.dstream.DStream +import org.apache.spark.streaming.kafka.KafkaUtils +import org.apache.spark.streaming.{Milliseconds, StreamingContext} + +/** + * The entry point of Spark Streaming benchmark + */ +object RunBench { + + def main(args: Array[String]) { + val conf = new ConfigLoader(args(0)) + + // Load configuration + val master = conf.getProperty(HiBenchConfig.SPARK_MASTER) + + val batchInterval = conf.getProperty(StreamBenchConfig.SPARK_BATCH_INTERVAL).toInt + val receiverNumber = conf.getProperty(StreamBenchConfig.SPARK_RECEIVER_NUMBER).toInt + val copies = conf.getProperty(StreamBenchConfig.SPARK_STORAGE_LEVEL).toInt + val enableWAL = conf.getProperty(StreamBenchConfig.SPARK_ENABLE_WAL).toBoolean + val checkPointPath = conf.getProperty(StreamBenchConfig.SPARK_CHECKPOINT_PATH) + val directMode = conf.getProperty(StreamBenchConfig.SPARK_USE_DIRECT_MODE).toBoolean + val benchName = conf.getProperty(StreamBenchConfig.TESTCASE) + val topic = conf.getProperty(StreamBenchConfig.KAFKA_TOPIC) + val zkHost = conf.getProperty(StreamBenchConfig.ZK_HOST) + val consumerGroup = conf.getProperty(StreamBenchConfig.CONSUMER_GROUP) + val brokerList = if (directMode) conf.getProperty(StreamBenchConfig.KAFKA_BROKER_LIST) else "" + val debugMode = conf.getProperty(StreamBenchConfig.DEBUG_MODE).toBoolean + val recordPerInterval = conf.getProperty(StreamBenchConfig.DATAGEN_RECORDS_PRE_INTERVAL).toLong + val intervalSpan: Int = conf.getProperty(StreamBenchConfig.DATAGEN_INTERVAL_SPAN).toInt + + val windowDuration: Long = conf.getProperty(StreamBenchConfig.FixWINDOW_DURATION).toLong + val windowSlideStep: Long = conf.getProperty(StreamBenchConfig.FixWINDOW_SLIDESTEP).toLong + + val coreNumber = conf.getProperty(HiBenchConfig.YARN_EXECUTOR_NUMBER).toInt * conf.getProperty(HiBenchConfig.YARN_EXECUTOR_CORES).toInt + + val producerNum = conf.getProperty(StreamBenchConfig.DATAGEN_PRODUCER_NUMBER).toInt + val reporterTopic = MetricsUtil.getTopic(Platform.SPARK, topic, producerNum, recordPerInterval, intervalSpan) + println("Reporter Topic" + reporterTopic) + val reporterTopicPartitions = conf.getProperty(StreamBenchConfig.KAFKA_TOPIC_PARTITIONS).toInt + MetricsUtil.createTopic(zkHost, reporterTopic, reporterTopicPartitions) + + val probability = conf.getProperty(StreamBenchConfig.SAMPLE_PROBABILITY).toDouble + // init SparkBenchConfig, it will be passed into every test case + val config = SparkBenchConfig(master, benchName, batchInterval, receiverNumber, copies, + enableWAL, checkPointPath, directMode, zkHost, consumerGroup, topic, reporterTopic, + brokerList, debugMode, coreNumber, probability, windowDuration, windowSlideStep) + + run(config) + } + + private def run(config: SparkBenchConfig) { + + // select test case based on given benchName + val testCase : BenchBase = TestCase.withValue(config.benchName) match { + case TestCase.IDENTITY => new Identity() + case TestCase.REPARTITION => new Repartition() + case TestCase.WORDCOUNT => new WordCount() + case TestCase.FIXWINDOW => new FixWindow(config.windowDuration, config.windowSlideStep) + case other => + throw new Exception(s"test case ${other} is not supported") + } + + // defind streaming context + val conf = new SparkConf().setMaster(config.master).setAppName(config.benchName) + val ssc = new StreamingContext(conf, Milliseconds(config.batchInterval)) + ssc.checkpoint(config.checkpointPath) + + if(!config.debugMode) { + ssc.sparkContext.setLogLevel("ERROR") + } + + val lines: DStream[(String, String)] = if (config.directMode) { + // direct mode with low level Kafka API + KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder]( + ssc, config.kafkaParams, Set(config.sourceTopic)) + + } else { + // receiver mode with high level Kafka API + val kafkaInputs = (1 to config.receiverNumber).map{ _ => + KafkaUtils.createStream[String, String, StringDecoder, StringDecoder]( + ssc, config.kafkaParams, Map(config.sourceTopic -> config.threadsPerReceiver), config.storageLevel) + } + ssc.union(kafkaInputs) + } + + // convent key from String to Long, it stands for event creation time. + val parsedLines = lines.map{ case (k, v) => (k.toLong, v) } + testCase.process(parsedLines, config) + + ssc.start() + ssc.awaitTermination() + } +} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/IdentityJob.scala b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/BenchBase.scala similarity index 68% rename from src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/IdentityJob.scala rename to sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/BenchBase.scala index b08aaad5b..3b874314c 100644 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/IdentityJob.scala +++ b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/BenchBase.scala @@ -15,15 +15,15 @@ * limitations under the License. */ -package com.intel.hibench.streambench.spark.microbench +package com.intel.hibench.sparkbench.streaming.application -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.dstream.DStream -import org.apache.spark.streaming.StreamingContext +import com.intel.hibench.sparkbench.streaming.util.SparkBenchConfig -class IdentityJob(subClassParams:ParamEntity) extends RunBenchJobWithInit(subClassParams) { +import org.apache.spark.streaming.dstream.DStream - override def processStreamData(lines:DStream[String],ssc:StreamingContext){ - lines.foreachRDD(rdd => rdd.foreach( _ => Unit )) - } +/** + * The base class of all test cases in spark. The sub class need to implement "process" method + */ +trait BenchBase { + def process(lines: DStream[(Long, String)], config: SparkBenchConfig): Unit } diff --git a/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/FixWindow.scala b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/FixWindow.scala new file mode 100644 index 000000000..aa0a32a8e --- /dev/null +++ b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/FixWindow.scala @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.streaming.application + +import com.intel.hibench.common.streaming.UserVisitParser +import com.intel.hibench.common.streaming.metrics.KafkaReporter +import com.intel.hibench.sparkbench.streaming.util.SparkBenchConfig +import org.apache.spark.streaming.Duration +import org.apache.spark.streaming.dstream.DStream + +class FixWindow(duration: Long, slideStep: Long) extends BenchBase { + + override def process(lines: DStream[(Long, String)], config: SparkBenchConfig): Unit = { + val reportTopic = config.reporterTopic + val brokerList = config.brokerList + + lines.window(Duration(duration), Duration(slideStep)).map{ + case (inTime, line) => { + val uv = UserVisitParser.parse(line) + (uv.getIp, (inTime, 1)) + } + }.reduceByKey((value, result) => { + // maintain the min time of this window and count record number + (Math.min(value._1, result._1), value._2 + result._2) + }).foreachRDD( rdd => rdd.foreachPartition( results => { + + // report back to kafka + val reporter = new KafkaReporter(reportTopic, brokerList) + val outTime = System.currentTimeMillis() + + results.foreach(res => { + (1 to (res._2._2)).foreach { _ => + reporter.report(res._2._1, outTime) + if(config.debugMode) { + println("Event: " + res._2._1 + ", " + outTime) + } + } + }) + })) + } +} \ No newline at end of file diff --git a/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/Identity.scala b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/Identity.scala new file mode 100644 index 000000000..238342b21 --- /dev/null +++ b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/Identity.scala @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.streaming.application + +import com.intel.hibench.common.streaming.metrics.KafkaReporter +import com.intel.hibench.sparkbench.streaming.util.SparkBenchConfig + +import org.apache.spark.streaming.dstream.DStream + +class Identity() extends BenchBase { + + override def process(lines: DStream[(Long, String)], config: SparkBenchConfig): Unit = { + val reportTopic = config.reporterTopic + val brokerList = config.brokerList + + lines.foreachRDD(rdd => rdd.foreachPartition( partLines => { + val reporter = new KafkaReporter(reportTopic, brokerList) + partLines.foreach{ case (inTime , content) => + val outTime = System.currentTimeMillis() + reporter.report(inTime, outTime) + if(config.debugMode) { + println("Event: " + inTime + ", " + outTime) + } + } + })) + } +} diff --git a/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/Repartition.scala b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/Repartition.scala new file mode 100644 index 000000000..b4e99d55f --- /dev/null +++ b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/Repartition.scala @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.streaming.application + +import com.intel.hibench.common.streaming.metrics.KafkaReporter +import com.intel.hibench.sparkbench.streaming.util.SparkBenchConfig + +import org.apache.spark.streaming.dstream.DStream + +class Repartition() extends BenchBase { + + override def process(lines: DStream[(Long, String)], config: SparkBenchConfig): Unit = { + val reportTopic = config.reporterTopic + val brokerList = config.brokerList + + lines.repartition(config.coreNumber).foreachRDD(rdd => rdd.foreachPartition( partLines => { + val reporter = new KafkaReporter(reportTopic, brokerList) + partLines.foreach{ case (inTime , content) => + val outTime = System.currentTimeMillis() + reporter.report(inTime,outTime) + if(config.debugMode) { + println("Event: " + inTime + ", " + outTime) + } + } + })) + } +} + diff --git a/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/WordCount.scala b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/WordCount.scala new file mode 100644 index 000000000..3d16c93d2 --- /dev/null +++ b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/application/WordCount.scala @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.sparkbench.streaming.application + +import com.intel.hibench.common.streaming.UserVisitParser +import com.intel.hibench.common.streaming.metrics.KafkaReporter +import com.intel.hibench.sparkbench.streaming.util.SparkBenchConfig +import org.apache.spark.streaming.dstream.DStream +import org.apache.spark.streaming.{StateSpec, State} + +class WordCount() extends BenchBase { + + override def process(lines: DStream[(Long, String)], config: SparkBenchConfig) = { + val reportTopic = config.reporterTopic + val brokerList = config.brokerList + + // Project Line to UserVisit, the output means "[IP, [Strat Time, Count]]" + val parsedLine: DStream[(String, (Long, Int))] = lines.map(line => { + val userVisit = UserVisitParser.parse(line._2) + (userVisit.getIp, (line._1, 1)) + }) + + // Define state mapping function + val mappingFunc = (ip: String, one: Option[(Long, Int)], state: State[Int]) => { + if (!one.isDefined) { + throw new Exception("input value is not defined. It should not happen as we don't use timeout function.") + } + val sum = one.get._2 + state.getOption.getOrElse(0) + state.update(sum) + (ip, one.get._1) + } + + + val wordCount = parsedLine.mapWithState(StateSpec.function(mappingFunc)) + + wordCount.foreachRDD(rdd => rdd.foreachPartition(partLines => { + val reporter = new KafkaReporter(reportTopic, brokerList) + partLines.foreach { case (word, inTime) => + val outTime = System.currentTimeMillis() + reporter.report(inTime, outTime) + if (config.debugMode) println(word + ": " + inTime + ", " + outTime ) + } + })) + } +} diff --git a/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/util/SparkBenchConfig.scala b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/util/SparkBenchConfig.scala new file mode 100644 index 000000000..2adb73023 --- /dev/null +++ b/sparkbench/streaming/src/main/scala/com/intel/hibench/sparkbench/streaming/util/SparkBenchConfig.scala @@ -0,0 +1,44 @@ +package com.intel.hibench.sparkbench.streaming.util + +import org.apache.spark.storage.StorageLevel + +case class SparkBenchConfig ( + // Spark + master: String, + benchName: String, + batchInterval: Int, + receiverNumber: Int, + copies: Int, + enableWAL: Boolean, + checkpointPath: String, + directMode: Boolean, + + // Kafka + zkHost: String, + consumerGroup: String, + sourceTopic: String, + reporterTopic: String, + brokerList: String, + + + // Hibench + debugMode: Boolean, + coreNumber: Int, + sampleProbability: Double, + windowDuration: Long, + windowSlideStep: Long) { + + def storageLevel = copies match { + case 0 => StorageLevel.MEMORY_ONLY + case 1 => StorageLevel.MEMORY_AND_DISK_SER + case _ => StorageLevel.MEMORY_AND_DISK_SER_2 + } + + def kafkaParams = Map ( + "group.id" -> consumerGroup, + "zookeeper.connect" -> zkHost, + "metadata.broker.list" -> brokerList + ) + + def threadsPerReceiver = coreNumber / receiverNumber +} diff --git a/sparkbench/websearch/.gitignore b/sparkbench/websearch/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/sparkbench/websearch/pom.xml b/sparkbench/websearch/pom.xml new file mode 100644 index 000000000..6739d152a --- /dev/null +++ b/sparkbench/websearch/pom.xml @@ -0,0 +1,32 @@ + + 4.0.0 + + + com.intel.hibench + sparkbench + 6.0-SNAPSHOT + + + com.intel.hibench.sparkbench + sparkbench-websearch + jar + 6.0-SNAPSHOT + sparkbench-websearch + + + + com.intel.hibench.sparkbench + sparkbench-common + ${project.version} + + + org.apache.spark + spark-core_${scala.binary.version} + ${spark.version} + provided + + + + diff --git a/src/sparkbench/src/main/scala/org/apache/spark/examples/SparkPageRank.scala b/sparkbench/websearch/src/main/scala/org/apache/spark/examples/SparkPageRank.scala similarity index 98% rename from src/sparkbench/src/main/scala/org/apache/spark/examples/SparkPageRank.scala rename to sparkbench/websearch/src/main/scala/org/apache/spark/examples/SparkPageRank.scala index fd433f55a..4bcab6fa9 100644 --- a/src/sparkbench/src/main/scala/org/apache/spark/examples/SparkPageRank.scala +++ b/sparkbench/websearch/src/main/scala/org/apache/spark/examples/SparkPageRank.scala @@ -24,7 +24,7 @@ package org.apache.spark.examples -import com.intel.sparkbench.IOCommon +import com.intel.hibench.sparkbench.common.IOCommon import org.apache.spark.SparkContext._ import org.apache.spark.{SparkConf, SparkContext} diff --git a/src/autogen/pom.xml b/src/autogen/pom.xml deleted file mode 100644 index dab932dbc..000000000 --- a/src/autogen/pom.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - 4.0.0 - - - com.intel.hibench - hibench - 5.0-SNAPSHOT - - - autogen - jar - com.intel.autogen - 5.0-SNAPSHOT - HiBench data generation tools - https://github.com/intel-hadoop/HiBench - - - - org.apache.mahout - mahout-core - ${mahout.version} - - - org.apache.mahout - mahout-math - ${mahout.version} - - - org.apache.hadoop - hadoop-core - ${hadoop.mr1.version} - - - org.uncommons.maths - uncommons-maths - ${uncommons-maths.version} - - - - - - - maven-assembly-plugin - ${maven-assembly-plugin.version} - - - jar-with-dependencies - - - - - make-assembly - package - - single - - - - - - - diff --git a/src/hivebench/pom.xml b/src/hivebench/pom.xml deleted file mode 100644 index 57209f8f8..000000000 --- a/src/hivebench/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - 4.0.0 - - - com.intel.hibench - hibench - 5.0-SNAPSHOT - - - hivebench - 5.0-SNAPSHOT - jar - - - - http://archive.apache.org - dist/hive/hive-0.12.0/hive-0.12.0-bin.tar.gz - - - - - - com.googlecode.maven-download-plugin - download-maven-plugin - ${download-maven-plugin.version} - - - process-sources - - wget - - - ${repo}/${file} - - - - - - - - diff --git a/src/mahout/pom.xml b/src/mahout/pom.xml deleted file mode 100644 index f20b44239..000000000 --- a/src/mahout/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - 4.0.0 - - - com.intel.hibench - hibench - 5.0-SNAPSHOT - - - com.intel.hibench - mahout - 5.0-SNAPSHOT - jar - - - - http://archive.apache.org - dist/mahout/0.9/mahout-distribution-0.9.tar.gz - 09b999fbee70c9853789ffbd8f28b8a3 - http://archive.cloudera.com - cdh4/cdh/4/mahout-0.7-cdh4.7.1.tar.gz - a99dcee44919b34a0859d0d96107b200 - http://archive.cloudera.com - cdh5/cdh/5/mahout-0.9-cdh5.1.0.tar.gz - aa953e0353ac104a22d314d15c88d78f - - - - - - com.googlecode.maven-download-plugin - download-maven-plugin - ${download-maven-plugin.version} - - - process-sources - - wget - - - ${repo1}/${file1} - ${checksum1} - - - - extra-download-execution - process-sources - - wget - - - ${repo2}/${file2} - ${checksum2} - - - - extra-download-execution-2 - process-sources - - wget - - - ${repo3}/${file3} - ${checksum3} - - - - - - - - diff --git a/src/nutchindexing/nutch/conf/nutch-site-mr1.xml b/src/nutchindexing/nutch/conf/nutch-site-mr1.xml deleted file mode 100644 index d07449f45..000000000 --- a/src/nutchindexing/nutch/conf/nutch-site-mr1.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - -mapreduce.job.jar.unpack.pattern -(?:classes/|lib/|plugins/).* - - - -plugin.folders -${java.io.tmpdir}/../plugins - - - -mapred.create.symlink - yes - - - - -mapred.child.tmp -./tmp - - - - diff --git a/src/pegasus/pom.xml b/src/pegasus/pom.xml deleted file mode 100644 index f6bd162f5..000000000 --- a/src/pegasus/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - 4.0.0 - - - com.intel.hibench - hibench - 5.0-SNAPSHOT - - - pegasus - jar - pegasus - 2.0-SNAPSHOT - PEGASUS: A Peta-Scale Graph Mining System - http://www.cs.cmu.edu/~pegasus/index.htm - - - - org.apache.hadoop - hadoop-core - ${hadoop.mr1.version} - - - diff --git a/src/pom.xml b/src/pom.xml deleted file mode 100644 index 9b897922e..000000000 --- a/src/pom.xml +++ /dev/null @@ -1,213 +0,0 @@ - - 4.0.0 - - com.intel.hibench - hibench - 5.0-SNAPSHOT - pom - hibench - http://maven.apache.org - - - 1.6 - 1.6 - UTF-8 - 2.10.4 - 2.10 - 1.7.5 - 1.2.17 - 3.2.0 - 0.9 - 1.2.2a - 3.8.1 - 2.4.0 - 1.2.1 - 3.2.0 - 3.2 - 2.5.3 - 2.3.2 - 1.9.1 - 1.2.0 - 8.1.14.v20131031 - 2.2.1 - 1.11.3 - 6.5.15 - - - - - central - - Maven Repository - https://repo1.maven.org/maven2 - - true - - - false - - - - apache-repo - Apache Repository - https://repository.apache.org/content/repositories/releases - - true - - - false - - - - scala-tools.org - Scala-tools Maven 2 Repository - https://oss.sonatype.org/content/groups/scala-tools/ - - - - - scala-tools.org - Scala-tools Maven2 Repository - https://oss.sonatype.org/content/groups/scala-tools/ - - - - - - - - net.alchim31.maven - scala-maven-plugin - ${scala-maven-plugin.version} - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - - - - org.apache.maven.plugins - maven-jar-plugin - ${maven-jar-plugin.version} - - - default-jar - package - - jar - - - - - - - - - nutchindexing - mahout - hivebench - sparkbench - pegasus - autogen - - - - - MR1 - - 1 - - - MR1 - - - - - MR2 - - - - 2 - - - !MR1 - - - - - spark1.2 - - 1.2.1 - 1.2 - - - spark1.2 - - - - - spark1.3 - - spark1.3 - 1.3.0 - 1.3 - - - !spark1.2 - - - streambench - - - - - spark1.4 - - spark1.4 - 1.4.0 - 1.4 - - - spark1.4 - - - streambench - - - - - spark1.5 - - spark1.5 - 1.5.0 - 1.5 - - - spark1.5 - - - streambench - - - - - spark1.6 - - spark1.6 - 1.6.0 - 1.6 - - - spark1.6 - - - streambench - - - - - diff --git a/src/sparkbench/pom.xml b/src/sparkbench/pom.xml deleted file mode 100644 index bdecb3fa0..000000000 --- a/src/sparkbench/pom.xml +++ /dev/null @@ -1,220 +0,0 @@ - - - 4.0.0 - - - com.intel.hibench - hibench - 5.0-SNAPSHOT - - - sparkbench - jar - com.intel.sparkbench - 5.0-SNAPSHOT - Sparkbench - https://github.com/Intel-bigdata/Sparkbench - - - - - org.scala-lang - scala-library - ${scala.version} - - - junit - junit - ${junit.version} - test - - - - org.apache.spark - spark-core_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-yarn_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-streaming_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-mllib_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-hive_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-graphx_${scala.binary.version} - ${spark.version} - provided - - - com.github.scopt - scopt_2.10 - ${scopt.version} - - - log4j - log4j - ${log4j.version} - compile - - - org.apache.mahout - mahout-core - ${mahout.version} - - - org.apache.hadoop - hadoop-core - - - - - org.apache.mahout - mahout-math - ${mahout.version} - - - it.unimi.dsi - fastutil - ${fastutil.version} - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - net.alchim31.maven - scala-maven-plugin - - ${scala.binary.version} - ${scala.version} - - - - scala-compile-first - process-resources - - add-source - compile - - - - scala-test-compile - process-test-resources - - testCompile - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - default-jar - package - - jar - - - ${project.artifactId}-${project.version}-MR${sparkbench.mr.version}-spark${spark.bin.version} - - - - - - - maven-assembly-plugin - ${maven-assembly-plugin.version} - - ${project.build.finalName}-MR${sparkbench.mr.version}-spark${spark.bin.version} - - jar-with-dependencies - - - - - make-assembly - package - - single - - - - - - org.codehaus.mojo - build-helper-maven-plugin - ${build-helper-maven-plugin.version} - - - add-source - generate-sources - - add-source - - - - src/multiapi/scala/com/intel/sparkbench/spark${spark.bin.version}/ - src/multiapi/scala/com/intel/sparkbench/MR${sparkbench.mr.version}/ - src/multiapi/java/com/intel/sparkbench/spark${spark.bin.version}/ - src/multiapi/java/com/intel/sparkbench/MR${sparkbench.mr.version}/ - - - - - - - - - - - MR2 - - - org.apache.hadoop - hadoop-mapreduce-examples - ${hadoop.mr2.version} - - - org.apache.hadoop - hadoop-client - ${hadoop.mr2.version} - - - org.apache.hadoop - hadoop-hdfs - - - - - - !MR1 - - - - diff --git a/src/sparkbench/src/main/java/com/intel/sparkbench/JavaBayes.java b/src/sparkbench/src/main/java/com/intel/sparkbench/JavaBayes.java deleted file mode 100644 index 6053f9214..000000000 --- a/src/sparkbench/src/main/java/com/intel/sparkbench/JavaBayes.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.bayes; - -import org.apache.spark.SparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.broadcast.Broadcast; -import org.apache.spark.mllib.classification.NaiveBayesModel; -import org.apache.spark.mllib.linalg.Vectors; -import org.apache.spark.rdd.RDD; -import org.apache.spark.storage.StorageLevel; -import scala.*; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.mllib.regression.LabeledPoint; -import org.apache.spark.mllib.util.MLUtils; -import org.apache.spark.mllib.classification.NaiveBayes; -import org.apache.hadoop.io.Text; - -import java.lang.Boolean; -import java.lang.Double; -import java.lang.Long; -import java.util.*; -import java.util.regex.Pattern; - - -/* - * Adopted from spark's doc: http://spark.apache.org/docs/latest/mllib-naive-bayes.html - */ -public final class JavaBayes { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 1) { - System.err.println("Usage: JavaBayes "); - System.exit(1); - } - - Random rand = new Random(); - - SparkConf sparkConf = new SparkConf().setAppName("JavaBayes"); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); -// int numFeatures = Integer.parseInt(args[1]); - - // Generate vectors according to input documents - JavaPairRDD data = ctx.sequenceFile(args[0], Text.class, Text.class) - .mapToPair(new PairFunction, String, String>() { - @Override - public Tuple2 call(Tuple2 e) { - return new Tuple2(e._1().toString(), e._2().toString()); - } - }); - - JavaPairRDD wordCount = data - .flatMap(new FlatMapFunction, String>() { - @Override - public Iterable call(Tuple2 e) { - return Arrays.asList(SPACE.split(e._2())); - } - }) - .mapToPair(new PairFunction() { - @Override - public Tuple2 call(String e) { - return new Tuple2(e, 1L); - } - }) - .reduceByKey(new Function2() { - @Override - public Long call(Long i1, Long i2) { - return i1 + i2; - } - }); - - final Long wordSum = wordCount.map(new Function, Long>(){ - @Override - public Long call(Tuple2 e) { - return e._2(); - } - }) - .reduce(new Function2() { - @Override - public Long call(Long v1, Long v2) throws Exception { - return v1 + v2; - } - }); - - List>> wordDictList = wordCount.zipWithIndex() - .map(new Function, Long>, Tuple2>>() { - @Override - public Tuple2> call(Tuple2, Long> e) throws Exception { - String key = e._1()._1(); - Long count = e._1()._2(); - Long index = e._2(); - return new Tuple2>(key, new Tuple2(index, - count.doubleValue() / wordSum)); - } - }).collect(); - - Map> wordDict = new HashMap(); - for (Tuple2> item : wordDictList) { - wordDict.put(item._1(), item._2()); - } - - final Broadcast>> sharedWordDict = ctx.broadcast(wordDict); - - // for each document, generate vector based on word freq - JavaRDD> vector = data.map(new Function, Tuple3>() { - @Override - public Tuple3 call(Tuple2 v1) throws Exception { - String dockey = v1._1(); - String doc = v1._2(); - String[] keys = SPACE.split(doc); - Tuple2[] datas = new Tuple2[keys.length]; - for (int i = 0; i < keys.length; i++) { - datas[i] = sharedWordDict.getValue().get(keys[i]); - } - Map vector = new HashMap(); - for (int i = 0; i < datas.length; i++) { - Long indic = datas[i]._1(); - Double value = datas[i]._2(); - if (vector.containsKey(indic)) { - vector.put(indic, value + vector.get(indic)); - } else { - vector.put(indic, value); - } - } - - Long[] indices = new Long[vector.size()]; - Double[] values = new Double[vector.size()]; - - SortedSet sortedKeys = new TreeSet(vector.keySet()); - int c = 0; - for (Long key : sortedKeys) { - indices[c] = key; - values[c] = vector.get(key); - c+=1; - } - - Double label = Double.parseDouble(dockey.substring(6)); - return new Tuple3(label, indices, values); - } - }); - - vector.persist(StorageLevel.MEMORY_ONLY()); - final Long d = vector - .map(new Function, Long>() { - @Override - public Long call(Tuple3 v1) throws Exception { - Long[] indices = v1._2(); - if (indices.length > 0) { -// System.out.println("v_length:"+indices.length+" v_val:" + indices[indices.length - 1]); - return indices[indices.length - 1]; - } else return Long.valueOf(0); - } - }) - .reduce(new Function2() { - @Override - public Long call(Long v1, Long v2) throws Exception { -// System.out.println("v1:"+v1+" v2:"+v2); - return v1 > v2 ? v1 : v2; - } - }) + 1; - - RDD examples = vector.map(new Function, LabeledPoint>() { - @Override - public LabeledPoint call(Tuple3 v1) throws Exception { - int intIndices [] = new int[v1._2().length]; - double intValues [] = new double[v1._3().length]; - for (int i=0; i< v1._2().length; i++){ - intIndices[i] = v1._2()[i].intValue(); - intValues[i] = v1._3()[i]; - } - return new LabeledPoint(v1._1(), Vectors.sparse(d.intValue(), - intIndices, intValues)); - } - }).rdd(); - - //RDD examples = MLUtils.loadLibSVMFile(ctx.sc(), args[0], false, numFeatures); - RDD[] split = examples.randomSplit(new double[]{0.8, 0.2}, rand.nextLong()); - - JavaRDD training = split[0].toJavaRDD(); - JavaRDD test = split[1].toJavaRDD(); - - final NaiveBayesModel model = NaiveBayes.train(training.rdd(), 1.0); - JavaRDD prediction = - test.map(new Function() { - @Override - public Double call(LabeledPoint p) { - return model.predict(p.features()); - } - }); - - JavaPairRDD < Double, Double > predictionAndLabel = - prediction.zip(test.map(new Function() { - @Override - public Double call(LabeledPoint p) { - return p.label(); - } - })); - - double accuracy = (double) predictionAndLabel.filter( - new Function, Boolean>() { - @Override - public Boolean call(Tuple2 pl) { - return pl._1().equals(pl._2()); - } - }).count() / test.count(); - - System.out.println(String.format("Test accuracy = %f", accuracy)); - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/main/java/com/intel/sparkbench/JavaSleep.java b/src/sparkbench/src/main/java/com/intel/sparkbench/JavaSleep.java deleted file mode 100644 index d4182a1d9..000000000 --- a/src/sparkbench/src/main/java/com/intel/sparkbench/JavaSleep.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.sleep; - -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function; -import org.apache.spark.api.java.function.PairFunction; - -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -public final class JavaSleep{ - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length != 1) { - System.err.println("Usage: JavaSleep "); - System.exit(1); - } - - SparkConf sparkConf = new SparkConf().setAppName("JavaSleep"); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - Integer parallel = sparkConf.getInt("spark.default.parallelism", ctx.defaultParallelism()); - Integer seconds = Integer.parseInt(args[0]); - - Integer[] init_val = new Integer[parallel]; - Arrays.fill(init_val, seconds); - - JavaRDD workload = ctx.parallelize(Arrays.asList(init_val), parallel).map(new Function() { - @Override - public Integer call(Integer s) throws InterruptedException { - Thread.sleep(s * 1000); - return 0; - } - }); - - List output = workload.collect(); - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/main/java/com/intel/sparkbench/JavaSort.java b/src/sparkbench/src/main/java/com/intel/sparkbench/JavaSort.java deleted file mode 100644 index 3037e891c..000000000 --- a/src/sparkbench/src/main/java/com/intel/sparkbench/JavaSort.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.sort; - -import java.util.Arrays; -import java.util.regex.Pattern; - -import com.intel.sparkbench.IOCommon; -import org.apache.spark.HashPartitioner; -import scala.Tuple2; - -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.SparkConf; - -import org.apache.spark.ConfigurableJavaPairRDD; - -public final class JavaSort { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length != 2) { - System.err.println("Usage: JavaSort "); - System.exit(1); - } - - SparkConf sparkConf = new SparkConf().setAppName("JavaSort"); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - Integer parallel = sparkConf.getInt("spark.default.parallelism", ctx.defaultParallelism()); - Integer reducer; - try { - reducer = Integer.parseInt(IOCommon.getProperty("hibench.default.shuffle.parallelism").get()); - } catch (NumberFormatException e){ - reducer = parallel / 2; - } - - JavaRDD lines = ctx.textFile(args[0], 1); - - JavaPairRDD ones = lines.mapToPair(new PairFunction() { - @Override - public Tuple2 call(String s) { - return new Tuple2(s, 1); - } - }); - - JavaPairRDD counts = new ConfigurableJavaPairRDD( - ones.rdd(), String.class, Integer.class - ).sortByKeyWithPartitioner(new HashPartitioner(reducer), true); - - JavaRDD result = counts.map(new Function, String>() { - @Override - public String call(Tuple2 e) throws Exception { - return e._1(); - } - }); - - result.saveAsTextFile(args[1]); - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/main/java/org/apache/spark/examples/JavaPageRank.java b/src/sparkbench/src/main/java/org/apache/spark/examples/JavaPageRank.java deleted file mode 100644 index d23d782e4..000000000 --- a/src/sparkbench/src/main/java/org/apache/spark/examples/JavaPageRank.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Copied from org.apache.spark.examples.JavaPageRank - * Modification from origin: - * Use saveAsText instead of print to present the result. See the commented - * code at the tail of the code. - */ -package org.apache.spark.examples; - -import com.intel.sparkbench.IOCommon; -import scala.Tuple2; - -import com.google.common.collect.Iterables; - -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.Function; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFlatMapFunction; -import org.apache.spark.api.java.function.PairFunction; - -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Pattern; - -/** - * Computes the PageRank of URLs from an input file. Input file should - * be in format of: - * URL neighbor URL - * URL neighbor URL - * URL neighbor URL - * ... - * where URL and their neighbors are separated by space(s). - */ -public final class JavaPageRank { - private static final Pattern SPACES = Pattern.compile("\\s+"); - - private static class Sum implements Function2 { - @Override - public Double call(Double a, Double b) { - return a + b; - } - } - - public static void main(String[] args) throws Exception { - if (args.length < 3) { - System.err.println("Usage: JavaPageRank "); - System.exit(1); - } - - SparkConf sparkConf = new SparkConf().setAppName("JavaPageRank"); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - - // Loads in input file. It should be in format of: - // URL neighbor URL - // URL neighbor URL - // URL neighbor URL - // ... - JavaRDD lines = ctx.textFile(args[0], 1); - - // Loads all URLs from input file and initialize their neighbors. - JavaPairRDD> links = lines.mapToPair(new PairFunction() { - @Override - public Tuple2 call(String s) { - String[] parts = SPACES.split(s); - // Modified by Lv: accept last two vaules from HiBench generated PageRank data format - return new Tuple2(parts[parts.length-2], parts[parts.length-1]); - } - }).distinct().groupByKey().cache(); - - // Loads all URLs with other URL(s) link to from input file and initialize ranks of them to one. - JavaPairRDD ranks = links.mapValues(new Function, Double>() { - @Override - public Double call(Iterable rs) { - return 1.0; - } - }); - - // Calculates and updates URL ranks continuously using PageRank algorithm. - for (int current = 0; current < Integer.parseInt(args[2]); current++) { - // Calculates URL contributions to the rank of other URLs. - JavaPairRDD contribs = links.join(ranks).values() - .flatMapToPair(new PairFlatMapFunction, Double>, String, Double>() { - @Override - public Iterable> call(Tuple2, Double> s) { - int urlCount = Iterables.size(s._1); - List> results = new ArrayList>(); - for (String n : s._1) { - results.add(new Tuple2(n, s._2() / urlCount)); - } - return results; - } - }); - - // Re-calculates URL ranks based on neighbor contributions. - ranks = contribs.reduceByKey(new Sum()).mapValues(new Function() { - @Override - public Double call(Double sum) { - return 0.15 + sum * 0.85; - } - }); - } - - // Collects all URL ranks and dump them to console. -// List> output = ranks.collect(); -// for (Tuple2 tuple : output) { -// System.out.println(tuple._1() + " has rank: " + tuple._2() + "."); -// } - - IOCommon io = new IOCommon(JavaSparkContext.toSparkContext(ctx)); - io.save(args[1], ranks.rdd()); - //ranks.saveAsTextFile(args[1]); - - ctx.stop(); - } -} diff --git a/src/sparkbench/src/main/java/org/apache/spark/examples/JavaWordCount.java b/src/sparkbench/src/main/java/org/apache/spark/examples/JavaWordCount.java deleted file mode 100644 index 53280204a..000000000 --- a/src/sparkbench/src/main/java/org/apache/spark/examples/JavaWordCount.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Adopted from org.apache.spark.examples.JavaWordCount - * Modification from origin: - * Use saveAsText instead of print to present the result. See the commented - * code at the tail of the code. - */ -package org.apache.spark.examples; - -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFunction; - -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -public final class JavaWordCount { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length != 2) { - System.err.println("Usage: JavaWordCount "); - System.exit(1); - } - - SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount"); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - JavaRDD lines = ctx.textFile(args[0], 1); - - JavaRDD words = lines.flatMap(new FlatMapFunction() { - @Override - public Iterable call(String s) { - return Arrays.asList(SPACE.split(s)); - } - }); - - JavaPairRDD ones = words.mapToPair(new PairFunction() { - @Override - public Tuple2 call(String s) { - return new Tuple2(s, 1); - } - }); - - JavaPairRDD counts = ones.reduceByKey(new Function2() { - @Override - public Integer call(Integer i1, Integer i2) { - return i1 + i2; - } - }); - - /* - List> output = counts.collect(); - for (Tuple2 tuple : output) { - System.out.println(tuple._1() + ": " + tuple._2()); - } - */ - counts.saveAsTextFile(args[1]); - ctx.stop(); - } -} diff --git a/src/sparkbench/src/main/java/org/apache/spark/examples/mllib/JavaKMeans.java b/src/sparkbench/src/main/java/org/apache/spark/examples/mllib/JavaKMeans.java deleted file mode 100644 index 637114297..000000000 --- a/src/sparkbench/src/main/java/org/apache/spark/examples/mllib/JavaKMeans.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Copied from org.apache.spark.examples.mllib.JavaKMeans - */ -package org.apache.spark.examples.mllib; - -import java.util.regex.Pattern; - -import org.apache.hadoop.io.LongWritable; -import org.apache.mahout.math.VectorWritable; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.Function; - -import org.apache.spark.mllib.clustering.KMeans; -import org.apache.spark.mllib.clustering.KMeansModel; -import org.apache.spark.mllib.linalg.Vector; -import org.apache.spark.mllib.linalg.Vectors; -import scala.Tuple2; - -/** - * Example using MLLib KMeans from Java. - */ -public final class JavaKMeans { - - private static class ParsePoint implements Function { - private static final Pattern SPACE = Pattern.compile(" "); - - @Override - public Vector call(String line) { - String[] tok = SPACE.split(line); - double[] point = new double[tok.length]; - for (int i = 0; i < tok.length; ++i) { - point[i] = Double.parseDouble(tok[i]); - } - return Vectors.dense(point); - } - } - - public static void main(String[] args) { - if (args.length < 3) { - System.err.println( - "Usage: JavaKMeans []"); - System.exit(1); - } - String inputFile = args[0]; - int k = Integer.parseInt(args[1]); - int iterations = Integer.parseInt(args[2]); - int runs = 1; - - if (args.length >= 4) { - runs = Integer.parseInt(args[3]); - } - SparkConf sparkConf = new SparkConf().setAppName("JavaKMeans"); - JavaSparkContext sc = new JavaSparkContext(sparkConf); - - JavaPairRDD data = sc.sequenceFile(inputFile, - LongWritable.class, VectorWritable.class); - - JavaRDD points = data.map(new Function, Vector>() { - @Override - public Vector call(Tuple2 e) { - VectorWritable val = e._2(); - double[] v = new double[val.get().size()]; - for (int i = 0; i < val.get().size(); ++i) { - v[i] = val.get().get(i); - } - return Vectors.dense(v); - } - }); - - KMeansModel model = KMeans.train(points.rdd(), k, iterations, runs, KMeans.K_MEANS_PARALLEL()); - - System.out.println("Cluster centers:"); - for (Vector center : model.clusterCenters()) { - System.out.println(" " + center); - } - double cost = model.computeCost(points.rdd()); - System.out.println("Cost: " + cost); - - sc.stop(); - } -} diff --git a/src/sparkbench/src/main/python/IOCommon/IOCommon.py b/src/sparkbench/src/main/python/IOCommon/IOCommon.py deleted file mode 100644 index bdba437b7..000000000 --- a/src/sparkbench/src/main/python/IOCommon/IOCommon.py +++ /dev/null @@ -1,69 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os, re - -class IOCommon(object): - conf = {} - def __init__(self, sc): - self.sc = sc - - @classmethod - def getProperty(cls, key, default = None): - return cls.conf.get(key, default) - - @classmethod - def getPropertiesFromFile(cls): - def split(x): - ret = re.split("\s", x.strip(), 1) - if len(ret)<2: return (ret[0], '') - return tuple(ret) - prop_file = os.environ.get("SPARKBENCH_PROPERTIES_FILES", None) - assert prop_file, "SPARKBENCH_PROPERTIES_FILES undefined!" - with open(prop_file) as f: - cls.conf = dict([split(x.strip()) for x in f.readlines() if x.strip() and x.strip()[0]!="#"]) - - def load(self, filename, force_format=None): - input_format = force_format if force_format else IOCommon.getProperty("sparkbench.inputformat", "Text") - if input_format == "Text": - return self.sc.textFile(filename) - elif input_format == "Sequence": - return self.sc.sequenceFile(filename, "org.apache.hadoop.io.NullWritable, org.apache.hadoop.io.Text")\ - .map(lambda x:x[1]) - else: - raise Exception("Unknown input format: %s" % input_format) - - def save(selfself, filename, data, PropPrefix = "sparkbench.outputformat"): - output_format = IOCommon.getProperty(PropPrefix, "Text") - output_format_codec = IOCommon.getProperty(PropPrefix+".codec") - - if output_format == "Text": - if not output_format_codec: # isEmpty - data.saveAsTextFile(filename) - else: - print "Warning, save as text file with a format codec is unsupported in python api" - data.saveAsTextFile(filename) - #data.saveAsTextFile(filename, output_format_codec) - elif output_format == "Sequence": - sequence_data = data.map(lambda x:(None, x)) - if not output_format_codec: # isEmpty - data.saveAsHadoopFile(filename, "org.apache.hadoop.mapred.SequenceFileOutputFormat", - "org.apache.hadoop.io.NullWritable", "org.apache.hadoop.io.Text") - else: - data.saveAsHadoopFile(filename, "org.apache.hadoop.mapred.SequenceFileOutputFormat", - "org.apache.hadoop.io.NullWritable", "org.apache.hadoop.io.Text", - compressionCodecClass = output_format_codec) - -IOCommon.getPropertiesFromFile() \ No newline at end of file diff --git a/src/sparkbench/src/main/python/IOCommon/__init__.py b/src/sparkbench/src/main/python/IOCommon/__init__.py deleted file mode 100644 index def103122..000000000 --- a/src/sparkbench/src/main/python/IOCommon/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from IOCommon import IOCommon \ No newline at end of file diff --git a/src/sparkbench/src/main/python/bayes.py b/src/sparkbench/src/main/python/bayes.py deleted file mode 100644 index af2d02cea..000000000 --- a/src/sparkbench/src/main/python/bayes.py +++ /dev/null @@ -1,102 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -""" -A naive bayes program using MLlib. - -This example requires NumPy (http://www.numpy.org/). -""" - -import sys - -from pyspark import SparkContext -from pyspark.mllib.util import MLUtils -from pyspark.mllib.classification import NaiveBayes -from pyspark.mllib.regression import LabeledPoint -from pyspark.mllib.linalg import Vectors -from pyspark.storagelevel import StorageLevel -from operator import add -from itertools import groupby -# -# Adopted from spark's doc: http://spark.apache.org/docs/latest/mllib-naive-bayes.html -# -def parseVector(line): - return np.array([float(x) for x in line.split(' ')]) - -if __name__ == "__main__": - if len(sys.argv) != 2: - print >> sys.stderr, "Usage: bayes " - exit(-1) - sc = SparkContext(appName="PythonNaiveBayes") - filename = sys.argv[1] - - - data = sc.sequenceFile(filename, "org.apache.hadoop.io.Text", "org.apache.hadoop.io.Text") - wordCount = data \ - .flatMap(lambda (key, doc):doc.split(" ")) \ - .map(lambda x:(x, 1)) \ - .reduceByKey(add) - - wordSum = wordCount.map(lambda x:x[1]).reduce(lambda x,y:x+y) - wordDict = wordCount.zipWithIndex() \ - .map(lambda ((key, count), index): (key, (index, count*1.0 / wordSum)) ) \ - .collectAsMap() - sharedWordDict = sc.broadcast(wordDict) - - # for each document, generate vector based on word freq - def doc2vector(dockey, doc): - # map to word index: freq - # combine freq with same word - docVector = [(key, sum((z[1] for z in values))) for key, values in - groupby(sorted([sharedWordDict.value[x] for x in doc.split(" ")], - key=lambda x:x[0]), - key=lambda x:x[0])] - - (indices, values) = zip(*docVector) # unzip - label = float(dockey[6:]) - return label, indices, values - - vector = data.map( lambda (dockey, doc) : doc2vector(dockey, doc)) - - vector.persist(StorageLevel.MEMORY_ONLY) - d = vector.map( lambda (label, indices, values) : indices[-1] if indices else 0)\ - .reduce(lambda a,b:max(a,b)) + 1 - - -# print "###### Load svm file", filename - #examples = MLUtils.loadLibSVMFile(sc, filename, numFeatures = numFeatures) - examples = vector.map( lambda (label, indices, values) : LabeledPoint(label, Vectors.sparse(d, indices, values))) - - examples.cache() - - # FIXME: need randomSplit! - training = examples.sample(False, 0.8, 2) - test = examples.sample(False, 0.2, 2) - - numTraining = training.count() - numTest = test.count() - print " numTraining = %d, numTest = %d." % (numTraining, numTest) - model = NaiveBayes.train(training, 1.0) - - model_share = sc.broadcast(model) - predictionAndLabel = test.map( lambda x: (x.label, model_share.value.predict(x.features))) -# prediction = model.predict(test.map( lambda x: x.features )) -# predictionAndLabel = prediction.zip(test.map( lambda x:x.label )) - accuracy = predictionAndLabel.filter(lambda x: x[0] == x[1]).count() * 1.0 / numTest - - print "Test accuracy = %s." % accuracy - diff --git a/src/sparkbench/src/main/python/kmeans.py b/src/sparkbench/src/main/python/kmeans.py deleted file mode 100644 index 1de3d2a59..000000000 --- a/src/sparkbench/src/main/python/kmeans.py +++ /dev/null @@ -1,51 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# -# Copied from spark's example -# - -""" -A K-means clustering program using MLlib. - -This example requires NumPy (http://www.numpy.org/). -""" - -import sys - -import numpy as np -from pyspark import SparkContext -from pyspark.mllib.clustering import KMeans - - -def parseVector(line): - vector = eval(line[1]) - return np.array([vector.get(x,0.0) for x in range(max(vector)+1)]) - - -if __name__ == "__main__": - if len(sys.argv) != 4: - print >> sys.stderr, "Usage: kmeans " - exit(-1) - sc = SparkContext(appName="PythonKMeans") - lines = sc.sequenceFile(sys.argv[1], "org.apache.hadoop.io.LongWritable", "org.apache.mahout.math.VectorWritable", - valueConverter="com.intel.sparkbench.datagen.pythonconverter.MahoutVectorToStringConverter") - data = lines.map(parseVector) - k = int(sys.argv[2]) - max_iterations = int(sys.argv[3]) - model = KMeans.train(data, k, max_iterations) - print "Final centers: " + str(model.clusterCenters) diff --git a/src/sparkbench/src/main/python/pagerank.py b/src/sparkbench/src/main/python/pagerank.py deleted file mode 100644 index 3ee436dea..000000000 --- a/src/sparkbench/src/main/python/pagerank.py +++ /dev/null @@ -1,79 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# -# Copied & adopted from spark's example -# Modification from origin: -# Use saveAsText instead of print to present the result. See the commented -# code at the tail of the code. -# - -import re -import sys -from operator import add - -from pyspark import SparkContext - - -def computeContribs(urls, rank): - """Calculates URL contributions to the rank of other URLs.""" - num_urls = len(urls) - for url in urls: - yield (url, rank / num_urls) - - -def parseNeighbors(urls): - """Parses a urls pair string into urls pair.""" - parts = re.split(r'\s+', urls) - # Modified by Lv: accept last two values from HiBench generated PageRank data format. - return parts[-2], parts[-1] - - -if __name__ == "__main__": - if len(sys.argv) != 4: - print >> sys.stderr, "Usage: pagerank " - exit(-1) - - # Initialize the spark context. - sc = SparkContext(appName="PythonPageRank") - - # Loads in input file. It should be in format of: - # URL neighbor URL - # URL neighbor URL - # URL neighbor URL - # ... - lines = sc.textFile(sys.argv[1], 1) - - # Loads all URLs from input file and initialize their neighbors. - links = lines.map(lambda urls: parseNeighbors(urls)).distinct().groupByKey().cache() - - # Loads all URLs with other URL(s) link to from input file and initialize ranks of them to one. - ranks = links.map(lambda (url, neighbors): (url, 1.0)) - - # Calculates and updates URL ranks continuously using PageRank algorithm. - for iteration in xrange(int(sys.argv[3])): - # Calculates URL contributions to the rank of other URLs. - contribs = links.join(ranks).flatMap( - lambda (url, (urls, rank)): computeContribs(urls, rank)) - - # Re-calculates URL ranks based on neighbor contributions. - ranks = contribs.reduceByKey(add).mapValues(lambda rank: rank * 0.85 + 0.15) - - # Collects all URL ranks and dump them to console. - # for (link, rank) in ranks.collect(): - # print "%s has rank: %s." % (link, rank) - ranks.saveAsTextFile(sys.argv[2]) \ No newline at end of file diff --git a/src/sparkbench/src/main/python/python_spark_sql_bench.py b/src/sparkbench/src/main/python/python_spark_sql_bench.py deleted file mode 100644 index aa62929a0..000000000 --- a/src/sparkbench/src/main/python/python_spark_sql_bench.py +++ /dev/null @@ -1,39 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import sys - -from pyspark import SparkContext -from pyspark.sql import SQLContext, HiveContext - -# -# ported from HiBench's hive bench -# -if __name__ == "__main__": - if len(sys.argv) != 3: - print >> sys.stderr, "Usage: python_spark_sql_bench.py " - exit(-1) - workload_name, sql_script = sys.argv[1], sys.argv[2] - sc = SparkContext(appName=workload_name) - sqlctx = SQLContext(sc) - hc = HiveContext(sc) - with open(sql_script) as f: - for line in f.read().split(';'): - line = line.strip() - if line: - hc.sql(line) - sc.stop() diff --git a/src/sparkbench/src/main/python/sleep.py b/src/sparkbench/src/main/python/sleep.py deleted file mode 100644 index 999d2ed42..000000000 --- a/src/sparkbench/src/main/python/sleep.py +++ /dev/null @@ -1,32 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import sys, time - -from pyspark import SparkContext - - -if __name__ == "__main__": - if len(sys.argv) != 2: - print >> sys.stderr, "Usage: sleep " - exit(-1) - sc = SparkContext(appName="PythonSleep") - parallel = int(sc._conf.get("spark.default.parallelism", str(sc.defaultParallelism))) - seconds = int(sys.argv[1]) - workload = sc.parallelize(range(parallel), parallel) - workload.map(lambda x: time.sleep(seconds)).collect() - sc.stop() diff --git a/src/sparkbench/src/main/python/sort.py b/src/sparkbench/src/main/python/sort.py deleted file mode 100644 index 4f16cf484..000000000 --- a/src/sparkbench/src/main/python/sort.py +++ /dev/null @@ -1,76 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# -# Adopted from spark's example -# - -import sys -import bisect - -from pyspark import SparkContext -from pyspark.rdd import portable_hash - -def sortByKeyWithHashedPartitioner(self, ascending=True, numPartitions=None, keyfunc=lambda x: x): - """ - Sorts this RDD, which is assumed to consist of (key, value) pairs. - # adopted from spark/s rdd.py implementation - - >>> tmp = [('a', 1), ('b', 2), ('1', 3), ('d', 4), ('2', 5)] - >>> sortByKeyWithHashedPartitioner(sc.parallelize(tmp)).first() - ('d', 4) - >>> sortByKeyWithHashedPartitioner(sc.parallelize(tmp), True, 1).collect() - [('1', 3), ('2', 5), ('a', 1), ('b', 2), ('d', 4)] - >>> sortByKeyWithHashedPartitioner(sc.parallelize(tmp), True, 2).collect() - [('1', 3), ('a', 1), ('2', 5), ('b', 2), ('d', 4)] - >>> tmp2 = [('Mary', 1), ('had', 2), ('a', 3), ('little', 4), ('lamb', 5)] - >>> tmp2.extend([('whose', 6), ('fleece', 7), ('was', 8), ('white', 9)]) - >>> sortByKeyWithHashedPartitioner(sc.parallelize(tmp2),True, 3, keyfunc=lambda k: k.lower()).collect() - [('fleece', 7), ('had', 2), ('lamb', 5), ('white', 9),....('Mary', 1), ('was', 8), ('whose', 6)] - """ - if numPartitions is None: - numPartitions = self._defaultReducePartitions() - - def sortPartition(iterator): - return iter(sorted(iterator, key=lambda (k, v): keyfunc(k), reverse=not ascending)) - - if numPartitions == 1: - if self.getNumPartitions() > 1: - self = self.coalesce(1) - return self.mapPartitions(sortPartition) - - def hashedPartitioner(k): - return portable_hash(keyfunc(k)) % numPartitions - - return self.partitionBy(numPartitions, hashedPartitioner).mapPartitions(sortPartition, True) - - - -if __name__ == "__main__": - if len(sys.argv) != 3: - print >> sys.stderr, "Usage: sort " - exit(-1) - sc = SparkContext(appName="PythonSort") - hdfs_input, hdfs_output = sys.argv[1], sys.argv[2] - -# reducer = int(SparkContext._jvm.com.intel.sparkbench.IOCommonWrap.getProperty("hibench.default.shuffle.parallelism")) - reducer = int(sc._conf.get("spark.default.parallelism", str(sc.defaultParallelism / 2))) # FIXME: use IOCommonWrap! - lines = sc.textFile(hdfs_input, 1).map(lambda x:(x,1)) - sortedWords = sortByKeyWithHashedPartitioner(lines, numPartitions=reducer).map(lambda x:x[0]) - - sortedWords.saveAsTextFile(hdfs_output) - sc.stop() diff --git a/src/sparkbench/src/main/python/terasort.py b/src/sparkbench/src/main/python/terasort.py deleted file mode 100644 index 898f05d0c..000000000 --- a/src/sparkbench/src/main/python/terasort.py +++ /dev/null @@ -1,50 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import sys - -from pyspark import SparkContext -from IOCommon import IOCommon - - -if __name__ == "__main__": - if len(sys.argv) != 3: - print >> sys.stderr, "Usage: terasort " - exit(-1) - sc = SparkContext(appName="PythonTeraSort") - reducer = int(IOCommon.getProperty("hibench.default.shuffle.parallelism")) - - version_api = IOCommon.getProperty("hibench.hadoop.version") - # load - if version_api=="hadoop1": - lines = sc.textFile(sys.argv[1], 1).map(lambda x: (x[:10], x[10:])) - elif version_api == "hadoop2": - lines = sc.newAPIHadoopFile(sys.argv[1], "org.apache.hadoop.examples.terasort.TeraInputFormat", - "org.apache.hadoop.io.Text", "org.apache.hadoop.io.Text") - - # sort - sortedCount = lines.sortByKey(lambda x: x, numPartitions = reducer) - - # save - if version_api=="hadoop1": - lines = sortedCount.map(lambda x: x[0] + x[1]) - sortedCount.saveAsTextFile(sys.argv[2]) - elif version_api == "hadoop2": - sortedCount.saveAsNewAPIHadoopFile(sys.argv[2], "org.apache.hadoop.examples.terasort.TeraOutputFormat", - "org.apache.hadoop.io.Text", "org.apache.hadoop.io.Text") - - sc.stop() diff --git a/src/sparkbench/src/main/python/wordcount.py b/src/sparkbench/src/main/python/wordcount.py deleted file mode 100644 index 1195de8b8..000000000 --- a/src/sparkbench/src/main/python/wordcount.py +++ /dev/null @@ -1,36 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import sys -from operator import add - -from pyspark import SparkContext - -# -# Adopted from spark's example: https://spark.apache.org/examples.html -# -if __name__ == "__main__": - if len(sys.argv) != 3: - print >> sys.stderr, "Usage: wordcount " - exit(-1) - sc = SparkContext(appName="PythonWordCount") - lines = sc.textFile(sys.argv[1], 1) - counts = lines.flatMap(lambda x: x.split(' ')) \ - .map(lambda x: (x, 1)) \ - .reduceByKey(add) - counts.saveAsTextFile(sys.argv[2]) - sc.stop() diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/IOCommon.scala b/src/sparkbench/src/main/scala/com/intel/sparkbench/IOCommon.scala deleted file mode 100644 index 2a4954e9e..000000000 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/IOCommon.scala +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench - -import java.io.{File, FileInputStream, IOException, InputStreamReader} -import java.util.Properties - -import org.apache.hadoop.io.compress.CompressionCodec -import org.apache.hadoop.io.{NullWritable, Text} -import org.apache.hadoop.mapred.SequenceFileOutputFormat -import org.apache.spark.SparkContext._ -import org.apache.spark.rdd.RDD -import org.apache.spark.{SparkContext, SparkException} - -import scala.collection.JavaConversions._ -import scala.collection.mutable.HashMap -import scala.reflect.ClassTag -import scala.reflect.runtime.universe.TypeTag - -class IOCommon(val sc:SparkContext) { - def load[T:ClassTag:TypeTag](filename:String, force_format:Option[String]=None) = { - val input_format = force_format.getOrElse( - IOCommon.getProperty("sparkbench.inputformat").getOrElse("Text")) - - input_format match { - case "Text" => - sc.textFile(filename) - - case "Sequence" => - sc.sequenceFile[NullWritable, Text](filename).map(_._2.toString) - - case _ => throw new UnsupportedOperationException(s"Unknown inpout format: $input_format") - } - } - - def save(filename:String, data:RDD[_], prefix:String) = { - val output_format = IOCommon.getProperty(prefix).getOrElse("Text") - val output_format_codec = - loadClassByName[CompressionCodec](IOCommon.getProperty(prefix + ".codec")) - - output_format match { - case "Text" => - if (output_format_codec.isEmpty) data.saveAsTextFile(filename) - else data.saveAsTextFile(filename, output_format_codec.get) - - case "Sequence" => - val sequence_data = data.map(x => (NullWritable.get(), new Text(x.toString))) - if (output_format_codec.isEmpty) { - sequence_data.saveAsHadoopFile[SequenceFileOutputFormat[NullWritable, Text]](filename) - } else { - sequence_data.saveAsHadoopFile[SequenceFileOutputFormat[NullWritable, Text]](filename, - output_format_codec.get) - } - - case _ => throw new UnsupportedOperationException(s"Unknown output format: $output_format") - } - } - - def save(filename:String, data:RDD[_]):Unit = save(filename, data, "sparkbench.outputformat") - - private def loadClassByName[T](name:Option[String]) = { - if (!name.isEmpty) Some(Class.forName(name.get) - .newInstance.asInstanceOf[T].getClass) else None - } - - private def callMethod[T, R](obj:T, method_name:String) = - obj.getClass.getMethod(method_name).invoke(obj).asInstanceOf[R] -} - -object IOCommon{ - private val sparkbench_conf: HashMap[String, String] = - getPropertiesFromFile(System.getenv("SPARKBENCH_PROPERTIES_FILES")) - - def getPropertiesFromFile(filenames: String): HashMap[String, String] = { - val result = new HashMap[String, String] - filenames.split(',').filter(_.stripMargin.length > 0).foreach { filename => - val file = new File(filename) - require(file.exists, s"Properties file $file does not exist") - require(file.isFile, s"Properties file $file is not a normal file") - - val inReader = new InputStreamReader(new FileInputStream(file), "UTF-8") - try { - val properties = new Properties() - properties.load(inReader) - result ++= properties.stringPropertyNames() - .map(k => (k, properties(k).trim)).toMap - } catch { - case e: IOException => - val message = s"Failed when loading Sparkbench properties file $file" - throw new SparkException(message, e) - } finally { - inReader.close() - } - } - result.filter{case (key, value) => value.toLowerCase != "none"} - } - - def getProperty(key:String):Option[String] = sparkbench_conf.get(key) - - def dumpProperties(): Unit = sparkbench_conf - .foreach{case (key, value)=> println(s"$key\t\t$value")} -} diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/RandomTextWriter.scala b/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/RandomTextWriter.scala deleted file mode 100644 index dba8159ce..000000000 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/RandomTextWriter.scala +++ /dev/null @@ -1,588 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.datagen - -import com.intel.sparkbench.IOCommon -import org.apache.spark.{SparkConf, SparkContext} - -import scala.collection.mutable.ListBuffer - -object RandomTextWriter { - var minWordsInKey:Int = 5 - var maxWordsInKey:Int = 20 - var minWordsInValue:Int = 10 - var maxWordsInValue:Int = 100 - - def generateSentence(noWords:Int):String ={ - var sentence = new ListBuffer[String] - for (i <- 1 to noWords){ - val word:String = words(util.Random.nextInt(words.length)) - sentence += word - } - sentence.mkString(" ") - } - - def main(args: Array[String]): Unit = { - if ((args.length < 2) || ((args.length > 2) && (args.length < 6))){ - System.err.println( - s"Usage: $RandomTextWriter " + - s"[ ]" - ) - System.exit(1) - } - val sparkConf = new SparkConf().setAppName("RandomTextWriter") - val sc = new SparkContext(sparkConf) - val numParallel = sc.getConf.getInt("spark.default.parallelism", sc.defaultParallelism) - val io = new IOCommon(sc) - val totalDataSize = args(1).toLong - - if (args.length>2){ - minWordsInKey = args(2).toInt - maxWordsInKey = args(3).toInt - minWordsInValue = args(4).toInt - maxWordsInValue = args(5).toInt - } - val wordsInKeyRange = maxWordsInKey - minWordsInKey - val wordsInValueRange = maxWordsInValue - minWordsInValue - - val noWordsKey = minWordsInKey + - (if (wordsInKeyRange != 0) util.Random.nextInt(wordsInKeyRange) else 0) - val noWordsValue = minWordsInValue + - (if (wordsInValueRange!=0) util.Random.nextInt(wordsInValueRange) else 0) - - val sizePerTask = totalDataSize / numParallel.toLong - -// sampled over 100 scale - val mean_size = (1 to 100).map(x=> - generateSentence(minWordsInKey) + " " + generateSentence(minWordsInValue) - ).mkString(" ").length() / 100 - - println(s"total:$totalDataSize, mean_size:$mean_size, " + - s"numParallel:$numParallel, HDFS:" + args(0)) - - val data = sc.parallelize(1L to (totalDataSize / mean_size.toLong), numParallel).map{x => - generateSentence(minWordsInKey) + " " + generateSentence(minWordsInValue) - } - - io.save(args(0), data, "sparkbench.inputformat") - sc.stop() - } - - private val words = List[String]( - "diurnalness", "Homoiousian", - "spiranthic", "tetragynian", - "silverhead", "ungreat", - "lithograph", "exploiter", - "physiologian", "by", - "hellbender", "Filipendula", - "undeterring", "antiscolic", - "pentagamist", "hypoid", - "cacuminal", "sertularian", - "schoolmasterism", "nonuple", - "gallybeggar", "phytonic", - "swearingly", "nebular", - "Confervales", "thermochemically", - "characinoid", "cocksuredom", - "fallacious", "feasibleness", - "debromination", "playfellowship", - "tramplike", "testa", - "participatingly", "unaccessible", - "bromate", "experientialist", - "roughcast", "docimastical", - "choralcelo", "blightbird", - "peptonate", "sombreroed", - "unschematized", "antiabolitionist", - "besagne", "mastication", - "bromic", "sviatonosite", - "cattimandoo", "metaphrastical", - "endotheliomyoma", "hysterolysis", - "unfulminated", "Hester", - "oblongly", "blurredness", - "authorling", "chasmy", - "Scorpaenidae", "toxihaemia", - "Dictograph", "Quakerishly", - "deaf", "timbermonger", - "strammel", "Thraupidae", - "seditious", "plerome", - "Arneb", "eristically", - "serpentinic", "glaumrie", - "socioromantic", "apocalypst", - "tartrous", "Bassaris", - "angiolymphoma", "horsefly", - "kenno", "astronomize", - "euphemious", "arsenide", - "untongued", "parabolicness", - "uvanite", "helpless", - "gemmeous", "stormy", - "templar", "erythrodextrin", - "comism", "interfraternal", - "preparative", "parastas", - "frontoorbital", "Ophiosaurus", - "diopside", "serosanguineous", - "ununiformly", "karyological", - "collegian", "allotropic", - "depravity", "amylogenesis", - "reformatory", "epidymides", - "pleurotropous", "trillium", - "dastardliness", "coadvice", - "embryotic", "benthonic", - "pomiferous", "figureheadship", - "Megaluridae", "Harpa", - "frenal", "commotion", - "abthainry", "cobeliever", - "manilla", "spiciferous", - "nativeness", "obispo", - "monilioid", "biopsic", - "valvula", "enterostomy", - "planosubulate", "pterostigma", - "lifter", "triradiated", - "venialness", "tum", - "archistome", "tautness", - "unswanlike", "antivenin", - "Lentibulariaceae", "Triphora", - "angiopathy", "anta", - "Dawsonia", "becomma", - "Yannigan", "winterproof", - "antalgol", "harr", - "underogating", "ineunt", - "cornberry", "flippantness", - "scyphostoma", "approbation", - "Ghent", "Macraucheniidae", - "scabbiness", "unanatomized", - "photoelasticity", "eurythermal", - "enation", "prepavement", - "flushgate", "subsequentially", - "Edo", "antihero", - "Isokontae", "unforkedness", - "porriginous", "daytime", - "nonexecutive", "trisilicic", - "morphiomania", "paranephros", - "botchedly", "impugnation", - "Dodecatheon", "obolus", - "unburnt", "provedore", - "Aktistetae", "superindifference", - "Alethea", "Joachimite", - "cyanophilous", "chorograph", - "brooky", "figured", - "periclitation", "quintette", - "hondo", "ornithodelphous", - "unefficient", "pondside", - "bogydom", "laurinoxylon", - "Shiah", "unharmed", - "cartful", "noncrystallized", - "abusiveness", "cromlech", - "japanned", "rizzomed", - "underskin", "adscendent", - "allectory", "gelatinousness", - "volcano", "uncompromisingly", - "cubit", "idiotize", - "unfurbelowed", "undinted", - "magnetooptics", "Savitar", - "diwata", "ramosopalmate", - "Pishquow", "tomorn", - "apopenptic", "Haversian", - "Hysterocarpus", "ten", - "outhue", "Bertat", - "mechanist", "asparaginic", - "velaric", "tonsure", - "bubble", "Pyrales", - "regardful", "glyphography", - "calabazilla", "shellworker", - "stradametrical", "havoc", - "theologicopolitical", "sawdust", - "diatomaceous", "jajman", - "temporomastoid", "Serrifera", - "Ochnaceae", "aspersor", - "trailmaking", "Bishareen", - "digitule", "octogynous", - "epididymitis", "smokefarthings", - "bacillite", "overcrown", - "mangonism", "sirrah", - "undecorated", "psychofugal", - "bismuthiferous", "rechar", - "Lemuridae", "frameable", - "thiodiazole", "Scanic", - "sportswomanship", "interruptedness", - "admissory", "osteopaedion", - "tingly", "tomorrowness", - "ethnocracy", "trabecular", - "vitally", "fossilism", - "adz", "metopon", - "prefatorial", "expiscate", - "diathermacy", "chronist", - "nigh", "generalizable", - "hysterogen", "aurothiosulphuric", - "whitlowwort", "downthrust", - "Protestantize", "monander", - "Itea", "chronographic", - "silicize", "Dunlop", - "eer", "componental", - "spot", "pamphlet", - "antineuritic", "paradisean", - "interruptor", "debellator", - "overcultured", "Florissant", - "hyocholic", "pneumatotherapy", - "tailoress", "rave", - "unpeople", "Sebastian", - "thermanesthesia", "Coniferae", - "swacking", "posterishness", - "ethmopalatal", "whittle", - "analgize", "scabbardless", - "naught", "symbiogenetically", - "trip", "parodist", - "columniform", "trunnel", - "yawler", "goodwill", - "pseudohalogen", "swangy", - "cervisial", "mediateness", - "genii", "imprescribable", - "pony", "consumptional", - "carposporangial", "poleax", - "bestill", "subfebrile", - "sapphiric", "arrowworm", - "qualminess", "ultraobscure", - "thorite", "Fouquieria", - "Bermudian", "prescriber", - "elemicin", "warlike", - "semiangle", "rotular", - "misthread", "returnability", - "seraphism", "precostal", - "quarried", "Babylonism", - "sangaree", "seelful", - "placatory", "pachydermous", - "bozal", "galbulus", - "spermaphyte", "cumbrousness", - "pope", "signifier", - "Endomycetaceae", "shallowish", - "sequacity", "periarthritis", - "bathysphere", "pentosuria", - "Dadaism", "spookdom", - "Consolamentum", "afterpressure", - "mutter", "louse", - "ovoviviparous", "corbel", - "metastoma", "biventer", - "Hydrangea", "hogmace", - "seizing", "nonsuppressed", - "oratorize", "uncarefully", - "benzothiofuran", "penult", - "balanocele", "macropterous", - "dishpan", "marten", - "absvolt", "jirble", - "parmelioid", "airfreighter", - "acocotl", "archesporial", - "hypoplastral", "preoral", - "quailberry", "cinque", - "terrestrially", "stroking", - "limpet", "moodishness", - "canicule", "archididascalian", - "pompiloid", "overstaid", - "introducer", "Italical", - "Christianopaganism", "prescriptible", - "subofficer", "danseuse", - "cloy", "saguran", - "frictionlessly", "deindividualization", - "Bulanda", "ventricous", - "subfoliar", "basto", - "scapuloradial", "suspend", - "stiffish", "Sphenodontidae", - "eternal", "verbid", - "mammonish", "upcushion", - "barkometer", "concretion", - "preagitate", "incomprehensible", - "tristich", "visceral", - "hemimelus", "patroller", - "stentorophonic", "pinulus", - "kerykeion", "brutism", - "monstership", "merciful", - "overinstruct", "defensibly", - "bettermost", "splenauxe", - "Mormyrus", "unreprimanded", - "taver", "ell", - "proacquittal", "infestation", - "overwoven", "Lincolnlike", - "chacona", "Tamil", - "classificational", "lebensraum", - "reeveland", "intuition", - "Whilkut", "focaloid", - "Eleusinian", "micromembrane", - "byroad", "nonrepetition", - "bacterioblast", "brag", - "ribaldrous", "phytoma", - "counteralliance", "pelvimetry", - "pelf", "relaster", - "thermoresistant", "aneurism", - "molossic", "euphonym", - "upswell", "ladhood", - "phallaceous", "inertly", - "gunshop", "stereotypography", - "laryngic", "refasten", - "twinling", "oflete", - "hepatorrhaphy", "electrotechnics", - "cockal", "guitarist", - "topsail", "Cimmerianism", - "larklike", "Llandovery", - "pyrocatechol", "immatchable", - "chooser", "metrocratic", - "craglike", "quadrennial", - "nonpoisonous", "undercolored", - "knob", "ultratense", - "balladmonger", "slait", - "sialadenitis", "bucketer", - "magnificently", "unstipulated", - "unscourged", "unsupercilious", - "packsack", "pansophism", - "soorkee", "percent", - "subirrigate", "champer", - "metapolitics", "spherulitic", - "involatile", "metaphonical", - "stachyuraceous", "speckedness", - "bespin", "proboscidiform", - "gul", "squit", - "yeelaman", "peristeropode", - "opacousness", "shibuichi", - "retinize", "yote", - "misexposition", "devilwise", - "pumpkinification", "vinny", - "bonze", "glossing", - "decardinalize", "transcortical", - "serphoid", "deepmost", - "guanajuatite", "wemless", - "arval", "lammy", - "Effie", "Saponaria", - "tetrahedral", "prolificy", - "excerpt", "dunkadoo", - "Spencerism", "insatiately", - "Gilaki", "oratorship", - "arduousness", "unbashfulness", - "Pithecolobium", "unisexuality", - "veterinarian", "detractive", - "liquidity", "acidophile", - "proauction", "sural", - "totaquina", "Vichyite", - "uninhabitedness", "allegedly", - "Gothish", "manny", - "Inger", "flutist", - "ticktick", "Ludgatian", - "homotransplant", "orthopedical", - "diminutively", "monogoneutic", - "Kenipsim", "sarcologist", - "drome", "stronghearted", - "Fameuse", "Swaziland", - "alen", "chilblain", - "beatable", "agglomeratic", - "constitutor", "tendomucoid", - "porencephalous", "arteriasis", - "boser", "tantivy", - "rede", "lineamental", - "uncontradictableness", "homeotypical", - "masa", "folious", - "dosseret", "neurodegenerative", - "subtransverse", "Chiasmodontidae", - "palaeotheriodont", "unstressedly", - "chalcites", "piquantness", - "lampyrine", "Aplacentalia", - "projecting", "elastivity", - "isopelletierin", "bladderwort", - "strander", "almud", - "iniquitously", "theologal", - "bugre", "chargeably", - "imperceptivity", "meriquinoidal", - "mesophyte", "divinator", - "perfunctory", "counterappellant", - "synovial", "charioteer", - "crystallographical", "comprovincial", - "infrastapedial", "pleasurehood", - "inventurous", "ultrasystematic", - "subangulated", "supraoesophageal", - "Vaishnavism", "transude", - "chrysochrous", "ungrave", - "reconciliable", "uninterpleaded", - "erlking", "wherefrom", - "aprosopia", "antiadiaphorist", - "metoxazine", "incalculable", - "umbellic", "predebit", - "foursquare", "unimmortal", - "nonmanufacture", "slangy", - "predisputant", "familist", - "preaffiliate", "friarhood", - "corelysis", "zoonitic", - "halloo", "paunchy", - "neuromimesis", "aconitine", - "hackneyed", "unfeeble", - "cubby", "autoschediastical", - "naprapath", "lyrebird", - "inexistency", "leucophoenicite", - "ferrogoslarite", "reperuse", - "uncombable", "tambo", - "propodiale", "diplomatize", - "Russifier", "clanned", - "corona", "michigan", - "nonutilitarian", "transcorporeal", - "bought", "Cercosporella", - "stapedius", "glandularly", - "pictorially", "weism", - "disilane", "rainproof", - "Caphtor", "scrubbed", - "oinomancy", "pseudoxanthine", - "nonlustrous", "redesertion", - "Oryzorictinae", "gala", - "Mycogone", "reappreciate", - "cyanoguanidine", "seeingness", - "breadwinner", "noreast", - "furacious", "epauliere", - "omniscribent", "Passiflorales", - "uninductive", "inductivity", - "Orbitolina", "Semecarpus", - "migrainoid", "steprelationship", - "phlogisticate", "mesymnion", - "sloped", "edificator", - "beneficent", "culm", - "paleornithology", "unurban", - "throbless", "amplexifoliate", - "sesquiquintile", "sapience", - "astucious", "dithery", - "boor", "ambitus", - "scotching", "uloid", - "uncompromisingness", "hoove", - "waird", "marshiness", - "Jerusalem", "mericarp", - "unevoked", "benzoperoxide", - "outguess", "pyxie", - "hymnic", "euphemize", - "mendacity", "erythremia", - "rosaniline", "unchatteled", - "lienteria", "Bushongo", - "dialoguer", "unrepealably", - "rivethead", "antideflation", - "vinegarish", "manganosiderite", - "doubtingness", "ovopyriform", - "Cephalodiscus", "Muscicapa", - "Animalivora", "angina", - "planispheric", "ipomoein", - "cuproiodargyrite", "sandbox", - "scrat", "Munnopsidae", - "shola", "pentafid", - "overstudiousness", "times", - "nonprofession", "appetible", - "valvulotomy", "goladar", - "uniarticular", "oxyterpene", - "unlapsing", "omega", - "trophonema", "seminonflammable", - "circumzenithal", "starer", - "depthwise", "liberatress", - "unleavened", "unrevolting", - "groundneedle", "topline", - "wandoo", "umangite", - "ordinant", "unachievable", - "oversand", "snare", - "avengeful", "unexplicit", - "mustafina", "sonable", - "rehabilitative", "eulogization", - "papery", "technopsychology", - "impressor", "cresylite", - "entame", "transudatory", - "scotale", "pachydermatoid", - "imaginary", "yeat", - "slipped", "stewardship", - "adatom", "cockstone", - "skyshine", "heavenful", - "comparability", "exprobratory", - "dermorhynchous", "parquet", - "cretaceous", "vesperal", - "raphis", "undangered", - "Glecoma", "engrain", - "counteractively", "Zuludom", - "orchiocatabasis", "Auriculariales", - "warriorwise", "extraorganismal", - "overbuilt", "alveolite", - "tetchy", "terrificness", - "widdle", "unpremonished", - "rebilling", "sequestrum", - "equiconvex", "heliocentricism", - "catabaptist", "okonite", - "propheticism", "helminthagogic", - "calycular", "giantly", - "wingable", "golem", - "unprovided", "commandingness", - "greave", "haply", - "doina", "depressingly", - "subdentate", "impairment", - "decidable", "neurotrophic", - "unpredict", "bicorporeal", - "pendulant", "flatman", - "intrabred", "toplike", - "Prosobranchiata", "farrantly", - "toxoplasmosis", "gorilloid", - "dipsomaniacal", "aquiline", - "atlantite", "ascitic", - "perculsive", "prospectiveness", - "saponaceous", "centrifugalization", - "dinical", "infravaginal", - "beadroll", "affaite", - "Helvidian", "tickleproof", - "abstractionism", "enhedge", - "outwealth", "overcontribute", - "coldfinch", "gymnastic", - "Pincian", "Munychian", - "codisjunct", "quad", - "coracomandibular", "phoenicochroite", - "amender", "selectivity", - "putative", "semantician", - "lophotrichic", "Spatangoidea", - "saccharogenic", "inferent", - "Triconodonta", "arrendation", - "sheepskin", "taurocolla", - "bunghole", "Machiavel", - "triakistetrahedral", "dehairer", - "prezygapophysial", "cylindric", - "pneumonalgia", "sleigher", - "emir", "Socraticism", - "licitness", "massedly", - "instructiveness", "sturdied", - "redecrease", "starosta", - "evictor", "orgiastic", - "squdge", "meloplasty", - "Tsonecan", "repealableness", - "swoony", "myesthesia", - "molecule", "autobiographist", - "reciprocation", "refective", - "unobservantness", "tricae", - "ungouged", "floatability", - "Mesua", "fetlocked", - "chordacentrum", "sedentariness", - "various", "laubanite", - "nectopod", "zenick", - "sequentially", "analgic", - "biodynamics", "posttraumatic", - "nummi", "pyroacetic", - "bot", "redescend", - "dispermy", "undiffusive", - "circular", "trillion", - "Uraniidae", "ploration", - "discipular", "potentness", - "sud", "Hu", - "Eryon", "plugger", - "subdrainage", "jharal", - "abscission", "supermarket", - "countergabion", "glacierist", - "lithotresis", "minniebush", - "zanyism", "eucalypteol", - "sterilely", "unrealize", - "unpatched", "hypochondriacism", - "critically", "cheesecutter" - ) -} diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/BayesConvert.scala b/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/BayesConvert.scala deleted file mode 100644 index f762bfb7d..000000000 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/BayesConvert.scala +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package com.intel.sparkbench.datagen.convert - -import org.apache.hadoop.conf.Configuration -import org.apache.hadoop.io.Text -import org.apache.spark.SparkContext._ -import org.apache.spark.{SparkConf, SparkContext} - -object BayesConvert{ - val conf = new Configuration() - def main(args: Array[String]){ - if (args.length!=1){ - System.err.println("Usage: Convert ") - System.exit(1) - } - - val sparkConf = new SparkConf().setAppName("HiBench Bayes Converter") - val sc = new SparkContext(sparkConf) - - val input_path = args(0) //"hdfs://localhost:54310/HiBench/Bayes/Input" - val output_vector_name = input_path + "/vectors.txt" - val parallel = sc.getConf.getInt("spark.default.parallelism", sc.defaultParallelism) - - val data = sc.sequenceFile[Text, Text](input_path).map{case(k, v) => (k.toString, v.toString)} - - val wordcount = data.flatMap{case(key, doc) => doc.split(" ")} - .map(word => (word, 1)) - .reduceByKey(_ + _) - val wordsum = wordcount.map(_._2).reduce(_ + _) - - val word_dict = wordcount.zipWithIndex() - .map{case ((key, count), index) => - (key, (index, count.toDouble / wordsum))} - .collectAsMap() - val shared_word_dict = sc.broadcast(word_dict) - - // for each document, generate vector based on word freq - val vector = data.map { case (key, doc) => - val doc_vector = doc.split(" ").map(x => shared_word_dict.value(x)) //map to word index: freq - .groupBy(_._1) // combine freq with same word - .map { case (k, v) => (k, v.map(_._2).sum)} - - val sorted_doc_vector = doc_vector.toList.sortBy(_._1) - .map { case (k, v) => "%d:%f".format(k + 1, // LIBSVM's index starts from 1 !!! - v)} // convert to LIBSVM format - - // key := /classXXX - // key.substring(6) := XXX - // label index1:value1 index2:value2 ... - key.substring(6) + " " + sorted_doc_vector.mkString(" ") - } - vector.repartition(parallel).saveAsTextFile(output_vector_name) - sc.stop() - } -} diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/KmeansConvert.scala b/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/KmeansConvert.scala deleted file mode 100644 index 789f0ae8e..000000000 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/KmeansConvert.scala +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.datagen.convert - -import org.apache.hadoop.conf.Configuration -import org.apache.hadoop.io.LongWritable -import org.apache.mahout.math.VectorWritable -import org.apache.spark.SparkContext._ -import org.apache.spark.{SparkConf, SparkContext} - -object KmeansConvert{ - val conf = new Configuration() - def main(args: Array[String]) { - if ( args.length != 2 ) { - System.err.println("Usage: Convert ") - System.exit(1) - } - - val sparkConf = new SparkConf().setAppName("HiBench KMeans Converter") - val sc = new SparkContext(sparkConf) - - val input_path = args(0) //"hdfs://localhost:54310/SparkBench/KMeans/Input/samples/" - val output_name = args(1) //"/HiBench/KMeans/Input/samples.txt" - val parallel = sc.getConf.getInt("spark.default.parallelism", sc.defaultParallelism) - - val data = sc.sequenceFile[LongWritable, VectorWritable](input_path) - data.map { case (k, v) => - var vector: Array[Double] = new Array[Double](v.get().size) - for (i <- 0 until v.get().size) vector(i) = v.get().get(i) - vector.mkString(" ") - }.repartition(parallel).saveAsTextFile(output_name) - sc.stop() - } -} diff --git a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/PagerankConvert.scala b/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/PagerankConvert.scala deleted file mode 100644 index 8ada43b6f..000000000 --- a/src/sparkbench/src/main/scala/com/intel/sparkbench/datagen/convert/PagerankConvert.scala +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.datagen.convert - -import org.apache.hadoop.conf.Configuration -import org.apache.spark.{SparkConf, SparkContext} - -object PagerankConvert{ - val conf = new Configuration() - def main(args: Array[String]){ - if (args.length != 2){ - System.err.println("Usage: Convert ") - System.exit(1) - } - - val sparkConf = new SparkConf().setAppName("HiBench PageRank Converter") - val sc = new SparkContext(sparkConf) - - val input_path = args(0) //"/HiBench/Pagerank/Input/edges" - val output_name = args(1) // "/HiBench/Pagerank/Input/edges.txt" - val parallel = sc.getConf.getInt("spark.default.parallelism", sc.defaultParallelism) - - val data = sc.textFile(input_path).map{case(line)=> - val elements = line.split('\t') - val elements_tuple = elements.slice(elements.length-2, elements.length) - "%s %s".format(elements_tuple(0), elements_tuple(1)) - } - - data.repartition(parallel).saveAsTextFile(output_name) - sc.stop() - } -} diff --git a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR1/JavaTeraSort.java b/src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR1/JavaTeraSort.java deleted file mode 100644 index 43f3e2917..000000000 --- a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR1/JavaTeraSort.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.terasort; - -import com.intel.sparkbench.IOCommon; -import org.apache.spark.BaseRangePartitioner; -import org.apache.spark.ConfigurableJavaPairRDD; -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.Function; -import org.apache.spark.api.java.function.PairFunction; - -import java.util.regex.Pattern; - -public final class JavaTeraSort { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 2) { - System.err.println("Usage: JavaTeraSort "); - System.exit(1); - } - - SparkConf sparkConf = new SparkConf().setAppName("JavaTeraSort"); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - JavaRDD lines = ctx.textFile(args[0], 1); - Integer parallel = sparkConf.getInt("spark.default.parallelism", ctx.defaultParallelism()); - Integer reducer = Integer.parseInt(IOCommon.getProperty("hibench.default.shuffle.parallelism").get()); - JavaPairRDD words = lines.mapToPair(new PairFunction() { - @Override - public Tuple2 call(String s) throws Exception { - return new Tuple2(s.substring(0, 10), s.substring(10)); - } - }); - - - JavaPairRDD sorted = words.sortByKey(true, reducer); - - JavaRDD result = sorted.map(new Function, String>() { - @Override - public String call(Tuple2 e) throws Exception { - return e._1() + e._2(); - } - }); - - result.saveAsTextFile(args[1]); - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR2/JavaTeraSort.java b/src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR2/JavaTeraSort.java deleted file mode 100644 index 667adab9f..000000000 --- a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/MR2/JavaTeraSort.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.terasort; - -import com.google.common.collect.Ordering; -import com.intel.sparkbench.IOCommon; -import org.apache.hadoop.examples.terasort.TeraInputFormat; -import org.apache.hadoop.examples.terasort.TeraOutputFormat; -import org.apache.hadoop.io.Text; -import org.apache.spark.SerializableWritable; -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.PairFunction; - -import java.io.Serializable; -import java.util.Comparator; -import java.util.regex.Pattern; - -public final class JavaTeraSort { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 2) { - System.err.println("Usage: JavaTeraSort "); - System.exit(1); - } - - SparkConf sparkConf = new SparkConf().setAppName("JavaTeraSort"); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - JavaPairRDD lines = ctx.newAPIHadoopFile(args[0], TeraInputFormat.class, Text.class, Text.class, ctx.hadoopConfiguration()); - Integer parallel = sparkConf.getInt("spark.default.parallelism", ctx.defaultParallelism()); - Integer reducer = Integer.parseInt(IOCommon.getProperty("hibench.default.shuffle.parallelism").get()); - JavaPairRDD words = lines.mapToPair(new PairFunction, byte[], byte[]>() { - @Override - public Tuple2 call(Tuple2 e) throws Exception { - return new Tuple2(e._1().copyBytes(), e._2().copyBytes()); - } - }); - - abstract class InlineComparator implements Comparator, Serializable{ - - } - - JavaPairRDD sorted = words.sortByKey(new InlineComparator() { - @Override - public int compare(byte[] o1, byte[] o2) { - int i; - if (o1==o2) return 0; - if (o1 == null) return -1; - if (o2 == null) return 1; - for (i=0; i< (o1.length result = sorted.mapToPair(new PairFunction, Text, Text>() { - @Override - public Tuple2 call(Tuple2 e) throws Exception { - return new Tuple2(new Text(e._1()), - new Text(e._2())); - } - }); - result.saveAsNewAPIHadoopFile(args[1], Text.class, Text.class, TeraOutputFormat.class); - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.2/JavaSparkSQLBench.java b/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.2/JavaSparkSQLBench.java deleted file mode 100644 index 6aab9f528..000000000 --- a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.2/JavaSparkSQLBench.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intel.sparkbench.sql; - -import org.apache.spark.sql.hive.api.java.JavaHiveContext; -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFunction; - -import java.io.FileReader; -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -/* - * ported from HiBench's hive bench - */ -public final class JavaSparkSQLBench { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 2) { - System.err.println("Usage: JavaSparkSqlBench "); - System.exit(1); - } - String workload_name = args[0]; - String sql_script = args[1]; - SparkConf sparkConf = new SparkConf().setAppName(workload_name); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - JavaHiveContext hc = new JavaHiveContext(ctx); - FileReader in = new FileReader(sql_script); - StringBuilder contents = new StringBuilder(); - char[] buffer = new char[40960]; - int read = 0; - do { - contents.append(buffer, 0, read); - read = in.read(buffer); - } while (read >= 0); - - for (String s : contents.toString().split(";")) { - if (!s.trim().isEmpty()) { - hc.sql(s); - } - } - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.3/JavaSparkSQLBench.java b/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.3/JavaSparkSQLBench.java deleted file mode 100644 index b006c240e..000000000 --- a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.3/JavaSparkSQLBench.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intel.sparkbench.sql; - -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.sql.hive.HiveContext; - -import java.io.FileReader; -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -/* - * ported from HiBench's hive bench - */ -public final class JavaSparkSQLBench { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 2) { - System.err.println("Usage: JavaSparkSqlBench "); - System.exit(1); - } - String workload_name = args[0]; - String sql_script = args[1]; - SparkConf sparkConf = new SparkConf().setAppName(workload_name); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - HiveContext hc = new HiveContext(ctx.sc()); - FileReader in = new FileReader(sql_script); - StringBuilder contents = new StringBuilder(); - char[] buffer = new char[40960]; - int read = 0; - do { - contents.append(buffer, 0, read); - read = in.read(buffer); - } while (read >= 0); - - for (String s : contents.toString().split(";")) { - if (!s.trim().isEmpty()) { - hc.sql(s); - } - } - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.4/JavaSparkSQLBench.java b/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.4/JavaSparkSQLBench.java deleted file mode 100644 index b006c240e..000000000 --- a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.4/JavaSparkSQLBench.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intel.sparkbench.sql; - -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.sql.hive.HiveContext; - -import java.io.FileReader; -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -/* - * ported from HiBench's hive bench - */ -public final class JavaSparkSQLBench { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 2) { - System.err.println("Usage: JavaSparkSqlBench "); - System.exit(1); - } - String workload_name = args[0]; - String sql_script = args[1]; - SparkConf sparkConf = new SparkConf().setAppName(workload_name); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - HiveContext hc = new HiveContext(ctx.sc()); - FileReader in = new FileReader(sql_script); - StringBuilder contents = new StringBuilder(); - char[] buffer = new char[40960]; - int read = 0; - do { - contents.append(buffer, 0, read); - read = in.read(buffer); - } while (read >= 0); - - for (String s : contents.toString().split(";")) { - if (!s.trim().isEmpty()) { - hc.sql(s); - } - } - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.5/JavaSparkSQLBench.java b/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.5/JavaSparkSQLBench.java deleted file mode 100644 index b006c240e..000000000 --- a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.5/JavaSparkSQLBench.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intel.sparkbench.sql; - -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.sql.hive.HiveContext; - -import java.io.FileReader; -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -/* - * ported from HiBench's hive bench - */ -public final class JavaSparkSQLBench { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 2) { - System.err.println("Usage: JavaSparkSqlBench "); - System.exit(1); - } - String workload_name = args[0]; - String sql_script = args[1]; - SparkConf sparkConf = new SparkConf().setAppName(workload_name); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - HiveContext hc = new HiveContext(ctx.sc()); - FileReader in = new FileReader(sql_script); - StringBuilder contents = new StringBuilder(); - char[] buffer = new char[40960]; - int read = 0; - do { - contents.append(buffer, 0, read); - read = in.read(buffer); - } while (read >= 0); - - for (String s : contents.toString().split(";")) { - if (!s.trim().isEmpty()) { - hc.sql(s); - } - } - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.6/JavaSparkSQLBench.java b/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.6/JavaSparkSQLBench.java deleted file mode 100644 index b006c240e..000000000 --- a/src/sparkbench/src/multiapi/java/com/intel/sparkbench/spark1.6/JavaSparkSQLBench.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intel.sparkbench.sql; - -import scala.Tuple2; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.Function2; -import org.apache.spark.api.java.function.PairFunction; -import org.apache.spark.sql.hive.HiveContext; - -import java.io.FileReader; -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -/* - * ported from HiBench's hive bench - */ -public final class JavaSparkSQLBench { - private static final Pattern SPACE = Pattern.compile(" "); - - public static void main(String[] args) throws Exception { - - if (args.length < 2) { - System.err.println("Usage: JavaSparkSqlBench "); - System.exit(1); - } - String workload_name = args[0]; - String sql_script = args[1]; - SparkConf sparkConf = new SparkConf().setAppName(workload_name); - JavaSparkContext ctx = new JavaSparkContext(sparkConf); - HiveContext hc = new HiveContext(ctx.sc()); - FileReader in = new FileReader(sql_script); - StringBuilder contents = new StringBuilder(); - char[] buffer = new char[40960]; - int read = 0; - do { - contents.append(buffer, 0, read); - read = in.read(buffer); - } while (read >= 0); - - for (String s : contents.toString().split(";")) { - if (!s.trim().isEmpty()) { - hc.sql(s); - } - } - - ctx.stop(); - } -} - diff --git a/src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR1/ScalaTeraSort.scala b/src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR1/ScalaTeraSort.scala deleted file mode 100644 index 3c89aaddf..000000000 --- a/src/sparkbench/src/multiapi/scala/com/intel/sparkbench/MR1/ScalaTeraSort.scala +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.sparkbench.terasort - -import com.intel.sparkbench.IOCommon -import org.apache.spark._ -import org.apache.spark.rdd._ - -import scala.reflect.ClassTag - -object ScalaTeraSort { - implicit def rddToSampledOrderedRDDFunctions[K: Ordering : ClassTag, V: ClassTag] - (rdd: RDD[(K, V)]) = new ConfigurableOrderedRDDFunctions[K, V, (K, V)](rdd) - - def main(args: Array[String]) { - if (args.length != 2) { - System.err.println( - s"Usage: $ScalaTeraSort " - ) - System.exit(1) - } - val sparkConf = new SparkConf().setAppName("ScalaTeraSort") - val sc = new SparkContext(sparkConf) - val io = new IOCommon(sc) - - val file = io.load[String](args(0), Some("Text")) - val parallel = sc.getConf.getInt("spark.default.parallelism", sc.defaultParallelism) - val reducer = IOCommon.getProperty("hibench.default.shuffle.parallelism") - .getOrElse((parallel / 2).toString).toInt - val data = file.map{line => - (line.substring(0, 10), line.substring(10))} - - val partitioner = new BaseRangePartitioner(partitions = reducer, rdd = data) - val sorted_data = data.sortByKeyWithPartitioner(partitioner = partitioner) - .map{case (k, v) => k + v} - io.save(args(1), sorted_data) - - sc.stop() - } -} diff --git a/src/streambench/datagen/lib/kafka-clients-0.8.1.jar b/src/streambench/datagen/lib/kafka-clients-0.8.1.jar deleted file mode 100644 index d77c0fef8..000000000 Binary files a/src/streambench/datagen/lib/kafka-clients-0.8.1.jar and /dev/null differ diff --git a/src/streambench/datagen/pom.xml b/src/streambench/datagen/pom.xml deleted file mode 100644 index b2b435b54..000000000 --- a/src/streambench/datagen/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - 4.0.0 - - - com.intel.hibench - streambench - 5.0-SNAPSHOT - - - com.intel.hibench.streambench - datagen - 0.0.1 - Streamingbench data generation tools - - - org.apache.kafka - kafka-clients - 0.8.1 - system - ${basedir}/lib/kafka-clients-0.8.1.jar - - - org.apache.hadoop - hadoop-hdfs - ${hadoop.mr2.version} - - - org.apache.hadoop - hadoop-client - ${hadoop.mr2.version} - - - - - - - maven-assembly-plugin - ${maven-assembly-plugin.version} - - ${project.build.finalName} - - jar-with-dependencies - - - - - make-assembly - package - - single - - - - - - - - diff --git a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/FileDataGenNew.java b/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/FileDataGenNew.java deleted file mode 100644 index f20e700cb..000000000 --- a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/FileDataGenNew.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench; - -import java.io.*; -import java.util.Enumeration; -import java.util.Vector; - -import org.apache.hadoop.fs.*; -import org.apache.hadoop.conf.*; - -public class FileDataGenNew { - Configuration fsConf = new Configuration(); - - FileDataGenNew(String HDFSMaster) { - fsConf.set("fs.default.name", HDFSMaster); - } - - public BufferedReader loadDataFromFile(String filepath, long offset) { - try { - Path pt = new Path(filepath); - FileSystem fs = FileSystem.get(fsConf); - InputStreamReader isr; - if (fs.isDirectory(pt)) { // multiple parts - isr = new InputStreamReader(OpenMultiplePartsWithOffset(fs, pt, offset)); - } else { // single file - FSDataInputStream fileHandler = fs.open(pt); - if (offset > 0) fileHandler.seek(offset); - isr = new InputStreamReader(fileHandler); - } - - BufferedReader reader = new BufferedReader(isr); - if (offset > 0) reader.readLine(); // skip first line in case of seek - return reader; - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - private InputStream OpenMultiplePartsWithOffset(FileSystem fs, Path pt, long offset) throws IOException { - System.out.println("Opening files, path:" + pt + " offset:" + offset); - RemoteIterator rit = fs.listFiles(pt, false); - Vector fileHandleList = new Vector(); - while (rit.hasNext()) { - Path path = rit.next().getPath(); - String filename = path.toString().substring(path.getParent().toString().length(), path.toString().length()); - - if (filename.startsWith("/part-")) { - long filesize = fs.getFileStatus(path).getLen(); - if (offset < filesize) { - FSDataInputStream handle = fs.open(path); - if (offset > 0) { - handle.seek(offset); - } - fileHandleList.add(handle); - } - offset -= filesize; - } - } - if (fileHandleList.size() == 1) return fileHandleList.get(0); - else if (fileHandleList.size() > 1) { - Enumeration enu = fileHandleList.elements(); - return new SequenceInputStream(enu); - } else { - System.err.println("Error, no source file loaded. run genSeedDataset.sh first!"); - return null; - } - } -} diff --git a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/NewKafkaConnector.java b/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/NewKafkaConnector.java deleted file mode 100644 index 26d77638d..000000000 --- a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/NewKafkaConnector.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench; - -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Properties; - -import com.intel.hibench.streambench.utils.ConfigLoader; - -import org.apache.kafka.clients.producer.Callback; -import org.apache.kafka.clients.producer.KafkaProducer; -import org.apache.kafka.clients.producer.ProducerConfig; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.apache.kafka.clients.producer.RecordMetadata; - -public class NewKafkaConnector { - - KafkaProducer producer; - private static final int MAXIMUM_NUMERIC_COLUMNS = 2048; // assume maximum dimension of k means data is 2048. Should be large enough. - private Integer[] NumericData = new Integer[MAXIMUM_NUMERIC_COLUMNS]; - private int Data1Length; - - public NewKafkaConnector(String brokerList, ConfigLoader cl) { - Properties props = new Properties(); - props.setProperty(ProducerConfig.REQUIRED_ACKS_CONFIG, "1"); - props.setProperty(ProducerConfig.BROKER_LIST_CONFIG, brokerList); - props.setProperty(ProducerConfig.METADATA_FETCH_TIMEOUT_CONFIG, Integer.toString(5 * 1000)); - props.setProperty(ProducerConfig.REQUEST_TIMEOUT_CONFIG, Integer.toString(Integer.MAX_VALUE)); - producer = new KafkaProducer(props); - Data1Length = Integer.parseInt(cl.getProperty("hibench.streamingbench.datagen.data1.length")); - } - - private String parseUserVisitTable(String line, int MaximumLength) { - // raw uservisit table format: - // 0 227.209.164.46,nbizrgdziebsaecsecujfjcqtvnpcnxxwiopmddorcxnlijdizgoi,1991-06-10,0.115967035,Mozilla/5.0 (iPhone; U; CPU like Mac OS X)AppleWebKit/420.1 (KHTML like Gecko) Version/3.0 Mobile/4A93Safari/419.3,YEM,YEM-AR,snowdrops,1 - // 0 35.143.225.164,nbizrgdziebsaecsecujfjcqtvnpcnxxwiopmddorcxnlijdizgoi,1996-05-31,0.8792629,Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML like Gecko) Chrome/0.2.149.27 Safari/525.13,PRT,PRT-PT,fraternally,8 - // 0 34.57.45.175,nbizrgdziebtsaecsecujfjcqtvnpcnxxwiopmddorcxnlijdizgoi,2001-06-29,0.14202267,Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1),DOM,DOM-ES,Gaborone's,7 - - String[] elements = line.split("[\\s,]+"); - StringBuffer sb = new StringBuffer(); - sb.append(elements[0]); - sb.append(elements[1]); - sb.append(elements[3] + " 00:00:00"); - sb.append(elements[4]); - sb.append(elements[2]); - - String result = sb.toString(); - return String.format("%s%n", (result.length() < MaximumLength) ? result : result.substring(0, MaximumLength)); - } - - private String parseNumeric(String line) { - // raw numeric data format: - // 8 {0:-60.196392992004334,5:620.4421901009101,14:420.4220612785746,13:185.21083185702275,15:483.72692251215295,1:594.7827813502976,3:140.3239790342253,16:3.104707691856035,9:635.8535653005378,19:322.0711157700041,11:87.66295667498484,18:857.7858889856491,17:101.49594891724111,2:921.839749304954,6:697.4655671122938,7:367.3720748762538,8:855.4795500704753,10:564.4074585413068,4:913.7870598326768,12:275.71369666459043} - // 9 {0:53.780307992655864,5:670.9608085434543,14:427.8278718060577,13:-42.1599560546298,15:509.38987065684455,1:575.0478527061222,3:111.01989708300927,16:48.39876690814693,9:546.0244129369196,19:344.88758399392515,11:35.63727678698427,18:826.8387868256459,17:100.39105575653751,2:972.7568962232599,6:743.3101817500838,7:367.5321255830725,8:897.5852428056947,10:705.1143980643583,4:891.1293114411877,12:364.63401807787426} - - String[] elements = line.split("[{}:,\\s]+"); - int idx = -1; - int maxidx = -1; - for (int count = 0; count < elements.length; count++) { - if (count == 0) continue; //omit first element - if (count % 2 == 1) idx = Integer.parseInt(elements[count]); - else { - int val = (int) Float.parseFloat(elements[count]); - assert idx >= 0 : String.format("index value should be greater than zero!, got:%d", idx); - assert idx < MAXIMUM_NUMERIC_COLUMNS : String.format("index value %d exceed range of %d", idx, MAXIMUM_NUMERIC_COLUMNS); - NumericData[idx] = val; - if (maxidx < idx) maxidx = idx; - } - } - - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < NumericData.length; i++) { - int val = NumericData[i]; - sb.append(val + " "); - } - String result = sb.toString(); - return String.format("%s%n", result.substring(0, result.length() - 1)); - } - - /** - * Returns the actual number of sent records - */ - public long sendRecords(BufferedReader reader, String topic, long totalRecord, boolean isNumericData) { - long start = System.currentTimeMillis(); - long bytesSent = 0L; - long recordsSent = 0L; - - Callback callback = new Callback() { - public void onCompletion(RecordMetadata metadata, Exception e) { - if (e != null) - e.printStackTrace(); - } - }; - - ByteArrayOutputStream ous = new ByteArrayOutputStream(); - try { - while (recordsSent < totalRecord) { - String line = reader.readLine(); - if (line == null) { - break; - } - if (isNumericData) { - ous.write(parseNumeric(line).getBytes()); - } else { - ous.write(parseUserVisitTable(line, Data1Length).getBytes()); - } - if (ous.size() == 0) { - break; // no more data got, let's break - } - ProducerRecord record = new ProducerRecord(topic, ous.toByteArray()); - producer.send(record, callback); - - recordsSent ++; - bytesSent += ous.size(); - ous.reset(); - } - ous.close(); - } catch (IOException e) { - e.printStackTrace(); - } - - long end = System.currentTimeMillis(); - System.out.println("Records sent: " + recordsSent); - System.out.println("Bytes sent: " + bytesSent); - System.out.println("Time consumed(sec):" + (end - start) / 1000.0); - double seconds = (double) (end - start) / (double) 1000; - double throughput = ((double) bytesSent / seconds) / 1000000; - System.out.println("Throughput: " + throughput + "MB/s"); - - return recordsSent; - } - - public void close() { - producer.close(); - } -} diff --git a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartNew.java b/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartNew.java deleted file mode 100644 index 17cc065b8..000000000 --- a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartNew.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench; - -import com.intel.hibench.streambench.utils.ConfigLoader; - -import java.io.BufferedReader; - -//Data generators are deployed in different nodes and run by launching them near simultaneously in different nodes. -public class StartNew { - - private static String benchName; - private static String HDFSMaster; - private static String dataFile1; - private static long dataFile1Offset; - private static String dataFile2; - private static long dataFile2Offset; - - public static void main(String[] args) { - if (args.length < 5) { - System.err.println("args: need to be specified!"); - System.exit(1); - } - - ConfigLoader cl = new ConfigLoader(args[0]); - - benchName = cl.getProperty("hibench.streamingbench.benchname").toLowerCase(); - String topic = cl.getProperty("hibench.streamingbench.topic_name"); - String brokerList = cl.getProperty("hibench.streamingbench.brokerList"); - HDFSMaster = cl.getProperty("hibench.hdfs.master"); - long totalCount = Long.parseLong(cl.getProperty("hibench.streamingbench.prepare.push.records")); - dataFile1 = args[1]; - dataFile1Offset = Long.parseLong(args[2]); - dataFile2 = args[3]; - dataFile2Offset = Long.parseLong(args[4]); - boolean isNumericData = false; - if (benchName.contains("statistics")) { - isNumericData = true; - } - - NewKafkaConnector con = new NewKafkaConnector(brokerList, cl); - - long recordsSent = 0L; - while (recordsSent < totalCount) { - recordsSent += con.sendRecords(getReader(), topic, totalCount - recordsSent, isNumericData); - } - - con.close(); - } - - public static BufferedReader getReader() { - FileDataGenNew files = new FileDataGenNew(HDFSMaster); - if (benchName.contains("statistics")) { - return files.loadDataFromFile(dataFile2, dataFile2Offset); - } else { - return files.loadDataFromFile(dataFile1, dataFile1Offset); - } - } -} diff --git a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartPeriodic.java b/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartPeriodic.java deleted file mode 100644 index 06db678a9..000000000 --- a/src/streambench/datagen/src/main/java/com/intel/hibench/streambench/StartPeriodic.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench; - -import com.intel.hibench.streambench.utils.ConfigLoader; - -import java.io.BufferedReader; -import java.util.Timer; -import java.util.TimerTask; - - -public class StartPeriodic { - - private static String benchName; - private static String HDFSMaster; - private static String dataFile1; - private static long dataFile1Offset; - private static String dataFile2; - private static long dataFile2Offset; - - public static void main(String[] args) { - - if (args.length < 5) { - System.err.println("args: need to be specified!"); - System.exit(1); - } - - ConfigLoader cl = new ConfigLoader(args[0]); - - benchName = cl.getProperty("hibench.streamingbench.benchname").toLowerCase(); - String topic = cl.getProperty("hibench.streamingbench.topic_name"); - String brokerList = cl.getProperty("hibench.streamingbench.brokerList"); - int recordPerInterval = Integer.parseInt(cl.getProperty("hibench.streamingbench.prepare.periodic.recordPerInterval")); - int intervalSpan = Integer.parseInt(cl.getProperty("hibench.streamingbench.prepare.periodic.intervalSpan")); - int totalRound = Integer.parseInt(cl.getProperty("hibench.streamingbench.prepare.periodic.totalRound")); - HDFSMaster = cl.getProperty("hibench.hdfs.master"); - dataFile1 = args[1]; - dataFile1Offset = Long.parseLong(args[2]); - dataFile2 = args[3]; - dataFile2Offset = Long.parseLong(args[4]); - boolean isNumericData = false; - if (benchName.contains("statistics")) { - isNumericData = true; - } - - NewKafkaConnector con = new NewKafkaConnector(brokerList, cl); - - Timer timer = new Timer(); - timer.schedule(new SendTask(totalRound, recordPerInterval, con, topic, isNumericData), 0, intervalSpan); - System.out.println("Timer scheduled."); - } - - public static BufferedReader getReader() { - FileDataGenNew files = new FileDataGenNew(HDFSMaster); - if (benchName.contains("statistics")) { - return files.loadDataFromFile(dataFile2, dataFile2Offset); - } else { - return files.loadDataFromFile(dataFile1, dataFile1Offset); - } - } - - static class SendTask extends TimerTask { - int leftTimes; - int recordCount; - int totalTimes; - NewKafkaConnector kafkaCon; - String topic; - long totalRecords; - boolean isNumericData; - - public SendTask(int times, int count, NewKafkaConnector con, String topic, boolean isNumericData) { - leftTimes = times; - recordCount = count; - totalTimes = times; - kafkaCon = con; - this.topic = topic; - totalRecords = 0; - this.isNumericData = isNumericData; - } - - @Override - public void run() { - System.out.println("Task run, remains:" + leftTimes); - if (leftTimes > 0) { - long recordsSent = 0L; - while (recordsSent < recordCount) { - recordsSent += kafkaCon.sendRecords(getReader(), topic, recordCount - recordsSent, isNumericData); - } - totalRecords += recordsSent; - leftTimes--; - } else { - System.out.println("Time's up! Total records sent:" + totalRecords); - kafkaCon.close(); - System.exit(0); - } - } - } -} diff --git a/src/streambench/datagen/src/main/resources/.gitignore b/src/streambench/datagen/src/main/resources/.gitignore deleted file mode 100644 index dc44fc788..000000000 --- a/src/streambench/datagen/src/main/resources/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -test1.data -test2.data diff --git a/src/streambench/pom.xml b/src/streambench/pom.xml deleted file mode 100644 index 0225018cf..000000000 --- a/src/streambench/pom.xml +++ /dev/null @@ -1,35 +0,0 @@ - - 4.0.0 - - - com.intel.hibench - hibench - 5.0-SNAPSHOT - - - com.intel.hibench - streambench - 5.0-SNAPSHOT - pom - Streamingbench - - - - github-releases - http://oss.sonatype.org/content/repositories/github-releases/ - - - clojars.org - http://clojars.org/repo - - - - - datagen - zkHelper - sparkbench - stormbench - samzabench - - diff --git a/src/streambench/samzabench/pom.xml b/src/streambench/samzabench/pom.xml deleted file mode 100644 index fba04fd81..000000000 --- a/src/streambench/samzabench/pom.xml +++ /dev/null @@ -1,163 +0,0 @@ - - 4.0.0 - - - com.intel.hibench - streambench - 5.0-SNAPSHOT - - - - 3.0.0 - - - com.intel.RPCcloud - streaming-bench-samza - 0.1-SNAPSHOT - jar - Streaming Benchmark Samza - - - - UTF-8 - 0.8.0 - - - - - org.apache.samza - samza-api - ${samza.version} - - - org.apache.samza - samza-core_2.10 - ${samza.version} - - - org.apache.samza - samza-log4j - ${samza.version} - - - org.apache.samza - samza-shell - dist - tgz - ${samza.version} - - - org.apache.samza - samza-yarn_2.10 - ${samza.version} - - - org.apache.samza - samza-kv_2.10 - ${samza.version} - - - org.apache.samza - samza-kv-rocksdb_2.10 - ${samza.version} - - - org.apache.samza - samza-kafka_2.10 - ${samza.version} - - - org.apache.kafka - kafka_2.10 - 0.8.2.1 - - - org.schwering - irclib - 1.10 - - - org.slf4j - slf4j-api - ${slf4j.version} - - - org.slf4j - slf4j-log4j12 - ${slf4j.version} - - - org.codehaus.jackson - jackson-jaxrs - 1.8.5 - - - org.apache.hadoop - hadoop-hdfs - ${hadoop.mr2.version} - - - commons-lang - commons-lang - 2.6 - - - - - - my-local-repo - file://${user.home}/.m2/repository - - - apache-releases - https://repository.apache.org/content/groups/public - - - scala-tools.org - Scala-tools Maven2 Repository - https://oss.sonatype.org/content/groups/scala-tools - - - - - - scala-tools.org - Scala-tools Maven2 Repository - http://scala-tools.org/repo-releases - - - - - src/main - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - 1.6 - 1.6 - - - - maven-assembly-plugin - 2.3 - - - src/assembly/src.xml - - - - - make-assembly - package - - single - - - - - - - diff --git a/src/streambench/samzabench/scripts/distinctcount.sh b/src/streambench/samzabench/scripts/distinctcount.sh deleted file mode 100644 index 1405a5c56..000000000 --- a/src/streambench/samzabench/scripts/distinctcount.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -samza-submit extractfordistinctcount -samza-submit distinctcount -samza-submit metrics - diff --git a/src/streambench/samzabench/scripts/grep.sh b/src/streambench/samzabench/scripts/grep.sh deleted file mode 100644 index 5f2cf5c72..000000000 --- a/src/streambench/samzabench/scripts/grep.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -samza-submit grep -samza-submit metrics \ No newline at end of file diff --git a/src/streambench/samzabench/scripts/identity.sh b/src/streambench/samzabench/scripts/identity.sh deleted file mode 100644 index 6f8b4a296..000000000 --- a/src/streambench/samzabench/scripts/identity.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -samza-submit identity -samza-submit metrics \ No newline at end of file diff --git a/src/streambench/samzabench/scripts/project.sh b/src/streambench/samzabench/scripts/project.sh deleted file mode 100644 index a435ef3ce..000000000 --- a/src/streambench/samzabench/scripts/project.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -samza-submit project -samza-submit metrics \ No newline at end of file diff --git a/src/streambench/samzabench/scripts/sample.sh b/src/streambench/samzabench/scripts/sample.sh deleted file mode 100644 index 6f0d38db1..000000000 --- a/src/streambench/samzabench/scripts/sample.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -samza-submit sample -samza-submit metrics \ No newline at end of file diff --git a/src/streambench/samzabench/scripts/statistics.sh b/src/streambench/samzabench/scripts/statistics.sh deleted file mode 100644 index af5bc139a..000000000 --- a/src/streambench/samzabench/scripts/statistics.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -samza-submit extractforstatistics -samza-submit statistics -samza-submit metrics \ No newline at end of file diff --git a/src/streambench/samzabench/scripts/wordcount.sh b/src/streambench/samzabench/scripts/wordcount.sh deleted file mode 100644 index b75359eba..000000000 --- a/src/streambench/samzabench/scripts/wordcount.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -samza-submit split -samza-submit wordcount - diff --git a/src/streambench/samzabench/src/assembly/src.xml b/src/streambench/samzabench/src/assembly/src.xml deleted file mode 100644 index db5d57866..000000000 --- a/src/streambench/samzabench/src/assembly/src.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - dist - - tar.gz - - false - - - ${basedir} - - README* - LICENSE* - NOTICE* - - - - - - ${basedir}/src/resources/log4j.xml - lib - - - - - bin - - org.apache.samza:samza-shell:tgz:dist:* - - 0744 - true - - - true - lib - - org.apache.samza:samza-core_2.10 - org.apache.samza:samza-kafka_2.10 - org.apache.samza:samza-yarn_2.10 - org.apache.samza:samza-kv-rocksdb_2.10 - org.apache.samza:samza-log4j - org.slf4j:slf4j-log4j12 - org.apache.kafka:kafka_2.10 - org.apache.hadoop:hadoop-hdfs - *:jar - - true - - - diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/metrics/CountMetrics.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/metrics/CountMetrics.java deleted file mode 100644 index 1305c5623..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/metrics/CountMetrics.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.metrics; - -import java.util.Map; -import java.util.HashMap; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -import org.apache.samza.metrics.reporter.MetricsSnapshot; - -public class CountMetrics implements StreamTask { - static int sum = 0; - static HashMap smap = new HashMap(); - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - MetricsSnapshot message = (MetricsSnapshot) envelope.getMessage(); - HashMap imap = (HashMap) message.getAsMap(); - HashMap header = (HashMap) imap.get("header"); - String containerName = (String) header.get("container-name"); - if (containerName.equals("ApplicationMaster")) return; - - Map metrics = (Map) imap.get("metrics"); - if (!metrics.containsKey("org.apache.samza.container.TaskInstanceMetrics")) return; - Map main = (Map) metrics.get("org.apache.samza.container.TaskInstanceMetrics"); - int num = (Integer) main.get("process-calls"); - - if (smap.containsKey(containerName)) - sum -= smap.get(containerName); - sum += num; - smap.put(containerName, num); - System.out.print(containerName + ": " + num); - System.out.println(" Sum: " + sum); - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/DistinctCount.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/DistinctCount.java deleted file mode 100644 index 1f4d52e32..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/DistinctCount.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import java.util.HashSet; -import java.util.Set; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.InitableTask; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; -import org.apache.samza.task.TaskContext; -import org.apache.samza.config.Config; - -public class DistinctCount implements StreamTask { - Set store = new HashSet(); - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - String word = (String) envelope.getMessage(); - store.add(word); - System.out.println("Word: " + word + " / Size: " + store.size()); - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForDistinctcount.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForDistinctcount.java deleted file mode 100644 index 30b95ef0d..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForDistinctcount.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -public class ExtractForDistinctcount implements StreamTask { - // Send outgoing messages to a stream called "words" in the "kafka" system. - private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "words"); - - public void process(IncomingMessageEnvelope envelope, - MessageCollector collector, - TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - String separator = CommonArg.getSeparator(); - String[] fields = message.split(separator); - int fieldIndex = CommonArg.getFieldIndex(); - if (fields.length > fieldIndex) { - String val = fields[fieldIndex]; - collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, val, val)); - } - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForStatistics.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForStatistics.java deleted file mode 100644 index 023cc68d0..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/ExtractForStatistics.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -public class ExtractForStatistics implements StreamTask { - // Send outgoing messages to a stream called "numbers" in the "kafka" system. - // Need this topic with only one partition, due to a global result! - private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "numbers"); - - public void process(IncomingMessageEnvelope envelope, - MessageCollector collector, - TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - String separator = CommonArg.getSeparator(); - String[] fields = message.trim().split(separator); - int fieldIndex = CommonArg.getFieldIndex(); - if (fields.length > fieldIndex) { - String val = fields[fieldIndex]; - collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, val)); - } - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Grep.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Grep.java deleted file mode 100644 index 124b3511b..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Grep.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -public class Grep implements StreamTask { - private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "grep"); - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - if (message.contains(CommonArg.getPattern())) { - collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, message)); - } - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Identity.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Identity.java deleted file mode 100644 index 1b62c7fd7..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Identity.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -public class Identity implements StreamTask { - private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "identity"); - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, message)); - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Projection.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Projection.java deleted file mode 100644 index ca621801a..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Projection.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -public class Projection implements StreamTask { - private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "projection"); - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - String separator = CommonArg.getSeparator(); - String[] fields = message.split(separator); - int fieldIndex = CommonArg.getFieldIndex(); - if (fields.length > fieldIndex) { - collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, fields[fieldIndex])); - } - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Sample.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Sample.java deleted file mode 100644 index 0db2dd5ce..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Sample.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -import java.lang.Deprecated; -import java.lang.Override; -import java.util.Random; - -public class Sample implements StreamTask { - private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "sample"); - private ThreadLocal rand = null; - - - public Sample(){ - rand = threadRandom(1); - } - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - double randVal = rand.get().nextDouble(); - if (randVal <= CommonArg.getProb()) { - collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, message)); - } - } - - public static ThreadLocal threadRandom(final long seed) { - return new ThreadLocal() { - @Override - protected Random initialValue() { - return new Random(seed); - } - }; - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Split.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Split.java deleted file mode 100644 index 4952e7338..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Split.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; - -public class Split implements StreamTask { - // Send outgoing messages to a stream called "words" in the "kafka" system. - // Need to create topic first! - private final SystemStream OUTPUT_STREAM = new SystemStream("kafka", "words"); - - public void process(IncomingMessageEnvelope envelope, - MessageCollector collector, - TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - String separator = CommonArg.getSeparator(); - String[] fields = message.split(separator); - for (String word : fields) { - collector.send(new OutgoingMessageEnvelope(OUTPUT_STREAM, word, word)); - } - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Statistics.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Statistics.java deleted file mode 100644 index 1d2a34179..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/Statistics.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import java.util.HashSet; -import java.util.Set; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.InitableTask; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; -import org.apache.samza.task.TaskContext; -import org.apache.samza.config.Config; - -public class Statistics implements StreamTask { - private Long max = 0L; - private Long min = 10000L; - private Long sum = 0L; - private Long count = 0L; - - public void reduce(Long v) { - if (v > max) max = v; - if (v < min) min = v; - sum += v; - count += 1; - } - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - String message = (String) envelope.getMessage(); - Long val = Long.parseLong(message); - reduce(val); - System.out.println("max: " + max + - " min: " + min + - " sum: " + sum + - " count: " + count); - } -} diff --git a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/WordCount.java b/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/WordCount.java deleted file mode 100644 index b5b9b4ceb..000000000 --- a/src/streambench/samzabench/src/main/java/com/intel/hibench/streambench/samza/micro/WordCount.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.samza.micro; - -import java.util.HashMap; -import java.util.Map; - -import org.apache.samza.system.IncomingMessageEnvelope; -import org.apache.samza.system.OutgoingMessageEnvelope; -import org.apache.samza.system.SystemStream; -import org.apache.samza.task.MessageCollector; -import org.apache.samza.task.InitableTask; -import org.apache.samza.task.StreamTask; -import org.apache.samza.task.TaskCoordinator; -import org.apache.samza.task.TaskContext; -import org.apache.samza.config.Config; - -public class WordCount implements StreamTask { - Map store = new HashMap(); - - @Override - public void process(IncomingMessageEnvelope envelope, MessageCollector collector, TaskCoordinator coordinator) { - String word = (String) envelope.getMessage(); - Integer count = store.get(word); - if (count == null) count = 0; - count++; - store.put(word, count); - System.out.println("Word: " + word + " / Count: " + count); - } -} diff --git a/src/streambench/samzabench/src/resources/log4j.xml b/src/streambench/samzabench/src/resources/log4j.xml deleted file mode 100644 index f0de7658c..000000000 --- a/src/streambench/samzabench/src/resources/log4j.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/streambench/sparkbench/pom.xml b/src/streambench/sparkbench/pom.xml deleted file mode 100644 index f0ef42ce1..000000000 --- a/src/streambench/sparkbench/pom.xml +++ /dev/null @@ -1,245 +0,0 @@ - - - - - 4.0.0 - - com.intel.hibench - streambench - 5.0-SNAPSHOT - - - com.intel.hibench.streambench - streaming-bench-spark_0.1 - jar - Streaming Benchmark Spark - - - - org.apache.spark - spark-core_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-streaming_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-mllib_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-bagel_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-graphx_${scala.binary.version} - ${spark.version} - provided - - - org.apache.spark - spark-streaming-twitter_${scala.binary.version} - ${spark.version} - - - org.apache.spark - spark-streaming-kafka_${scala.binary.version} - ${spark.version} - - - org.apache.spark - spark-streaming-flume_${scala.binary.version} - ${spark.version} - - - org.apache.spark - spark-streaming-zeromq_${scala.binary.version} - ${spark.version} - - - org.apache.spark - spark-streaming-mqtt_${scala.binary.version} - ${spark.version} - - - org.apache.hbase - hbase - 0.94.6 - - - asm - asm - - - org.jboss.netty - netty - - - - - org.apache.kafka - kafka_2.10 - 0.8.1 - - - org.eclipse.jetty - jetty-server - ${jetty.version} - - - com.twitter - algebird-core_${scala.binary.version} - 0.1.11 - - - org.scalatest - scalatest_${scala.binary.version} - test - ${scalatest.version} - - - org.scalacheck - scalacheck_${scala.binary.version} - test - ${scalacheck.version} - - - org.apache.cassandra - cassandra-all - 1.2.6 - - - com.google.guava - guava - - - com.googlecode.concurrentlinkedhashmap - concurrentlinkedhashmap-lru - - - com.ning - compress-lzf - - - io.netty - netty - - - jline - jline - - - log4j - log4j - - - org.apache.cassandra.deps - avro - - - org.sonatype.sisu.inject - * - - - org.xerial.snappy - * - - - - - - - target/scala-${scala.binary.version}/classes - target/scala-${scala.binary.version}/test-classes - - - net.alchim31.maven - scala-maven-plugin - - ${scala.binary.version} - ${scala.version} - - - - scala-compile-first - process-resources - - add-source - compile - - - - scala-test-compile - process-test-resources - - testCompile - - - - - - org.codehaus.mojo - build-helper-maven-plugin - ${build-helper-maven-plugin.version} - - - add-source - generate-sources - - add-source - - - - src/multiapi/scala/spark${spark.bin.version}/ - - - - - - - - maven-assembly-plugin - ${maven-assembly-plugin.version} - - ${project.build.finalName}-spark${spark.bin.version} - - jar-with-dependencies - - - - - make-assembly - package - - single - - - - - - - diff --git a/src/streambench/sparkbench/src/main/java/com/intel/hibench/streambench/spark/ConfigLoader.java b/src/streambench/sparkbench/src/main/java/com/intel/hibench/streambench/spark/ConfigLoader.java deleted file mode 100644 index 3844164dd..000000000 --- a/src/streambench/sparkbench/src/main/java/com/intel/hibench/streambench/spark/ConfigLoader.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class ConfigLoader { - private String ConfigFileName = null; - private Map store; - - public ConfigLoader(String filename){ - ConfigFileName = filename; - store = new HashMap(); - // Load and parse config - try { - BufferedReader br = new BufferedReader(new FileReader(filename)); - String line = br.readLine(); - while(line != null){ - if ((line.length()>0) && (line.charAt(0)!='#')) { - String[] words = line.split("\\s+"); - if (words.length == 2) { - String key = words[0]; - String value = words[1]; - store.put(key, value); - } else if (words.length == 1) { - String key = words[0]; - store.put(key, ""); - } else { - if (!line.startsWith("hibench")) - System.out.println("Warning: unknown config parsed, skip:" + line); - } - } - line = br.readLine(); - } - } catch (FileNotFoundException e) { - System.out.println("ERROR: Config file not found! Should not happen. Caused by:"); - } catch (IOException e) { - System.out.println("ERROR: IO exception during read file. Should not happen. Caused by:"); - e.printStackTrace(); - } - } - - public String getProperty(String key){ - if (store.containsKey(key)) - return (String) store.get(key); - else { - System.out.println("ERROR: Unknown config key:" + key); - return null; - } - } -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/RunBench.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/RunBench.scala deleted file mode 100644 index 158b19e7c..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/RunBench.scala +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import com.intel.hibench.streambench.spark.util._ -import com.intel.hibench.streambench.spark.microbench._ - -object RunBench { - var reportDir = "" - - def main(args: Array[String]) { - this.run(args) - } - - def run(args: Array[String]) { - if (args.length < 1) { - BenchLogUtil.handleError("Usage: RunBench ") - } - - val conf = new ConfigLoader(args(0)) - - val benchName = conf.getProperty("hibench.streamingbench.benchname") - val topic = conf.getProperty("hibench.streamingbench.topic_name") - val master = conf.getProperty("hibench.spark.master") - val batchInterval = conf.getProperty("hibench.streamingbench.batch_interval").toInt - val zkHost = conf.getProperty("hibench.streamingbench.zookeeper.host") - val consumerGroup = conf.getProperty("hibench.streamingbench.consumer_group") - val kafkaThreads = conf.getProperty("hibench.streamingbench.receiver_nodes").toInt - val recordCount = conf.getProperty("hibench.streamingbench.record_count").toLong - val copies = conf.getProperty("hibench.streamingbench.copies").toInt - val testWAL = conf.getProperty("hibench.streamingbench.testWAL").toBoolean - val path = if (testWAL) conf.getProperty("hibench.streamingbench.checkpoint_path") else "" - val debug = conf.getProperty("hibench.streamingbench.debug").toBoolean - val directMode = conf.getProperty("hibench.streamingbench.direct_mode").toBoolean - val brokerList = if (directMode) conf.getProperty("hibench.streamingbench.brokerList") else "" - val totalParallel = conf.getProperty("hibench.yarn.executor.num").toInt * conf.getProperty("hibench.yarn.executor.cores").toInt - - this.reportDir = conf.getProperty("hibench.report.dir") - - val param = ParamEntity(master, benchName, batchInterval, zkHost, consumerGroup, topic, kafkaThreads, recordCount, copies, testWAL, path, debug, directMode, brokerList, totalParallel) - println(s"params:$param") - benchName match { - case "project" => - val fieldIndex = conf.getProperty("hibench.streamingbench.field_index").toInt - val separator = conf.getProperty("hibench.streamingbench.separator") - val ProjectTest = new StreamProjectionJob(param, fieldIndex, separator) - ProjectTest.run() - case "sample" => - val prob = conf.getProperty("hibench.streamingbench.prob").toDouble - val SampleTest = new SampleStreamJob(param, prob) - SampleTest.run() - case "statistics" => - val fieldIndex = conf.getProperty("hibench.streamingbench.field_index").toInt - val separator = conf.getProperty("hibench.streamingbench.separator") - val numericCalc = new NumericCalcJob(param, fieldIndex, separator) - numericCalc.run() - case "wordcount" => - val separator = conf.getProperty("hibench.streamingbench.separator") - val wordCount = new Wordcount(param, separator) - wordCount.run() - case "grep" => - val pattern = conf.getProperty("hibench.streamingbench.pattern") - val GrepStream = new GrepStreamJob(param, pattern) - GrepStream.run() - case "distinctcount" => - val fieldIndex = conf.getProperty("hibench.streamingbench.field_index").toInt - val separator = conf.getProperty("hibench.streamingbench.separator") - val distinct = new DistinctCountJob(param, fieldIndex, separator) - distinct.run() - case _ => - val emptyTest = new IdentityJob(param) - emptyTest.run() - } - } -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/entity/ParamEntity.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/entity/ParamEntity.scala deleted file mode 100644 index 7fed782c0..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/entity/ParamEntity.scala +++ /dev/null @@ -1,19 +0,0 @@ -package com.intel.hibench.streambench.spark.entity - -case class ParamEntity( - master: String, - appName: String, - batchInterval: Int, - zkHost: String, - consumerGroup: String, - topic: String, - threads: Int, - recordCount: Long, - copies: Int, - testWAL: Boolean, - path: String, - debug: Boolean, - directMode: Boolean, - brokerList: String, - totalParallel: Int -) diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/DistinctCountJob.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/DistinctCountJob.scala deleted file mode 100644 index ec4699ae4..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/DistinctCountJob.scala +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.microbench - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.dstream.DStream -import org.apache.spark.streaming.StreamingContext -import com.intel.hibench.streambench.spark.util.BenchLogUtil -import org.apache.spark.streaming.StreamingContext._ - -import scala.collection.mutable.ArrayBuffer - -object SetPool { - private var iset: Set[String] = _ - def getSet(): Set[String] = synchronized { - if (iset == null) { - iset = Set() - } - iset - } - def setSet(iset: Set[String]): Unit = synchronized { - this.iset = iset - } -} - -class DistinctCountJob (subClassParams:ParamEntity, fieldIndex:Int, separator:String) extends RunBenchJobWithInit(subClassParams) { - - override def processStreamData(lines:DStream[String], ssc:StreamingContext) { - val index = fieldIndex - val sep = separator - - val distinctcount = lines - .flatMap(line => { - val splits = line.split(sep) - if (index < splits.length) - Traversable(splits(index)) - else - Traversable.empty - }) - .map(word => (word, 1)) - .reduceByKey((x, y) => x) - - distinctcount.foreachRDD(rdd => { - rdd.foreachPartition(partitionOfRecords => { - var iset = SetPool.getSet - partitionOfRecords.foreach{case(word, count) => - iset += word - } - SetPool.setSet(iset) - }) - }) - } -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/NumericCalcJob.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/NumericCalcJob.scala deleted file mode 100644 index 5a174ad0f..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/NumericCalcJob.scala +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.microbench - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.dstream.DStream -import com.intel.hibench.streambench.spark.metrics.LatencyListener -import org.apache.spark.streaming.StreamingContext -import com.intel.hibench.streambench.spark.util.BenchLogUtil - -case class MultiReducer(var max: Long, var min: Long, var sum: Long, var count: Long) extends Serializable { - def this() = this(0, Int.MaxValue, 0, 0) - - def reduceValue(value: Long): MultiReducer = { - this.max = Math.max(this.max, value) - this.min = Math.min(this.min, value) - this.sum += value - this.count += 1 - this - } - - def reduce(that: MultiReducer): MultiReducer = { - this.max = Math.max(this.max, that.max) - this.min = Math.min(this.min, that.min) - this.sum += that.sum - this.count += that.count - this - } -} - -class NumericCalcJob(subClassParams: ParamEntity, fieldIndex: Int, separator: String) - extends RunBenchJobWithInit(subClassParams) { - - var history_statistics = new MultiReducer() - - override def processStreamData(lines: DStream[String], ssc: StreamingContext) { - val index = fieldIndex - val sep = separator - - lines.foreachRDD( rdd => { - val numbers = rdd.flatMap( line => { - val splits = line.trim.split(sep) - if (index < splits.length) - Iterator(splits(index).toLong) - else - Iterator.empty - }) - - var zero = new MultiReducer() - val cur = numbers.map(x => new MultiReducer(x, x, x, 1)) - .fold(zero)((v1, v2) => v1.reduce(v2)) - //var cur = numbers.aggregate(zero)((v, x) => v.reduceValue(x), (v1, v2) => v1.reduce(v2)) - history_statistics.reduce(cur) - - BenchLogUtil.logMsg("Current max: " + history_statistics.max) - BenchLogUtil.logMsg("Current min: " + history_statistics.min) - BenchLogUtil.logMsg("Current sum: " + history_statistics.sum) - BenchLogUtil.logMsg("Current total: " + history_statistics.count) - - }) - } -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/RunBenchWithInit.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/RunBenchWithInit.scala deleted file mode 100644 index 262e16b29..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/RunBenchWithInit.scala +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.microbench - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.SparkConf -import org.apache.spark.streaming.{Seconds,StreamingContext} - -import org.apache.spark.streaming.kafka._ -import org.apache.spark.streaming.dstream._ -import com.intel.hibench.streambench.spark.metrics._ -import org.apache.spark.storage.StorageLevel -import kafka.serializer.StringDecoder - -class RunBenchJobWithInit(params:ParamEntity) extends SpoutTops { - - def run(){ - val conf = new SparkConf().setMaster(params.master) - .setAppName(params.appName) - .set("spark.cleaner.ttl", "7200") - - var ssc:StreamingContext=null - - if (!params.testWAL) { - ssc = new StreamingContext(conf, Seconds(params.batchInterval)) - } else { - val create = ()=> new StreamingContext(conf, Seconds(params.batchInterval)) - ssc = StreamingContext.getOrCreate(params.path, create) - ssc.checkpoint(params.path) - } - - val listener = new LatencyListener(ssc, params) - ssc.addStreamingListener(listener) - - var lines:DStream[String] = null - if (params.directMode) - lines = createDirectStream(ssc).map(_._2) - else - lines = createStream(ssc).map(_._2) - - processStreamData(lines, ssc) - - ssc.start() - ssc.awaitTermination() - } - - def createStream(ssc:StreamingContext):DStream[(String, String)] = { - val kafkaParams=Map( - "zookeeper.connect" -> params.zkHost, - "group.id" -> params.consumerGroup, - "rebalance.backoff.ms" -> "20000", - "zookeeper.session.timeout.ms" -> "20000" - ) - - var storageLevel = StorageLevel.MEMORY_AND_DISK_SER_2 - if (params.copies == 1) - storageLevel = StorageLevel.MEMORY_ONLY - - val kafkaInputs = (1 to params.threads).map{_ => - println(s"Create kafka input, args:$kafkaParams") - KafkaUtils.createStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, - Map(params.topic -> params.totalParallel / params.threads), storageLevel) - } - - ssc.union(kafkaInputs) - } - - def createDirectStream(ssc:StreamingContext):DStream[(String, String)]={ - val kafkaParams = Map( - "metadata.broker.list" -> params.brokerList, - "auto.offset.reset" -> "smallest", - "socket.receive.buffer.size" -> "1024*1024*1024" - ) - println(s"Create direct kafka stream, args:$kafkaParams") - KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, Set(params.topic)) - } - -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SampleStreamJob.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SampleStreamJob.scala deleted file mode 100644 index 30ead6ffb..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/SampleStreamJob.scala +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.microbench - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.dstream.DStream -import com.intel.hibench.streambench.spark.util.BenchLogUtil -import org.apache.spark.streaming.StreamingContext - -object ThreadLocalRandom extends Serializable{ - private val localRandom = new ThreadLocal[util.Random] { - override protected def initialValue() = new util.Random - } - - def current = localRandom.get -} - -class SampleStreamJob(subClassParams:ParamEntity, probability:Double) - extends RunBenchJobWithInit(subClassParams) { - - override def processStreamData(lines:DStream[String], ssc:StreamingContext){ - val prob = probability - val samples = lines.filter( _=> { - ThreadLocalRandom.current.nextDouble() < prob - }) - val debug = subClassParams.debug - if(debug){ - var totalCount = 0L - samples.foreachRDD(rdd => { - totalCount += rdd.count() - BenchLogUtil.logMsg("Current sample count:"+totalCount) - }) - }else{ - samples.foreachRDD(rdd => rdd.foreach( _ => Unit )) - } - - } -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/StreamProjectionJob.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/StreamProjectionJob.scala deleted file mode 100644 index 3321e4da0..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/StreamProjectionJob.scala +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.microbench - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.dstream.DStream -import org.apache.spark.streaming.StreamingContext -import com.intel.hibench.streambench.spark.util.BenchLogUtil - -class StreamProjectionJob(subClassParams:ParamEntity,fieldIndex:Int,separator:String) - extends RunBenchJobWithInit(subClassParams) { - - override def processStreamData(lines:DStream[String],ssc:StreamingContext){ - val sep = separator - val index = fieldIndex - val debug = subClassParams.debug - lines.foreachRDD(rdd => { - val fields = rdd.flatMap(line => { - val splits = line.trim.split(sep) - if(index < splits.length) - Iterator(splits(index)) - else - Iterator.empty - }) - fields.foreach(rdd => rdd.foreach( _ => Unit )) - if(debug) - BenchLogUtil.logMsg(fields.collect().mkString("\n")) - }) - } - -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/Wordcount.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/Wordcount.scala deleted file mode 100644 index f99efc0ee..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/microbench/Wordcount.scala +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.microbench - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.dstream.DStream -import com.intel.hibench.streambench.spark.metrics.LatencyListener -import org.apache.spark.streaming.StreamingContext -import com.intel.hibench.streambench.spark.util.BenchLogUtil -import org.apache.spark.SparkContext -import org.apache.spark.SparkContext._ -import scala.collection.mutable.Map - -object MapPool { - private var imap: Map[String, Long] = _ - def getMap(): Map[String, Long] = synchronized { - if (imap == null) imap = Map() - imap - } - def setMap(imap: Map[String, Long]) = synchronized { - this.imap = imap - } -} - -class Wordcount(subClassParams:ParamEntity,separator:String) - extends RunBenchJobWithInit(subClassParams){ - - override def processStreamData(lines:DStream[String],ssc:StreamingContext){ - val sep = separator - val wordcount = lines - .flatMap(x => x.split(sep)) - .map(word => (word, 1)) - .reduceByKey(_ + _) - - wordcount.foreachRDD(rdd=> { - rdd.foreachPartition(partitionOfRecords => { - val imap = MapPool.getMap - partitionOfRecords.foreach{case (word, count) => - imap(word) = if (imap.contains(word)) imap(word) + count else count - } - MapPool.setMap(imap) - }) - }) - } -} diff --git a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/util/LogUtil.scala b/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/util/LogUtil.scala deleted file mode 100644 index 5de219936..000000000 --- a/src/streambench/sparkbench/src/main/scala/com/intel/hibench/streambench/spark/util/LogUtil.scala +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.util - -import org.apache.spark.Logging -import org.apache.log4j.{Level, Logger} -import com.intel.hibench.streambench.spark.RunBench - -object BenchLogUtil extends Logging{ - def setLogLevel(){ - val log4jInitialized = Logger.getRootLogger.getAllAppenders.hasMoreElements - if (!log4jInitialized) { - logInfo("Setting log level to [WARN] for streaming example." + - " To override add a custom log4j.properties to the classpath.") - Logger.getRootLogger.setLevel(Level.WARN) - } - } - - val file=new java.io.File(RunBench.reportDir + "/streamingbench/spark/streambenchlog.txt") - val out=new java.io.PrintWriter(file) - - def logMsg(msg:String) { - out.println(msg) - out.flush() - System.out.println(msg) - } - - def handleError(msg:String){ - System.err.println(msg) - System.exit(1) - } -} diff --git a/src/streambench/sparkbench/src/multiapi/scala/spark1.3/LatencyCollector.scala b/src/streambench/sparkbench/src/multiapi/scala/spark1.3/LatencyCollector.scala deleted file mode 100644 index eb238df65..000000000 --- a/src/streambench/sparkbench/src/multiapi/scala/spark1.3/LatencyCollector.scala +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.metrics - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.StreamingContext -import org.apache.spark.streaming.scheduler._ -import com.intel.hibench.streambench.spark.util._ - -class StopContextThread(ssc: StreamingContext) extends Runnable { - def run { - ssc.stop(true, true) - } -} - -class LatencyListener(ssc: StreamingContext, params: ParamEntity) extends StreamingListener { - - var startTime=0L - var endTime=0L - //This delay is processDelay of every batch * record count in this batch - var totalDelay=0L - var hasStarted=false - var batchCount=0 - var totalRecords=0L - - val thread: Thread = new Thread(new StopContextThread(ssc)) - - override def onBatchCompleted(batchCompleted: StreamingListenerBatchCompleted): Unit = { - val clazz:Class[_] = Class.forName("org.apache.spark.streaming.scheduler.ReceivedBlockInfo") - val numRecordMethod = clazz.getMethod("numRecords") - val batchInfo = batchCompleted.batchInfo - val map = batchInfo.receivedBlockInfo - val prevCount = totalRecords - var recordThisBatch = 0L - - map.foreach{ - case (id,array) => { - for(receivedInfo <- array){ - val thisRecord = numRecordMethod.invoke(receivedInfo) -// BenchLogUtil.logMsg("This time id:"+id+" thisRecord:"+thisRecord) - recordThisBatch += thisRecord.toString.toLong - } - } - } - - if (!thread.isAlive) { - totalRecords += recordThisBatch - BenchLogUtil.logMsg("LatencyController: this batch: " + recordThisBatch) - BenchLogUtil.logMsg("LatencyController: total records: " + totalRecords + " Receivers: " + map.size) - } - - if (totalRecords >= params.recordCount) { - if(hasStarted && !thread.isAlive){ - //not receiving any data more, finish - endTime = System.currentTimeMillis() - val totalTime = (endTime-startTime).toDouble / 1000 - //This is weighted avg of every batch process time. The weight is records processed int the batch - val avgLatency = totalDelay.toDouble / totalRecords - if(avgLatency > params.batchInterval.toDouble * 1000) - BenchLogUtil.logMsg("WARNING:SPARK CLUSTER IN UNSTABLE STATE. TRY REDUCE INPUT SPEED") - - val avgLatencyAdjust = avgLatency + params.batchInterval.toDouble * 500 - val recordThroughput = params.recordCount / totalTime - BenchLogUtil.logMsg("Batch count = " + batchCount) - BenchLogUtil.logMsg("Total processing delay = " + totalDelay + " ms") - BenchLogUtil.logMsg("Consumed time = " + totalTime + " s") - BenchLogUtil.logMsg("Avg latency/batchInterval = " + avgLatencyAdjust + " ms") - BenchLogUtil.logMsg("Avg records/sec = " + recordThroughput + " records/s") - thread.start - } - }else if(!hasStarted){ - startTime = batchCompleted.batchInfo.submissionTime - hasStarted = true - } - - if(hasStarted){ -// BenchLogUtil.logMsg("This delay:"+batchCompleted.batchInfo.processingDelay+"ms") - batchCompleted.batchInfo.processingDelay match{ - case Some(value) => totalDelay += value * recordThisBatch - case None => //Nothing - } - batchCount += 1 - } - } - -} diff --git a/src/streambench/sparkbench/src/multiapi/scala/spark1.4/LatencyCollector.scala b/src/streambench/sparkbench/src/multiapi/scala/spark1.4/LatencyCollector.scala deleted file mode 100644 index 58af3b952..000000000 --- a/src/streambench/sparkbench/src/multiapi/scala/spark1.4/LatencyCollector.scala +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.metrics - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.StreamingContext -import org.apache.spark.streaming.scheduler._ -import com.intel.hibench.streambench.spark.util._ - -class StopContextThread(ssc: StreamingContext) extends Runnable { - def run { - ssc.stop(true, true) - } -} - -class LatencyListener(ssc: StreamingContext, params: ParamEntity) extends StreamingListener { - - var startTime=0L - var endTime=0L - //This delay is processDelay of every batch * record count in this batch - var totalDelay=0L - var hasStarted=false - var batchCount=0 - var totalRecords=0L - - val thread: Thread = new Thread(new StopContextThread(ssc)) - - override def onBatchCompleted(batchCompleted: StreamingListenerBatchCompleted): Unit={ - val batchInfo = batchCompleted.batchInfo - val prevCount=totalRecords - var recordThisBatch = batchInfo.numRecords - - if (!thread.isAlive) { - totalRecords += recordThisBatch - BenchLogUtil.logMsg("LatencyController: this batch: " + recordThisBatch) - BenchLogUtil.logMsg("LatencyController: total records: " + totalRecords) - } - - if (totalRecords >= params.recordCount) { - if (hasStarted && !thread.isAlive) { - //not receiving any data more, finish - endTime = System.currentTimeMillis() - val totalTime = (endTime-startTime).toDouble/1000 - //This is weighted avg of every batch process time. The weight is records processed int the batch - val avgLatency = totalDelay.toDouble/totalRecords - if (avgLatency > params.batchInterval.toDouble*1000) - BenchLogUtil.logMsg("WARNING:SPARK CLUSTER IN UNSTABLE STATE. TRY REDUCE INPUT SPEED") - - val avgLatencyAdjust = avgLatency + params.batchInterval.toDouble*500 - val recordThroughput = params.recordCount / totalTime - BenchLogUtil.logMsg("Batch count = " + batchCount) - BenchLogUtil.logMsg("Total processing delay = " + totalDelay + " ms") - BenchLogUtil.logMsg("Consumed time = " + totalTime + " s") - BenchLogUtil.logMsg("Avg latency/batchInterval = " + avgLatencyAdjust + " ms") - BenchLogUtil.logMsg("Avg records/sec = " + recordThroughput + " records/s") - thread.start - } - } else if (!hasStarted) { - startTime = batchCompleted.batchInfo.submissionTime - hasStarted = true - } - - if (hasStarted) { -// BenchLogUtil.logMsg("This delay:"+batchCompleted.batchInfo.processingDelay+"ms") - batchCompleted.batchInfo.processingDelay match { - case Some(value) => totalDelay += value*recordThisBatch - case None => //Nothing - } - batchCount = batchCount+1 - } - } - -} diff --git a/src/streambench/sparkbench/src/multiapi/scala/spark1.5/LatencyCollector.scala b/src/streambench/sparkbench/src/multiapi/scala/spark1.5/LatencyCollector.scala deleted file mode 100644 index 58af3b952..000000000 --- a/src/streambench/sparkbench/src/multiapi/scala/spark1.5/LatencyCollector.scala +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.metrics - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.StreamingContext -import org.apache.spark.streaming.scheduler._ -import com.intel.hibench.streambench.spark.util._ - -class StopContextThread(ssc: StreamingContext) extends Runnable { - def run { - ssc.stop(true, true) - } -} - -class LatencyListener(ssc: StreamingContext, params: ParamEntity) extends StreamingListener { - - var startTime=0L - var endTime=0L - //This delay is processDelay of every batch * record count in this batch - var totalDelay=0L - var hasStarted=false - var batchCount=0 - var totalRecords=0L - - val thread: Thread = new Thread(new StopContextThread(ssc)) - - override def onBatchCompleted(batchCompleted: StreamingListenerBatchCompleted): Unit={ - val batchInfo = batchCompleted.batchInfo - val prevCount=totalRecords - var recordThisBatch = batchInfo.numRecords - - if (!thread.isAlive) { - totalRecords += recordThisBatch - BenchLogUtil.logMsg("LatencyController: this batch: " + recordThisBatch) - BenchLogUtil.logMsg("LatencyController: total records: " + totalRecords) - } - - if (totalRecords >= params.recordCount) { - if (hasStarted && !thread.isAlive) { - //not receiving any data more, finish - endTime = System.currentTimeMillis() - val totalTime = (endTime-startTime).toDouble/1000 - //This is weighted avg of every batch process time. The weight is records processed int the batch - val avgLatency = totalDelay.toDouble/totalRecords - if (avgLatency > params.batchInterval.toDouble*1000) - BenchLogUtil.logMsg("WARNING:SPARK CLUSTER IN UNSTABLE STATE. TRY REDUCE INPUT SPEED") - - val avgLatencyAdjust = avgLatency + params.batchInterval.toDouble*500 - val recordThroughput = params.recordCount / totalTime - BenchLogUtil.logMsg("Batch count = " + batchCount) - BenchLogUtil.logMsg("Total processing delay = " + totalDelay + " ms") - BenchLogUtil.logMsg("Consumed time = " + totalTime + " s") - BenchLogUtil.logMsg("Avg latency/batchInterval = " + avgLatencyAdjust + " ms") - BenchLogUtil.logMsg("Avg records/sec = " + recordThroughput + " records/s") - thread.start - } - } else if (!hasStarted) { - startTime = batchCompleted.batchInfo.submissionTime - hasStarted = true - } - - if (hasStarted) { -// BenchLogUtil.logMsg("This delay:"+batchCompleted.batchInfo.processingDelay+"ms") - batchCompleted.batchInfo.processingDelay match { - case Some(value) => totalDelay += value*recordThisBatch - case None => //Nothing - } - batchCount = batchCount+1 - } - } - -} diff --git a/src/streambench/sparkbench/src/multiapi/scala/spark1.6/LatencyCollector.scala b/src/streambench/sparkbench/src/multiapi/scala/spark1.6/LatencyCollector.scala deleted file mode 100644 index 58af3b952..000000000 --- a/src/streambench/sparkbench/src/multiapi/scala/spark1.6/LatencyCollector.scala +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.spark.metrics - -import com.intel.hibench.streambench.spark.entity.ParamEntity -import org.apache.spark.streaming.StreamingContext -import org.apache.spark.streaming.scheduler._ -import com.intel.hibench.streambench.spark.util._ - -class StopContextThread(ssc: StreamingContext) extends Runnable { - def run { - ssc.stop(true, true) - } -} - -class LatencyListener(ssc: StreamingContext, params: ParamEntity) extends StreamingListener { - - var startTime=0L - var endTime=0L - //This delay is processDelay of every batch * record count in this batch - var totalDelay=0L - var hasStarted=false - var batchCount=0 - var totalRecords=0L - - val thread: Thread = new Thread(new StopContextThread(ssc)) - - override def onBatchCompleted(batchCompleted: StreamingListenerBatchCompleted): Unit={ - val batchInfo = batchCompleted.batchInfo - val prevCount=totalRecords - var recordThisBatch = batchInfo.numRecords - - if (!thread.isAlive) { - totalRecords += recordThisBatch - BenchLogUtil.logMsg("LatencyController: this batch: " + recordThisBatch) - BenchLogUtil.logMsg("LatencyController: total records: " + totalRecords) - } - - if (totalRecords >= params.recordCount) { - if (hasStarted && !thread.isAlive) { - //not receiving any data more, finish - endTime = System.currentTimeMillis() - val totalTime = (endTime-startTime).toDouble/1000 - //This is weighted avg of every batch process time. The weight is records processed int the batch - val avgLatency = totalDelay.toDouble/totalRecords - if (avgLatency > params.batchInterval.toDouble*1000) - BenchLogUtil.logMsg("WARNING:SPARK CLUSTER IN UNSTABLE STATE. TRY REDUCE INPUT SPEED") - - val avgLatencyAdjust = avgLatency + params.batchInterval.toDouble*500 - val recordThroughput = params.recordCount / totalTime - BenchLogUtil.logMsg("Batch count = " + batchCount) - BenchLogUtil.logMsg("Total processing delay = " + totalDelay + " ms") - BenchLogUtil.logMsg("Consumed time = " + totalTime + " s") - BenchLogUtil.logMsg("Avg latency/batchInterval = " + avgLatencyAdjust + " ms") - BenchLogUtil.logMsg("Avg records/sec = " + recordThroughput + " records/s") - thread.start - } - } else if (!hasStarted) { - startTime = batchCompleted.batchInfo.submissionTime - hasStarted = true - } - - if (hasStarted) { -// BenchLogUtil.logMsg("This delay:"+batchCompleted.batchInfo.processingDelay+"ms") - batchCompleted.batchInfo.processingDelay match { - case Some(value) => totalDelay += value*recordThisBatch - case None => //Nothing - } - batchCount = batchCount+1 - } - } - -} diff --git a/src/streambench/stormbench/pom.xml b/src/streambench/stormbench/pom.xml deleted file mode 100644 index dbcbc8af0..000000000 --- a/src/streambench/stormbench/pom.xml +++ /dev/null @@ -1,190 +0,0 @@ - - 4.0.0 - - - com.intel.hibench - streambench - 5.0-SNAPSHOT - - - com.intel.hibench.streambench - streaming-bench-storm - 0.1-SNAPSHOT - jar - Streaming Benchmark Storm - - - UTF-8 - - - - - junit - junit - 3.8.1 - test - - - org.testng - testng - 6.8.5 - test - - - org.mockito - mockito-all - 1.9.0 - test - - - org.easytesting - fest-assert-core - 2.0M8 - test - - - org.jmock - jmock - 2.6.0 - test - - - org.apache.storm - storm-core - 0.9.3 - - provided - - - org.apache.storm - storm-kafka - 0.9.3 - compile - - - org.apache.kafka - kafka_2.10 - 0.8.1.1 - compile - - - org.apache.zookeeper - zookeeper - - - log4j - log4j - - - - - commons-collections - commons-collections - 3.2.2 - - - com.google.guava - guava - 15.0 - - - org.apache.thrift - libthrift - 0.9.1 - - - - - src/main - - - - - maven-assembly-plugin - - - jar-with-dependencies - - - - - - - - - - make-assembly - package - - single - - - - - - - com.theoryinpractise - clojure-maven-plugin - 1.3.12 - true - - - src/clj - - - - - compile - compile - - compile - - - - - - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - - - exec - - - - - java - true - false - compile - ${storm.topology} - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.6 - 1.6 - - - - - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/RunBench.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/RunBench.java deleted file mode 100644 index 2806d61de..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/RunBench.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm; - -import com.intel.hibench.streambench.storm.util.ConfigLoader; -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.micro.*; -import com.intel.hibench.streambench.storm.trident.*; -import com.intel.hibench.streambench.storm.metrics.Reporter; -import com.intel.hibench.streambench.storm.spout.*; - -public class RunBench { - - public static void main(String[] args) throws Exception { - runAll(args); - } - - public static void runAll(String[] args) throws Exception { - - if (args.length < 2) - BenchLogUtil.handleError("Usage: RunBench "); - - StormBenchConfig conf = new StormBenchConfig(); - - ConfigLoader cl = new ConfigLoader(args[0]); - boolean TridentFramework = false; - if (args[1].equals("trident")) TridentFramework = true; - - conf.nimbus = cl.getProperty("hibench.streamingbench.storm.nimbus"); - conf.nimbusAPIPort = Integer.parseInt(cl.getProperty("hibench.streamingbench.storm.nimbusAPIPort")); - conf.zkHost = cl.getProperty("hibench.streamingbench.zookeeper.host"); - conf.workerCount = Integer.parseInt(cl.getProperty("hibench.streamingbench.storm.worker_count")); - conf.spoutThreads = Integer.parseInt(cl.getProperty("hibench.streamingbench.storm.spout_threads")); - conf.boltThreads = Integer.parseInt(cl.getProperty("hibench.streamingbench.storm.bolt_threads")); - conf.benchName = cl.getProperty("hibench.streamingbench.benchname"); - conf.recordCount = Long.parseLong(cl.getProperty("hibench.streamingbench.record_count")); - conf.topic = cl.getProperty("hibench.streamingbench.topic_name"); - conf.consumerGroup = cl.getProperty("hibench.streamingbench.consumer_group"); - conf.readFromStart = Boolean.parseBoolean(cl.getProperty("hibench.streamingbench.storm.read_from_start")); - conf.ackon = Boolean.parseBoolean(cl.getProperty("hibench.streamingbench.storm.ackon")); - conf.nimbusContactInterval = Integer.parseInt(cl.getProperty("hibench.streamingbench.storm.nimbusContactInterval")); - - boolean isLocal = false; - - ConstructSpoutUtil.setConfig(conf); - - String benchName = conf.benchName; - - BenchLogUtil.logMsg("Benchmark starts... local:" + isLocal + " " + benchName + - " Frameworks:" + (TridentFramework?"Trident":"Storm") ); - - if (TridentFramework) { // For trident workloads - if (benchName.equals("wordcount")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - TridentWordcount wordcount = new TridentWordcount(conf); - wordcount.run(); - } else if (benchName.equals("identity")) { - TridentIdentity identity = new TridentIdentity(conf); - identity.run(); - } else if (benchName.equals("sample")) { - conf.prob = Double.parseDouble(cl.getProperty("hibench.streamingbench.prob")); - TridentSample sample = new TridentSample(conf); - sample.run(); - } else if (benchName.equals("project")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - conf.fieldIndex = Integer.parseInt(cl.getProperty("hibench.streamingbench.field_index")); - TridentProject project = new TridentProject(conf); - project.run(); - } else if (benchName.equals("grep")) { - conf.pattern = cl.getProperty("hibench.streamingbench.pattern"); - TridentGrep grep = new TridentGrep(conf); - grep.run(); - } else if (benchName.equals("distinctcount")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - conf.fieldIndex = Integer.parseInt(cl.getProperty("hibench.streamingbench.field_index")); - TridentDistinctCount distinct = new TridentDistinctCount(conf); - distinct.run(); - } else if (benchName.equals("statistics")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - conf.fieldIndex = Integer.parseInt(cl.getProperty("hibench.streamingbench.field_index")); - TridentNumericCalc numeric = new TridentNumericCalc(conf); - numeric.run(); - } - } else { // For storm workloads - if (benchName.equals("identity")) { - Identity identity = new Identity(conf); - identity.run(); - } else if (benchName.equals("project")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - conf.fieldIndex = Integer.parseInt(cl.getProperty("hibench.streamingbench.field_index")); - ProjectStream project = new ProjectStream(conf); - project.run(); - } else if (benchName.equals("sample")) { - conf.prob = Double.parseDouble(cl.getProperty("hibench.streamingbench.prob")); - SampleStream sample = new SampleStream(conf); - sample.run(); - } else if (benchName.equals("wordcount")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - Wordcount wordcount = new Wordcount(conf); - wordcount.run(); - } else if (benchName.equals("grep")) { - conf.pattern = cl.getProperty("hibench.streamingbench.pattern"); - GrepStream grep = new GrepStream(conf); - grep.run(); - } else if (benchName.equals("statistics")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - conf.fieldIndex = Integer.parseInt(cl.getProperty("hibench.streamingbench.field_index")); - NumericCalc numeric = new NumericCalc(conf); - numeric.run(); - } else if (benchName.equals("distinctcount")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - conf.fieldIndex = Integer.parseInt(cl.getProperty("hibench.streamingbench.field_index")); - DistinctCount distinct = new DistinctCount(conf); - distinct.run(); - } else if (benchName.equals("statistics")) { - conf.separator = cl.getProperty("hibench.streamingbench.separator"); - conf.fieldIndex = Integer.parseInt(cl.getProperty("hibench.streamingbench.field_index")); - NumericCalcSep numeric = new NumericCalcSep(conf); - numeric.run(); - } - } - //Collect metrics data - Thread metricCollector = new Thread(new Reporter(conf.nimbus, conf.nimbusAPIPort, conf.benchName, conf.recordCount, conf.nimbusContactInterval)); - metricCollector.start(); - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/Reporter.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/Reporter.java deleted file mode 100644 index 491c5cc30..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/Reporter.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.metrics; - -import com.intel.hibench.streambench.storm.util.*; - -public class Reporter implements Runnable{ - private String nimbus; - private int port; - private String benchName; - private long recordCount; - private int interval; - - public Reporter(String nimbus,int port,String benchName,long recordCount,int interval){ - this.nimbus=nimbus; - this.port=port; - this.benchName=benchName; - this.recordCount=recordCount; - this.interval=interval; - } - - public void run(){ - StatFacade statsUtil=new StatFacade(nimbus,port,benchName,interval); - - //Get throughput - double runtime=statsUtil.getRunTimeInSec(); - if(runtime==0){ - BenchLogUtil.handleError("Runtime is less than collect time!"); - } - double throughput=(double)recordCount/runtime; - System.out.println("Runtime is: "+runtime+" throughput is: "+throughput); - //Get latency. Currently the metric is from Storm UI - } - - //public static void main(String[] args){ - //run(new String[]{"sr119","6627","microbench_sketch","1000000"}); - //} - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/StatFacade.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/StatFacade.java deleted file mode 100644 index ff87895df..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/metrics/StatFacade.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.metrics; - -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.Timer; -import java.util.TimerTask; - -import org.apache.thrift.TException; -import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.thrift.transport.TFramedTransport; -import org.apache.thrift.transport.TSocket; -import org.apache.thrift.transport.TTransportException; - -import com.intel.hibench.streambench.storm.thrift.generated.ClusterSummary; -import com.intel.hibench.streambench.storm.thrift.generated.ExecutorSummary; -import com.intel.hibench.streambench.storm.thrift.generated.Nimbus; -import com.intel.hibench.streambench.storm.thrift.generated.NotAliveException; -import com.intel.hibench.streambench.storm.thrift.generated.TopologyInfo; -import com.intel.hibench.streambench.storm.thrift.generated.GlobalStreamId; -import com.intel.hibench.streambench.storm.thrift.generated.TopologySummary; - -public class StatFacade { - Nimbus.Client client; - boolean finished=false; - String topologyId; - long finishedTime=0; - Object mutex=new Object(); - long startTime=0; - - int COLLECT_INTERVAL=3000; //3s - - public StatFacade(String host,int port,String topologyName,int interval){ - COLLECT_INTERVAL=interval*1000; - TSocket tsocket = new TSocket(host, port); - TFramedTransport tTransport = new TFramedTransport(tsocket); - TBinaryProtocol tBinaryProtocol = new TBinaryProtocol(tTransport); - client = new Nimbus.Client(tBinaryProtocol); - try { - tTransport.open(); - topologyId=getTopologyId(topologyName); - } catch (TTransportException e) { - e.printStackTrace(); - } - } - - private String getTopologyId(String topoName){ - ClusterSummary clusterSummary; - try { - clusterSummary = client.getClusterInfo(); - List summary=clusterSummary.getTopologies(); - for(TopologySummary topo:summary){ - if(topo.getName().equals(topoName)) - return topo.getId(); - } - } catch (TException e) { - e.printStackTrace(); - } - return null; - } - - //The logic: if the processed tuples count remains same in 5 seconds, then the bench is finished - private void waitToFinish(){ - Timer timer=new Timer(); - timer.schedule(new CheckTask(timer), 0 ,COLLECT_INTERVAL); - try { - synchronized(mutex){ - mutex.wait(); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - finished=true; - } - - private long prevTransfer=0; - class CheckTask extends TimerTask{ - Timer timer; - public CheckTask(Timer timer){ - this.timer=timer; - } - - public void run(){ - long curTransfer=getAckedSize(); - - System.out.println("Prev transfer: "+prevTransfer+" curTransfer: "+curTransfer); - //If no data transfered during the period, then the benchmark finishes - if(curTransfer==prevTransfer && curTransfer!=0){ - synchronized(mutex){ - mutex.notify(); - } - - finishedTime=System.currentTimeMillis()-COLLECT_INTERVAL-COLLECT_INTERVAL/2; //Last interval has ended - timer.cancel(); - timer.purge(); - }else if(prevTransfer==0&&curTransfer!=0){ //This marks the beginning - prevTransfer=curTransfer; - startTime=System.currentTimeMillis()-COLLECT_INTERVAL/2; //An average modify of the start - }else{ - prevTransfer=curTransfer; - } - } - } - - private long getTransferSize(){ - try { - TopologyInfo topologyInfo = client.getTopologyInfo(topologyId); - long transfferedAll=0; - for(ExecutorSummary executorInfo:topologyInfo.executors){ - if(executorInfo==null || executorInfo.stats==null) return 0; - Map> sent=executorInfo.stats.transferred; - if(sent==null) return 0; - Set> transferSet10min=sent.get(":all-time").entrySet(); - for(Map.Entry subEntry:transferSet10min){ - transfferedAll+=subEntry.getValue(); - } - } - return transfferedAll; - } catch (NotAliveException e) { - e.printStackTrace(); - } catch (TException e) { - e.printStackTrace(); - } - return 0; - } - - private long getAckedSize(){ - try { - TopologyInfo topologyInfo = client.getTopologyInfo(topologyId); - long ackTotal=0; - for(ExecutorSummary executorInfo:topologyInfo.executors){ - if(executorInfo==null || executorInfo.stats==null) return 0; - String id = executorInfo.component_id; - if(id.equals("spout") || id.equals("$mastercoord-bg0") || id.equals("$spoutcoord-spout0") || id.equals("spout0") || id.equals("__acker")) - continue; - if(executorInfo.stats.specific == null) return 0; - if(executorInfo.stats.specific.getBolt() == null) return 0; - Map> acked = executorInfo.stats.specific.getBolt().acked; - Map map = acked.get(":all-time"); - if(map == null) return 0; - Set> allTimeAck = map.entrySet(); - for(Map.Entry subEntry:allTimeAck){ - if (id.contains("b-")) { - String ikey = subEntry.getKey().toString(); - if (!ikey.contains("streamId:s")) { - continue; - } - } - ackTotal += subEntry.getValue(); - } - } - return ackTotal; - } catch (NotAliveException e) { - e.printStackTrace(); - } catch (TException e) { - e.printStackTrace(); - } - return 0; - } - - private int getTopologyUpTime(){ - try { - TopologyInfo topologyInfo = client.getTopologyInfo(topologyId); - return topologyInfo.getUptime_secs(); - } catch (NotAliveException e) { - e.printStackTrace(); - } catch (TException e) { - e.printStackTrace(); - } - return 0; - } - - public void checkFinished(){ - if(!finished) - waitToFinish(); - } - - //This shall be called first to ensure the benchmark finishes - public double getRunTimeInSec(){ - checkFinished(); - double time=(double)(finishedTime-startTime)/(double)1000; - //If data is consumed in one interval, in average we estimate the consumption time to be half of the interval - return time>0?time:((double)COLLECT_INTERVAL)/((double)2000); - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/DistinctCount.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/DistinctCount.java deleted file mode 100644 index c963ee483..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/DistinctCount.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.micro; - -import backtype.storm.topology.base.*; -import backtype.storm.topology.*; -import backtype.storm.tuple.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.topologies.*; - -import java.util.HashSet; -import java.util.Set; - -public class DistinctCount extends SingleSpoutTops{ - - public DistinctCount(StormBenchConfig config){ - super(config); - } - - public void setBolt(TopologyBuilder builder){ - builder.setBolt("sketch",new ProjectStreamBolt(config.fieldIndex,config.separator),config.boltThreads).shuffleGrouping("spout"); - builder.setBolt("distinct",new TotalDistinctCountBolt(),config.boltThreads).fieldsGrouping("sketch", new Fields("field")); - } - - public static class TotalDistinctCountBolt extends BaseBasicBolt { - Set set = new HashSet(); - - @Override - public void execute(Tuple tuple, BasicOutputCollector collector){ - String word = tuple.getString(0); //FIXME: always pick up index 0? should be configurable according to sparkstream's version - set.add(word); - BenchLogUtil.logMsg("Distinct count:"+set.size()); - collector.emit(new Values(set.size())); - } - - @Override - public void declareOutputFields(OutputFieldsDeclarer declarer) { - declarer.declare(new Fields("size")); - } - } - - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/GrepStream.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/GrepStream.java deleted file mode 100644 index 5054d6163..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/GrepStream.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.micro; - -import backtype.storm.topology.base.*; -import backtype.storm.topology.*; -import backtype.storm.tuple.*; -import storm.kafka.*; - -import com.intel.hibench.streambench.storm.*; -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.topologies.*; - -import java.util.HashMap; -import java.util.Map; - -public class GrepStream extends SingleSpoutTops{ - - public GrepStream(StormBenchConfig config) { - super(config); - } - - public void setBolt(TopologyBuilder builder){ - builder.setBolt("grepAndPrint",new GrepBolt(config.pattern),config.boltThreads).shuffleGrouping("spout"); - } - - public static class GrepBolt extends BaseBasicBolt{ - private String pattern; - - public GrepBolt(String p){ - pattern=p; - } - - public void execute(Tuple tuple, BasicOutputCollector collector) { - String val=tuple.getString(0); - if(val.contains(pattern)){ - collector.emit(new Values(val)); - //BenchLogUtil.logMsg("Matched:"+val); - } - } - - public void declareOutputFields(OutputFieldsDeclarer ofd) { - } - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Identity.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Identity.java deleted file mode 100644 index ec83cc653..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Identity.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.micro; - -import backtype.storm.topology.base.*; -import backtype.storm.topology.*; -import backtype.storm.tuple.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.topologies.*; - - -public class Identity extends SingleSpoutTops{ - - public Identity(StormBenchConfig config){ - super(config); - } - - public void setBolt(TopologyBuilder builder){ - builder.setBolt("identity",new IdentityBolt(), config.boltThreads).shuffleGrouping("spout"); - } - - public static class IdentityBolt extends BaseBasicBolt { - - @Override - public void execute(Tuple tuple, BasicOutputCollector collector){ - collector.emit(new Values(tuple.getValues())); - } - - @Override - public void declareOutputFields(OutputFieldsDeclarer declarer) { - declarer.declare(new Fields("tuple")); - } - } -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/NumericCalc.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/NumericCalc.java deleted file mode 100644 index 5ba2fc7e8..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/NumericCalc.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.micro; - -import backtype.storm.topology.base.*; -import backtype.storm.topology.*; -import backtype.storm.tuple.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.topologies.*; - -public class NumericCalc extends SingleSpoutTops{ - - public NumericCalc(StormBenchConfig config){ - super(config); - } - - public void setBolt(TopologyBuilder builder){ - builder.setBolt("precalc",new NumericBolt(config.separator,config.fieldIndex),Math.max(1,config.boltThreads-1)).shuffleGrouping("spout"); - builder.setBolt("calc",new NumericTogetherBolt(),1).globalGrouping("precalc"); - } - - public static class NumericBolt extends BaseBasicBolt{ - private int fieldIndexInner; - private String separatorInner; - private long max=0; - private long min=Long.MAX_VALUE; - - public NumericBolt(String separator,int fieldIndex){ - fieldIndexInner=fieldIndex; - separatorInner=separator; - } - - public void execute(Tuple tuple, BasicOutputCollector collector) { - String record=tuple.getString(0); - String[] fields=record.trim().split(separatorInner); - if(fields.length>fieldIndexInner){ - long val=Long.parseLong(fields[fieldIndexInner]); - if(val>max) max=val; - if(valmax) max=curMax; - if(curMinfieldIndexInner){ - long val=Long.parseLong(fields[fieldIndexInner]); - if(val>max) max=val; - if(valfieldIndex){ - //BenchLogUtil.logMsg(fields[fieldIndex]); - collector.emit(new Values(fields[fieldIndex])); - } - - } - - public void declareOutputFields(OutputFieldsDeclarer declarer) { - declarer.declare(new Fields("field")); - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SampleStream.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SampleStream.java deleted file mode 100644 index 63827a528..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SampleStream.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.micro; - -import backtype.storm.topology.base.*; -import backtype.storm.topology.*; -import backtype.storm.tuple.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.topologies.*; - -import java.util.Random; - -public class SampleStream extends SingleSpoutTops{ - - public SampleStream(StormBenchConfig config){ - super(config); - } - - public void setBolt(TopologyBuilder builder){ - builder.setBolt("sampleAndPrint",new SampleBolt(config.prob),config.boltThreads).shuffleGrouping("spout"); - } - - public static class SampleBolt extends BaseBasicBolt{ - - private double probability; - private int count=0; - private ThreadLocal rand = null; - - public SampleBolt(double prob){ - probability=prob; - rand = threadRandom(1); - } - - public void execute(Tuple tuple, BasicOutputCollector collector) { - double randVal = rand.get().nextDouble(); - if(randVal<=probability){ - count+=1; - collector.emit(new Values(tuple.getString(0))); - BenchLogUtil.logMsg(" count:"+count); - } - } - - public void declareOutputFields(OutputFieldsDeclarer ofd){ - } - } - - public static ThreadLocal threadRandom(final long seed) { - return new ThreadLocal(){ - @Override - protected Random initialValue() { - return new Random(seed); - } - }; - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SplitStreamBolt.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SplitStreamBolt.java deleted file mode 100644 index 8e9dac626..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/SplitStreamBolt.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.micro; - -import backtype.storm.topology.BasicOutputCollector; -import backtype.storm.topology.OutputFieldsDeclarer; -import backtype.storm.topology.base.BaseBasicBolt; -import backtype.storm.tuple.Tuple; - -import backtype.storm.tuple.Fields; -import backtype.storm.tuple.Values; - -public class SplitStreamBolt extends BaseBasicBolt{ - private String separator; - - public SplitStreamBolt(String separator){ - this.separator=separator; - } - - public void execute(Tuple tuple, BasicOutputCollector collector) { - String record=tuple.getString(0); - String[] fields=record.split(separator); - for(String s:fields){ - collector.emit(new Values(s)); - } - } - - public void declareOutputFields(OutputFieldsDeclarer declarer) { - declarer.declare(new Fields("word")); - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Wordcount.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Wordcount.java deleted file mode 100644 index 8954af3b2..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/micro/Wordcount.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.micro; - -import backtype.storm.topology.base.*; -import backtype.storm.topology.*; -import backtype.storm.tuple.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.topologies.*; - -import java.util.HashMap; -import java.util.Map; - -public class Wordcount extends SingleSpoutTops{ - - public Wordcount(StormBenchConfig config){ - super(config); - } - - public void setBolt(TopologyBuilder builder){ - builder.setBolt("split",new SplitStreamBolt(config.separator),config.boltThreads).shuffleGrouping("spout"); - builder.setBolt("count",new WordCountBolt(), config.boltThreads).fieldsGrouping("split", new Fields("word")); - } - - public static class WordCountBolt extends BaseBasicBolt { - Map counts = new HashMap(); - - @Override - public void execute(Tuple tuple, BasicOutputCollector collector){ - String word = tuple.getString(0); - Integer count = counts.get(word); - if (count == null) - count = 0; - count++; - counts.put(word, count); - //BenchLogUtil.logMsg("Word:"+word+" count:"+count); - collector.emit(new Values(word, count)); - } - - @Override - public void declareOutputFields(OutputFieldsDeclarer declarer) { - declarer.declare(new Fields("word", "count")); - } - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/ConstructSpoutUtil.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/ConstructSpoutUtil.java deleted file mode 100644 index 52d8316f3..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/ConstructSpoutUtil.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.spout; - -import backtype.storm.topology.base.BaseRichSpout; -import com.intel.hibench.streambench.storm.util.*; -import java.io.*; -import java.util.*; -import storm.kafka.trident.*; - -public class ConstructSpoutUtil{ - - private static StormBenchConfig conf; - private static boolean isLocal=false; - - public static BaseRichSpout constructSpout(){ - BaseRichSpout spout=null; - if(isLocal){ - //if(args.length<2) - //BenchLogUtil.handleError("RunBench Local Usage: "); - //String dataFile=prop.getProperty("datafile"); - //spout=LocalSpoutFactory.getSpout(dataFile,recordCount); - spout=null; - }else{ - String topic=conf.topic; - String consumerGroup=conf.consumerGroup; - boolean readFromStart=conf.readFromStart; - String zkHost=conf.zkHost; - BenchLogUtil.logMsg("Topic:"+topic+" consumerGroup:"+consumerGroup+" zkHost:"+zkHost); - spout=KafkaSpoutFactory.getSpout(zkHost,topic,consumerGroup,readFromStart); - } - return spout; - } - - - public static OpaqueTridentKafkaSpout constructTridentSpout(){ - String topic = conf.topic; - String consumerGroup = conf.consumerGroup; - boolean readFromStart=conf.readFromStart; - String zkHost = conf.zkHost; - BenchLogUtil.logMsg("Topic:"+topic+" consumerGroup:"+consumerGroup+" zkHost:"+zkHost); - OpaqueTridentKafkaSpout spout=KafkaSpoutFactory.getTridentSpout(zkHost,topic,consumerGroup,readFromStart); - return spout; - } - - - public static void setConfig(StormBenchConfig c){ - conf=c; - } - - - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/KafkaSpoutFactory.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/KafkaSpoutFactory.java deleted file mode 100644 index 70961e67e..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/spout/KafkaSpoutFactory.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.spout; - -import backtype.storm.topology.base.BaseRichSpout; -import backtype.storm.Config; -import storm.kafka.*; -import backtype.storm.spout.SchemeAsMultiScheme; -import storm.kafka.trident.*; - -public class KafkaSpoutFactory{ - - public static BaseRichSpout getSpout(String zkHost,String topic,String consumerGroup,boolean readFromStart){ - BrokerHosts brokerHosts=new ZkHosts(zkHost); - SpoutConfig spoutConfig = new SpoutConfig(brokerHosts,topic,"/"+consumerGroup,consumerGroup); - spoutConfig.scheme=new SchemeAsMultiScheme(new StringScheme()); - //spoutConfig.stateUpdateIntervalMs = 1000; - spoutConfig.forceFromStart=readFromStart; - KafkaSpout kafkaSpout = new KafkaSpout(spoutConfig); - return kafkaSpout; - } - - - public static OpaqueTridentKafkaSpout getTridentSpout(String zkHost,String topic,String consumerGroup,boolean readFromStart){ - BrokerHosts brokerHosts=new ZkHosts(zkHost); - TridentKafkaConfig tridentKafkaConfig = new TridentKafkaConfig(brokerHosts,topic,consumerGroup); - tridentKafkaConfig.fetchSizeBytes = 10*1024; - tridentKafkaConfig.scheme = new SchemeAsMultiScheme(new StringScheme()); - tridentKafkaConfig.forceFromStart = readFromStart; - OpaqueTridentKafkaSpout opaqueTridentKafkaSpout = new OpaqueTridentKafkaSpout(tridentKafkaConfig); - return opaqueTridentKafkaSpout; - } - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/AlreadyAliveException.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/AlreadyAliveException.java deleted file mode 100644 index 09088de1c..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/AlreadyAliveException.java +++ /dev/null @@ -1,387 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AlreadyAliveException extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AlreadyAliveException"); - - private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new org.apache.thrift.protocol.TField("msg", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new AlreadyAliveExceptionStandardSchemeFactory()); - schemes.put(TupleScheme.class, new AlreadyAliveExceptionTupleSchemeFactory()); - } - - public String msg; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - MSG((short)1, "msg"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // MSG - return MSG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.MSG, new org.apache.thrift.meta_data.FieldMetaData("msg", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(AlreadyAliveException.class, metaDataMap); - } - - public AlreadyAliveException() { - } - - public AlreadyAliveException( - String msg) - { - this(); - this.msg = msg; - } - - /** - * Performs a deep copy on other. - */ - public AlreadyAliveException(AlreadyAliveException other) { - if (other.isSetMsg()) { - this.msg = other.msg; - } - } - - public AlreadyAliveException deepCopy() { - return new AlreadyAliveException(this); - } - - @Override - public void clear() { - this.msg = null; - } - - public String getMsg() { - return this.msg; - } - - public AlreadyAliveException setMsg(String msg) { - this.msg = msg; - return this; - } - - public void unsetMsg() { - this.msg = null; - } - - /** Returns true if field msg is set (has been assigned a value) and false otherwise */ - public boolean isSetMsg() { - return this.msg != null; - } - - public void setMsgIsSet(boolean value) { - if (!value) { - this.msg = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case MSG: - if (value == null) { - unsetMsg(); - } else { - setMsg((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case MSG: - return getMsg(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case MSG: - return isSetMsg(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof AlreadyAliveException) - return this.equals((AlreadyAliveException)that); - return false; - } - - public boolean equals(AlreadyAliveException that) { - if (that == null) - return false; - - boolean this_present_msg = true && this.isSetMsg(); - boolean that_present_msg = true && that.isSetMsg(); - if (this_present_msg || that_present_msg) { - if (!(this_present_msg && that_present_msg)) - return false; - if (!this.msg.equals(that.msg)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_msg = true && (isSetMsg()); - builder.append(present_msg); - if (present_msg) - builder.append(msg); - - return builder.toHashCode(); - } - - public int compareTo(AlreadyAliveException other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - AlreadyAliveException typedOther = (AlreadyAliveException)other; - - lastComparison = Boolean.valueOf(isSetMsg()).compareTo(typedOther.isSetMsg()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetMsg()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.msg, typedOther.msg); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("AlreadyAliveException("); - boolean first = true; - - sb.append("msg:"); - if (this.msg == null) { - sb.append("null"); - } else { - sb.append(this.msg); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (msg == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'msg' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class AlreadyAliveExceptionStandardSchemeFactory implements SchemeFactory { - public AlreadyAliveExceptionStandardScheme getScheme() { - return new AlreadyAliveExceptionStandardScheme(); - } - } - - private static class AlreadyAliveExceptionStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, AlreadyAliveException struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // MSG - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, AlreadyAliveException struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.msg != null) { - oprot.writeFieldBegin(MSG_FIELD_DESC); - oprot.writeString(struct.msg); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class AlreadyAliveExceptionTupleSchemeFactory implements SchemeFactory { - public AlreadyAliveExceptionTupleScheme getScheme() { - return new AlreadyAliveExceptionTupleScheme(); - } - } - - private static class AlreadyAliveExceptionTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, AlreadyAliveException struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.msg); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, AlreadyAliveException struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Bolt.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Bolt.java deleted file mode 100644 index 1285ea08c..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Bolt.java +++ /dev/null @@ -1,495 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Bolt implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Bolt"); - - private static final org.apache.thrift.protocol.TField BOLT_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("bolt_object", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField COMMON_FIELD_DESC = new org.apache.thrift.protocol.TField("common", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new BoltStandardSchemeFactory()); - schemes.put(TupleScheme.class, new BoltTupleSchemeFactory()); - } - - public ComponentObject bolt_object; // required - public ComponentCommon common; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - BOLT_OBJECT((short)1, "bolt_object"), - COMMON((short)2, "common"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // BOLT_OBJECT - return BOLT_OBJECT; - case 2: // COMMON - return COMMON; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.BOLT_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("bolt_object", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentObject.class))); - tmpMap.put(_Fields.COMMON, new org.apache.thrift.meta_data.FieldMetaData("common", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentCommon.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Bolt.class, metaDataMap); - } - - public Bolt() { - } - - public Bolt( - ComponentObject bolt_object, - ComponentCommon common) - { - this(); - this.bolt_object = bolt_object; - this.common = common; - } - - /** - * Performs a deep copy on other. - */ - public Bolt(Bolt other) { - if (other.isSetBolt_object()) { - this.bolt_object = new ComponentObject(other.bolt_object); - } - if (other.isSetCommon()) { - this.common = new ComponentCommon(other.common); - } - } - - public Bolt deepCopy() { - return new Bolt(this); - } - - @Override - public void clear() { - this.bolt_object = null; - this.common = null; - } - - public ComponentObject getBolt_object() { - return this.bolt_object; - } - - public Bolt setBolt_object(ComponentObject bolt_object) { - this.bolt_object = bolt_object; - return this; - } - - public void unsetBolt_object() { - this.bolt_object = null; - } - - /** Returns true if field bolt_object is set (has been assigned a value) and false otherwise */ - public boolean isSetBolt_object() { - return this.bolt_object != null; - } - - public void setBolt_objectIsSet(boolean value) { - if (!value) { - this.bolt_object = null; - } - } - - public ComponentCommon getCommon() { - return this.common; - } - - public Bolt setCommon(ComponentCommon common) { - this.common = common; - return this; - } - - public void unsetCommon() { - this.common = null; - } - - /** Returns true if field common is set (has been assigned a value) and false otherwise */ - public boolean isSetCommon() { - return this.common != null; - } - - public void setCommonIsSet(boolean value) { - if (!value) { - this.common = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case BOLT_OBJECT: - if (value == null) { - unsetBolt_object(); - } else { - setBolt_object((ComponentObject)value); - } - break; - - case COMMON: - if (value == null) { - unsetCommon(); - } else { - setCommon((ComponentCommon)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case BOLT_OBJECT: - return getBolt_object(); - - case COMMON: - return getCommon(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case BOLT_OBJECT: - return isSetBolt_object(); - case COMMON: - return isSetCommon(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof Bolt) - return this.equals((Bolt)that); - return false; - } - - public boolean equals(Bolt that) { - if (that == null) - return false; - - boolean this_present_bolt_object = true && this.isSetBolt_object(); - boolean that_present_bolt_object = true && that.isSetBolt_object(); - if (this_present_bolt_object || that_present_bolt_object) { - if (!(this_present_bolt_object && that_present_bolt_object)) - return false; - if (!this.bolt_object.equals(that.bolt_object)) - return false; - } - - boolean this_present_common = true && this.isSetCommon(); - boolean that_present_common = true && that.isSetCommon(); - if (this_present_common || that_present_common) { - if (!(this_present_common && that_present_common)) - return false; - if (!this.common.equals(that.common)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_bolt_object = true && (isSetBolt_object()); - builder.append(present_bolt_object); - if (present_bolt_object) - builder.append(bolt_object); - - boolean present_common = true && (isSetCommon()); - builder.append(present_common); - if (present_common) - builder.append(common); - - return builder.toHashCode(); - } - - public int compareTo(Bolt other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - Bolt typedOther = (Bolt)other; - - lastComparison = Boolean.valueOf(isSetBolt_object()).compareTo(typedOther.isSetBolt_object()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetBolt_object()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bolt_object, typedOther.bolt_object); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetCommon()).compareTo(typedOther.isSetCommon()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetCommon()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.common, typedOther.common); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("Bolt("); - boolean first = true; - - sb.append("bolt_object:"); - if (this.bolt_object == null) { - sb.append("null"); - } else { - sb.append(this.bolt_object); - } - first = false; - if (!first) sb.append(", "); - sb.append("common:"); - if (this.common == null) { - sb.append("null"); - } else { - sb.append(this.common); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (bolt_object == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'bolt_object' was not present! Struct: " + toString()); - } - if (common == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'common' was not present! Struct: " + toString()); - } - // check for sub-struct validity - if (common != null) { - common.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class BoltStandardSchemeFactory implements SchemeFactory { - public BoltStandardScheme getScheme() { - return new BoltStandardScheme(); - } - } - - private static class BoltStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, Bolt struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // BOLT_OBJECT - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.bolt_object = new ComponentObject(); - struct.bolt_object.read(iprot); - struct.setBolt_objectIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // COMMON - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.common = new ComponentCommon(); - struct.common.read(iprot); - struct.setCommonIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, Bolt struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.bolt_object != null) { - oprot.writeFieldBegin(BOLT_OBJECT_FIELD_DESC); - struct.bolt_object.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.common != null) { - oprot.writeFieldBegin(COMMON_FIELD_DESC); - struct.common.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class BoltTupleSchemeFactory implements SchemeFactory { - public BoltTupleScheme getScheme() { - return new BoltTupleScheme(); - } - } - - private static class BoltTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, Bolt struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - struct.bolt_object.write(oprot); - struct.common.write(oprot); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, Bolt struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.bolt_object = new ComponentObject(); - struct.bolt_object.read(iprot); - struct.setBolt_objectIsSet(true); - struct.common = new ComponentCommon(); - struct.common.read(iprot); - struct.setCommonIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/BoltStats.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/BoltStats.java deleted file mode 100644 index 146d0734d..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/BoltStats.java +++ /dev/null @@ -1,1371 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class BoltStats implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BoltStats"); - - private static final org.apache.thrift.protocol.TField ACKED_FIELD_DESC = new org.apache.thrift.protocol.TField("acked", org.apache.thrift.protocol.TType.MAP, (short)1); - private static final org.apache.thrift.protocol.TField FAILED_FIELD_DESC = new org.apache.thrift.protocol.TField("failed", org.apache.thrift.protocol.TType.MAP, (short)2); - private static final org.apache.thrift.protocol.TField PROCESS_MS_AVG_FIELD_DESC = new org.apache.thrift.protocol.TField("process_ms_avg", org.apache.thrift.protocol.TType.MAP, (short)3); - private static final org.apache.thrift.protocol.TField EXECUTED_FIELD_DESC = new org.apache.thrift.protocol.TField("executed", org.apache.thrift.protocol.TType.MAP, (short)4); - private static final org.apache.thrift.protocol.TField EXECUTE_MS_AVG_FIELD_DESC = new org.apache.thrift.protocol.TField("execute_ms_avg", org.apache.thrift.protocol.TType.MAP, (short)5); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new BoltStatsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new BoltStatsTupleSchemeFactory()); - } - - public Map> acked; // required - public Map> failed; // required - public Map> process_ms_avg; // required - public Map> executed; // required - public Map> execute_ms_avg; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ACKED((short)1, "acked"), - FAILED((short)2, "failed"), - PROCESS_MS_AVG((short)3, "process_ms_avg"), - EXECUTED((short)4, "executed"), - EXECUTE_MS_AVG((short)5, "execute_ms_avg"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ACKED - return ACKED; - case 2: // FAILED - return FAILED; - case 3: // PROCESS_MS_AVG - return PROCESS_MS_AVG; - case 4: // EXECUTED - return EXECUTED; - case 5: // EXECUTE_MS_AVG - return EXECUTE_MS_AVG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ACKED, new org.apache.thrift.meta_data.FieldMetaData("acked", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GlobalStreamId.class), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))))); - tmpMap.put(_Fields.FAILED, new org.apache.thrift.meta_data.FieldMetaData("failed", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GlobalStreamId.class), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))))); - tmpMap.put(_Fields.PROCESS_MS_AVG, new org.apache.thrift.meta_data.FieldMetaData("process_ms_avg", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GlobalStreamId.class), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE))))); - tmpMap.put(_Fields.EXECUTED, new org.apache.thrift.meta_data.FieldMetaData("executed", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GlobalStreamId.class), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))))); - tmpMap.put(_Fields.EXECUTE_MS_AVG, new org.apache.thrift.meta_data.FieldMetaData("execute_ms_avg", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GlobalStreamId.class), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE))))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(BoltStats.class, metaDataMap); - } - - public BoltStats() { - } - - public BoltStats( - Map> acked, - Map> failed, - Map> process_ms_avg, - Map> executed, - Map> execute_ms_avg) - { - this(); - this.acked = acked; - this.failed = failed; - this.process_ms_avg = process_ms_avg; - this.executed = executed; - this.execute_ms_avg = execute_ms_avg; - } - - /** - * Performs a deep copy on other. - */ - public BoltStats(BoltStats other) { - if (other.isSetAcked()) { - Map> __this__acked = new HashMap>(); - for (Map.Entry> other_element : other.acked.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__acked_copy_key = other_element_key; - - Map __this__acked_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - GlobalStreamId other_element_value_element_key = other_element_value_element.getKey(); - Long other_element_value_element_value = other_element_value_element.getValue(); - - GlobalStreamId __this__acked_copy_value_copy_key = new GlobalStreamId(other_element_value_element_key); - - Long __this__acked_copy_value_copy_value = other_element_value_element_value; - - __this__acked_copy_value.put(__this__acked_copy_value_copy_key, __this__acked_copy_value_copy_value); - } - - __this__acked.put(__this__acked_copy_key, __this__acked_copy_value); - } - this.acked = __this__acked; - } - if (other.isSetFailed()) { - Map> __this__failed = new HashMap>(); - for (Map.Entry> other_element : other.failed.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__failed_copy_key = other_element_key; - - Map __this__failed_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - GlobalStreamId other_element_value_element_key = other_element_value_element.getKey(); - Long other_element_value_element_value = other_element_value_element.getValue(); - - GlobalStreamId __this__failed_copy_value_copy_key = new GlobalStreamId(other_element_value_element_key); - - Long __this__failed_copy_value_copy_value = other_element_value_element_value; - - __this__failed_copy_value.put(__this__failed_copy_value_copy_key, __this__failed_copy_value_copy_value); - } - - __this__failed.put(__this__failed_copy_key, __this__failed_copy_value); - } - this.failed = __this__failed; - } - if (other.isSetProcess_ms_avg()) { - Map> __this__process_ms_avg = new HashMap>(); - for (Map.Entry> other_element : other.process_ms_avg.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__process_ms_avg_copy_key = other_element_key; - - Map __this__process_ms_avg_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - GlobalStreamId other_element_value_element_key = other_element_value_element.getKey(); - Double other_element_value_element_value = other_element_value_element.getValue(); - - GlobalStreamId __this__process_ms_avg_copy_value_copy_key = new GlobalStreamId(other_element_value_element_key); - - Double __this__process_ms_avg_copy_value_copy_value = other_element_value_element_value; - - __this__process_ms_avg_copy_value.put(__this__process_ms_avg_copy_value_copy_key, __this__process_ms_avg_copy_value_copy_value); - } - - __this__process_ms_avg.put(__this__process_ms_avg_copy_key, __this__process_ms_avg_copy_value); - } - this.process_ms_avg = __this__process_ms_avg; - } - if (other.isSetExecuted()) { - Map> __this__executed = new HashMap>(); - for (Map.Entry> other_element : other.executed.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__executed_copy_key = other_element_key; - - Map __this__executed_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - GlobalStreamId other_element_value_element_key = other_element_value_element.getKey(); - Long other_element_value_element_value = other_element_value_element.getValue(); - - GlobalStreamId __this__executed_copy_value_copy_key = new GlobalStreamId(other_element_value_element_key); - - Long __this__executed_copy_value_copy_value = other_element_value_element_value; - - __this__executed_copy_value.put(__this__executed_copy_value_copy_key, __this__executed_copy_value_copy_value); - } - - __this__executed.put(__this__executed_copy_key, __this__executed_copy_value); - } - this.executed = __this__executed; - } - if (other.isSetExecute_ms_avg()) { - Map> __this__execute_ms_avg = new HashMap>(); - for (Map.Entry> other_element : other.execute_ms_avg.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__execute_ms_avg_copy_key = other_element_key; - - Map __this__execute_ms_avg_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - GlobalStreamId other_element_value_element_key = other_element_value_element.getKey(); - Double other_element_value_element_value = other_element_value_element.getValue(); - - GlobalStreamId __this__execute_ms_avg_copy_value_copy_key = new GlobalStreamId(other_element_value_element_key); - - Double __this__execute_ms_avg_copy_value_copy_value = other_element_value_element_value; - - __this__execute_ms_avg_copy_value.put(__this__execute_ms_avg_copy_value_copy_key, __this__execute_ms_avg_copy_value_copy_value); - } - - __this__execute_ms_avg.put(__this__execute_ms_avg_copy_key, __this__execute_ms_avg_copy_value); - } - this.execute_ms_avg = __this__execute_ms_avg; - } - } - - public BoltStats deepCopy() { - return new BoltStats(this); - } - - @Override - public void clear() { - this.acked = null; - this.failed = null; - this.process_ms_avg = null; - this.executed = null; - this.execute_ms_avg = null; - } - - public int getAckedSize() { - return (this.acked == null) ? 0 : this.acked.size(); - } - - public void putToAcked(String key, Map val) { - if (this.acked == null) { - this.acked = new HashMap>(); - } - this.acked.put(key, val); - } - - public Map> getAcked() { - return this.acked; - } - - public BoltStats setAcked(Map> acked) { - this.acked = acked; - return this; - } - - public void unsetAcked() { - this.acked = null; - } - - /** Returns true if field acked is set (has been assigned a value) and false otherwise */ - public boolean isSetAcked() { - return this.acked != null; - } - - public void setAckedIsSet(boolean value) { - if (!value) { - this.acked = null; - } - } - - public int getFailedSize() { - return (this.failed == null) ? 0 : this.failed.size(); - } - - public void putToFailed(String key, Map val) { - if (this.failed == null) { - this.failed = new HashMap>(); - } - this.failed.put(key, val); - } - - public Map> getFailed() { - return this.failed; - } - - public BoltStats setFailed(Map> failed) { - this.failed = failed; - return this; - } - - public void unsetFailed() { - this.failed = null; - } - - /** Returns true if field failed is set (has been assigned a value) and false otherwise */ - public boolean isSetFailed() { - return this.failed != null; - } - - public void setFailedIsSet(boolean value) { - if (!value) { - this.failed = null; - } - } - - public int getProcess_ms_avgSize() { - return (this.process_ms_avg == null) ? 0 : this.process_ms_avg.size(); - } - - public void putToProcess_ms_avg(String key, Map val) { - if (this.process_ms_avg == null) { - this.process_ms_avg = new HashMap>(); - } - this.process_ms_avg.put(key, val); - } - - public Map> getProcess_ms_avg() { - return this.process_ms_avg; - } - - public BoltStats setProcess_ms_avg(Map> process_ms_avg) { - this.process_ms_avg = process_ms_avg; - return this; - } - - public void unsetProcess_ms_avg() { - this.process_ms_avg = null; - } - - /** Returns true if field process_ms_avg is set (has been assigned a value) and false otherwise */ - public boolean isSetProcess_ms_avg() { - return this.process_ms_avg != null; - } - - public void setProcess_ms_avgIsSet(boolean value) { - if (!value) { - this.process_ms_avg = null; - } - } - - public int getExecutedSize() { - return (this.executed == null) ? 0 : this.executed.size(); - } - - public void putToExecuted(String key, Map val) { - if (this.executed == null) { - this.executed = new HashMap>(); - } - this.executed.put(key, val); - } - - public Map> getExecuted() { - return this.executed; - } - - public BoltStats setExecuted(Map> executed) { - this.executed = executed; - return this; - } - - public void unsetExecuted() { - this.executed = null; - } - - /** Returns true if field executed is set (has been assigned a value) and false otherwise */ - public boolean isSetExecuted() { - return this.executed != null; - } - - public void setExecutedIsSet(boolean value) { - if (!value) { - this.executed = null; - } - } - - public int getExecute_ms_avgSize() { - return (this.execute_ms_avg == null) ? 0 : this.execute_ms_avg.size(); - } - - public void putToExecute_ms_avg(String key, Map val) { - if (this.execute_ms_avg == null) { - this.execute_ms_avg = new HashMap>(); - } - this.execute_ms_avg.put(key, val); - } - - public Map> getExecute_ms_avg() { - return this.execute_ms_avg; - } - - public BoltStats setExecute_ms_avg(Map> execute_ms_avg) { - this.execute_ms_avg = execute_ms_avg; - return this; - } - - public void unsetExecute_ms_avg() { - this.execute_ms_avg = null; - } - - /** Returns true if field execute_ms_avg is set (has been assigned a value) and false otherwise */ - public boolean isSetExecute_ms_avg() { - return this.execute_ms_avg != null; - } - - public void setExecute_ms_avgIsSet(boolean value) { - if (!value) { - this.execute_ms_avg = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ACKED: - if (value == null) { - unsetAcked(); - } else { - setAcked((Map>)value); - } - break; - - case FAILED: - if (value == null) { - unsetFailed(); - } else { - setFailed((Map>)value); - } - break; - - case PROCESS_MS_AVG: - if (value == null) { - unsetProcess_ms_avg(); - } else { - setProcess_ms_avg((Map>)value); - } - break; - - case EXECUTED: - if (value == null) { - unsetExecuted(); - } else { - setExecuted((Map>)value); - } - break; - - case EXECUTE_MS_AVG: - if (value == null) { - unsetExecute_ms_avg(); - } else { - setExecute_ms_avg((Map>)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ACKED: - return getAcked(); - - case FAILED: - return getFailed(); - - case PROCESS_MS_AVG: - return getProcess_ms_avg(); - - case EXECUTED: - return getExecuted(); - - case EXECUTE_MS_AVG: - return getExecute_ms_avg(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ACKED: - return isSetAcked(); - case FAILED: - return isSetFailed(); - case PROCESS_MS_AVG: - return isSetProcess_ms_avg(); - case EXECUTED: - return isSetExecuted(); - case EXECUTE_MS_AVG: - return isSetExecute_ms_avg(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof BoltStats) - return this.equals((BoltStats)that); - return false; - } - - public boolean equals(BoltStats that) { - if (that == null) - return false; - - boolean this_present_acked = true && this.isSetAcked(); - boolean that_present_acked = true && that.isSetAcked(); - if (this_present_acked || that_present_acked) { - if (!(this_present_acked && that_present_acked)) - return false; - if (!this.acked.equals(that.acked)) - return false; - } - - boolean this_present_failed = true && this.isSetFailed(); - boolean that_present_failed = true && that.isSetFailed(); - if (this_present_failed || that_present_failed) { - if (!(this_present_failed && that_present_failed)) - return false; - if (!this.failed.equals(that.failed)) - return false; - } - - boolean this_present_process_ms_avg = true && this.isSetProcess_ms_avg(); - boolean that_present_process_ms_avg = true && that.isSetProcess_ms_avg(); - if (this_present_process_ms_avg || that_present_process_ms_avg) { - if (!(this_present_process_ms_avg && that_present_process_ms_avg)) - return false; - if (!this.process_ms_avg.equals(that.process_ms_avg)) - return false; - } - - boolean this_present_executed = true && this.isSetExecuted(); - boolean that_present_executed = true && that.isSetExecuted(); - if (this_present_executed || that_present_executed) { - if (!(this_present_executed && that_present_executed)) - return false; - if (!this.executed.equals(that.executed)) - return false; - } - - boolean this_present_execute_ms_avg = true && this.isSetExecute_ms_avg(); - boolean that_present_execute_ms_avg = true && that.isSetExecute_ms_avg(); - if (this_present_execute_ms_avg || that_present_execute_ms_avg) { - if (!(this_present_execute_ms_avg && that_present_execute_ms_avg)) - return false; - if (!this.execute_ms_avg.equals(that.execute_ms_avg)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_acked = true && (isSetAcked()); - builder.append(present_acked); - if (present_acked) - builder.append(acked); - - boolean present_failed = true && (isSetFailed()); - builder.append(present_failed); - if (present_failed) - builder.append(failed); - - boolean present_process_ms_avg = true && (isSetProcess_ms_avg()); - builder.append(present_process_ms_avg); - if (present_process_ms_avg) - builder.append(process_ms_avg); - - boolean present_executed = true && (isSetExecuted()); - builder.append(present_executed); - if (present_executed) - builder.append(executed); - - boolean present_execute_ms_avg = true && (isSetExecute_ms_avg()); - builder.append(present_execute_ms_avg); - if (present_execute_ms_avg) - builder.append(execute_ms_avg); - - return builder.toHashCode(); - } - - public int compareTo(BoltStats other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - BoltStats typedOther = (BoltStats)other; - - lastComparison = Boolean.valueOf(isSetAcked()).compareTo(typedOther.isSetAcked()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetAcked()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.acked, typedOther.acked); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetFailed()).compareTo(typedOther.isSetFailed()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFailed()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.failed, typedOther.failed); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetProcess_ms_avg()).compareTo(typedOther.isSetProcess_ms_avg()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetProcess_ms_avg()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.process_ms_avg, typedOther.process_ms_avg); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetExecuted()).compareTo(typedOther.isSetExecuted()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetExecuted()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executed, typedOther.executed); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetExecute_ms_avg()).compareTo(typedOther.isSetExecute_ms_avg()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetExecute_ms_avg()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.execute_ms_avg, typedOther.execute_ms_avg); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("BoltStats("); - boolean first = true; - - sb.append("acked:"); - if (this.acked == null) { - sb.append("null"); - } else { - sb.append(this.acked); - } - first = false; - if (!first) sb.append(", "); - sb.append("failed:"); - if (this.failed == null) { - sb.append("null"); - } else { - sb.append(this.failed); - } - first = false; - if (!first) sb.append(", "); - sb.append("process_ms_avg:"); - if (this.process_ms_avg == null) { - sb.append("null"); - } else { - sb.append(this.process_ms_avg); - } - first = false; - if (!first) sb.append(", "); - sb.append("executed:"); - if (this.executed == null) { - sb.append("null"); - } else { - sb.append(this.executed); - } - first = false; - if (!first) sb.append(", "); - sb.append("execute_ms_avg:"); - if (this.execute_ms_avg == null) { - sb.append("null"); - } else { - sb.append(this.execute_ms_avg); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (acked == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'acked' was not present! Struct: " + toString()); - } - if (failed == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'failed' was not present! Struct: " + toString()); - } - if (process_ms_avg == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'process_ms_avg' was not present! Struct: " + toString()); - } - if (executed == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'executed' was not present! Struct: " + toString()); - } - if (execute_ms_avg == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'execute_ms_avg' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class BoltStatsStandardSchemeFactory implements SchemeFactory { - public BoltStatsStandardScheme getScheme() { - return new BoltStatsStandardScheme(); - } - } - - private static class BoltStatsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, BoltStats struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ACKED - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map90 = iprot.readMapBegin(); - struct.acked = new HashMap>(2*_map90.size); - for (int _i91 = 0; _i91 < _map90.size; ++_i91) - { - String _key92; // required - Map _val93; // required - _key92 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map94 = iprot.readMapBegin(); - _val93 = new HashMap(2*_map94.size); - for (int _i95 = 0; _i95 < _map94.size; ++_i95) - { - GlobalStreamId _key96; // required - long _val97; // required - _key96 = new GlobalStreamId(); - _key96.read(iprot); - _val97 = iprot.readI64(); - _val93.put(_key96, _val97); - } - iprot.readMapEnd(); - } - struct.acked.put(_key92, _val93); - } - iprot.readMapEnd(); - } - struct.setAckedIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // FAILED - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map98 = iprot.readMapBegin(); - struct.failed = new HashMap>(2*_map98.size); - for (int _i99 = 0; _i99 < _map98.size; ++_i99) - { - String _key100; // required - Map _val101; // required - _key100 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map102 = iprot.readMapBegin(); - _val101 = new HashMap(2*_map102.size); - for (int _i103 = 0; _i103 < _map102.size; ++_i103) - { - GlobalStreamId _key104; // required - long _val105; // required - _key104 = new GlobalStreamId(); - _key104.read(iprot); - _val105 = iprot.readI64(); - _val101.put(_key104, _val105); - } - iprot.readMapEnd(); - } - struct.failed.put(_key100, _val101); - } - iprot.readMapEnd(); - } - struct.setFailedIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // PROCESS_MS_AVG - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map106 = iprot.readMapBegin(); - struct.process_ms_avg = new HashMap>(2*_map106.size); - for (int _i107 = 0; _i107 < _map106.size; ++_i107) - { - String _key108; // required - Map _val109; // required - _key108 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map110 = iprot.readMapBegin(); - _val109 = new HashMap(2*_map110.size); - for (int _i111 = 0; _i111 < _map110.size; ++_i111) - { - GlobalStreamId _key112; // required - double _val113; // required - _key112 = new GlobalStreamId(); - _key112.read(iprot); - _val113 = iprot.readDouble(); - _val109.put(_key112, _val113); - } - iprot.readMapEnd(); - } - struct.process_ms_avg.put(_key108, _val109); - } - iprot.readMapEnd(); - } - struct.setProcess_ms_avgIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // EXECUTED - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map114 = iprot.readMapBegin(); - struct.executed = new HashMap>(2*_map114.size); - for (int _i115 = 0; _i115 < _map114.size; ++_i115) - { - String _key116; // required - Map _val117; // required - _key116 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map118 = iprot.readMapBegin(); - _val117 = new HashMap(2*_map118.size); - for (int _i119 = 0; _i119 < _map118.size; ++_i119) - { - GlobalStreamId _key120; // required - long _val121; // required - _key120 = new GlobalStreamId(); - _key120.read(iprot); - _val121 = iprot.readI64(); - _val117.put(_key120, _val121); - } - iprot.readMapEnd(); - } - struct.executed.put(_key116, _val117); - } - iprot.readMapEnd(); - } - struct.setExecutedIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // EXECUTE_MS_AVG - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map122 = iprot.readMapBegin(); - struct.execute_ms_avg = new HashMap>(2*_map122.size); - for (int _i123 = 0; _i123 < _map122.size; ++_i123) - { - String _key124; // required - Map _val125; // required - _key124 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map126 = iprot.readMapBegin(); - _val125 = new HashMap(2*_map126.size); - for (int _i127 = 0; _i127 < _map126.size; ++_i127) - { - GlobalStreamId _key128; // required - double _val129; // required - _key128 = new GlobalStreamId(); - _key128.read(iprot); - _val129 = iprot.readDouble(); - _val125.put(_key128, _val129); - } - iprot.readMapEnd(); - } - struct.execute_ms_avg.put(_key124, _val125); - } - iprot.readMapEnd(); - } - struct.setExecute_ms_avgIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, BoltStats struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.acked != null) { - oprot.writeFieldBegin(ACKED_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.acked.size())); - for (Map.Entry> _iter130 : struct.acked.entrySet()) - { - oprot.writeString(_iter130.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter130.getValue().size())); - for (Map.Entry _iter131 : _iter130.getValue().entrySet()) - { - _iter131.getKey().write(oprot); - oprot.writeI64(_iter131.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.failed != null) { - oprot.writeFieldBegin(FAILED_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.failed.size())); - for (Map.Entry> _iter132 : struct.failed.entrySet()) - { - oprot.writeString(_iter132.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter132.getValue().size())); - for (Map.Entry _iter133 : _iter132.getValue().entrySet()) - { - _iter133.getKey().write(oprot); - oprot.writeI64(_iter133.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.process_ms_avg != null) { - oprot.writeFieldBegin(PROCESS_MS_AVG_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.process_ms_avg.size())); - for (Map.Entry> _iter134 : struct.process_ms_avg.entrySet()) - { - oprot.writeString(_iter134.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, _iter134.getValue().size())); - for (Map.Entry _iter135 : _iter134.getValue().entrySet()) - { - _iter135.getKey().write(oprot); - oprot.writeDouble(_iter135.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.executed != null) { - oprot.writeFieldBegin(EXECUTED_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.executed.size())); - for (Map.Entry> _iter136 : struct.executed.entrySet()) - { - oprot.writeString(_iter136.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter136.getValue().size())); - for (Map.Entry _iter137 : _iter136.getValue().entrySet()) - { - _iter137.getKey().write(oprot); - oprot.writeI64(_iter137.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.execute_ms_avg != null) { - oprot.writeFieldBegin(EXECUTE_MS_AVG_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.execute_ms_avg.size())); - for (Map.Entry> _iter138 : struct.execute_ms_avg.entrySet()) - { - oprot.writeString(_iter138.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, _iter138.getValue().size())); - for (Map.Entry _iter139 : _iter138.getValue().entrySet()) - { - _iter139.getKey().write(oprot); - oprot.writeDouble(_iter139.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class BoltStatsTupleSchemeFactory implements SchemeFactory { - public BoltStatsTupleScheme getScheme() { - return new BoltStatsTupleScheme(); - } - } - - private static class BoltStatsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, BoltStats struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - { - oprot.writeI32(struct.acked.size()); - for (Map.Entry> _iter140 : struct.acked.entrySet()) - { - oprot.writeString(_iter140.getKey()); - { - oprot.writeI32(_iter140.getValue().size()); - for (Map.Entry _iter141 : _iter140.getValue().entrySet()) - { - _iter141.getKey().write(oprot); - oprot.writeI64(_iter141.getValue()); - } - } - } - } - { - oprot.writeI32(struct.failed.size()); - for (Map.Entry> _iter142 : struct.failed.entrySet()) - { - oprot.writeString(_iter142.getKey()); - { - oprot.writeI32(_iter142.getValue().size()); - for (Map.Entry _iter143 : _iter142.getValue().entrySet()) - { - _iter143.getKey().write(oprot); - oprot.writeI64(_iter143.getValue()); - } - } - } - } - { - oprot.writeI32(struct.process_ms_avg.size()); - for (Map.Entry> _iter144 : struct.process_ms_avg.entrySet()) - { - oprot.writeString(_iter144.getKey()); - { - oprot.writeI32(_iter144.getValue().size()); - for (Map.Entry _iter145 : _iter144.getValue().entrySet()) - { - _iter145.getKey().write(oprot); - oprot.writeDouble(_iter145.getValue()); - } - } - } - } - { - oprot.writeI32(struct.executed.size()); - for (Map.Entry> _iter146 : struct.executed.entrySet()) - { - oprot.writeString(_iter146.getKey()); - { - oprot.writeI32(_iter146.getValue().size()); - for (Map.Entry _iter147 : _iter146.getValue().entrySet()) - { - _iter147.getKey().write(oprot); - oprot.writeI64(_iter147.getValue()); - } - } - } - } - { - oprot.writeI32(struct.execute_ms_avg.size()); - for (Map.Entry> _iter148 : struct.execute_ms_avg.entrySet()) - { - oprot.writeString(_iter148.getKey()); - { - oprot.writeI32(_iter148.getValue().size()); - for (Map.Entry _iter149 : _iter148.getValue().entrySet()) - { - _iter149.getKey().write(oprot); - oprot.writeDouble(_iter149.getValue()); - } - } - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, BoltStats struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - { - org.apache.thrift.protocol.TMap _map150 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.acked = new HashMap>(2*_map150.size); - for (int _i151 = 0; _i151 < _map150.size; ++_i151) - { - String _key152; // required - Map _val153; // required - _key152 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map154 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, iprot.readI32()); - _val153 = new HashMap(2*_map154.size); - for (int _i155 = 0; _i155 < _map154.size; ++_i155) - { - GlobalStreamId _key156; // required - long _val157; // required - _key156 = new GlobalStreamId(); - _key156.read(iprot); - _val157 = iprot.readI64(); - _val153.put(_key156, _val157); - } - } - struct.acked.put(_key152, _val153); - } - } - struct.setAckedIsSet(true); - { - org.apache.thrift.protocol.TMap _map158 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.failed = new HashMap>(2*_map158.size); - for (int _i159 = 0; _i159 < _map158.size; ++_i159) - { - String _key160; // required - Map _val161; // required - _key160 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map162 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, iprot.readI32()); - _val161 = new HashMap(2*_map162.size); - for (int _i163 = 0; _i163 < _map162.size; ++_i163) - { - GlobalStreamId _key164; // required - long _val165; // required - _key164 = new GlobalStreamId(); - _key164.read(iprot); - _val165 = iprot.readI64(); - _val161.put(_key164, _val165); - } - } - struct.failed.put(_key160, _val161); - } - } - struct.setFailedIsSet(true); - { - org.apache.thrift.protocol.TMap _map166 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.process_ms_avg = new HashMap>(2*_map166.size); - for (int _i167 = 0; _i167 < _map166.size; ++_i167) - { - String _key168; // required - Map _val169; // required - _key168 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map170 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32()); - _val169 = new HashMap(2*_map170.size); - for (int _i171 = 0; _i171 < _map170.size; ++_i171) - { - GlobalStreamId _key172; // required - double _val173; // required - _key172 = new GlobalStreamId(); - _key172.read(iprot); - _val173 = iprot.readDouble(); - _val169.put(_key172, _val173); - } - } - struct.process_ms_avg.put(_key168, _val169); - } - } - struct.setProcess_ms_avgIsSet(true); - { - org.apache.thrift.protocol.TMap _map174 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.executed = new HashMap>(2*_map174.size); - for (int _i175 = 0; _i175 < _map174.size; ++_i175) - { - String _key176; // required - Map _val177; // required - _key176 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map178 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, iprot.readI32()); - _val177 = new HashMap(2*_map178.size); - for (int _i179 = 0; _i179 < _map178.size; ++_i179) - { - GlobalStreamId _key180; // required - long _val181; // required - _key180 = new GlobalStreamId(); - _key180.read(iprot); - _val181 = iprot.readI64(); - _val177.put(_key180, _val181); - } - } - struct.executed.put(_key176, _val177); - } - } - struct.setExecutedIsSet(true); - { - org.apache.thrift.protocol.TMap _map182 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.execute_ms_avg = new HashMap>(2*_map182.size); - for (int _i183 = 0; _i183 < _map182.size; ++_i183) - { - String _key184; // required - Map _val185; // required - _key184 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map186 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32()); - _val185 = new HashMap(2*_map186.size); - for (int _i187 = 0; _i187 < _map186.size; ++_i187) - { - GlobalStreamId _key188; // required - double _val189; // required - _key188 = new GlobalStreamId(); - _key188.read(iprot); - _val189 = iprot.readDouble(); - _val185.put(_key188, _val189); - } - } - struct.execute_ms_avg.put(_key184, _val185); - } - } - struct.setExecute_ms_avgIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ClusterSummary.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ClusterSummary.java deleted file mode 100644 index a8a35b881..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ClusterSummary.java +++ /dev/null @@ -1,696 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ClusterSummary implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ClusterSummary"); - - private static final org.apache.thrift.protocol.TField SUPERVISORS_FIELD_DESC = new org.apache.thrift.protocol.TField("supervisors", org.apache.thrift.protocol.TType.LIST, (short)1); - private static final org.apache.thrift.protocol.TField NIMBUS_UPTIME_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("nimbus_uptime_secs", org.apache.thrift.protocol.TType.I32, (short)2); - private static final org.apache.thrift.protocol.TField TOPOLOGIES_FIELD_DESC = new org.apache.thrift.protocol.TField("topologies", org.apache.thrift.protocol.TType.LIST, (short)3); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new ClusterSummaryStandardSchemeFactory()); - schemes.put(TupleScheme.class, new ClusterSummaryTupleSchemeFactory()); - } - - public List supervisors; // required - public int nimbus_uptime_secs; // required - public List topologies; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUPERVISORS((short)1, "supervisors"), - NIMBUS_UPTIME_SECS((short)2, "nimbus_uptime_secs"), - TOPOLOGIES((short)3, "topologies"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // SUPERVISORS - return SUPERVISORS; - case 2: // NIMBUS_UPTIME_SECS - return NIMBUS_UPTIME_SECS; - case 3: // TOPOLOGIES - return TOPOLOGIES; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __NIMBUS_UPTIME_SECS_ISSET_ID = 0; - private byte __isset_bitfield = 0; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUPERVISORS, new org.apache.thrift.meta_data.FieldMetaData("supervisors", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SupervisorSummary.class)))); - tmpMap.put(_Fields.NIMBUS_UPTIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("nimbus_uptime_secs", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.TOPOLOGIES, new org.apache.thrift.meta_data.FieldMetaData("topologies", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TopologySummary.class)))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ClusterSummary.class, metaDataMap); - } - - public ClusterSummary() { - } - - public ClusterSummary( - List supervisors, - int nimbus_uptime_secs, - List topologies) - { - this(); - this.supervisors = supervisors; - this.nimbus_uptime_secs = nimbus_uptime_secs; - setNimbus_uptime_secsIsSet(true); - this.topologies = topologies; - } - - /** - * Performs a deep copy on other. - */ - public ClusterSummary(ClusterSummary other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetSupervisors()) { - List __this__supervisors = new ArrayList(); - for (SupervisorSummary other_element : other.supervisors) { - __this__supervisors.add(new SupervisorSummary(other_element)); - } - this.supervisors = __this__supervisors; - } - this.nimbus_uptime_secs = other.nimbus_uptime_secs; - if (other.isSetTopologies()) { - List __this__topologies = new ArrayList(); - for (TopologySummary other_element : other.topologies) { - __this__topologies.add(new TopologySummary(other_element)); - } - this.topologies = __this__topologies; - } - } - - public ClusterSummary deepCopy() { - return new ClusterSummary(this); - } - - @Override - public void clear() { - this.supervisors = null; - setNimbus_uptime_secsIsSet(false); - this.nimbus_uptime_secs = 0; - this.topologies = null; - } - - public int getSupervisorsSize() { - return (this.supervisors == null) ? 0 : this.supervisors.size(); - } - - public java.util.Iterator getSupervisorsIterator() { - return (this.supervisors == null) ? null : this.supervisors.iterator(); - } - - public void addToSupervisors(SupervisorSummary elem) { - if (this.supervisors == null) { - this.supervisors = new ArrayList(); - } - this.supervisors.add(elem); - } - - public List getSupervisors() { - return this.supervisors; - } - - public ClusterSummary setSupervisors(List supervisors) { - this.supervisors = supervisors; - return this; - } - - public void unsetSupervisors() { - this.supervisors = null; - } - - /** Returns true if field supervisors is set (has been assigned a value) and false otherwise */ - public boolean isSetSupervisors() { - return this.supervisors != null; - } - - public void setSupervisorsIsSet(boolean value) { - if (!value) { - this.supervisors = null; - } - } - - public int getNimbus_uptime_secs() { - return this.nimbus_uptime_secs; - } - - public ClusterSummary setNimbus_uptime_secs(int nimbus_uptime_secs) { - this.nimbus_uptime_secs = nimbus_uptime_secs; - setNimbus_uptime_secsIsSet(true); - return this; - } - - public void unsetNimbus_uptime_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NIMBUS_UPTIME_SECS_ISSET_ID); - } - - /** Returns true if field nimbus_uptime_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetNimbus_uptime_secs() { - return EncodingUtils.testBit(__isset_bitfield, __NIMBUS_UPTIME_SECS_ISSET_ID); - } - - public void setNimbus_uptime_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NIMBUS_UPTIME_SECS_ISSET_ID, value); - } - - public int getTopologiesSize() { - return (this.topologies == null) ? 0 : this.topologies.size(); - } - - public java.util.Iterator getTopologiesIterator() { - return (this.topologies == null) ? null : this.topologies.iterator(); - } - - public void addToTopologies(TopologySummary elem) { - if (this.topologies == null) { - this.topologies = new ArrayList(); - } - this.topologies.add(elem); - } - - public List getTopologies() { - return this.topologies; - } - - public ClusterSummary setTopologies(List topologies) { - this.topologies = topologies; - return this; - } - - public void unsetTopologies() { - this.topologies = null; - } - - /** Returns true if field topologies is set (has been assigned a value) and false otherwise */ - public boolean isSetTopologies() { - return this.topologies != null; - } - - public void setTopologiesIsSet(boolean value) { - if (!value) { - this.topologies = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUPERVISORS: - if (value == null) { - unsetSupervisors(); - } else { - setSupervisors((List)value); - } - break; - - case NIMBUS_UPTIME_SECS: - if (value == null) { - unsetNimbus_uptime_secs(); - } else { - setNimbus_uptime_secs((Integer)value); - } - break; - - case TOPOLOGIES: - if (value == null) { - unsetTopologies(); - } else { - setTopologies((List)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUPERVISORS: - return getSupervisors(); - - case NIMBUS_UPTIME_SECS: - return Integer.valueOf(getNimbus_uptime_secs()); - - case TOPOLOGIES: - return getTopologies(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUPERVISORS: - return isSetSupervisors(); - case NIMBUS_UPTIME_SECS: - return isSetNimbus_uptime_secs(); - case TOPOLOGIES: - return isSetTopologies(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof ClusterSummary) - return this.equals((ClusterSummary)that); - return false; - } - - public boolean equals(ClusterSummary that) { - if (that == null) - return false; - - boolean this_present_supervisors = true && this.isSetSupervisors(); - boolean that_present_supervisors = true && that.isSetSupervisors(); - if (this_present_supervisors || that_present_supervisors) { - if (!(this_present_supervisors && that_present_supervisors)) - return false; - if (!this.supervisors.equals(that.supervisors)) - return false; - } - - boolean this_present_nimbus_uptime_secs = true; - boolean that_present_nimbus_uptime_secs = true; - if (this_present_nimbus_uptime_secs || that_present_nimbus_uptime_secs) { - if (!(this_present_nimbus_uptime_secs && that_present_nimbus_uptime_secs)) - return false; - if (this.nimbus_uptime_secs != that.nimbus_uptime_secs) - return false; - } - - boolean this_present_topologies = true && this.isSetTopologies(); - boolean that_present_topologies = true && that.isSetTopologies(); - if (this_present_topologies || that_present_topologies) { - if (!(this_present_topologies && that_present_topologies)) - return false; - if (!this.topologies.equals(that.topologies)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_supervisors = true && (isSetSupervisors()); - builder.append(present_supervisors); - if (present_supervisors) - builder.append(supervisors); - - boolean present_nimbus_uptime_secs = true; - builder.append(present_nimbus_uptime_secs); - if (present_nimbus_uptime_secs) - builder.append(nimbus_uptime_secs); - - boolean present_topologies = true && (isSetTopologies()); - builder.append(present_topologies); - if (present_topologies) - builder.append(topologies); - - return builder.toHashCode(); - } - - public int compareTo(ClusterSummary other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - ClusterSummary typedOther = (ClusterSummary)other; - - lastComparison = Boolean.valueOf(isSetSupervisors()).compareTo(typedOther.isSetSupervisors()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSupervisors()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.supervisors, typedOther.supervisors); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNimbus_uptime_secs()).compareTo(typedOther.isSetNimbus_uptime_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNimbus_uptime_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.nimbus_uptime_secs, typedOther.nimbus_uptime_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetTopologies()).compareTo(typedOther.isSetTopologies()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTopologies()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.topologies, typedOther.topologies); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("ClusterSummary("); - boolean first = true; - - sb.append("supervisors:"); - if (this.supervisors == null) { - sb.append("null"); - } else { - sb.append(this.supervisors); - } - first = false; - if (!first) sb.append(", "); - sb.append("nimbus_uptime_secs:"); - sb.append(this.nimbus_uptime_secs); - first = false; - if (!first) sb.append(", "); - sb.append("topologies:"); - if (this.topologies == null) { - sb.append("null"); - } else { - sb.append(this.topologies); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (supervisors == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'supervisors' was not present! Struct: " + toString()); - } - // alas, we cannot check 'nimbus_uptime_secs' because it's a primitive and you chose the non-beans generator. - if (topologies == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'topologies' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class ClusterSummaryStandardSchemeFactory implements SchemeFactory { - public ClusterSummaryStandardScheme getScheme() { - return new ClusterSummaryStandardScheme(); - } - } - - private static class ClusterSummaryStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, ClusterSummary struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // SUPERVISORS - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list74 = iprot.readListBegin(); - struct.supervisors = new ArrayList(_list74.size); - for (int _i75 = 0; _i75 < _list74.size; ++_i75) - { - SupervisorSummary _elem76; // required - _elem76 = new SupervisorSummary(); - _elem76.read(iprot); - struct.supervisors.add(_elem76); - } - iprot.readListEnd(); - } - struct.setSupervisorsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // NIMBUS_UPTIME_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.nimbus_uptime_secs = iprot.readI32(); - struct.setNimbus_uptime_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // TOPOLOGIES - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list77 = iprot.readListBegin(); - struct.topologies = new ArrayList(_list77.size); - for (int _i78 = 0; _i78 < _list77.size; ++_i78) - { - TopologySummary _elem79; // required - _elem79 = new TopologySummary(); - _elem79.read(iprot); - struct.topologies.add(_elem79); - } - iprot.readListEnd(); - } - struct.setTopologiesIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetNimbus_uptime_secs()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'nimbus_uptime_secs' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, ClusterSummary struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.supervisors != null) { - oprot.writeFieldBegin(SUPERVISORS_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.supervisors.size())); - for (SupervisorSummary _iter80 : struct.supervisors) - { - _iter80.write(oprot); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(NIMBUS_UPTIME_SECS_FIELD_DESC); - oprot.writeI32(struct.nimbus_uptime_secs); - oprot.writeFieldEnd(); - if (struct.topologies != null) { - oprot.writeFieldBegin(TOPOLOGIES_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.topologies.size())); - for (TopologySummary _iter81 : struct.topologies) - { - _iter81.write(oprot); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class ClusterSummaryTupleSchemeFactory implements SchemeFactory { - public ClusterSummaryTupleScheme getScheme() { - return new ClusterSummaryTupleScheme(); - } - } - - private static class ClusterSummaryTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, ClusterSummary struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - { - oprot.writeI32(struct.supervisors.size()); - for (SupervisorSummary _iter82 : struct.supervisors) - { - _iter82.write(oprot); - } - } - oprot.writeI32(struct.nimbus_uptime_secs); - { - oprot.writeI32(struct.topologies.size()); - for (TopologySummary _iter83 : struct.topologies) - { - _iter83.write(oprot); - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, ClusterSummary struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - { - org.apache.thrift.protocol.TList _list84 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.supervisors = new ArrayList(_list84.size); - for (int _i85 = 0; _i85 < _list84.size; ++_i85) - { - SupervisorSummary _elem86; // required - _elem86 = new SupervisorSummary(); - _elem86.read(iprot); - struct.supervisors.add(_elem86); - } - } - struct.setSupervisorsIsSet(true); - struct.nimbus_uptime_secs = iprot.readI32(); - struct.setNimbus_uptime_secsIsSet(true); - { - org.apache.thrift.protocol.TList _list87 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.topologies = new ArrayList(_list87.size); - for (int _i88 = 0; _i88 < _list87.size; ++_i88) - { - TopologySummary _elem89; // required - _elem89 = new TopologySummary(); - _elem89.read(iprot); - struct.topologies.add(_elem89); - } - } - struct.setTopologiesIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ComponentCommon.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ComponentCommon.java deleted file mode 100644 index 3b0ab0893..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ComponentCommon.java +++ /dev/null @@ -1,835 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ComponentCommon implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentCommon"); - - private static final org.apache.thrift.protocol.TField INPUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("inputs", org.apache.thrift.protocol.TType.MAP, (short)1); - private static final org.apache.thrift.protocol.TField STREAMS_FIELD_DESC = new org.apache.thrift.protocol.TField("streams", org.apache.thrift.protocol.TType.MAP, (short)2); - private static final org.apache.thrift.protocol.TField PARALLELISM_HINT_FIELD_DESC = new org.apache.thrift.protocol.TField("parallelism_hint", org.apache.thrift.protocol.TType.I32, (short)3); - private static final org.apache.thrift.protocol.TField JSON_CONF_FIELD_DESC = new org.apache.thrift.protocol.TField("json_conf", org.apache.thrift.protocol.TType.STRING, (short)4); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new ComponentCommonStandardSchemeFactory()); - schemes.put(TupleScheme.class, new ComponentCommonTupleSchemeFactory()); - } - - public Map inputs; // required - public Map streams; // required - public int parallelism_hint; // optional - public String json_conf; // optional - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - INPUTS((short)1, "inputs"), - STREAMS((short)2, "streams"), - PARALLELISM_HINT((short)3, "parallelism_hint"), - JSON_CONF((short)4, "json_conf"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // INPUTS - return INPUTS; - case 2: // STREAMS - return STREAMS; - case 3: // PARALLELISM_HINT - return PARALLELISM_HINT; - case 4: // JSON_CONF - return JSON_CONF; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __PARALLELISM_HINT_ISSET_ID = 0; - private byte __isset_bitfield = 0; - private _Fields optionals[] = {_Fields.PARALLELISM_HINT,_Fields.JSON_CONF}; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.INPUTS, new org.apache.thrift.meta_data.FieldMetaData("inputs", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GlobalStreamId.class), - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Grouping.class)))); - tmpMap.put(_Fields.STREAMS, new org.apache.thrift.meta_data.FieldMetaData("streams", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StreamInfo.class)))); - tmpMap.put(_Fields.PARALLELISM_HINT, new org.apache.thrift.meta_data.FieldMetaData("parallelism_hint", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.JSON_CONF, new org.apache.thrift.meta_data.FieldMetaData("json_conf", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComponentCommon.class, metaDataMap); - } - - public ComponentCommon() { - } - - public ComponentCommon( - Map inputs, - Map streams) - { - this(); - this.inputs = inputs; - this.streams = streams; - } - - /** - * Performs a deep copy on other. - */ - public ComponentCommon(ComponentCommon other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetInputs()) { - Map __this__inputs = new HashMap(); - for (Map.Entry other_element : other.inputs.entrySet()) { - - GlobalStreamId other_element_key = other_element.getKey(); - Grouping other_element_value = other_element.getValue(); - - GlobalStreamId __this__inputs_copy_key = new GlobalStreamId(other_element_key); - - Grouping __this__inputs_copy_value = new Grouping(other_element_value); - - __this__inputs.put(__this__inputs_copy_key, __this__inputs_copy_value); - } - this.inputs = __this__inputs; - } - if (other.isSetStreams()) { - Map __this__streams = new HashMap(); - for (Map.Entry other_element : other.streams.entrySet()) { - - String other_element_key = other_element.getKey(); - StreamInfo other_element_value = other_element.getValue(); - - String __this__streams_copy_key = other_element_key; - - StreamInfo __this__streams_copy_value = new StreamInfo(other_element_value); - - __this__streams.put(__this__streams_copy_key, __this__streams_copy_value); - } - this.streams = __this__streams; - } - this.parallelism_hint = other.parallelism_hint; - if (other.isSetJson_conf()) { - this.json_conf = other.json_conf; - } - } - - public ComponentCommon deepCopy() { - return new ComponentCommon(this); - } - - @Override - public void clear() { - this.inputs = null; - this.streams = null; - setParallelism_hintIsSet(false); - this.parallelism_hint = 0; - this.json_conf = null; - } - - public int getInputsSize() { - return (this.inputs == null) ? 0 : this.inputs.size(); - } - - public void putToInputs(GlobalStreamId key, Grouping val) { - if (this.inputs == null) { - this.inputs = new HashMap(); - } - this.inputs.put(key, val); - } - - public Map getInputs() { - return this.inputs; - } - - public ComponentCommon setInputs(Map inputs) { - this.inputs = inputs; - return this; - } - - public void unsetInputs() { - this.inputs = null; - } - - /** Returns true if field inputs is set (has been assigned a value) and false otherwise */ - public boolean isSetInputs() { - return this.inputs != null; - } - - public void setInputsIsSet(boolean value) { - if (!value) { - this.inputs = null; - } - } - - public int getStreamsSize() { - return (this.streams == null) ? 0 : this.streams.size(); - } - - public void putToStreams(String key, StreamInfo val) { - if (this.streams == null) { - this.streams = new HashMap(); - } - this.streams.put(key, val); - } - - public Map getStreams() { - return this.streams; - } - - public ComponentCommon setStreams(Map streams) { - this.streams = streams; - return this; - } - - public void unsetStreams() { - this.streams = null; - } - - /** Returns true if field streams is set (has been assigned a value) and false otherwise */ - public boolean isSetStreams() { - return this.streams != null; - } - - public void setStreamsIsSet(boolean value) { - if (!value) { - this.streams = null; - } - } - - public int getParallelism_hint() { - return this.parallelism_hint; - } - - public ComponentCommon setParallelism_hint(int parallelism_hint) { - this.parallelism_hint = parallelism_hint; - setParallelism_hintIsSet(true); - return this; - } - - public void unsetParallelism_hint() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PARALLELISM_HINT_ISSET_ID); - } - - /** Returns true if field parallelism_hint is set (has been assigned a value) and false otherwise */ - public boolean isSetParallelism_hint() { - return EncodingUtils.testBit(__isset_bitfield, __PARALLELISM_HINT_ISSET_ID); - } - - public void setParallelism_hintIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PARALLELISM_HINT_ISSET_ID, value); - } - - public String getJson_conf() { - return this.json_conf; - } - - public ComponentCommon setJson_conf(String json_conf) { - this.json_conf = json_conf; - return this; - } - - public void unsetJson_conf() { - this.json_conf = null; - } - - /** Returns true if field json_conf is set (has been assigned a value) and false otherwise */ - public boolean isSetJson_conf() { - return this.json_conf != null; - } - - public void setJson_confIsSet(boolean value) { - if (!value) { - this.json_conf = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case INPUTS: - if (value == null) { - unsetInputs(); - } else { - setInputs((Map)value); - } - break; - - case STREAMS: - if (value == null) { - unsetStreams(); - } else { - setStreams((Map)value); - } - break; - - case PARALLELISM_HINT: - if (value == null) { - unsetParallelism_hint(); - } else { - setParallelism_hint((Integer)value); - } - break; - - case JSON_CONF: - if (value == null) { - unsetJson_conf(); - } else { - setJson_conf((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case INPUTS: - return getInputs(); - - case STREAMS: - return getStreams(); - - case PARALLELISM_HINT: - return Integer.valueOf(getParallelism_hint()); - - case JSON_CONF: - return getJson_conf(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case INPUTS: - return isSetInputs(); - case STREAMS: - return isSetStreams(); - case PARALLELISM_HINT: - return isSetParallelism_hint(); - case JSON_CONF: - return isSetJson_conf(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof ComponentCommon) - return this.equals((ComponentCommon)that); - return false; - } - - public boolean equals(ComponentCommon that) { - if (that == null) - return false; - - boolean this_present_inputs = true && this.isSetInputs(); - boolean that_present_inputs = true && that.isSetInputs(); - if (this_present_inputs || that_present_inputs) { - if (!(this_present_inputs && that_present_inputs)) - return false; - if (!this.inputs.equals(that.inputs)) - return false; - } - - boolean this_present_streams = true && this.isSetStreams(); - boolean that_present_streams = true && that.isSetStreams(); - if (this_present_streams || that_present_streams) { - if (!(this_present_streams && that_present_streams)) - return false; - if (!this.streams.equals(that.streams)) - return false; - } - - boolean this_present_parallelism_hint = true && this.isSetParallelism_hint(); - boolean that_present_parallelism_hint = true && that.isSetParallelism_hint(); - if (this_present_parallelism_hint || that_present_parallelism_hint) { - if (!(this_present_parallelism_hint && that_present_parallelism_hint)) - return false; - if (this.parallelism_hint != that.parallelism_hint) - return false; - } - - boolean this_present_json_conf = true && this.isSetJson_conf(); - boolean that_present_json_conf = true && that.isSetJson_conf(); - if (this_present_json_conf || that_present_json_conf) { - if (!(this_present_json_conf && that_present_json_conf)) - return false; - if (!this.json_conf.equals(that.json_conf)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_inputs = true && (isSetInputs()); - builder.append(present_inputs); - if (present_inputs) - builder.append(inputs); - - boolean present_streams = true && (isSetStreams()); - builder.append(present_streams); - if (present_streams) - builder.append(streams); - - boolean present_parallelism_hint = true && (isSetParallelism_hint()); - builder.append(present_parallelism_hint); - if (present_parallelism_hint) - builder.append(parallelism_hint); - - boolean present_json_conf = true && (isSetJson_conf()); - builder.append(present_json_conf); - if (present_json_conf) - builder.append(json_conf); - - return builder.toHashCode(); - } - - public int compareTo(ComponentCommon other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - ComponentCommon typedOther = (ComponentCommon)other; - - lastComparison = Boolean.valueOf(isSetInputs()).compareTo(typedOther.isSetInputs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetInputs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inputs, typedOther.inputs); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetStreams()).compareTo(typedOther.isSetStreams()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetStreams()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.streams, typedOther.streams); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetParallelism_hint()).compareTo(typedOther.isSetParallelism_hint()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetParallelism_hint()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parallelism_hint, typedOther.parallelism_hint); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetJson_conf()).compareTo(typedOther.isSetJson_conf()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetJson_conf()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.json_conf, typedOther.json_conf); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("ComponentCommon("); - boolean first = true; - - sb.append("inputs:"); - if (this.inputs == null) { - sb.append("null"); - } else { - sb.append(this.inputs); - } - first = false; - if (!first) sb.append(", "); - sb.append("streams:"); - if (this.streams == null) { - sb.append("null"); - } else { - sb.append(this.streams); - } - first = false; - if (isSetParallelism_hint()) { - if (!first) sb.append(", "); - sb.append("parallelism_hint:"); - sb.append(this.parallelism_hint); - first = false; - } - if (isSetJson_conf()) { - if (!first) sb.append(", "); - sb.append("json_conf:"); - if (this.json_conf == null) { - sb.append("null"); - } else { - sb.append(this.json_conf); - } - first = false; - } - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (inputs == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'inputs' was not present! Struct: " + toString()); - } - if (streams == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'streams' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class ComponentCommonStandardSchemeFactory implements SchemeFactory { - public ComponentCommonStandardScheme getScheme() { - return new ComponentCommonStandardScheme(); - } - } - - private static class ComponentCommonStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, ComponentCommon struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // INPUTS - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map24 = iprot.readMapBegin(); - struct.inputs = new HashMap(2*_map24.size); - for (int _i25 = 0; _i25 < _map24.size; ++_i25) - { - GlobalStreamId _key26; // required - Grouping _val27; // required - _key26 = new GlobalStreamId(); - _key26.read(iprot); - _val27 = new Grouping(); - _val27.read(iprot); - struct.inputs.put(_key26, _val27); - } - iprot.readMapEnd(); - } - struct.setInputsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // STREAMS - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map28 = iprot.readMapBegin(); - struct.streams = new HashMap(2*_map28.size); - for (int _i29 = 0; _i29 < _map28.size; ++_i29) - { - String _key30; // required - StreamInfo _val31; // required - _key30 = iprot.readString(); - _val31 = new StreamInfo(); - _val31.read(iprot); - struct.streams.put(_key30, _val31); - } - iprot.readMapEnd(); - } - struct.setStreamsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // PARALLELISM_HINT - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.parallelism_hint = iprot.readI32(); - struct.setParallelism_hintIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // JSON_CONF - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.json_conf = iprot.readString(); - struct.setJson_confIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, ComponentCommon struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.inputs != null) { - oprot.writeFieldBegin(INPUTS_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRUCT, struct.inputs.size())); - for (Map.Entry _iter32 : struct.inputs.entrySet()) - { - _iter32.getKey().write(oprot); - _iter32.getValue().write(oprot); - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.streams != null) { - oprot.writeFieldBegin(STREAMS_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.streams.size())); - for (Map.Entry _iter33 : struct.streams.entrySet()) - { - oprot.writeString(_iter33.getKey()); - _iter33.getValue().write(oprot); - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.isSetParallelism_hint()) { - oprot.writeFieldBegin(PARALLELISM_HINT_FIELD_DESC); - oprot.writeI32(struct.parallelism_hint); - oprot.writeFieldEnd(); - } - if (struct.json_conf != null) { - if (struct.isSetJson_conf()) { - oprot.writeFieldBegin(JSON_CONF_FIELD_DESC); - oprot.writeString(struct.json_conf); - oprot.writeFieldEnd(); - } - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class ComponentCommonTupleSchemeFactory implements SchemeFactory { - public ComponentCommonTupleScheme getScheme() { - return new ComponentCommonTupleScheme(); - } - } - - private static class ComponentCommonTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, ComponentCommon struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - { - oprot.writeI32(struct.inputs.size()); - for (Map.Entry _iter34 : struct.inputs.entrySet()) - { - _iter34.getKey().write(oprot); - _iter34.getValue().write(oprot); - } - } - { - oprot.writeI32(struct.streams.size()); - for (Map.Entry _iter35 : struct.streams.entrySet()) - { - oprot.writeString(_iter35.getKey()); - _iter35.getValue().write(oprot); - } - } - BitSet optionals = new BitSet(); - if (struct.isSetParallelism_hint()) { - optionals.set(0); - } - if (struct.isSetJson_conf()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetParallelism_hint()) { - oprot.writeI32(struct.parallelism_hint); - } - if (struct.isSetJson_conf()) { - oprot.writeString(struct.json_conf); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, ComponentCommon struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - { - org.apache.thrift.protocol.TMap _map36 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.inputs = new HashMap(2*_map36.size); - for (int _i37 = 0; _i37 < _map36.size; ++_i37) - { - GlobalStreamId _key38; // required - Grouping _val39; // required - _key38 = new GlobalStreamId(); - _key38.read(iprot); - _val39 = new Grouping(); - _val39.read(iprot); - struct.inputs.put(_key38, _val39); - } - } - struct.setInputsIsSet(true); - { - org.apache.thrift.protocol.TMap _map40 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.streams = new HashMap(2*_map40.size); - for (int _i41 = 0; _i41 < _map40.size; ++_i41) - { - String _key42; // required - StreamInfo _val43; // required - _key42 = iprot.readString(); - _val43 = new StreamInfo(); - _val43.read(iprot); - struct.streams.put(_key42, _val43); - } - } - struct.setStreamsIsSet(true); - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.parallelism_hint = iprot.readI32(); - struct.setParallelism_hintIsSet(true); - } - if (incoming.get(1)) { - struct.json_conf = iprot.readString(); - struct.setJson_confIsSet(true); - } - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ComponentObject.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ComponentObject.java deleted file mode 100644 index 0f287bc46..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ComponentObject.java +++ /dev/null @@ -1,441 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ComponentObject extends org.apache.thrift.TUnion { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentObject"); - private static final org.apache.thrift.protocol.TField SERIALIZED_JAVA_FIELD_DESC = new org.apache.thrift.protocol.TField("serialized_java", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField SHELL_FIELD_DESC = new org.apache.thrift.protocol.TField("shell", org.apache.thrift.protocol.TType.STRUCT, (short)2); - private static final org.apache.thrift.protocol.TField JAVA_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("java_object", org.apache.thrift.protocol.TType.STRUCT, (short)3); - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SERIALIZED_JAVA((short)1, "serialized_java"), - SHELL((short)2, "shell"), - JAVA_OBJECT((short)3, "java_object"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // SERIALIZED_JAVA - return SERIALIZED_JAVA; - case 2: // SHELL - return SHELL; - case 3: // JAVA_OBJECT - return JAVA_OBJECT; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SERIALIZED_JAVA, new org.apache.thrift.meta_data.FieldMetaData("serialized_java", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); - tmpMap.put(_Fields.SHELL, new org.apache.thrift.meta_data.FieldMetaData("shell", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ShellComponent.class))); - tmpMap.put(_Fields.JAVA_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("java_object", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JavaObject.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComponentObject.class, metaDataMap); - } - - public ComponentObject() { - super(); - } - - public ComponentObject(_Fields setField, Object value) { - super(setField, value); - } - - public ComponentObject(ComponentObject other) { - super(other); - } - public ComponentObject deepCopy() { - return new ComponentObject(this); - } - - public static ComponentObject serialized_java(ByteBuffer value) { - ComponentObject x = new ComponentObject(); - x.setSerialized_java(value); - return x; - } - - public static ComponentObject serialized_java(byte[] value) { - ComponentObject x = new ComponentObject(); - x.setSerialized_java(ByteBuffer.wrap(value)); - return x; - } - - public static ComponentObject shell(ShellComponent value) { - ComponentObject x = new ComponentObject(); - x.setShell(value); - return x; - } - - public static ComponentObject java_object(JavaObject value) { - ComponentObject x = new ComponentObject(); - x.setJava_object(value); - return x; - } - - - @Override - protected void checkType(_Fields setField, Object value) throws ClassCastException { - switch (setField) { - case SERIALIZED_JAVA: - if (value instanceof ByteBuffer) { - break; - } - throw new ClassCastException("Was expecting value of type ByteBuffer for field 'serialized_java', but got " + value.getClass().getSimpleName()); - case SHELL: - if (value instanceof ShellComponent) { - break; - } - throw new ClassCastException("Was expecting value of type ShellComponent for field 'shell', but got " + value.getClass().getSimpleName()); - case JAVA_OBJECT: - if (value instanceof JavaObject) { - break; - } - throw new ClassCastException("Was expecting value of type JavaObject for field 'java_object', but got " + value.getClass().getSimpleName()); - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected Object standardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(field.id); - if (setField != null) { - switch (setField) { - case SERIALIZED_JAVA: - if (field.type == SERIALIZED_JAVA_FIELD_DESC.type) { - ByteBuffer serialized_java; - serialized_java = iprot.readBinary(); - return serialized_java; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case SHELL: - if (field.type == SHELL_FIELD_DESC.type) { - ShellComponent shell; - shell = new ShellComponent(); - shell.read(iprot); - return shell; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case JAVA_OBJECT: - if (field.type == JAVA_OBJECT_FIELD_DESC.type) { - JavaObject java_object; - java_object = new JavaObject(); - java_object.read(iprot); - return java_object; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - return null; - } - } - - @Override - protected void standardSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case SERIALIZED_JAVA: - ByteBuffer serialized_java = (ByteBuffer)value_; - oprot.writeBinary(serialized_java); - return; - case SHELL: - ShellComponent shell = (ShellComponent)value_; - shell.write(oprot); - return; - case JAVA_OBJECT: - JavaObject java_object = (JavaObject)value_; - java_object.write(oprot); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected Object tupleSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, short fieldID) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(fieldID); - if (setField != null) { - switch (setField) { - case SERIALIZED_JAVA: - ByteBuffer serialized_java; - serialized_java = iprot.readBinary(); - return serialized_java; - case SHELL: - ShellComponent shell; - shell = new ShellComponent(); - shell.read(iprot); - return shell; - case JAVA_OBJECT: - JavaObject java_object; - java_object = new JavaObject(); - java_object.read(iprot); - return java_object; - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - throw new TProtocolException("Couldn't find a field with field id " + fieldID); - } - } - - @Override - protected void tupleSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case SERIALIZED_JAVA: - ByteBuffer serialized_java = (ByteBuffer)value_; - oprot.writeBinary(serialized_java); - return; - case SHELL: - ShellComponent shell = (ShellComponent)value_; - shell.write(oprot); - return; - case JAVA_OBJECT: - JavaObject java_object = (JavaObject)value_; - java_object.write(oprot); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected org.apache.thrift.protocol.TField getFieldDesc(_Fields setField) { - switch (setField) { - case SERIALIZED_JAVA: - return SERIALIZED_JAVA_FIELD_DESC; - case SHELL: - return SHELL_FIELD_DESC; - case JAVA_OBJECT: - return JAVA_OBJECT_FIELD_DESC; - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected org.apache.thrift.protocol.TStruct getStructDesc() { - return STRUCT_DESC; - } - - @Override - protected _Fields enumForId(short id) { - return _Fields.findByThriftIdOrThrow(id); - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - - public byte[] getSerialized_java() { - setSerialized_java(org.apache.thrift.TBaseHelper.rightSize(bufferForSerialized_java())); - ByteBuffer b = bufferForSerialized_java(); - return b == null ? null : b.array(); - } - - public ByteBuffer bufferForSerialized_java() { - if (getSetField() == _Fields.SERIALIZED_JAVA) { - return (ByteBuffer)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'serialized_java' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setSerialized_java(byte[] value) { - setSerialized_java(ByteBuffer.wrap(value)); - } - - public void setSerialized_java(ByteBuffer value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.SERIALIZED_JAVA; - value_ = value; - } - - public ShellComponent getShell() { - if (getSetField() == _Fields.SHELL) { - return (ShellComponent)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'shell' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setShell(ShellComponent value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.SHELL; - value_ = value; - } - - public JavaObject getJava_object() { - if (getSetField() == _Fields.JAVA_OBJECT) { - return (JavaObject)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'java_object' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setJava_object(JavaObject value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.JAVA_OBJECT; - value_ = value; - } - - public boolean isSetSerialized_java() { - return setField_ == _Fields.SERIALIZED_JAVA; - } - - - public boolean isSetShell() { - return setField_ == _Fields.SHELL; - } - - - public boolean isSetJava_object() { - return setField_ == _Fields.JAVA_OBJECT; - } - - - public boolean equals(Object other) { - if (other instanceof ComponentObject) { - return equals((ComponentObject)other); - } else { - return false; - } - } - - public boolean equals(ComponentObject other) { - return other != null && getSetField() == other.getSetField() && getFieldValue().equals(other.getFieldValue()); - } - - @Override - public int compareTo(ComponentObject other) { - int lastComparison = org.apache.thrift.TBaseHelper.compareTo(getSetField(), other.getSetField()); - if (lastComparison == 0) { - return org.apache.thrift.TBaseHelper.compareTo(getFieldValue(), other.getFieldValue()); - } - return lastComparison; - } - - - @Override - public int hashCode() { - HashCodeBuilder hcb = new HashCodeBuilder(); - hcb.append(this.getClass().getName()); - org.apache.thrift.TFieldIdEnum setField = getSetField(); - if (setField != null) { - hcb.append(setField.getThriftFieldId()); - Object value = getFieldValue(); - if (value instanceof org.apache.thrift.TEnum) { - hcb.append(((org.apache.thrift.TEnum)getFieldValue()).getValue()); - } else { - hcb.append(value); - } - } - return hcb.toHashCode(); - } - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DRPCExecutionException.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DRPCExecutionException.java deleted file mode 100644 index d58219e90..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DRPCExecutionException.java +++ /dev/null @@ -1,387 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DRPCExecutionException extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DRPCExecutionException"); - - private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new org.apache.thrift.protocol.TField("msg", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new DRPCExecutionExceptionStandardSchemeFactory()); - schemes.put(TupleScheme.class, new DRPCExecutionExceptionTupleSchemeFactory()); - } - - public String msg; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - MSG((short)1, "msg"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // MSG - return MSG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.MSG, new org.apache.thrift.meta_data.FieldMetaData("msg", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DRPCExecutionException.class, metaDataMap); - } - - public DRPCExecutionException() { - } - - public DRPCExecutionException( - String msg) - { - this(); - this.msg = msg; - } - - /** - * Performs a deep copy on other. - */ - public DRPCExecutionException(DRPCExecutionException other) { - if (other.isSetMsg()) { - this.msg = other.msg; - } - } - - public DRPCExecutionException deepCopy() { - return new DRPCExecutionException(this); - } - - @Override - public void clear() { - this.msg = null; - } - - public String getMsg() { - return this.msg; - } - - public DRPCExecutionException setMsg(String msg) { - this.msg = msg; - return this; - } - - public void unsetMsg() { - this.msg = null; - } - - /** Returns true if field msg is set (has been assigned a value) and false otherwise */ - public boolean isSetMsg() { - return this.msg != null; - } - - public void setMsgIsSet(boolean value) { - if (!value) { - this.msg = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case MSG: - if (value == null) { - unsetMsg(); - } else { - setMsg((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case MSG: - return getMsg(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case MSG: - return isSetMsg(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof DRPCExecutionException) - return this.equals((DRPCExecutionException)that); - return false; - } - - public boolean equals(DRPCExecutionException that) { - if (that == null) - return false; - - boolean this_present_msg = true && this.isSetMsg(); - boolean that_present_msg = true && that.isSetMsg(); - if (this_present_msg || that_present_msg) { - if (!(this_present_msg && that_present_msg)) - return false; - if (!this.msg.equals(that.msg)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_msg = true && (isSetMsg()); - builder.append(present_msg); - if (present_msg) - builder.append(msg); - - return builder.toHashCode(); - } - - public int compareTo(DRPCExecutionException other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - DRPCExecutionException typedOther = (DRPCExecutionException)other; - - lastComparison = Boolean.valueOf(isSetMsg()).compareTo(typedOther.isSetMsg()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetMsg()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.msg, typedOther.msg); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("DRPCExecutionException("); - boolean first = true; - - sb.append("msg:"); - if (this.msg == null) { - sb.append("null"); - } else { - sb.append(this.msg); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (msg == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'msg' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class DRPCExecutionExceptionStandardSchemeFactory implements SchemeFactory { - public DRPCExecutionExceptionStandardScheme getScheme() { - return new DRPCExecutionExceptionStandardScheme(); - } - } - - private static class DRPCExecutionExceptionStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, DRPCExecutionException struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // MSG - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, DRPCExecutionException struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.msg != null) { - oprot.writeFieldBegin(MSG_FIELD_DESC); - oprot.writeString(struct.msg); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class DRPCExecutionExceptionTupleSchemeFactory implements SchemeFactory { - public DRPCExecutionExceptionTupleScheme getScheme() { - return new DRPCExecutionExceptionTupleScheme(); - } - } - - private static class DRPCExecutionExceptionTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, DRPCExecutionException struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.msg); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, DRPCExecutionException struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DRPCRequest.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DRPCRequest.java deleted file mode 100644 index 8d89c3956..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DRPCRequest.java +++ /dev/null @@ -1,488 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DRPCRequest implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DRPCRequest"); - - private static final org.apache.thrift.protocol.TField FUNC_ARGS_FIELD_DESC = new org.apache.thrift.protocol.TField("func_args", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField REQUEST_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("request_id", org.apache.thrift.protocol.TType.STRING, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new DRPCRequestStandardSchemeFactory()); - schemes.put(TupleScheme.class, new DRPCRequestTupleSchemeFactory()); - } - - public String func_args; // required - public String request_id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - FUNC_ARGS((short)1, "func_args"), - REQUEST_ID((short)2, "request_id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // FUNC_ARGS - return FUNC_ARGS; - case 2: // REQUEST_ID - return REQUEST_ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.FUNC_ARGS, new org.apache.thrift.meta_data.FieldMetaData("func_args", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.REQUEST_ID, new org.apache.thrift.meta_data.FieldMetaData("request_id", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DRPCRequest.class, metaDataMap); - } - - public DRPCRequest() { - } - - public DRPCRequest( - String func_args, - String request_id) - { - this(); - this.func_args = func_args; - this.request_id = request_id; - } - - /** - * Performs a deep copy on other. - */ - public DRPCRequest(DRPCRequest other) { - if (other.isSetFunc_args()) { - this.func_args = other.func_args; - } - if (other.isSetRequest_id()) { - this.request_id = other.request_id; - } - } - - public DRPCRequest deepCopy() { - return new DRPCRequest(this); - } - - @Override - public void clear() { - this.func_args = null; - this.request_id = null; - } - - public String getFunc_args() { - return this.func_args; - } - - public DRPCRequest setFunc_args(String func_args) { - this.func_args = func_args; - return this; - } - - public void unsetFunc_args() { - this.func_args = null; - } - - /** Returns true if field func_args is set (has been assigned a value) and false otherwise */ - public boolean isSetFunc_args() { - return this.func_args != null; - } - - public void setFunc_argsIsSet(boolean value) { - if (!value) { - this.func_args = null; - } - } - - public String getRequest_id() { - return this.request_id; - } - - public DRPCRequest setRequest_id(String request_id) { - this.request_id = request_id; - return this; - } - - public void unsetRequest_id() { - this.request_id = null; - } - - /** Returns true if field request_id is set (has been assigned a value) and false otherwise */ - public boolean isSetRequest_id() { - return this.request_id != null; - } - - public void setRequest_idIsSet(boolean value) { - if (!value) { - this.request_id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case FUNC_ARGS: - if (value == null) { - unsetFunc_args(); - } else { - setFunc_args((String)value); - } - break; - - case REQUEST_ID: - if (value == null) { - unsetRequest_id(); - } else { - setRequest_id((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case FUNC_ARGS: - return getFunc_args(); - - case REQUEST_ID: - return getRequest_id(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case FUNC_ARGS: - return isSetFunc_args(); - case REQUEST_ID: - return isSetRequest_id(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof DRPCRequest) - return this.equals((DRPCRequest)that); - return false; - } - - public boolean equals(DRPCRequest that) { - if (that == null) - return false; - - boolean this_present_func_args = true && this.isSetFunc_args(); - boolean that_present_func_args = true && that.isSetFunc_args(); - if (this_present_func_args || that_present_func_args) { - if (!(this_present_func_args && that_present_func_args)) - return false; - if (!this.func_args.equals(that.func_args)) - return false; - } - - boolean this_present_request_id = true && this.isSetRequest_id(); - boolean that_present_request_id = true && that.isSetRequest_id(); - if (this_present_request_id || that_present_request_id) { - if (!(this_present_request_id && that_present_request_id)) - return false; - if (!this.request_id.equals(that.request_id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_func_args = true && (isSetFunc_args()); - builder.append(present_func_args); - if (present_func_args) - builder.append(func_args); - - boolean present_request_id = true && (isSetRequest_id()); - builder.append(present_request_id); - if (present_request_id) - builder.append(request_id); - - return builder.toHashCode(); - } - - public int compareTo(DRPCRequest other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - DRPCRequest typedOther = (DRPCRequest)other; - - lastComparison = Boolean.valueOf(isSetFunc_args()).compareTo(typedOther.isSetFunc_args()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFunc_args()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.func_args, typedOther.func_args); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetRequest_id()).compareTo(typedOther.isSetRequest_id()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetRequest_id()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.request_id, typedOther.request_id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("DRPCRequest("); - boolean first = true; - - sb.append("func_args:"); - if (this.func_args == null) { - sb.append("null"); - } else { - sb.append(this.func_args); - } - first = false; - if (!first) sb.append(", "); - sb.append("request_id:"); - if (this.request_id == null) { - sb.append("null"); - } else { - sb.append(this.request_id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (func_args == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'func_args' was not present! Struct: " + toString()); - } - if (request_id == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'request_id' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class DRPCRequestStandardSchemeFactory implements SchemeFactory { - public DRPCRequestStandardScheme getScheme() { - return new DRPCRequestStandardScheme(); - } - } - - private static class DRPCRequestStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, DRPCRequest struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // FUNC_ARGS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.func_args = iprot.readString(); - struct.setFunc_argsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // REQUEST_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.request_id = iprot.readString(); - struct.setRequest_idIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, DRPCRequest struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.func_args != null) { - oprot.writeFieldBegin(FUNC_ARGS_FIELD_DESC); - oprot.writeString(struct.func_args); - oprot.writeFieldEnd(); - } - if (struct.request_id != null) { - oprot.writeFieldBegin(REQUEST_ID_FIELD_DESC); - oprot.writeString(struct.request_id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class DRPCRequestTupleSchemeFactory implements SchemeFactory { - public DRPCRequestTupleScheme getScheme() { - return new DRPCRequestTupleScheme(); - } - } - - private static class DRPCRequestTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, DRPCRequest struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.func_args); - oprot.writeString(struct.request_id); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, DRPCRequest struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.func_args = iprot.readString(); - struct.setFunc_argsIsSet(true); - struct.request_id = iprot.readString(); - struct.setRequest_idIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DistributedRPC.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DistributedRPC.java deleted file mode 100644 index e8d3bf3b2..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DistributedRPC.java +++ /dev/null @@ -1,1125 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DistributedRPC { - - public interface Iface { - - public String execute(String functionName, String funcArgs) throws DRPCExecutionException, org.apache.thrift.TException; - - } - - public interface AsyncIface { - - public void execute(String functionName, String funcArgs, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - } - - public static class Client extends org.apache.thrift.TServiceClient implements Iface { - public static class Factory implements org.apache.thrift.TServiceClientFactory { - public Factory() {} - public Client getClient(org.apache.thrift.protocol.TProtocol prot) { - return new Client(prot); - } - public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { - return new Client(iprot, oprot); - } - } - - public Client(org.apache.thrift.protocol.TProtocol prot) - { - super(prot, prot); - } - - public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { - super(iprot, oprot); - } - - public String execute(String functionName, String funcArgs) throws DRPCExecutionException, org.apache.thrift.TException - { - send_execute(functionName, funcArgs); - return recv_execute(); - } - - public void send_execute(String functionName, String funcArgs) throws org.apache.thrift.TException - { - execute_args args = new execute_args(); - args.setFunctionName(functionName); - args.setFuncArgs(funcArgs); - sendBase("execute", args); - } - - public String recv_execute() throws DRPCExecutionException, org.apache.thrift.TException - { - execute_result result = new execute_result(); - receiveBase(result, "execute"); - if (result.isSetSuccess()) { - return result.success; - } - if (result.e != null) { - throw result.e; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "execute failed: unknown result"); - } - - } - public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface { - public static class Factory implements org.apache.thrift.async.TAsyncClientFactory { - private org.apache.thrift.async.TAsyncClientManager clientManager; - private org.apache.thrift.protocol.TProtocolFactory protocolFactory; - public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) { - this.clientManager = clientManager; - this.protocolFactory = protocolFactory; - } - public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) { - return new AsyncClient(protocolFactory, clientManager, transport); - } - } - - public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) { - super(protocolFactory, clientManager, transport); - } - - public void execute(String functionName, String funcArgs, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - execute_call method_call = new execute_call(functionName, funcArgs, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class execute_call extends org.apache.thrift.async.TAsyncMethodCall { - private String functionName; - private String funcArgs; - public execute_call(String functionName, String funcArgs, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.functionName = functionName; - this.funcArgs = funcArgs; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("execute", org.apache.thrift.protocol.TMessageType.CALL, 0)); - execute_args args = new execute_args(); - args.setFunctionName(functionName); - args.setFuncArgs(funcArgs); - args.write(prot); - prot.writeMessageEnd(); - } - - public String getResult() throws DRPCExecutionException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_execute(); - } - } - - } - - public static class Processor extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor { - private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName()); - public Processor(I iface) { - super(iface, getProcessMap(new HashMap>())); - } - - protected Processor(I iface, Map> processMap) { - super(iface, getProcessMap(processMap)); - } - - private static Map> getProcessMap(Map> processMap) { - processMap.put("execute", new execute()); - return processMap; - } - - public static class execute extends org.apache.thrift.ProcessFunction { - public execute() { - super("execute"); - } - - public execute_args getEmptyArgsInstance() { - return new execute_args(); - } - - protected boolean isOneway() { - return false; - } - - public execute_result getResult(I iface, execute_args args) throws org.apache.thrift.TException { - execute_result result = new execute_result(); - try { - result.success = iface.execute(args.functionName, args.funcArgs); - } catch (DRPCExecutionException e) { - result.e = e; - } - return result; - } - } - - } - - public static class execute_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("execute_args"); - - private static final org.apache.thrift.protocol.TField FUNCTION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("functionName", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField FUNC_ARGS_FIELD_DESC = new org.apache.thrift.protocol.TField("funcArgs", org.apache.thrift.protocol.TType.STRING, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new execute_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new execute_argsTupleSchemeFactory()); - } - - public String functionName; // required - public String funcArgs; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - FUNCTION_NAME((short)1, "functionName"), - FUNC_ARGS((short)2, "funcArgs"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // FUNCTION_NAME - return FUNCTION_NAME; - case 2: // FUNC_ARGS - return FUNC_ARGS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.FUNCTION_NAME, new org.apache.thrift.meta_data.FieldMetaData("functionName", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.FUNC_ARGS, new org.apache.thrift.meta_data.FieldMetaData("funcArgs", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(execute_args.class, metaDataMap); - } - - public execute_args() { - } - - public execute_args( - String functionName, - String funcArgs) - { - this(); - this.functionName = functionName; - this.funcArgs = funcArgs; - } - - /** - * Performs a deep copy on other. - */ - public execute_args(execute_args other) { - if (other.isSetFunctionName()) { - this.functionName = other.functionName; - } - if (other.isSetFuncArgs()) { - this.funcArgs = other.funcArgs; - } - } - - public execute_args deepCopy() { - return new execute_args(this); - } - - @Override - public void clear() { - this.functionName = null; - this.funcArgs = null; - } - - public String getFunctionName() { - return this.functionName; - } - - public execute_args setFunctionName(String functionName) { - this.functionName = functionName; - return this; - } - - public void unsetFunctionName() { - this.functionName = null; - } - - /** Returns true if field functionName is set (has been assigned a value) and false otherwise */ - public boolean isSetFunctionName() { - return this.functionName != null; - } - - public void setFunctionNameIsSet(boolean value) { - if (!value) { - this.functionName = null; - } - } - - public String getFuncArgs() { - return this.funcArgs; - } - - public execute_args setFuncArgs(String funcArgs) { - this.funcArgs = funcArgs; - return this; - } - - public void unsetFuncArgs() { - this.funcArgs = null; - } - - /** Returns true if field funcArgs is set (has been assigned a value) and false otherwise */ - public boolean isSetFuncArgs() { - return this.funcArgs != null; - } - - public void setFuncArgsIsSet(boolean value) { - if (!value) { - this.funcArgs = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case FUNCTION_NAME: - if (value == null) { - unsetFunctionName(); - } else { - setFunctionName((String)value); - } - break; - - case FUNC_ARGS: - if (value == null) { - unsetFuncArgs(); - } else { - setFuncArgs((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case FUNCTION_NAME: - return getFunctionName(); - - case FUNC_ARGS: - return getFuncArgs(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case FUNCTION_NAME: - return isSetFunctionName(); - case FUNC_ARGS: - return isSetFuncArgs(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof execute_args) - return this.equals((execute_args)that); - return false; - } - - public boolean equals(execute_args that) { - if (that == null) - return false; - - boolean this_present_functionName = true && this.isSetFunctionName(); - boolean that_present_functionName = true && that.isSetFunctionName(); - if (this_present_functionName || that_present_functionName) { - if (!(this_present_functionName && that_present_functionName)) - return false; - if (!this.functionName.equals(that.functionName)) - return false; - } - - boolean this_present_funcArgs = true && this.isSetFuncArgs(); - boolean that_present_funcArgs = true && that.isSetFuncArgs(); - if (this_present_funcArgs || that_present_funcArgs) { - if (!(this_present_funcArgs && that_present_funcArgs)) - return false; - if (!this.funcArgs.equals(that.funcArgs)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_functionName = true && (isSetFunctionName()); - builder.append(present_functionName); - if (present_functionName) - builder.append(functionName); - - boolean present_funcArgs = true && (isSetFuncArgs()); - builder.append(present_funcArgs); - if (present_funcArgs) - builder.append(funcArgs); - - return builder.toHashCode(); - } - - public int compareTo(execute_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - execute_args typedOther = (execute_args)other; - - lastComparison = Boolean.valueOf(isSetFunctionName()).compareTo(typedOther.isSetFunctionName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFunctionName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.functionName, typedOther.functionName); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetFuncArgs()).compareTo(typedOther.isSetFuncArgs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFuncArgs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.funcArgs, typedOther.funcArgs); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("execute_args("); - boolean first = true; - - sb.append("functionName:"); - if (this.functionName == null) { - sb.append("null"); - } else { - sb.append(this.functionName); - } - first = false; - if (!first) sb.append(", "); - sb.append("funcArgs:"); - if (this.funcArgs == null) { - sb.append("null"); - } else { - sb.append(this.funcArgs); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class execute_argsStandardSchemeFactory implements SchemeFactory { - public execute_argsStandardScheme getScheme() { - return new execute_argsStandardScheme(); - } - } - - private static class execute_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, execute_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // FUNCTION_NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.functionName = iprot.readString(); - struct.setFunctionNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // FUNC_ARGS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.funcArgs = iprot.readString(); - struct.setFuncArgsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, execute_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.functionName != null) { - oprot.writeFieldBegin(FUNCTION_NAME_FIELD_DESC); - oprot.writeString(struct.functionName); - oprot.writeFieldEnd(); - } - if (struct.funcArgs != null) { - oprot.writeFieldBegin(FUNC_ARGS_FIELD_DESC); - oprot.writeString(struct.funcArgs); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class execute_argsTupleSchemeFactory implements SchemeFactory { - public execute_argsTupleScheme getScheme() { - return new execute_argsTupleScheme(); - } - } - - private static class execute_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, execute_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetFunctionName()) { - optionals.set(0); - } - if (struct.isSetFuncArgs()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetFunctionName()) { - oprot.writeString(struct.functionName); - } - if (struct.isSetFuncArgs()) { - oprot.writeString(struct.funcArgs); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, execute_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.functionName = iprot.readString(); - struct.setFunctionNameIsSet(true); - } - if (incoming.get(1)) { - struct.funcArgs = iprot.readString(); - struct.setFuncArgsIsSet(true); - } - } - } - - } - - public static class execute_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("execute_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0); - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new execute_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new execute_resultTupleSchemeFactory()); - } - - public String success; // required - public DRPCExecutionException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"), - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(execute_result.class, metaDataMap); - } - - public execute_result() { - } - - public execute_result( - String success, - DRPCExecutionException e) - { - this(); - this.success = success; - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public execute_result(execute_result other) { - if (other.isSetSuccess()) { - this.success = other.success; - } - if (other.isSetE()) { - this.e = new DRPCExecutionException(other.e); - } - } - - public execute_result deepCopy() { - return new execute_result(this); - } - - @Override - public void clear() { - this.success = null; - this.e = null; - } - - public String getSuccess() { - return this.success; - } - - public execute_result setSuccess(String success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public DRPCExecutionException getE() { - return this.e; - } - - public execute_result setE(DRPCExecutionException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((String)value); - } - break; - - case E: - if (value == null) { - unsetE(); - } else { - setE((DRPCExecutionException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof execute_result) - return this.equals((execute_result)that); - return false; - } - - public boolean equals(execute_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(execute_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - execute_result typedOther = (execute_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("execute_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - if (!first) sb.append(", "); - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class execute_resultStandardSchemeFactory implements SchemeFactory { - public execute_resultStandardScheme getScheme() { - return new execute_resultStandardScheme(); - } - } - - private static class execute_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, execute_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new DRPCExecutionException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, execute_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - oprot.writeString(struct.success); - oprot.writeFieldEnd(); - } - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class execute_resultTupleSchemeFactory implements SchemeFactory { - public execute_resultTupleScheme getScheme() { - return new execute_resultTupleScheme(); - } - } - - private static class execute_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, execute_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - if (struct.isSetE()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetSuccess()) { - oprot.writeString(struct.success); - } - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, execute_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } - if (incoming.get(1)) { - struct.e = new DRPCExecutionException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DistributedRPCInvocations.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DistributedRPCInvocations.java deleted file mode 100644 index b7f2dac12..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/DistributedRPCInvocations.java +++ /dev/null @@ -1,2388 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DistributedRPCInvocations { - - public interface Iface { - - public void result(String id, String result) throws org.apache.thrift.TException; - - public DRPCRequest fetchRequest(String functionName) throws org.apache.thrift.TException; - - public void failRequest(String id) throws org.apache.thrift.TException; - - } - - public interface AsyncIface { - - public void result(String id, String result, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void fetchRequest(String functionName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void failRequest(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - } - - public static class Client extends org.apache.thrift.TServiceClient implements Iface { - public static class Factory implements org.apache.thrift.TServiceClientFactory { - public Factory() {} - public Client getClient(org.apache.thrift.protocol.TProtocol prot) { - return new Client(prot); - } - public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { - return new Client(iprot, oprot); - } - } - - public Client(org.apache.thrift.protocol.TProtocol prot) - { - super(prot, prot); - } - - public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { - super(iprot, oprot); - } - - public void result(String id, String result) throws org.apache.thrift.TException - { - send_result(id, result); - recv_result(); - } - - public void send_result(String id, String result) throws org.apache.thrift.TException - { - result_args args = new result_args(); - args.setId(id); - args.setResult(result); - sendBase("result", args); - } - - public void recv_result() throws org.apache.thrift.TException - { - result_result result = new result_result(); - receiveBase(result, "result"); - return; - } - - public DRPCRequest fetchRequest(String functionName) throws org.apache.thrift.TException - { - send_fetchRequest(functionName); - return recv_fetchRequest(); - } - - public void send_fetchRequest(String functionName) throws org.apache.thrift.TException - { - fetchRequest_args args = new fetchRequest_args(); - args.setFunctionName(functionName); - sendBase("fetchRequest", args); - } - - public DRPCRequest recv_fetchRequest() throws org.apache.thrift.TException - { - fetchRequest_result result = new fetchRequest_result(); - receiveBase(result, "fetchRequest"); - if (result.isSetSuccess()) { - return result.success; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "fetchRequest failed: unknown result"); - } - - public void failRequest(String id) throws org.apache.thrift.TException - { - send_failRequest(id); - recv_failRequest(); - } - - public void send_failRequest(String id) throws org.apache.thrift.TException - { - failRequest_args args = new failRequest_args(); - args.setId(id); - sendBase("failRequest", args); - } - - public void recv_failRequest() throws org.apache.thrift.TException - { - failRequest_result result = new failRequest_result(); - receiveBase(result, "failRequest"); - return; - } - - } - public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface { - public static class Factory implements org.apache.thrift.async.TAsyncClientFactory { - private org.apache.thrift.async.TAsyncClientManager clientManager; - private org.apache.thrift.protocol.TProtocolFactory protocolFactory; - public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) { - this.clientManager = clientManager; - this.protocolFactory = protocolFactory; - } - public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) { - return new AsyncClient(protocolFactory, clientManager, transport); - } - } - - public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) { - super(protocolFactory, clientManager, transport); - } - - public void result(String id, String result, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - result_call method_call = new result_call(id, result, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class result_call extends org.apache.thrift.async.TAsyncMethodCall { - private String id; - private String result; - public result_call(String id, String result, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.id = id; - this.result = result; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("result", org.apache.thrift.protocol.TMessageType.CALL, 0)); - result_args args = new result_args(); - args.setId(id); - args.setResult(result); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_result(); - } - } - - public void fetchRequest(String functionName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - fetchRequest_call method_call = new fetchRequest_call(functionName, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class fetchRequest_call extends org.apache.thrift.async.TAsyncMethodCall { - private String functionName; - public fetchRequest_call(String functionName, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.functionName = functionName; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("fetchRequest", org.apache.thrift.protocol.TMessageType.CALL, 0)); - fetchRequest_args args = new fetchRequest_args(); - args.setFunctionName(functionName); - args.write(prot); - prot.writeMessageEnd(); - } - - public DRPCRequest getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_fetchRequest(); - } - } - - public void failRequest(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - failRequest_call method_call = new failRequest_call(id, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class failRequest_call extends org.apache.thrift.async.TAsyncMethodCall { - private String id; - public failRequest_call(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.id = id; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("failRequest", org.apache.thrift.protocol.TMessageType.CALL, 0)); - failRequest_args args = new failRequest_args(); - args.setId(id); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_failRequest(); - } - } - - } - - public static class Processor extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor { - private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName()); - public Processor(I iface) { - super(iface, getProcessMap(new HashMap>())); - } - - protected Processor(I iface, Map> processMap) { - super(iface, getProcessMap(processMap)); - } - - private static Map> getProcessMap(Map> processMap) { - processMap.put("result", new result()); - processMap.put("fetchRequest", new fetchRequest()); - processMap.put("failRequest", new failRequest()); - return processMap; - } - - public static class result extends org.apache.thrift.ProcessFunction { - public result() { - super("result"); - } - - public result_args getEmptyArgsInstance() { - return new result_args(); - } - - protected boolean isOneway() { - return false; - } - - public result_result getResult(I iface, result_args args) throws org.apache.thrift.TException { - result_result result = new result_result(); - iface.result(args.id, args.result); - return result; - } - } - - public static class fetchRequest extends org.apache.thrift.ProcessFunction { - public fetchRequest() { - super("fetchRequest"); - } - - public fetchRequest_args getEmptyArgsInstance() { - return new fetchRequest_args(); - } - - protected boolean isOneway() { - return false; - } - - public fetchRequest_result getResult(I iface, fetchRequest_args args) throws org.apache.thrift.TException { - fetchRequest_result result = new fetchRequest_result(); - result.success = iface.fetchRequest(args.functionName); - return result; - } - } - - public static class failRequest extends org.apache.thrift.ProcessFunction { - public failRequest() { - super("failRequest"); - } - - public failRequest_args getEmptyArgsInstance() { - return new failRequest_args(); - } - - protected boolean isOneway() { - return false; - } - - public failRequest_result getResult(I iface, failRequest_args args) throws org.apache.thrift.TException { - failRequest_result result = new failRequest_result(); - iface.failRequest(args.id); - return result; - } - } - - } - - public static class result_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("result_args"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField RESULT_FIELD_DESC = new org.apache.thrift.protocol.TField("result", org.apache.thrift.protocol.TType.STRING, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new result_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new result_argsTupleSchemeFactory()); - } - - public String id; // required - public String result; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"), - RESULT((short)2, "result"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - case 2: // RESULT - return RESULT; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.RESULT, new org.apache.thrift.meta_data.FieldMetaData("result", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(result_args.class, metaDataMap); - } - - public result_args() { - } - - public result_args( - String id, - String result) - { - this(); - this.id = id; - this.result = result; - } - - /** - * Performs a deep copy on other. - */ - public result_args(result_args other) { - if (other.isSetId()) { - this.id = other.id; - } - if (other.isSetResult()) { - this.result = other.result; - } - } - - public result_args deepCopy() { - return new result_args(this); - } - - @Override - public void clear() { - this.id = null; - this.result = null; - } - - public String getId() { - return this.id; - } - - public result_args setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public String getResult() { - return this.result; - } - - public result_args setResult(String result) { - this.result = result; - return this; - } - - public void unsetResult() { - this.result = null; - } - - /** Returns true if field result is set (has been assigned a value) and false otherwise */ - public boolean isSetResult() { - return this.result != null; - } - - public void setResultIsSet(boolean value) { - if (!value) { - this.result = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - case RESULT: - if (value == null) { - unsetResult(); - } else { - setResult((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - case RESULT: - return getResult(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - case RESULT: - return isSetResult(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof result_args) - return this.equals((result_args)that); - return false; - } - - public boolean equals(result_args that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - boolean this_present_result = true && this.isSetResult(); - boolean that_present_result = true && that.isSetResult(); - if (this_present_result || that_present_result) { - if (!(this_present_result && that_present_result)) - return false; - if (!this.result.equals(that.result)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - boolean present_result = true && (isSetResult()); - builder.append(present_result); - if (present_result) - builder.append(result); - - return builder.toHashCode(); - } - - public int compareTo(result_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - result_args typedOther = (result_args)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetResult()).compareTo(typedOther.isSetResult()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetResult()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.result, typedOther.result); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("result_args("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - if (!first) sb.append(", "); - sb.append("result:"); - if (this.result == null) { - sb.append("null"); - } else { - sb.append(this.result); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class result_argsStandardSchemeFactory implements SchemeFactory { - public result_argsStandardScheme getScheme() { - return new result_argsStandardScheme(); - } - } - - private static class result_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, result_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // RESULT - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.result = iprot.readString(); - struct.setResultIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, result_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - if (struct.result != null) { - oprot.writeFieldBegin(RESULT_FIELD_DESC); - oprot.writeString(struct.result); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class result_argsTupleSchemeFactory implements SchemeFactory { - public result_argsTupleScheme getScheme() { - return new result_argsTupleScheme(); - } - } - - private static class result_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, result_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetId()) { - optionals.set(0); - } - if (struct.isSetResult()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetId()) { - oprot.writeString(struct.id); - } - if (struct.isSetResult()) { - oprot.writeString(struct.result); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, result_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } - if (incoming.get(1)) { - struct.result = iprot.readString(); - struct.setResultIsSet(true); - } - } - } - - } - - public static class result_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("result_result"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new result_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new result_resultTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(result_result.class, metaDataMap); - } - - public result_result() { - } - - /** - * Performs a deep copy on other. - */ - public result_result(result_result other) { - } - - public result_result deepCopy() { - return new result_result(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof result_result) - return this.equals((result_result)that); - return false; - } - - public boolean equals(result_result that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(result_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - result_result typedOther = (result_result)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("result_result("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class result_resultStandardSchemeFactory implements SchemeFactory { - public result_resultStandardScheme getScheme() { - return new result_resultStandardScheme(); - } - } - - private static class result_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, result_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, result_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class result_resultTupleSchemeFactory implements SchemeFactory { - public result_resultTupleScheme getScheme() { - return new result_resultTupleScheme(); - } - } - - private static class result_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, result_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, result_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - - } - - public static class fetchRequest_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fetchRequest_args"); - - private static final org.apache.thrift.protocol.TField FUNCTION_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("functionName", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new fetchRequest_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new fetchRequest_argsTupleSchemeFactory()); - } - - public String functionName; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - FUNCTION_NAME((short)1, "functionName"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // FUNCTION_NAME - return FUNCTION_NAME; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.FUNCTION_NAME, new org.apache.thrift.meta_data.FieldMetaData("functionName", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fetchRequest_args.class, metaDataMap); - } - - public fetchRequest_args() { - } - - public fetchRequest_args( - String functionName) - { - this(); - this.functionName = functionName; - } - - /** - * Performs a deep copy on other. - */ - public fetchRequest_args(fetchRequest_args other) { - if (other.isSetFunctionName()) { - this.functionName = other.functionName; - } - } - - public fetchRequest_args deepCopy() { - return new fetchRequest_args(this); - } - - @Override - public void clear() { - this.functionName = null; - } - - public String getFunctionName() { - return this.functionName; - } - - public fetchRequest_args setFunctionName(String functionName) { - this.functionName = functionName; - return this; - } - - public void unsetFunctionName() { - this.functionName = null; - } - - /** Returns true if field functionName is set (has been assigned a value) and false otherwise */ - public boolean isSetFunctionName() { - return this.functionName != null; - } - - public void setFunctionNameIsSet(boolean value) { - if (!value) { - this.functionName = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case FUNCTION_NAME: - if (value == null) { - unsetFunctionName(); - } else { - setFunctionName((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case FUNCTION_NAME: - return getFunctionName(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case FUNCTION_NAME: - return isSetFunctionName(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof fetchRequest_args) - return this.equals((fetchRequest_args)that); - return false; - } - - public boolean equals(fetchRequest_args that) { - if (that == null) - return false; - - boolean this_present_functionName = true && this.isSetFunctionName(); - boolean that_present_functionName = true && that.isSetFunctionName(); - if (this_present_functionName || that_present_functionName) { - if (!(this_present_functionName && that_present_functionName)) - return false; - if (!this.functionName.equals(that.functionName)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_functionName = true && (isSetFunctionName()); - builder.append(present_functionName); - if (present_functionName) - builder.append(functionName); - - return builder.toHashCode(); - } - - public int compareTo(fetchRequest_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - fetchRequest_args typedOther = (fetchRequest_args)other; - - lastComparison = Boolean.valueOf(isSetFunctionName()).compareTo(typedOther.isSetFunctionName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFunctionName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.functionName, typedOther.functionName); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("fetchRequest_args("); - boolean first = true; - - sb.append("functionName:"); - if (this.functionName == null) { - sb.append("null"); - } else { - sb.append(this.functionName); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class fetchRequest_argsStandardSchemeFactory implements SchemeFactory { - public fetchRequest_argsStandardScheme getScheme() { - return new fetchRequest_argsStandardScheme(); - } - } - - private static class fetchRequest_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, fetchRequest_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // FUNCTION_NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.functionName = iprot.readString(); - struct.setFunctionNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, fetchRequest_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.functionName != null) { - oprot.writeFieldBegin(FUNCTION_NAME_FIELD_DESC); - oprot.writeString(struct.functionName); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class fetchRequest_argsTupleSchemeFactory implements SchemeFactory { - public fetchRequest_argsTupleScheme getScheme() { - return new fetchRequest_argsTupleScheme(); - } - } - - private static class fetchRequest_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, fetchRequest_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetFunctionName()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetFunctionName()) { - oprot.writeString(struct.functionName); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, fetchRequest_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.functionName = iprot.readString(); - struct.setFunctionNameIsSet(true); - } - } - } - - } - - public static class fetchRequest_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("fetchRequest_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new fetchRequest_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new fetchRequest_resultTupleSchemeFactory()); - } - - public DRPCRequest success; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DRPCRequest.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(fetchRequest_result.class, metaDataMap); - } - - public fetchRequest_result() { - } - - public fetchRequest_result( - DRPCRequest success) - { - this(); - this.success = success; - } - - /** - * Performs a deep copy on other. - */ - public fetchRequest_result(fetchRequest_result other) { - if (other.isSetSuccess()) { - this.success = new DRPCRequest(other.success); - } - } - - public fetchRequest_result deepCopy() { - return new fetchRequest_result(this); - } - - @Override - public void clear() { - this.success = null; - } - - public DRPCRequest getSuccess() { - return this.success; - } - - public fetchRequest_result setSuccess(DRPCRequest success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((DRPCRequest)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof fetchRequest_result) - return this.equals((fetchRequest_result)that); - return false; - } - - public boolean equals(fetchRequest_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - return builder.toHashCode(); - } - - public int compareTo(fetchRequest_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - fetchRequest_result typedOther = (fetchRequest_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("fetchRequest_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (success != null) { - success.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class fetchRequest_resultStandardSchemeFactory implements SchemeFactory { - public fetchRequest_resultStandardScheme getScheme() { - return new fetchRequest_resultStandardScheme(); - } - } - - private static class fetchRequest_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, fetchRequest_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.success = new DRPCRequest(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, fetchRequest_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - struct.success.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class fetchRequest_resultTupleSchemeFactory implements SchemeFactory { - public fetchRequest_resultTupleScheme getScheme() { - return new fetchRequest_resultTupleScheme(); - } - } - - private static class fetchRequest_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, fetchRequest_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetSuccess()) { - struct.success.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, fetchRequest_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.success = new DRPCRequest(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } - } - } - - } - - public static class failRequest_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("failRequest_args"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new failRequest_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new failRequest_argsTupleSchemeFactory()); - } - - public String id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(failRequest_args.class, metaDataMap); - } - - public failRequest_args() { - } - - public failRequest_args( - String id) - { - this(); - this.id = id; - } - - /** - * Performs a deep copy on other. - */ - public failRequest_args(failRequest_args other) { - if (other.isSetId()) { - this.id = other.id; - } - } - - public failRequest_args deepCopy() { - return new failRequest_args(this); - } - - @Override - public void clear() { - this.id = null; - } - - public String getId() { - return this.id; - } - - public failRequest_args setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof failRequest_args) - return this.equals((failRequest_args)that); - return false; - } - - public boolean equals(failRequest_args that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - return builder.toHashCode(); - } - - public int compareTo(failRequest_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - failRequest_args typedOther = (failRequest_args)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("failRequest_args("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class failRequest_argsStandardSchemeFactory implements SchemeFactory { - public failRequest_argsStandardScheme getScheme() { - return new failRequest_argsStandardScheme(); - } - } - - private static class failRequest_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, failRequest_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, failRequest_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class failRequest_argsTupleSchemeFactory implements SchemeFactory { - public failRequest_argsTupleScheme getScheme() { - return new failRequest_argsTupleScheme(); - } - } - - private static class failRequest_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, failRequest_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetId()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetId()) { - oprot.writeString(struct.id); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, failRequest_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } - } - } - - } - - public static class failRequest_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("failRequest_result"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new failRequest_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new failRequest_resultTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(failRequest_result.class, metaDataMap); - } - - public failRequest_result() { - } - - /** - * Performs a deep copy on other. - */ - public failRequest_result(failRequest_result other) { - } - - public failRequest_result deepCopy() { - return new failRequest_result(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof failRequest_result) - return this.equals((failRequest_result)that); - return false; - } - - public boolean equals(failRequest_result that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(failRequest_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - failRequest_result typedOther = (failRequest_result)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("failRequest_result("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class failRequest_resultStandardSchemeFactory implements SchemeFactory { - public failRequest_resultStandardScheme getScheme() { - return new failRequest_resultStandardScheme(); - } - } - - private static class failRequest_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, failRequest_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, failRequest_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class failRequest_resultTupleSchemeFactory implements SchemeFactory { - public failRequest_resultTupleScheme getScheme() { - return new failRequest_resultTupleScheme(); - } - } - - private static class failRequest_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, failRequest_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, failRequest_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ErrorInfo.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ErrorInfo.java deleted file mode 100644 index 1af82ebb5..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ErrorInfo.java +++ /dev/null @@ -1,487 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ErrorInfo implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorInfo"); - - private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField ERROR_TIME_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("error_time_secs", org.apache.thrift.protocol.TType.I32, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new ErrorInfoStandardSchemeFactory()); - schemes.put(TupleScheme.class, new ErrorInfoTupleSchemeFactory()); - } - - public String error; // required - public int error_time_secs; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ERROR((short)1, "error"), - ERROR_TIME_SECS((short)2, "error_time_secs"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ERROR - return ERROR; - case 2: // ERROR_TIME_SECS - return ERROR_TIME_SECS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __ERROR_TIME_SECS_ISSET_ID = 0; - private byte __isset_bitfield = 0; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ERROR, new org.apache.thrift.meta_data.FieldMetaData("error", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.ERROR_TIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("error_time_secs", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ErrorInfo.class, metaDataMap); - } - - public ErrorInfo() { - } - - public ErrorInfo( - String error, - int error_time_secs) - { - this(); - this.error = error; - this.error_time_secs = error_time_secs; - setError_time_secsIsSet(true); - } - - /** - * Performs a deep copy on other. - */ - public ErrorInfo(ErrorInfo other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetError()) { - this.error = other.error; - } - this.error_time_secs = other.error_time_secs; - } - - public ErrorInfo deepCopy() { - return new ErrorInfo(this); - } - - @Override - public void clear() { - this.error = null; - setError_time_secsIsSet(false); - this.error_time_secs = 0; - } - - public String getError() { - return this.error; - } - - public ErrorInfo setError(String error) { - this.error = error; - return this; - } - - public void unsetError() { - this.error = null; - } - - /** Returns true if field error is set (has been assigned a value) and false otherwise */ - public boolean isSetError() { - return this.error != null; - } - - public void setErrorIsSet(boolean value) { - if (!value) { - this.error = null; - } - } - - public int getError_time_secs() { - return this.error_time_secs; - } - - public ErrorInfo setError_time_secs(int error_time_secs) { - this.error_time_secs = error_time_secs; - setError_time_secsIsSet(true); - return this; - } - - public void unsetError_time_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ERROR_TIME_SECS_ISSET_ID); - } - - /** Returns true if field error_time_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetError_time_secs() { - return EncodingUtils.testBit(__isset_bitfield, __ERROR_TIME_SECS_ISSET_ID); - } - - public void setError_time_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ERROR_TIME_SECS_ISSET_ID, value); - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ERROR: - if (value == null) { - unsetError(); - } else { - setError((String)value); - } - break; - - case ERROR_TIME_SECS: - if (value == null) { - unsetError_time_secs(); - } else { - setError_time_secs((Integer)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ERROR: - return getError(); - - case ERROR_TIME_SECS: - return Integer.valueOf(getError_time_secs()); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ERROR: - return isSetError(); - case ERROR_TIME_SECS: - return isSetError_time_secs(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof ErrorInfo) - return this.equals((ErrorInfo)that); - return false; - } - - public boolean equals(ErrorInfo that) { - if (that == null) - return false; - - boolean this_present_error = true && this.isSetError(); - boolean that_present_error = true && that.isSetError(); - if (this_present_error || that_present_error) { - if (!(this_present_error && that_present_error)) - return false; - if (!this.error.equals(that.error)) - return false; - } - - boolean this_present_error_time_secs = true; - boolean that_present_error_time_secs = true; - if (this_present_error_time_secs || that_present_error_time_secs) { - if (!(this_present_error_time_secs && that_present_error_time_secs)) - return false; - if (this.error_time_secs != that.error_time_secs) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_error = true && (isSetError()); - builder.append(present_error); - if (present_error) - builder.append(error); - - boolean present_error_time_secs = true; - builder.append(present_error_time_secs); - if (present_error_time_secs) - builder.append(error_time_secs); - - return builder.toHashCode(); - } - - public int compareTo(ErrorInfo other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - ErrorInfo typedOther = (ErrorInfo)other; - - lastComparison = Boolean.valueOf(isSetError()).compareTo(typedOther.isSetError()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetError()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error, typedOther.error); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetError_time_secs()).compareTo(typedOther.isSetError_time_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetError_time_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.error_time_secs, typedOther.error_time_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("ErrorInfo("); - boolean first = true; - - sb.append("error:"); - if (this.error == null) { - sb.append("null"); - } else { - sb.append(this.error); - } - first = false; - if (!first) sb.append(", "); - sb.append("error_time_secs:"); - sb.append(this.error_time_secs); - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (error == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'error' was not present! Struct: " + toString()); - } - // alas, we cannot check 'error_time_secs' because it's a primitive and you chose the non-beans generator. - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class ErrorInfoStandardSchemeFactory implements SchemeFactory { - public ErrorInfoStandardScheme getScheme() { - return new ErrorInfoStandardScheme(); - } - } - - private static class ErrorInfoStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, ErrorInfo struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ERROR - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.error = iprot.readString(); - struct.setErrorIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // ERROR_TIME_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.error_time_secs = iprot.readI32(); - struct.setError_time_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetError_time_secs()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'error_time_secs' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, ErrorInfo struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.error != null) { - oprot.writeFieldBegin(ERROR_FIELD_DESC); - oprot.writeString(struct.error); - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(ERROR_TIME_SECS_FIELD_DESC); - oprot.writeI32(struct.error_time_secs); - oprot.writeFieldEnd(); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class ErrorInfoTupleSchemeFactory implements SchemeFactory { - public ErrorInfoTupleScheme getScheme() { - return new ErrorInfoTupleScheme(); - } - } - - private static class ErrorInfoTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, ErrorInfo struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.error); - oprot.writeI32(struct.error_time_secs); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, ErrorInfo struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.error = iprot.readString(); - struct.setErrorIsSet(true); - struct.error_time_secs = iprot.readI32(); - struct.setError_time_secsIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorInfo.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorInfo.java deleted file mode 100644 index 338ab1075..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorInfo.java +++ /dev/null @@ -1,482 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ExecutorInfo implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExecutorInfo"); - - private static final org.apache.thrift.protocol.TField TASK_START_FIELD_DESC = new org.apache.thrift.protocol.TField("task_start", org.apache.thrift.protocol.TType.I32, (short)1); - private static final org.apache.thrift.protocol.TField TASK_END_FIELD_DESC = new org.apache.thrift.protocol.TField("task_end", org.apache.thrift.protocol.TType.I32, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new ExecutorInfoStandardSchemeFactory()); - schemes.put(TupleScheme.class, new ExecutorInfoTupleSchemeFactory()); - } - - public int task_start; // required - public int task_end; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - TASK_START((short)1, "task_start"), - TASK_END((short)2, "task_end"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // TASK_START - return TASK_START; - case 2: // TASK_END - return TASK_END; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __TASK_START_ISSET_ID = 0; - private static final int __TASK_END_ISSET_ID = 1; - private byte __isset_bitfield = 0; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.TASK_START, new org.apache.thrift.meta_data.FieldMetaData("task_start", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.TASK_END, new org.apache.thrift.meta_data.FieldMetaData("task_end", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExecutorInfo.class, metaDataMap); - } - - public ExecutorInfo() { - } - - public ExecutorInfo( - int task_start, - int task_end) - { - this(); - this.task_start = task_start; - setTask_startIsSet(true); - this.task_end = task_end; - setTask_endIsSet(true); - } - - /** - * Performs a deep copy on other. - */ - public ExecutorInfo(ExecutorInfo other) { - __isset_bitfield = other.__isset_bitfield; - this.task_start = other.task_start; - this.task_end = other.task_end; - } - - public ExecutorInfo deepCopy() { - return new ExecutorInfo(this); - } - - @Override - public void clear() { - setTask_startIsSet(false); - this.task_start = 0; - setTask_endIsSet(false); - this.task_end = 0; - } - - public int getTask_start() { - return this.task_start; - } - - public ExecutorInfo setTask_start(int task_start) { - this.task_start = task_start; - setTask_startIsSet(true); - return this; - } - - public void unsetTask_start() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TASK_START_ISSET_ID); - } - - /** Returns true if field task_start is set (has been assigned a value) and false otherwise */ - public boolean isSetTask_start() { - return EncodingUtils.testBit(__isset_bitfield, __TASK_START_ISSET_ID); - } - - public void setTask_startIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TASK_START_ISSET_ID, value); - } - - public int getTask_end() { - return this.task_end; - } - - public ExecutorInfo setTask_end(int task_end) { - this.task_end = task_end; - setTask_endIsSet(true); - return this; - } - - public void unsetTask_end() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TASK_END_ISSET_ID); - } - - /** Returns true if field task_end is set (has been assigned a value) and false otherwise */ - public boolean isSetTask_end() { - return EncodingUtils.testBit(__isset_bitfield, __TASK_END_ISSET_ID); - } - - public void setTask_endIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TASK_END_ISSET_ID, value); - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case TASK_START: - if (value == null) { - unsetTask_start(); - } else { - setTask_start((Integer)value); - } - break; - - case TASK_END: - if (value == null) { - unsetTask_end(); - } else { - setTask_end((Integer)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case TASK_START: - return Integer.valueOf(getTask_start()); - - case TASK_END: - return Integer.valueOf(getTask_end()); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case TASK_START: - return isSetTask_start(); - case TASK_END: - return isSetTask_end(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof ExecutorInfo) - return this.equals((ExecutorInfo)that); - return false; - } - - public boolean equals(ExecutorInfo that) { - if (that == null) - return false; - - boolean this_present_task_start = true; - boolean that_present_task_start = true; - if (this_present_task_start || that_present_task_start) { - if (!(this_present_task_start && that_present_task_start)) - return false; - if (this.task_start != that.task_start) - return false; - } - - boolean this_present_task_end = true; - boolean that_present_task_end = true; - if (this_present_task_end || that_present_task_end) { - if (!(this_present_task_end && that_present_task_end)) - return false; - if (this.task_end != that.task_end) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_task_start = true; - builder.append(present_task_start); - if (present_task_start) - builder.append(task_start); - - boolean present_task_end = true; - builder.append(present_task_end); - if (present_task_end) - builder.append(task_end); - - return builder.toHashCode(); - } - - public int compareTo(ExecutorInfo other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - ExecutorInfo typedOther = (ExecutorInfo)other; - - lastComparison = Boolean.valueOf(isSetTask_start()).compareTo(typedOther.isSetTask_start()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTask_start()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.task_start, typedOther.task_start); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetTask_end()).compareTo(typedOther.isSetTask_end()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTask_end()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.task_end, typedOther.task_end); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("ExecutorInfo("); - boolean first = true; - - sb.append("task_start:"); - sb.append(this.task_start); - first = false; - if (!first) sb.append(", "); - sb.append("task_end:"); - sb.append(this.task_end); - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // alas, we cannot check 'task_start' because it's a primitive and you chose the non-beans generator. - // alas, we cannot check 'task_end' because it's a primitive and you chose the non-beans generator. - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class ExecutorInfoStandardSchemeFactory implements SchemeFactory { - public ExecutorInfoStandardScheme getScheme() { - return new ExecutorInfoStandardScheme(); - } - } - - private static class ExecutorInfoStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, ExecutorInfo struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // TASK_START - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.task_start = iprot.readI32(); - struct.setTask_startIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // TASK_END - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.task_end = iprot.readI32(); - struct.setTask_endIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetTask_start()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'task_start' was not found in serialized data! Struct: " + toString()); - } - if (!struct.isSetTask_end()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'task_end' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, ExecutorInfo struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldBegin(TASK_START_FIELD_DESC); - oprot.writeI32(struct.task_start); - oprot.writeFieldEnd(); - oprot.writeFieldBegin(TASK_END_FIELD_DESC); - oprot.writeI32(struct.task_end); - oprot.writeFieldEnd(); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class ExecutorInfoTupleSchemeFactory implements SchemeFactory { - public ExecutorInfoTupleScheme getScheme() { - return new ExecutorInfoTupleScheme(); - } - } - - private static class ExecutorInfoTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, ExecutorInfo struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeI32(struct.task_start); - oprot.writeI32(struct.task_end); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, ExecutorInfo struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.task_start = iprot.readI32(); - struct.setTask_startIsSet(true); - struct.task_end = iprot.readI32(); - struct.setTask_endIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorSpecificStats.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorSpecificStats.java deleted file mode 100644 index 0721cc085..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorSpecificStats.java +++ /dev/null @@ -1,366 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ExecutorSpecificStats extends org.apache.thrift.TUnion { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExecutorSpecificStats"); - private static final org.apache.thrift.protocol.TField BOLT_FIELD_DESC = new org.apache.thrift.protocol.TField("bolt", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField SPOUT_FIELD_DESC = new org.apache.thrift.protocol.TField("spout", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - BOLT((short)1, "bolt"), - SPOUT((short)2, "spout"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // BOLT - return BOLT; - case 2: // SPOUT - return SPOUT; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.BOLT, new org.apache.thrift.meta_data.FieldMetaData("bolt", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, BoltStats.class))); - tmpMap.put(_Fields.SPOUT, new org.apache.thrift.meta_data.FieldMetaData("spout", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SpoutStats.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExecutorSpecificStats.class, metaDataMap); - } - - public ExecutorSpecificStats() { - super(); - } - - public ExecutorSpecificStats(_Fields setField, Object value) { - super(setField, value); - } - - public ExecutorSpecificStats(ExecutorSpecificStats other) { - super(other); - } - public ExecutorSpecificStats deepCopy() { - return new ExecutorSpecificStats(this); - } - - public static ExecutorSpecificStats bolt(BoltStats value) { - ExecutorSpecificStats x = new ExecutorSpecificStats(); - x.setBolt(value); - return x; - } - - public static ExecutorSpecificStats spout(SpoutStats value) { - ExecutorSpecificStats x = new ExecutorSpecificStats(); - x.setSpout(value); - return x; - } - - - @Override - protected void checkType(_Fields setField, Object value) throws ClassCastException { - switch (setField) { - case BOLT: - if (value instanceof BoltStats) { - break; - } - throw new ClassCastException("Was expecting value of type BoltStats for field 'bolt', but got " + value.getClass().getSimpleName()); - case SPOUT: - if (value instanceof SpoutStats) { - break; - } - throw new ClassCastException("Was expecting value of type SpoutStats for field 'spout', but got " + value.getClass().getSimpleName()); - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected Object standardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(field.id); - if (setField != null) { - switch (setField) { - case BOLT: - if (field.type == BOLT_FIELD_DESC.type) { - BoltStats bolt; - bolt = new BoltStats(); - bolt.read(iprot); - return bolt; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case SPOUT: - if (field.type == SPOUT_FIELD_DESC.type) { - SpoutStats spout; - spout = new SpoutStats(); - spout.read(iprot); - return spout; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - return null; - } - } - - @Override - protected void standardSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case BOLT: - BoltStats bolt = (BoltStats)value_; - bolt.write(oprot); - return; - case SPOUT: - SpoutStats spout = (SpoutStats)value_; - spout.write(oprot); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected Object tupleSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, short fieldID) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(fieldID); - if (setField != null) { - switch (setField) { - case BOLT: - BoltStats bolt; - bolt = new BoltStats(); - bolt.read(iprot); - return bolt; - case SPOUT: - SpoutStats spout; - spout = new SpoutStats(); - spout.read(iprot); - return spout; - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - throw new TProtocolException("Couldn't find a field with field id " + fieldID); - } - } - - @Override - protected void tupleSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case BOLT: - BoltStats bolt = (BoltStats)value_; - bolt.write(oprot); - return; - case SPOUT: - SpoutStats spout = (SpoutStats)value_; - spout.write(oprot); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected org.apache.thrift.protocol.TField getFieldDesc(_Fields setField) { - switch (setField) { - case BOLT: - return BOLT_FIELD_DESC; - case SPOUT: - return SPOUT_FIELD_DESC; - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected org.apache.thrift.protocol.TStruct getStructDesc() { - return STRUCT_DESC; - } - - @Override - protected _Fields enumForId(short id) { - return _Fields.findByThriftIdOrThrow(id); - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - - public BoltStats getBolt() { - if (getSetField() == _Fields.BOLT) { - return (BoltStats)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'bolt' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setBolt(BoltStats value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.BOLT; - value_ = value; - } - - public SpoutStats getSpout() { - if (getSetField() == _Fields.SPOUT) { - return (SpoutStats)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'spout' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setSpout(SpoutStats value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.SPOUT; - value_ = value; - } - - public boolean isSetBolt() { - return setField_ == _Fields.BOLT; - } - - - public boolean isSetSpout() { - return setField_ == _Fields.SPOUT; - } - - - public boolean equals(Object other) { - if (other instanceof ExecutorSpecificStats) { - return equals((ExecutorSpecificStats)other); - } else { - return false; - } - } - - public boolean equals(ExecutorSpecificStats other) { - return other != null && getSetField() == other.getSetField() && getFieldValue().equals(other.getFieldValue()); - } - - @Override - public int compareTo(ExecutorSpecificStats other) { - int lastComparison = org.apache.thrift.TBaseHelper.compareTo(getSetField(), other.getSetField()); - if (lastComparison == 0) { - return org.apache.thrift.TBaseHelper.compareTo(getFieldValue(), other.getFieldValue()); - } - return lastComparison; - } - - - @Override - public int hashCode() { - HashCodeBuilder hcb = new HashCodeBuilder(); - hcb.append(this.getClass().getName()); - org.apache.thrift.TFieldIdEnum setField = getSetField(); - if (setField != null) { - hcb.append(setField.getThriftFieldId()); - Object value = getFieldValue(); - if (value instanceof org.apache.thrift.TEnum) { - hcb.append(((org.apache.thrift.TEnum)getFieldValue()).getValue()); - } else { - hcb.append(value); - } - } - return hcb.toHashCode(); - } - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorStats.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorStats.java deleted file mode 100644 index a5f29ca64..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorStats.java +++ /dev/null @@ -1,819 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ExecutorStats implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExecutorStats"); - - private static final org.apache.thrift.protocol.TField EMITTED_FIELD_DESC = new org.apache.thrift.protocol.TField("emitted", org.apache.thrift.protocol.TType.MAP, (short)1); - private static final org.apache.thrift.protocol.TField TRANSFERRED_FIELD_DESC = new org.apache.thrift.protocol.TField("transferred", org.apache.thrift.protocol.TType.MAP, (short)2); - private static final org.apache.thrift.protocol.TField SPECIFIC_FIELD_DESC = new org.apache.thrift.protocol.TField("specific", org.apache.thrift.protocol.TType.STRUCT, (short)3); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new ExecutorStatsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new ExecutorStatsTupleSchemeFactory()); - } - - public Map> emitted; // required - public Map> transferred; // required - public ExecutorSpecificStats specific; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - EMITTED((short)1, "emitted"), - TRANSFERRED((short)2, "transferred"), - SPECIFIC((short)3, "specific"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // EMITTED - return EMITTED; - case 2: // TRANSFERRED - return TRANSFERRED; - case 3: // SPECIFIC - return SPECIFIC; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.EMITTED, new org.apache.thrift.meta_data.FieldMetaData("emitted", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))))); - tmpMap.put(_Fields.TRANSFERRED, new org.apache.thrift.meta_data.FieldMetaData("transferred", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))))); - tmpMap.put(_Fields.SPECIFIC, new org.apache.thrift.meta_data.FieldMetaData("specific", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExecutorSpecificStats.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExecutorStats.class, metaDataMap); - } - - public ExecutorStats() { - } - - public ExecutorStats( - Map> emitted, - Map> transferred, - ExecutorSpecificStats specific) - { - this(); - this.emitted = emitted; - this.transferred = transferred; - this.specific = specific; - } - - /** - * Performs a deep copy on other. - */ - public ExecutorStats(ExecutorStats other) { - if (other.isSetEmitted()) { - Map> __this__emitted = new HashMap>(); - for (Map.Entry> other_element : other.emitted.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__emitted_copy_key = other_element_key; - - Map __this__emitted_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - String other_element_value_element_key = other_element_value_element.getKey(); - Long other_element_value_element_value = other_element_value_element.getValue(); - - String __this__emitted_copy_value_copy_key = other_element_value_element_key; - - Long __this__emitted_copy_value_copy_value = other_element_value_element_value; - - __this__emitted_copy_value.put(__this__emitted_copy_value_copy_key, __this__emitted_copy_value_copy_value); - } - - __this__emitted.put(__this__emitted_copy_key, __this__emitted_copy_value); - } - this.emitted = __this__emitted; - } - if (other.isSetTransferred()) { - Map> __this__transferred = new HashMap>(); - for (Map.Entry> other_element : other.transferred.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__transferred_copy_key = other_element_key; - - Map __this__transferred_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - String other_element_value_element_key = other_element_value_element.getKey(); - Long other_element_value_element_value = other_element_value_element.getValue(); - - String __this__transferred_copy_value_copy_key = other_element_value_element_key; - - Long __this__transferred_copy_value_copy_value = other_element_value_element_value; - - __this__transferred_copy_value.put(__this__transferred_copy_value_copy_key, __this__transferred_copy_value_copy_value); - } - - __this__transferred.put(__this__transferred_copy_key, __this__transferred_copy_value); - } - this.transferred = __this__transferred; - } - if (other.isSetSpecific()) { - this.specific = new ExecutorSpecificStats(other.specific); - } - } - - public ExecutorStats deepCopy() { - return new ExecutorStats(this); - } - - @Override - public void clear() { - this.emitted = null; - this.transferred = null; - this.specific = null; - } - - public int getEmittedSize() { - return (this.emitted == null) ? 0 : this.emitted.size(); - } - - public void putToEmitted(String key, Map val) { - if (this.emitted == null) { - this.emitted = new HashMap>(); - } - this.emitted.put(key, val); - } - - public Map> getEmitted() { - return this.emitted; - } - - public ExecutorStats setEmitted(Map> emitted) { - this.emitted = emitted; - return this; - } - - public void unsetEmitted() { - this.emitted = null; - } - - /** Returns true if field emitted is set (has been assigned a value) and false otherwise */ - public boolean isSetEmitted() { - return this.emitted != null; - } - - public void setEmittedIsSet(boolean value) { - if (!value) { - this.emitted = null; - } - } - - public int getTransferredSize() { - return (this.transferred == null) ? 0 : this.transferred.size(); - } - - public void putToTransferred(String key, Map val) { - if (this.transferred == null) { - this.transferred = new HashMap>(); - } - this.transferred.put(key, val); - } - - public Map> getTransferred() { - return this.transferred; - } - - public ExecutorStats setTransferred(Map> transferred) { - this.transferred = transferred; - return this; - } - - public void unsetTransferred() { - this.transferred = null; - } - - /** Returns true if field transferred is set (has been assigned a value) and false otherwise */ - public boolean isSetTransferred() { - return this.transferred != null; - } - - public void setTransferredIsSet(boolean value) { - if (!value) { - this.transferred = null; - } - } - - public ExecutorSpecificStats getSpecific() { - return this.specific; - } - - public ExecutorStats setSpecific(ExecutorSpecificStats specific) { - this.specific = specific; - return this; - } - - public void unsetSpecific() { - this.specific = null; - } - - /** Returns true if field specific is set (has been assigned a value) and false otherwise */ - public boolean isSetSpecific() { - return this.specific != null; - } - - public void setSpecificIsSet(boolean value) { - if (!value) { - this.specific = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case EMITTED: - if (value == null) { - unsetEmitted(); - } else { - setEmitted((Map>)value); - } - break; - - case TRANSFERRED: - if (value == null) { - unsetTransferred(); - } else { - setTransferred((Map>)value); - } - break; - - case SPECIFIC: - if (value == null) { - unsetSpecific(); - } else { - setSpecific((ExecutorSpecificStats)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case EMITTED: - return getEmitted(); - - case TRANSFERRED: - return getTransferred(); - - case SPECIFIC: - return getSpecific(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case EMITTED: - return isSetEmitted(); - case TRANSFERRED: - return isSetTransferred(); - case SPECIFIC: - return isSetSpecific(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof ExecutorStats) - return this.equals((ExecutorStats)that); - return false; - } - - public boolean equals(ExecutorStats that) { - if (that == null) - return false; - - boolean this_present_emitted = true && this.isSetEmitted(); - boolean that_present_emitted = true && that.isSetEmitted(); - if (this_present_emitted || that_present_emitted) { - if (!(this_present_emitted && that_present_emitted)) - return false; - if (!this.emitted.equals(that.emitted)) - return false; - } - - boolean this_present_transferred = true && this.isSetTransferred(); - boolean that_present_transferred = true && that.isSetTransferred(); - if (this_present_transferred || that_present_transferred) { - if (!(this_present_transferred && that_present_transferred)) - return false; - if (!this.transferred.equals(that.transferred)) - return false; - } - - boolean this_present_specific = true && this.isSetSpecific(); - boolean that_present_specific = true && that.isSetSpecific(); - if (this_present_specific || that_present_specific) { - if (!(this_present_specific && that_present_specific)) - return false; - if (!this.specific.equals(that.specific)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_emitted = true && (isSetEmitted()); - builder.append(present_emitted); - if (present_emitted) - builder.append(emitted); - - boolean present_transferred = true && (isSetTransferred()); - builder.append(present_transferred); - if (present_transferred) - builder.append(transferred); - - boolean present_specific = true && (isSetSpecific()); - builder.append(present_specific); - if (present_specific) - builder.append(specific); - - return builder.toHashCode(); - } - - public int compareTo(ExecutorStats other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - ExecutorStats typedOther = (ExecutorStats)other; - - lastComparison = Boolean.valueOf(isSetEmitted()).compareTo(typedOther.isSetEmitted()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetEmitted()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emitted, typedOther.emitted); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetTransferred()).compareTo(typedOther.isSetTransferred()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTransferred()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferred, typedOther.transferred); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetSpecific()).compareTo(typedOther.isSetSpecific()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSpecific()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.specific, typedOther.specific); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("ExecutorStats("); - boolean first = true; - - sb.append("emitted:"); - if (this.emitted == null) { - sb.append("null"); - } else { - sb.append(this.emitted); - } - first = false; - if (!first) sb.append(", "); - sb.append("transferred:"); - if (this.transferred == null) { - sb.append("null"); - } else { - sb.append(this.transferred); - } - first = false; - if (!first) sb.append(", "); - sb.append("specific:"); - if (this.specific == null) { - sb.append("null"); - } else { - sb.append(this.specific); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (emitted == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'emitted' was not present! Struct: " + toString()); - } - if (transferred == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'transferred' was not present! Struct: " + toString()); - } - if (specific == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'specific' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class ExecutorStatsStandardSchemeFactory implements SchemeFactory { - public ExecutorStatsStandardScheme getScheme() { - return new ExecutorStatsStandardScheme(); - } - } - - private static class ExecutorStatsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, ExecutorStats struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // EMITTED - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map250 = iprot.readMapBegin(); - struct.emitted = new HashMap>(2*_map250.size); - for (int _i251 = 0; _i251 < _map250.size; ++_i251) - { - String _key252; // required - Map _val253; // required - _key252 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map254 = iprot.readMapBegin(); - _val253 = new HashMap(2*_map254.size); - for (int _i255 = 0; _i255 < _map254.size; ++_i255) - { - String _key256; // required - long _val257; // required - _key256 = iprot.readString(); - _val257 = iprot.readI64(); - _val253.put(_key256, _val257); - } - iprot.readMapEnd(); - } - struct.emitted.put(_key252, _val253); - } - iprot.readMapEnd(); - } - struct.setEmittedIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // TRANSFERRED - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map258 = iprot.readMapBegin(); - struct.transferred = new HashMap>(2*_map258.size); - for (int _i259 = 0; _i259 < _map258.size; ++_i259) - { - String _key260; // required - Map _val261; // required - _key260 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map262 = iprot.readMapBegin(); - _val261 = new HashMap(2*_map262.size); - for (int _i263 = 0; _i263 < _map262.size; ++_i263) - { - String _key264; // required - long _val265; // required - _key264 = iprot.readString(); - _val265 = iprot.readI64(); - _val261.put(_key264, _val265); - } - iprot.readMapEnd(); - } - struct.transferred.put(_key260, _val261); - } - iprot.readMapEnd(); - } - struct.setTransferredIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // SPECIFIC - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.specific = new ExecutorSpecificStats(); - struct.specific.read(iprot); - struct.setSpecificIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, ExecutorStats struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.emitted != null) { - oprot.writeFieldBegin(EMITTED_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.emitted.size())); - for (Map.Entry> _iter266 : struct.emitted.entrySet()) - { - oprot.writeString(_iter266.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, _iter266.getValue().size())); - for (Map.Entry _iter267 : _iter266.getValue().entrySet()) - { - oprot.writeString(_iter267.getKey()); - oprot.writeI64(_iter267.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.transferred != null) { - oprot.writeFieldBegin(TRANSFERRED_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.transferred.size())); - for (Map.Entry> _iter268 : struct.transferred.entrySet()) - { - oprot.writeString(_iter268.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, _iter268.getValue().size())); - for (Map.Entry _iter269 : _iter268.getValue().entrySet()) - { - oprot.writeString(_iter269.getKey()); - oprot.writeI64(_iter269.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.specific != null) { - oprot.writeFieldBegin(SPECIFIC_FIELD_DESC); - struct.specific.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class ExecutorStatsTupleSchemeFactory implements SchemeFactory { - public ExecutorStatsTupleScheme getScheme() { - return new ExecutorStatsTupleScheme(); - } - } - - private static class ExecutorStatsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, ExecutorStats struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - { - oprot.writeI32(struct.emitted.size()); - for (Map.Entry> _iter270 : struct.emitted.entrySet()) - { - oprot.writeString(_iter270.getKey()); - { - oprot.writeI32(_iter270.getValue().size()); - for (Map.Entry _iter271 : _iter270.getValue().entrySet()) - { - oprot.writeString(_iter271.getKey()); - oprot.writeI64(_iter271.getValue()); - } - } - } - } - { - oprot.writeI32(struct.transferred.size()); - for (Map.Entry> _iter272 : struct.transferred.entrySet()) - { - oprot.writeString(_iter272.getKey()); - { - oprot.writeI32(_iter272.getValue().size()); - for (Map.Entry _iter273 : _iter272.getValue().entrySet()) - { - oprot.writeString(_iter273.getKey()); - oprot.writeI64(_iter273.getValue()); - } - } - } - } - struct.specific.write(oprot); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, ExecutorStats struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - { - org.apache.thrift.protocol.TMap _map274 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.emitted = new HashMap>(2*_map274.size); - for (int _i275 = 0; _i275 < _map274.size; ++_i275) - { - String _key276; // required - Map _val277; // required - _key276 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map278 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, iprot.readI32()); - _val277 = new HashMap(2*_map278.size); - for (int _i279 = 0; _i279 < _map278.size; ++_i279) - { - String _key280; // required - long _val281; // required - _key280 = iprot.readString(); - _val281 = iprot.readI64(); - _val277.put(_key280, _val281); - } - } - struct.emitted.put(_key276, _val277); - } - } - struct.setEmittedIsSet(true); - { - org.apache.thrift.protocol.TMap _map282 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.transferred = new HashMap>(2*_map282.size); - for (int _i283 = 0; _i283 < _map282.size; ++_i283) - { - String _key284; // required - Map _val285; // required - _key284 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map286 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, iprot.readI32()); - _val285 = new HashMap(2*_map286.size); - for (int _i287 = 0; _i287 < _map286.size; ++_i287) - { - String _key288; // required - long _val289; // required - _key288 = iprot.readString(); - _val289 = iprot.readI64(); - _val285.put(_key288, _val289); - } - } - struct.transferred.put(_key284, _val285); - } - } - struct.setTransferredIsSet(true); - struct.specific = new ExecutorSpecificStats(); - struct.specific.read(iprot); - struct.setSpecificIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorSummary.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorSummary.java deleted file mode 100644 index e8a3f5b59..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ExecutorSummary.java +++ /dev/null @@ -1,906 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ExecutorSummary implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExecutorSummary"); - - private static final org.apache.thrift.protocol.TField EXECUTOR_INFO_FIELD_DESC = new org.apache.thrift.protocol.TField("executor_info", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField COMPONENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("component_id", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField HOST_FIELD_DESC = new org.apache.thrift.protocol.TField("host", org.apache.thrift.protocol.TType.STRING, (short)3); - private static final org.apache.thrift.protocol.TField PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("port", org.apache.thrift.protocol.TType.I32, (short)4); - private static final org.apache.thrift.protocol.TField UPTIME_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("uptime_secs", org.apache.thrift.protocol.TType.I32, (short)5); - private static final org.apache.thrift.protocol.TField STATS_FIELD_DESC = new org.apache.thrift.protocol.TField("stats", org.apache.thrift.protocol.TType.STRUCT, (short)7); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new ExecutorSummaryStandardSchemeFactory()); - schemes.put(TupleScheme.class, new ExecutorSummaryTupleSchemeFactory()); - } - - public ExecutorInfo executor_info; // required - public String component_id; // required - public String host; // required - public int port; // required - public int uptime_secs; // required - public ExecutorStats stats; // optional - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - EXECUTOR_INFO((short)1, "executor_info"), - COMPONENT_ID((short)2, "component_id"), - HOST((short)3, "host"), - PORT((short)4, "port"), - UPTIME_SECS((short)5, "uptime_secs"), - STATS((short)7, "stats"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // EXECUTOR_INFO - return EXECUTOR_INFO; - case 2: // COMPONENT_ID - return COMPONENT_ID; - case 3: // HOST - return HOST; - case 4: // PORT - return PORT; - case 5: // UPTIME_SECS - return UPTIME_SECS; - case 7: // STATS - return STATS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __PORT_ISSET_ID = 0; - private static final int __UPTIME_SECS_ISSET_ID = 1; - private byte __isset_bitfield = 0; - private _Fields optionals[] = {_Fields.STATS}; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.EXECUTOR_INFO, new org.apache.thrift.meta_data.FieldMetaData("executor_info", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExecutorInfo.class))); - tmpMap.put(_Fields.COMPONENT_ID, new org.apache.thrift.meta_data.FieldMetaData("component_id", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.HOST, new org.apache.thrift.meta_data.FieldMetaData("host", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.PORT, new org.apache.thrift.meta_data.FieldMetaData("port", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.UPTIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("uptime_secs", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.STATS, new org.apache.thrift.meta_data.FieldMetaData("stats", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExecutorStats.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExecutorSummary.class, metaDataMap); - } - - public ExecutorSummary() { - } - - public ExecutorSummary( - ExecutorInfo executor_info, - String component_id, - String host, - int port, - int uptime_secs) - { - this(); - this.executor_info = executor_info; - this.component_id = component_id; - this.host = host; - this.port = port; - setPortIsSet(true); - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - } - - /** - * Performs a deep copy on other. - */ - public ExecutorSummary(ExecutorSummary other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetExecutor_info()) { - this.executor_info = new ExecutorInfo(other.executor_info); - } - if (other.isSetComponent_id()) { - this.component_id = other.component_id; - } - if (other.isSetHost()) { - this.host = other.host; - } - this.port = other.port; - this.uptime_secs = other.uptime_secs; - if (other.isSetStats()) { - this.stats = new ExecutorStats(other.stats); - } - } - - public ExecutorSummary deepCopy() { - return new ExecutorSummary(this); - } - - @Override - public void clear() { - this.executor_info = null; - this.component_id = null; - this.host = null; - setPortIsSet(false); - this.port = 0; - setUptime_secsIsSet(false); - this.uptime_secs = 0; - this.stats = null; - } - - public ExecutorInfo getExecutor_info() { - return this.executor_info; - } - - public ExecutorSummary setExecutor_info(ExecutorInfo executor_info) { - this.executor_info = executor_info; - return this; - } - - public void unsetExecutor_info() { - this.executor_info = null; - } - - /** Returns true if field executor_info is set (has been assigned a value) and false otherwise */ - public boolean isSetExecutor_info() { - return this.executor_info != null; - } - - public void setExecutor_infoIsSet(boolean value) { - if (!value) { - this.executor_info = null; - } - } - - public String getComponent_id() { - return this.component_id; - } - - public ExecutorSummary setComponent_id(String component_id) { - this.component_id = component_id; - return this; - } - - public void unsetComponent_id() { - this.component_id = null; - } - - /** Returns true if field component_id is set (has been assigned a value) and false otherwise */ - public boolean isSetComponent_id() { - return this.component_id != null; - } - - public void setComponent_idIsSet(boolean value) { - if (!value) { - this.component_id = null; - } - } - - public String getHost() { - return this.host; - } - - public ExecutorSummary setHost(String host) { - this.host = host; - return this; - } - - public void unsetHost() { - this.host = null; - } - - /** Returns true if field host is set (has been assigned a value) and false otherwise */ - public boolean isSetHost() { - return this.host != null; - } - - public void setHostIsSet(boolean value) { - if (!value) { - this.host = null; - } - } - - public int getPort() { - return this.port; - } - - public ExecutorSummary setPort(int port) { - this.port = port; - setPortIsSet(true); - return this; - } - - public void unsetPort() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PORT_ISSET_ID); - } - - /** Returns true if field port is set (has been assigned a value) and false otherwise */ - public boolean isSetPort() { - return EncodingUtils.testBit(__isset_bitfield, __PORT_ISSET_ID); - } - - public void setPortIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PORT_ISSET_ID, value); - } - - public int getUptime_secs() { - return this.uptime_secs; - } - - public ExecutorSummary setUptime_secs(int uptime_secs) { - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - return this; - } - - public void unsetUptime_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - /** Returns true if field uptime_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetUptime_secs() { - return EncodingUtils.testBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - public void setUptime_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID, value); - } - - public ExecutorStats getStats() { - return this.stats; - } - - public ExecutorSummary setStats(ExecutorStats stats) { - this.stats = stats; - return this; - } - - public void unsetStats() { - this.stats = null; - } - - /** Returns true if field stats is set (has been assigned a value) and false otherwise */ - public boolean isSetStats() { - return this.stats != null; - } - - public void setStatsIsSet(boolean value) { - if (!value) { - this.stats = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case EXECUTOR_INFO: - if (value == null) { - unsetExecutor_info(); - } else { - setExecutor_info((ExecutorInfo)value); - } - break; - - case COMPONENT_ID: - if (value == null) { - unsetComponent_id(); - } else { - setComponent_id((String)value); - } - break; - - case HOST: - if (value == null) { - unsetHost(); - } else { - setHost((String)value); - } - break; - - case PORT: - if (value == null) { - unsetPort(); - } else { - setPort((Integer)value); - } - break; - - case UPTIME_SECS: - if (value == null) { - unsetUptime_secs(); - } else { - setUptime_secs((Integer)value); - } - break; - - case STATS: - if (value == null) { - unsetStats(); - } else { - setStats((ExecutorStats)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case EXECUTOR_INFO: - return getExecutor_info(); - - case COMPONENT_ID: - return getComponent_id(); - - case HOST: - return getHost(); - - case PORT: - return Integer.valueOf(getPort()); - - case UPTIME_SECS: - return Integer.valueOf(getUptime_secs()); - - case STATS: - return getStats(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case EXECUTOR_INFO: - return isSetExecutor_info(); - case COMPONENT_ID: - return isSetComponent_id(); - case HOST: - return isSetHost(); - case PORT: - return isSetPort(); - case UPTIME_SECS: - return isSetUptime_secs(); - case STATS: - return isSetStats(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof ExecutorSummary) - return this.equals((ExecutorSummary)that); - return false; - } - - public boolean equals(ExecutorSummary that) { - if (that == null) - return false; - - boolean this_present_executor_info = true && this.isSetExecutor_info(); - boolean that_present_executor_info = true && that.isSetExecutor_info(); - if (this_present_executor_info || that_present_executor_info) { - if (!(this_present_executor_info && that_present_executor_info)) - return false; - if (!this.executor_info.equals(that.executor_info)) - return false; - } - - boolean this_present_component_id = true && this.isSetComponent_id(); - boolean that_present_component_id = true && that.isSetComponent_id(); - if (this_present_component_id || that_present_component_id) { - if (!(this_present_component_id && that_present_component_id)) - return false; - if (!this.component_id.equals(that.component_id)) - return false; - } - - boolean this_present_host = true && this.isSetHost(); - boolean that_present_host = true && that.isSetHost(); - if (this_present_host || that_present_host) { - if (!(this_present_host && that_present_host)) - return false; - if (!this.host.equals(that.host)) - return false; - } - - boolean this_present_port = true; - boolean that_present_port = true; - if (this_present_port || that_present_port) { - if (!(this_present_port && that_present_port)) - return false; - if (this.port != that.port) - return false; - } - - boolean this_present_uptime_secs = true; - boolean that_present_uptime_secs = true; - if (this_present_uptime_secs || that_present_uptime_secs) { - if (!(this_present_uptime_secs && that_present_uptime_secs)) - return false; - if (this.uptime_secs != that.uptime_secs) - return false; - } - - boolean this_present_stats = true && this.isSetStats(); - boolean that_present_stats = true && that.isSetStats(); - if (this_present_stats || that_present_stats) { - if (!(this_present_stats && that_present_stats)) - return false; - if (!this.stats.equals(that.stats)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_executor_info = true && (isSetExecutor_info()); - builder.append(present_executor_info); - if (present_executor_info) - builder.append(executor_info); - - boolean present_component_id = true && (isSetComponent_id()); - builder.append(present_component_id); - if (present_component_id) - builder.append(component_id); - - boolean present_host = true && (isSetHost()); - builder.append(present_host); - if (present_host) - builder.append(host); - - boolean present_port = true; - builder.append(present_port); - if (present_port) - builder.append(port); - - boolean present_uptime_secs = true; - builder.append(present_uptime_secs); - if (present_uptime_secs) - builder.append(uptime_secs); - - boolean present_stats = true && (isSetStats()); - builder.append(present_stats); - if (present_stats) - builder.append(stats); - - return builder.toHashCode(); - } - - public int compareTo(ExecutorSummary other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - ExecutorSummary typedOther = (ExecutorSummary)other; - - lastComparison = Boolean.valueOf(isSetExecutor_info()).compareTo(typedOther.isSetExecutor_info()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetExecutor_info()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executor_info, typedOther.executor_info); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetComponent_id()).compareTo(typedOther.isSetComponent_id()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetComponent_id()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.component_id, typedOther.component_id); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetHost()).compareTo(typedOther.isSetHost()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetHost()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.host, typedOther.host); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetPort()).compareTo(typedOther.isSetPort()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetPort()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.port, typedOther.port); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetUptime_secs()).compareTo(typedOther.isSetUptime_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetUptime_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uptime_secs, typedOther.uptime_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetStats()).compareTo(typedOther.isSetStats()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetStats()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.stats, typedOther.stats); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("ExecutorSummary("); - boolean first = true; - - sb.append("executor_info:"); - if (this.executor_info == null) { - sb.append("null"); - } else { - sb.append(this.executor_info); - } - first = false; - if (!first) sb.append(", "); - sb.append("component_id:"); - if (this.component_id == null) { - sb.append("null"); - } else { - sb.append(this.component_id); - } - first = false; - if (!first) sb.append(", "); - sb.append("host:"); - if (this.host == null) { - sb.append("null"); - } else { - sb.append(this.host); - } - first = false; - if (!first) sb.append(", "); - sb.append("port:"); - sb.append(this.port); - first = false; - if (!first) sb.append(", "); - sb.append("uptime_secs:"); - sb.append(this.uptime_secs); - first = false; - if (isSetStats()) { - if (!first) sb.append(", "); - sb.append("stats:"); - if (this.stats == null) { - sb.append("null"); - } else { - sb.append(this.stats); - } - first = false; - } - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (executor_info == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'executor_info' was not present! Struct: " + toString()); - } - if (component_id == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'component_id' was not present! Struct: " + toString()); - } - if (host == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'host' was not present! Struct: " + toString()); - } - // alas, we cannot check 'port' because it's a primitive and you chose the non-beans generator. - // alas, we cannot check 'uptime_secs' because it's a primitive and you chose the non-beans generator. - // check for sub-struct validity - if (executor_info != null) { - executor_info.validate(); - } - if (stats != null) { - stats.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class ExecutorSummaryStandardSchemeFactory implements SchemeFactory { - public ExecutorSummaryStandardScheme getScheme() { - return new ExecutorSummaryStandardScheme(); - } - } - - private static class ExecutorSummaryStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, ExecutorSummary struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // EXECUTOR_INFO - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.executor_info = new ExecutorInfo(); - struct.executor_info.read(iprot); - struct.setExecutor_infoIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // COMPONENT_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.component_id = iprot.readString(); - struct.setComponent_idIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // HOST - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.host = iprot.readString(); - struct.setHostIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // PORT - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.port = iprot.readI32(); - struct.setPortIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // UPTIME_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 7: // STATS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.stats = new ExecutorStats(); - struct.stats.read(iprot); - struct.setStatsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetPort()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'port' was not found in serialized data! Struct: " + toString()); - } - if (!struct.isSetUptime_secs()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'uptime_secs' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, ExecutorSummary struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.executor_info != null) { - oprot.writeFieldBegin(EXECUTOR_INFO_FIELD_DESC); - struct.executor_info.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.component_id != null) { - oprot.writeFieldBegin(COMPONENT_ID_FIELD_DESC); - oprot.writeString(struct.component_id); - oprot.writeFieldEnd(); - } - if (struct.host != null) { - oprot.writeFieldBegin(HOST_FIELD_DESC); - oprot.writeString(struct.host); - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(PORT_FIELD_DESC); - oprot.writeI32(struct.port); - oprot.writeFieldEnd(); - oprot.writeFieldBegin(UPTIME_SECS_FIELD_DESC); - oprot.writeI32(struct.uptime_secs); - oprot.writeFieldEnd(); - if (struct.stats != null) { - if (struct.isSetStats()) { - oprot.writeFieldBegin(STATS_FIELD_DESC); - struct.stats.write(oprot); - oprot.writeFieldEnd(); - } - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class ExecutorSummaryTupleSchemeFactory implements SchemeFactory { - public ExecutorSummaryTupleScheme getScheme() { - return new ExecutorSummaryTupleScheme(); - } - } - - private static class ExecutorSummaryTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, ExecutorSummary struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - struct.executor_info.write(oprot); - oprot.writeString(struct.component_id); - oprot.writeString(struct.host); - oprot.writeI32(struct.port); - oprot.writeI32(struct.uptime_secs); - BitSet optionals = new BitSet(); - if (struct.isSetStats()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetStats()) { - struct.stats.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, ExecutorSummary struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.executor_info = new ExecutorInfo(); - struct.executor_info.read(iprot); - struct.setExecutor_infoIsSet(true); - struct.component_id = iprot.readString(); - struct.setComponent_idIsSet(true); - struct.host = iprot.readString(); - struct.setHostIsSet(true); - struct.port = iprot.readI32(); - struct.setPortIsSet(true); - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.stats = new ExecutorStats(); - struct.stats.read(iprot); - struct.setStatsIsSet(true); - } - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/GlobalStreamId.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/GlobalStreamId.java deleted file mode 100644 index b2ceb14d9..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/GlobalStreamId.java +++ /dev/null @@ -1,488 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class GlobalStreamId implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobalStreamId"); - - private static final org.apache.thrift.protocol.TField COMPONENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("componentId", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField STREAM_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("streamId", org.apache.thrift.protocol.TType.STRING, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new GlobalStreamIdStandardSchemeFactory()); - schemes.put(TupleScheme.class, new GlobalStreamIdTupleSchemeFactory()); - } - - public String componentId; // required - public String streamId; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - COMPONENT_ID((short)1, "componentId"), - STREAM_ID((short)2, "streamId"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // COMPONENT_ID - return COMPONENT_ID; - case 2: // STREAM_ID - return STREAM_ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.COMPONENT_ID, new org.apache.thrift.meta_data.FieldMetaData("componentId", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.STREAM_ID, new org.apache.thrift.meta_data.FieldMetaData("streamId", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GlobalStreamId.class, metaDataMap); - } - - public GlobalStreamId() { - } - - public GlobalStreamId( - String componentId, - String streamId) - { - this(); - this.componentId = componentId; - this.streamId = streamId; - } - - /** - * Performs a deep copy on other. - */ - public GlobalStreamId(GlobalStreamId other) { - if (other.isSetComponentId()) { - this.componentId = other.componentId; - } - if (other.isSetStreamId()) { - this.streamId = other.streamId; - } - } - - public GlobalStreamId deepCopy() { - return new GlobalStreamId(this); - } - - @Override - public void clear() { - this.componentId = null; - this.streamId = null; - } - - public String getComponentId() { - return this.componentId; - } - - public GlobalStreamId setComponentId(String componentId) { - this.componentId = componentId; - return this; - } - - public void unsetComponentId() { - this.componentId = null; - } - - /** Returns true if field componentId is set (has been assigned a value) and false otherwise */ - public boolean isSetComponentId() { - return this.componentId != null; - } - - public void setComponentIdIsSet(boolean value) { - if (!value) { - this.componentId = null; - } - } - - public String getStreamId() { - return this.streamId; - } - - public GlobalStreamId setStreamId(String streamId) { - this.streamId = streamId; - return this; - } - - public void unsetStreamId() { - this.streamId = null; - } - - /** Returns true if field streamId is set (has been assigned a value) and false otherwise */ - public boolean isSetStreamId() { - return this.streamId != null; - } - - public void setStreamIdIsSet(boolean value) { - if (!value) { - this.streamId = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case COMPONENT_ID: - if (value == null) { - unsetComponentId(); - } else { - setComponentId((String)value); - } - break; - - case STREAM_ID: - if (value == null) { - unsetStreamId(); - } else { - setStreamId((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case COMPONENT_ID: - return getComponentId(); - - case STREAM_ID: - return getStreamId(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case COMPONENT_ID: - return isSetComponentId(); - case STREAM_ID: - return isSetStreamId(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof GlobalStreamId) - return this.equals((GlobalStreamId)that); - return false; - } - - public boolean equals(GlobalStreamId that) { - if (that == null) - return false; - - boolean this_present_componentId = true && this.isSetComponentId(); - boolean that_present_componentId = true && that.isSetComponentId(); - if (this_present_componentId || that_present_componentId) { - if (!(this_present_componentId && that_present_componentId)) - return false; - if (!this.componentId.equals(that.componentId)) - return false; - } - - boolean this_present_streamId = true && this.isSetStreamId(); - boolean that_present_streamId = true && that.isSetStreamId(); - if (this_present_streamId || that_present_streamId) { - if (!(this_present_streamId && that_present_streamId)) - return false; - if (!this.streamId.equals(that.streamId)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_componentId = true && (isSetComponentId()); - builder.append(present_componentId); - if (present_componentId) - builder.append(componentId); - - boolean present_streamId = true && (isSetStreamId()); - builder.append(present_streamId); - if (present_streamId) - builder.append(streamId); - - return builder.toHashCode(); - } - - public int compareTo(GlobalStreamId other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - GlobalStreamId typedOther = (GlobalStreamId)other; - - lastComparison = Boolean.valueOf(isSetComponentId()).compareTo(typedOther.isSetComponentId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetComponentId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.componentId, typedOther.componentId); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetStreamId()).compareTo(typedOther.isSetStreamId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetStreamId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.streamId, typedOther.streamId); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("GlobalStreamId("); - boolean first = true; - - sb.append("componentId:"); - if (this.componentId == null) { - sb.append("null"); - } else { - sb.append(this.componentId); - } - first = false; - if (!first) sb.append(", "); - sb.append("streamId:"); - if (this.streamId == null) { - sb.append("null"); - } else { - sb.append(this.streamId); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (componentId == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'componentId' was not present! Struct: " + toString()); - } - if (streamId == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'streamId' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class GlobalStreamIdStandardSchemeFactory implements SchemeFactory { - public GlobalStreamIdStandardScheme getScheme() { - return new GlobalStreamIdStandardScheme(); - } - } - - private static class GlobalStreamIdStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, GlobalStreamId struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // COMPONENT_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.componentId = iprot.readString(); - struct.setComponentIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // STREAM_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.streamId = iprot.readString(); - struct.setStreamIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, GlobalStreamId struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.componentId != null) { - oprot.writeFieldBegin(COMPONENT_ID_FIELD_DESC); - oprot.writeString(struct.componentId); - oprot.writeFieldEnd(); - } - if (struct.streamId != null) { - oprot.writeFieldBegin(STREAM_ID_FIELD_DESC); - oprot.writeString(struct.streamId); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class GlobalStreamIdTupleSchemeFactory implements SchemeFactory { - public GlobalStreamIdTupleScheme getScheme() { - return new GlobalStreamIdTupleScheme(); - } - } - - private static class GlobalStreamIdTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, GlobalStreamId struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.componentId); - oprot.writeString(struct.streamId); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, GlobalStreamId struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.componentId = iprot.readString(); - struct.setComponentIdIsSet(true); - struct.streamId = iprot.readString(); - struct.setStreamIdIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Grouping.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Grouping.java deleted file mode 100644 index 27f0225b3..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Grouping.java +++ /dev/null @@ -1,779 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Grouping extends org.apache.thrift.TUnion { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Grouping"); - private static final org.apache.thrift.protocol.TField FIELDS_FIELD_DESC = new org.apache.thrift.protocol.TField("fields", org.apache.thrift.protocol.TType.LIST, (short)1); - private static final org.apache.thrift.protocol.TField SHUFFLE_FIELD_DESC = new org.apache.thrift.protocol.TField("shuffle", org.apache.thrift.protocol.TType.STRUCT, (short)2); - private static final org.apache.thrift.protocol.TField ALL_FIELD_DESC = new org.apache.thrift.protocol.TField("all", org.apache.thrift.protocol.TType.STRUCT, (short)3); - private static final org.apache.thrift.protocol.TField NONE_FIELD_DESC = new org.apache.thrift.protocol.TField("none", org.apache.thrift.protocol.TType.STRUCT, (short)4); - private static final org.apache.thrift.protocol.TField DIRECT_FIELD_DESC = new org.apache.thrift.protocol.TField("direct", org.apache.thrift.protocol.TType.STRUCT, (short)5); - private static final org.apache.thrift.protocol.TField CUSTOM_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("custom_object", org.apache.thrift.protocol.TType.STRUCT, (short)6); - private static final org.apache.thrift.protocol.TField CUSTOM_SERIALIZED_FIELD_DESC = new org.apache.thrift.protocol.TField("custom_serialized", org.apache.thrift.protocol.TType.STRING, (short)7); - private static final org.apache.thrift.protocol.TField LOCAL_OR_SHUFFLE_FIELD_DESC = new org.apache.thrift.protocol.TField("local_or_shuffle", org.apache.thrift.protocol.TType.STRUCT, (short)8); - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - FIELDS((short)1, "fields"), - SHUFFLE((short)2, "shuffle"), - ALL((short)3, "all"), - NONE((short)4, "none"), - DIRECT((short)5, "direct"), - CUSTOM_OBJECT((short)6, "custom_object"), - CUSTOM_SERIALIZED((short)7, "custom_serialized"), - LOCAL_OR_SHUFFLE((short)8, "local_or_shuffle"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // FIELDS - return FIELDS; - case 2: // SHUFFLE - return SHUFFLE; - case 3: // ALL - return ALL; - case 4: // NONE - return NONE; - case 5: // DIRECT - return DIRECT; - case 6: // CUSTOM_OBJECT - return CUSTOM_OBJECT; - case 7: // CUSTOM_SERIALIZED - return CUSTOM_SERIALIZED; - case 8: // LOCAL_OR_SHUFFLE - return LOCAL_OR_SHUFFLE; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.FIELDS, new org.apache.thrift.meta_data.FieldMetaData("fields", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); - tmpMap.put(_Fields.SHUFFLE, new org.apache.thrift.meta_data.FieldMetaData("shuffle", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NullStruct.class))); - tmpMap.put(_Fields.ALL, new org.apache.thrift.meta_data.FieldMetaData("all", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NullStruct.class))); - tmpMap.put(_Fields.NONE, new org.apache.thrift.meta_data.FieldMetaData("none", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NullStruct.class))); - tmpMap.put(_Fields.DIRECT, new org.apache.thrift.meta_data.FieldMetaData("direct", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NullStruct.class))); - tmpMap.put(_Fields.CUSTOM_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("custom_object", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JavaObject.class))); - tmpMap.put(_Fields.CUSTOM_SERIALIZED, new org.apache.thrift.meta_data.FieldMetaData("custom_serialized", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); - tmpMap.put(_Fields.LOCAL_OR_SHUFFLE, new org.apache.thrift.meta_data.FieldMetaData("local_or_shuffle", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NullStruct.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Grouping.class, metaDataMap); - } - - public Grouping() { - super(); - } - - public Grouping(_Fields setField, Object value) { - super(setField, value); - } - - public Grouping(Grouping other) { - super(other); - } - public Grouping deepCopy() { - return new Grouping(this); - } - - public static Grouping fields(List value) { - Grouping x = new Grouping(); - x.setFields(value); - return x; - } - - public static Grouping shuffle(NullStruct value) { - Grouping x = new Grouping(); - x.setShuffle(value); - return x; - } - - public static Grouping all(NullStruct value) { - Grouping x = new Grouping(); - x.setAll(value); - return x; - } - - public static Grouping none(NullStruct value) { - Grouping x = new Grouping(); - x.setNone(value); - return x; - } - - public static Grouping direct(NullStruct value) { - Grouping x = new Grouping(); - x.setDirect(value); - return x; - } - - public static Grouping custom_object(JavaObject value) { - Grouping x = new Grouping(); - x.setCustom_object(value); - return x; - } - - public static Grouping custom_serialized(ByteBuffer value) { - Grouping x = new Grouping(); - x.setCustom_serialized(value); - return x; - } - - public static Grouping custom_serialized(byte[] value) { - Grouping x = new Grouping(); - x.setCustom_serialized(ByteBuffer.wrap(value)); - return x; - } - - public static Grouping local_or_shuffle(NullStruct value) { - Grouping x = new Grouping(); - x.setLocal_or_shuffle(value); - return x; - } - - - @Override - protected void checkType(_Fields setField, Object value) throws ClassCastException { - switch (setField) { - case FIELDS: - if (value instanceof List) { - break; - } - throw new ClassCastException("Was expecting value of type List for field 'fields', but got " + value.getClass().getSimpleName()); - case SHUFFLE: - if (value instanceof NullStruct) { - break; - } - throw new ClassCastException("Was expecting value of type NullStruct for field 'shuffle', but got " + value.getClass().getSimpleName()); - case ALL: - if (value instanceof NullStruct) { - break; - } - throw new ClassCastException("Was expecting value of type NullStruct for field 'all', but got " + value.getClass().getSimpleName()); - case NONE: - if (value instanceof NullStruct) { - break; - } - throw new ClassCastException("Was expecting value of type NullStruct for field 'none', but got " + value.getClass().getSimpleName()); - case DIRECT: - if (value instanceof NullStruct) { - break; - } - throw new ClassCastException("Was expecting value of type NullStruct for field 'direct', but got " + value.getClass().getSimpleName()); - case CUSTOM_OBJECT: - if (value instanceof JavaObject) { - break; - } - throw new ClassCastException("Was expecting value of type JavaObject for field 'custom_object', but got " + value.getClass().getSimpleName()); - case CUSTOM_SERIALIZED: - if (value instanceof ByteBuffer) { - break; - } - throw new ClassCastException("Was expecting value of type ByteBuffer for field 'custom_serialized', but got " + value.getClass().getSimpleName()); - case LOCAL_OR_SHUFFLE: - if (value instanceof NullStruct) { - break; - } - throw new ClassCastException("Was expecting value of type NullStruct for field 'local_or_shuffle', but got " + value.getClass().getSimpleName()); - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected Object standardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(field.id); - if (setField != null) { - switch (setField) { - case FIELDS: - if (field.type == FIELDS_FIELD_DESC.type) { - List fields; - { - org.apache.thrift.protocol.TList _list8 = iprot.readListBegin(); - fields = new ArrayList(_list8.size); - for (int _i9 = 0; _i9 < _list8.size; ++_i9) - { - String _elem10; // required - _elem10 = iprot.readString(); - fields.add(_elem10); - } - iprot.readListEnd(); - } - return fields; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case SHUFFLE: - if (field.type == SHUFFLE_FIELD_DESC.type) { - NullStruct shuffle; - shuffle = new NullStruct(); - shuffle.read(iprot); - return shuffle; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case ALL: - if (field.type == ALL_FIELD_DESC.type) { - NullStruct all; - all = new NullStruct(); - all.read(iprot); - return all; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case NONE: - if (field.type == NONE_FIELD_DESC.type) { - NullStruct none; - none = new NullStruct(); - none.read(iprot); - return none; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case DIRECT: - if (field.type == DIRECT_FIELD_DESC.type) { - NullStruct direct; - direct = new NullStruct(); - direct.read(iprot); - return direct; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case CUSTOM_OBJECT: - if (field.type == CUSTOM_OBJECT_FIELD_DESC.type) { - JavaObject custom_object; - custom_object = new JavaObject(); - custom_object.read(iprot); - return custom_object; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case CUSTOM_SERIALIZED: - if (field.type == CUSTOM_SERIALIZED_FIELD_DESC.type) { - ByteBuffer custom_serialized; - custom_serialized = iprot.readBinary(); - return custom_serialized; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case LOCAL_OR_SHUFFLE: - if (field.type == LOCAL_OR_SHUFFLE_FIELD_DESC.type) { - NullStruct local_or_shuffle; - local_or_shuffle = new NullStruct(); - local_or_shuffle.read(iprot); - return local_or_shuffle; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - return null; - } - } - - @Override - protected void standardSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case FIELDS: - List fields = (List)value_; - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, fields.size())); - for (String _iter11 : fields) - { - oprot.writeString(_iter11); - } - oprot.writeListEnd(); - } - return; - case SHUFFLE: - NullStruct shuffle = (NullStruct)value_; - shuffle.write(oprot); - return; - case ALL: - NullStruct all = (NullStruct)value_; - all.write(oprot); - return; - case NONE: - NullStruct none = (NullStruct)value_; - none.write(oprot); - return; - case DIRECT: - NullStruct direct = (NullStruct)value_; - direct.write(oprot); - return; - case CUSTOM_OBJECT: - JavaObject custom_object = (JavaObject)value_; - custom_object.write(oprot); - return; - case CUSTOM_SERIALIZED: - ByteBuffer custom_serialized = (ByteBuffer)value_; - oprot.writeBinary(custom_serialized); - return; - case LOCAL_OR_SHUFFLE: - NullStruct local_or_shuffle = (NullStruct)value_; - local_or_shuffle.write(oprot); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected Object tupleSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, short fieldID) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(fieldID); - if (setField != null) { - switch (setField) { - case FIELDS: - List fields; - { - org.apache.thrift.protocol.TList _list12 = iprot.readListBegin(); - fields = new ArrayList(_list12.size); - for (int _i13 = 0; _i13 < _list12.size; ++_i13) - { - String _elem14; // required - _elem14 = iprot.readString(); - fields.add(_elem14); - } - iprot.readListEnd(); - } - return fields; - case SHUFFLE: - NullStruct shuffle; - shuffle = new NullStruct(); - shuffle.read(iprot); - return shuffle; - case ALL: - NullStruct all; - all = new NullStruct(); - all.read(iprot); - return all; - case NONE: - NullStruct none; - none = new NullStruct(); - none.read(iprot); - return none; - case DIRECT: - NullStruct direct; - direct = new NullStruct(); - direct.read(iprot); - return direct; - case CUSTOM_OBJECT: - JavaObject custom_object; - custom_object = new JavaObject(); - custom_object.read(iprot); - return custom_object; - case CUSTOM_SERIALIZED: - ByteBuffer custom_serialized; - custom_serialized = iprot.readBinary(); - return custom_serialized; - case LOCAL_OR_SHUFFLE: - NullStruct local_or_shuffle; - local_or_shuffle = new NullStruct(); - local_or_shuffle.read(iprot); - return local_or_shuffle; - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - throw new TProtocolException("Couldn't find a field with field id " + fieldID); - } - } - - @Override - protected void tupleSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case FIELDS: - List fields = (List)value_; - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, fields.size())); - for (String _iter15 : fields) - { - oprot.writeString(_iter15); - } - oprot.writeListEnd(); - } - return; - case SHUFFLE: - NullStruct shuffle = (NullStruct)value_; - shuffle.write(oprot); - return; - case ALL: - NullStruct all = (NullStruct)value_; - all.write(oprot); - return; - case NONE: - NullStruct none = (NullStruct)value_; - none.write(oprot); - return; - case DIRECT: - NullStruct direct = (NullStruct)value_; - direct.write(oprot); - return; - case CUSTOM_OBJECT: - JavaObject custom_object = (JavaObject)value_; - custom_object.write(oprot); - return; - case CUSTOM_SERIALIZED: - ByteBuffer custom_serialized = (ByteBuffer)value_; - oprot.writeBinary(custom_serialized); - return; - case LOCAL_OR_SHUFFLE: - NullStruct local_or_shuffle = (NullStruct)value_; - local_or_shuffle.write(oprot); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected org.apache.thrift.protocol.TField getFieldDesc(_Fields setField) { - switch (setField) { - case FIELDS: - return FIELDS_FIELD_DESC; - case SHUFFLE: - return SHUFFLE_FIELD_DESC; - case ALL: - return ALL_FIELD_DESC; - case NONE: - return NONE_FIELD_DESC; - case DIRECT: - return DIRECT_FIELD_DESC; - case CUSTOM_OBJECT: - return CUSTOM_OBJECT_FIELD_DESC; - case CUSTOM_SERIALIZED: - return CUSTOM_SERIALIZED_FIELD_DESC; - case LOCAL_OR_SHUFFLE: - return LOCAL_OR_SHUFFLE_FIELD_DESC; - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected org.apache.thrift.protocol.TStruct getStructDesc() { - return STRUCT_DESC; - } - - @Override - protected _Fields enumForId(short id) { - return _Fields.findByThriftIdOrThrow(id); - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - - public List getFields() { - if (getSetField() == _Fields.FIELDS) { - return (List)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'fields' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setFields(List value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.FIELDS; - value_ = value; - } - - public NullStruct getShuffle() { - if (getSetField() == _Fields.SHUFFLE) { - return (NullStruct)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'shuffle' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setShuffle(NullStruct value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.SHUFFLE; - value_ = value; - } - - public NullStruct getAll() { - if (getSetField() == _Fields.ALL) { - return (NullStruct)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'all' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setAll(NullStruct value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.ALL; - value_ = value; - } - - public NullStruct getNone() { - if (getSetField() == _Fields.NONE) { - return (NullStruct)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'none' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setNone(NullStruct value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.NONE; - value_ = value; - } - - public NullStruct getDirect() { - if (getSetField() == _Fields.DIRECT) { - return (NullStruct)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'direct' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setDirect(NullStruct value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.DIRECT; - value_ = value; - } - - public JavaObject getCustom_object() { - if (getSetField() == _Fields.CUSTOM_OBJECT) { - return (JavaObject)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'custom_object' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setCustom_object(JavaObject value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.CUSTOM_OBJECT; - value_ = value; - } - - public byte[] getCustom_serialized() { - setCustom_serialized(org.apache.thrift.TBaseHelper.rightSize(bufferForCustom_serialized())); - ByteBuffer b = bufferForCustom_serialized(); - return b == null ? null : b.array(); - } - - public ByteBuffer bufferForCustom_serialized() { - if (getSetField() == _Fields.CUSTOM_SERIALIZED) { - return (ByteBuffer)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'custom_serialized' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setCustom_serialized(byte[] value) { - setCustom_serialized(ByteBuffer.wrap(value)); - } - - public void setCustom_serialized(ByteBuffer value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.CUSTOM_SERIALIZED; - value_ = value; - } - - public NullStruct getLocal_or_shuffle() { - if (getSetField() == _Fields.LOCAL_OR_SHUFFLE) { - return (NullStruct)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'local_or_shuffle' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setLocal_or_shuffle(NullStruct value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.LOCAL_OR_SHUFFLE; - value_ = value; - } - - public boolean isSetFields() { - return setField_ == _Fields.FIELDS; - } - - - public boolean isSetShuffle() { - return setField_ == _Fields.SHUFFLE; - } - - - public boolean isSetAll() { - return setField_ == _Fields.ALL; - } - - - public boolean isSetNone() { - return setField_ == _Fields.NONE; - } - - - public boolean isSetDirect() { - return setField_ == _Fields.DIRECT; - } - - - public boolean isSetCustom_object() { - return setField_ == _Fields.CUSTOM_OBJECT; - } - - - public boolean isSetCustom_serialized() { - return setField_ == _Fields.CUSTOM_SERIALIZED; - } - - - public boolean isSetLocal_or_shuffle() { - return setField_ == _Fields.LOCAL_OR_SHUFFLE; - } - - - public boolean equals(Object other) { - if (other instanceof Grouping) { - return equals((Grouping)other); - } else { - return false; - } - } - - public boolean equals(Grouping other) { - return other != null && getSetField() == other.getSetField() && getFieldValue().equals(other.getFieldValue()); - } - - @Override - public int compareTo(Grouping other) { - int lastComparison = org.apache.thrift.TBaseHelper.compareTo(getSetField(), other.getSetField()); - if (lastComparison == 0) { - return org.apache.thrift.TBaseHelper.compareTo(getFieldValue(), other.getFieldValue()); - } - return lastComparison; - } - - - @Override - public int hashCode() { - HashCodeBuilder hcb = new HashCodeBuilder(); - hcb.append(this.getClass().getName()); - org.apache.thrift.TFieldIdEnum setField = getSetField(); - if (setField != null) { - hcb.append(setField.getThriftFieldId()); - Object value = getFieldValue(); - if (value instanceof org.apache.thrift.TEnum) { - hcb.append(((org.apache.thrift.TEnum)getFieldValue()).getValue()); - } else { - hcb.append(value); - } - } - return hcb.toHashCode(); - } - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/InvalidTopologyException.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/InvalidTopologyException.java deleted file mode 100644 index bfa2d886b..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/InvalidTopologyException.java +++ /dev/null @@ -1,387 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class InvalidTopologyException extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidTopologyException"); - - private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new org.apache.thrift.protocol.TField("msg", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new InvalidTopologyExceptionStandardSchemeFactory()); - schemes.put(TupleScheme.class, new InvalidTopologyExceptionTupleSchemeFactory()); - } - - public String msg; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - MSG((short)1, "msg"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // MSG - return MSG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.MSG, new org.apache.thrift.meta_data.FieldMetaData("msg", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InvalidTopologyException.class, metaDataMap); - } - - public InvalidTopologyException() { - } - - public InvalidTopologyException( - String msg) - { - this(); - this.msg = msg; - } - - /** - * Performs a deep copy on other. - */ - public InvalidTopologyException(InvalidTopologyException other) { - if (other.isSetMsg()) { - this.msg = other.msg; - } - } - - public InvalidTopologyException deepCopy() { - return new InvalidTopologyException(this); - } - - @Override - public void clear() { - this.msg = null; - } - - public String getMsg() { - return this.msg; - } - - public InvalidTopologyException setMsg(String msg) { - this.msg = msg; - return this; - } - - public void unsetMsg() { - this.msg = null; - } - - /** Returns true if field msg is set (has been assigned a value) and false otherwise */ - public boolean isSetMsg() { - return this.msg != null; - } - - public void setMsgIsSet(boolean value) { - if (!value) { - this.msg = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case MSG: - if (value == null) { - unsetMsg(); - } else { - setMsg((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case MSG: - return getMsg(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case MSG: - return isSetMsg(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof InvalidTopologyException) - return this.equals((InvalidTopologyException)that); - return false; - } - - public boolean equals(InvalidTopologyException that) { - if (that == null) - return false; - - boolean this_present_msg = true && this.isSetMsg(); - boolean that_present_msg = true && that.isSetMsg(); - if (this_present_msg || that_present_msg) { - if (!(this_present_msg && that_present_msg)) - return false; - if (!this.msg.equals(that.msg)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_msg = true && (isSetMsg()); - builder.append(present_msg); - if (present_msg) - builder.append(msg); - - return builder.toHashCode(); - } - - public int compareTo(InvalidTopologyException other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - InvalidTopologyException typedOther = (InvalidTopologyException)other; - - lastComparison = Boolean.valueOf(isSetMsg()).compareTo(typedOther.isSetMsg()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetMsg()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.msg, typedOther.msg); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("InvalidTopologyException("); - boolean first = true; - - sb.append("msg:"); - if (this.msg == null) { - sb.append("null"); - } else { - sb.append(this.msg); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (msg == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'msg' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class InvalidTopologyExceptionStandardSchemeFactory implements SchemeFactory { - public InvalidTopologyExceptionStandardScheme getScheme() { - return new InvalidTopologyExceptionStandardScheme(); - } - } - - private static class InvalidTopologyExceptionStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, InvalidTopologyException struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // MSG - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, InvalidTopologyException struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.msg != null) { - oprot.writeFieldBegin(MSG_FIELD_DESC); - oprot.writeString(struct.msg); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class InvalidTopologyExceptionTupleSchemeFactory implements SchemeFactory { - public InvalidTopologyExceptionTupleScheme getScheme() { - return new InvalidTopologyExceptionTupleScheme(); - } - } - - private static class InvalidTopologyExceptionTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, InvalidTopologyException struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.msg); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, InvalidTopologyException struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/JavaObject.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/JavaObject.java deleted file mode 100644 index 14b1f0929..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/JavaObject.java +++ /dev/null @@ -1,542 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class JavaObject implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JavaObject"); - - private static final org.apache.thrift.protocol.TField FULL_CLASS_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("full_class_name", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField ARGS_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("args_list", org.apache.thrift.protocol.TType.LIST, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new JavaObjectStandardSchemeFactory()); - schemes.put(TupleScheme.class, new JavaObjectTupleSchemeFactory()); - } - - public String full_class_name; // required - public List args_list; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - FULL_CLASS_NAME((short)1, "full_class_name"), - ARGS_LIST((short)2, "args_list"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // FULL_CLASS_NAME - return FULL_CLASS_NAME; - case 2: // ARGS_LIST - return ARGS_LIST; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.FULL_CLASS_NAME, new org.apache.thrift.meta_data.FieldMetaData("full_class_name", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.ARGS_LIST, new org.apache.thrift.meta_data.FieldMetaData("args_list", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, JavaObjectArg.class)))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JavaObject.class, metaDataMap); - } - - public JavaObject() { - } - - public JavaObject( - String full_class_name, - List args_list) - { - this(); - this.full_class_name = full_class_name; - this.args_list = args_list; - } - - /** - * Performs a deep copy on other. - */ - public JavaObject(JavaObject other) { - if (other.isSetFull_class_name()) { - this.full_class_name = other.full_class_name; - } - if (other.isSetArgs_list()) { - List __this__args_list = new ArrayList(); - for (JavaObjectArg other_element : other.args_list) { - __this__args_list.add(new JavaObjectArg(other_element)); - } - this.args_list = __this__args_list; - } - } - - public JavaObject deepCopy() { - return new JavaObject(this); - } - - @Override - public void clear() { - this.full_class_name = null; - this.args_list = null; - } - - public String getFull_class_name() { - return this.full_class_name; - } - - public JavaObject setFull_class_name(String full_class_name) { - this.full_class_name = full_class_name; - return this; - } - - public void unsetFull_class_name() { - this.full_class_name = null; - } - - /** Returns true if field full_class_name is set (has been assigned a value) and false otherwise */ - public boolean isSetFull_class_name() { - return this.full_class_name != null; - } - - public void setFull_class_nameIsSet(boolean value) { - if (!value) { - this.full_class_name = null; - } - } - - public int getArgs_listSize() { - return (this.args_list == null) ? 0 : this.args_list.size(); - } - - public java.util.Iterator getArgs_listIterator() { - return (this.args_list == null) ? null : this.args_list.iterator(); - } - - public void addToArgs_list(JavaObjectArg elem) { - if (this.args_list == null) { - this.args_list = new ArrayList(); - } - this.args_list.add(elem); - } - - public List getArgs_list() { - return this.args_list; - } - - public JavaObject setArgs_list(List args_list) { - this.args_list = args_list; - return this; - } - - public void unsetArgs_list() { - this.args_list = null; - } - - /** Returns true if field args_list is set (has been assigned a value) and false otherwise */ - public boolean isSetArgs_list() { - return this.args_list != null; - } - - public void setArgs_listIsSet(boolean value) { - if (!value) { - this.args_list = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case FULL_CLASS_NAME: - if (value == null) { - unsetFull_class_name(); - } else { - setFull_class_name((String)value); - } - break; - - case ARGS_LIST: - if (value == null) { - unsetArgs_list(); - } else { - setArgs_list((List)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case FULL_CLASS_NAME: - return getFull_class_name(); - - case ARGS_LIST: - return getArgs_list(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case FULL_CLASS_NAME: - return isSetFull_class_name(); - case ARGS_LIST: - return isSetArgs_list(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof JavaObject) - return this.equals((JavaObject)that); - return false; - } - - public boolean equals(JavaObject that) { - if (that == null) - return false; - - boolean this_present_full_class_name = true && this.isSetFull_class_name(); - boolean that_present_full_class_name = true && that.isSetFull_class_name(); - if (this_present_full_class_name || that_present_full_class_name) { - if (!(this_present_full_class_name && that_present_full_class_name)) - return false; - if (!this.full_class_name.equals(that.full_class_name)) - return false; - } - - boolean this_present_args_list = true && this.isSetArgs_list(); - boolean that_present_args_list = true && that.isSetArgs_list(); - if (this_present_args_list || that_present_args_list) { - if (!(this_present_args_list && that_present_args_list)) - return false; - if (!this.args_list.equals(that.args_list)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_full_class_name = true && (isSetFull_class_name()); - builder.append(present_full_class_name); - if (present_full_class_name) - builder.append(full_class_name); - - boolean present_args_list = true && (isSetArgs_list()); - builder.append(present_args_list); - if (present_args_list) - builder.append(args_list); - - return builder.toHashCode(); - } - - public int compareTo(JavaObject other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - JavaObject typedOther = (JavaObject)other; - - lastComparison = Boolean.valueOf(isSetFull_class_name()).compareTo(typedOther.isSetFull_class_name()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFull_class_name()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.full_class_name, typedOther.full_class_name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetArgs_list()).compareTo(typedOther.isSetArgs_list()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetArgs_list()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.args_list, typedOther.args_list); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("JavaObject("); - boolean first = true; - - sb.append("full_class_name:"); - if (this.full_class_name == null) { - sb.append("null"); - } else { - sb.append(this.full_class_name); - } - first = false; - if (!first) sb.append(", "); - sb.append("args_list:"); - if (this.args_list == null) { - sb.append("null"); - } else { - sb.append(this.args_list); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (full_class_name == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'full_class_name' was not present! Struct: " + toString()); - } - if (args_list == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'args_list' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class JavaObjectStandardSchemeFactory implements SchemeFactory { - public JavaObjectStandardScheme getScheme() { - return new JavaObjectStandardScheme(); - } - } - - private static class JavaObjectStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, JavaObject struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // FULL_CLASS_NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.full_class_name = iprot.readString(); - struct.setFull_class_nameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // ARGS_LIST - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list0 = iprot.readListBegin(); - struct.args_list = new ArrayList(_list0.size); - for (int _i1 = 0; _i1 < _list0.size; ++_i1) - { - JavaObjectArg _elem2; // required - _elem2 = new JavaObjectArg(); - _elem2.read(iprot); - struct.args_list.add(_elem2); - } - iprot.readListEnd(); - } - struct.setArgs_listIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, JavaObject struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.full_class_name != null) { - oprot.writeFieldBegin(FULL_CLASS_NAME_FIELD_DESC); - oprot.writeString(struct.full_class_name); - oprot.writeFieldEnd(); - } - if (struct.args_list != null) { - oprot.writeFieldBegin(ARGS_LIST_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.args_list.size())); - for (JavaObjectArg _iter3 : struct.args_list) - { - _iter3.write(oprot); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class JavaObjectTupleSchemeFactory implements SchemeFactory { - public JavaObjectTupleScheme getScheme() { - return new JavaObjectTupleScheme(); - } - } - - private static class JavaObjectTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, JavaObject struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.full_class_name); - { - oprot.writeI32(struct.args_list.size()); - for (JavaObjectArg _iter4 : struct.args_list) - { - _iter4.write(oprot); - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, JavaObject struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.full_class_name = iprot.readString(); - struct.setFull_class_nameIsSet(true); - { - org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.args_list = new ArrayList(_list5.size); - for (int _i6 = 0; _i6 < _list5.size; ++_i6) - { - JavaObjectArg _elem7; // required - _elem7 = new JavaObjectArg(); - _elem7.read(iprot); - struct.args_list.add(_elem7); - } - } - struct.setArgs_listIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/JavaObjectArg.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/JavaObjectArg.java deleted file mode 100644 index 19fca5bb7..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/JavaObjectArg.java +++ /dev/null @@ -1,610 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class JavaObjectArg extends org.apache.thrift.TUnion { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JavaObjectArg"); - private static final org.apache.thrift.protocol.TField INT_ARG_FIELD_DESC = new org.apache.thrift.protocol.TField("int_arg", org.apache.thrift.protocol.TType.I32, (short)1); - private static final org.apache.thrift.protocol.TField LONG_ARG_FIELD_DESC = new org.apache.thrift.protocol.TField("long_arg", org.apache.thrift.protocol.TType.I64, (short)2); - private static final org.apache.thrift.protocol.TField STRING_ARG_FIELD_DESC = new org.apache.thrift.protocol.TField("string_arg", org.apache.thrift.protocol.TType.STRING, (short)3); - private static final org.apache.thrift.protocol.TField BOOL_ARG_FIELD_DESC = new org.apache.thrift.protocol.TField("bool_arg", org.apache.thrift.protocol.TType.BOOL, (short)4); - private static final org.apache.thrift.protocol.TField BINARY_ARG_FIELD_DESC = new org.apache.thrift.protocol.TField("binary_arg", org.apache.thrift.protocol.TType.STRING, (short)5); - private static final org.apache.thrift.protocol.TField DOUBLE_ARG_FIELD_DESC = new org.apache.thrift.protocol.TField("double_arg", org.apache.thrift.protocol.TType.DOUBLE, (short)6); - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - INT_ARG((short)1, "int_arg"), - LONG_ARG((short)2, "long_arg"), - STRING_ARG((short)3, "string_arg"), - BOOL_ARG((short)4, "bool_arg"), - BINARY_ARG((short)5, "binary_arg"), - DOUBLE_ARG((short)6, "double_arg"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // INT_ARG - return INT_ARG; - case 2: // LONG_ARG - return LONG_ARG; - case 3: // STRING_ARG - return STRING_ARG; - case 4: // BOOL_ARG - return BOOL_ARG; - case 5: // BINARY_ARG - return BINARY_ARG; - case 6: // DOUBLE_ARG - return DOUBLE_ARG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.INT_ARG, new org.apache.thrift.meta_data.FieldMetaData("int_arg", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.LONG_ARG, new org.apache.thrift.meta_data.FieldMetaData("long_arg", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); - tmpMap.put(_Fields.STRING_ARG, new org.apache.thrift.meta_data.FieldMetaData("string_arg", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.BOOL_ARG, new org.apache.thrift.meta_data.FieldMetaData("bool_arg", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); - tmpMap.put(_Fields.BINARY_ARG, new org.apache.thrift.meta_data.FieldMetaData("binary_arg", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); - tmpMap.put(_Fields.DOUBLE_ARG, new org.apache.thrift.meta_data.FieldMetaData("double_arg", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(JavaObjectArg.class, metaDataMap); - } - - public JavaObjectArg() { - super(); - } - - public JavaObjectArg(_Fields setField, Object value) { - super(setField, value); - } - - public JavaObjectArg(JavaObjectArg other) { - super(other); - } - public JavaObjectArg deepCopy() { - return new JavaObjectArg(this); - } - - public static JavaObjectArg int_arg(int value) { - JavaObjectArg x = new JavaObjectArg(); - x.setInt_arg(value); - return x; - } - - public static JavaObjectArg long_arg(long value) { - JavaObjectArg x = new JavaObjectArg(); - x.setLong_arg(value); - return x; - } - - public static JavaObjectArg string_arg(String value) { - JavaObjectArg x = new JavaObjectArg(); - x.setString_arg(value); - return x; - } - - public static JavaObjectArg bool_arg(boolean value) { - JavaObjectArg x = new JavaObjectArg(); - x.setBool_arg(value); - return x; - } - - public static JavaObjectArg binary_arg(ByteBuffer value) { - JavaObjectArg x = new JavaObjectArg(); - x.setBinary_arg(value); - return x; - } - - public static JavaObjectArg binary_arg(byte[] value) { - JavaObjectArg x = new JavaObjectArg(); - x.setBinary_arg(ByteBuffer.wrap(value)); - return x; - } - - public static JavaObjectArg double_arg(double value) { - JavaObjectArg x = new JavaObjectArg(); - x.setDouble_arg(value); - return x; - } - - - @Override - protected void checkType(_Fields setField, Object value) throws ClassCastException { - switch (setField) { - case INT_ARG: - if (value instanceof Integer) { - break; - } - throw new ClassCastException("Was expecting value of type Integer for field 'int_arg', but got " + value.getClass().getSimpleName()); - case LONG_ARG: - if (value instanceof Long) { - break; - } - throw new ClassCastException("Was expecting value of type Long for field 'long_arg', but got " + value.getClass().getSimpleName()); - case STRING_ARG: - if (value instanceof String) { - break; - } - throw new ClassCastException("Was expecting value of type String for field 'string_arg', but got " + value.getClass().getSimpleName()); - case BOOL_ARG: - if (value instanceof Boolean) { - break; - } - throw new ClassCastException("Was expecting value of type Boolean for field 'bool_arg', but got " + value.getClass().getSimpleName()); - case BINARY_ARG: - if (value instanceof ByteBuffer) { - break; - } - throw new ClassCastException("Was expecting value of type ByteBuffer for field 'binary_arg', but got " + value.getClass().getSimpleName()); - case DOUBLE_ARG: - if (value instanceof Double) { - break; - } - throw new ClassCastException("Was expecting value of type Double for field 'double_arg', but got " + value.getClass().getSimpleName()); - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected Object standardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(field.id); - if (setField != null) { - switch (setField) { - case INT_ARG: - if (field.type == INT_ARG_FIELD_DESC.type) { - Integer int_arg; - int_arg = iprot.readI32(); - return int_arg; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case LONG_ARG: - if (field.type == LONG_ARG_FIELD_DESC.type) { - Long long_arg; - long_arg = iprot.readI64(); - return long_arg; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case STRING_ARG: - if (field.type == STRING_ARG_FIELD_DESC.type) { - String string_arg; - string_arg = iprot.readString(); - return string_arg; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case BOOL_ARG: - if (field.type == BOOL_ARG_FIELD_DESC.type) { - Boolean bool_arg; - bool_arg = iprot.readBool(); - return bool_arg; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case BINARY_ARG: - if (field.type == BINARY_ARG_FIELD_DESC.type) { - ByteBuffer binary_arg; - binary_arg = iprot.readBinary(); - return binary_arg; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - case DOUBLE_ARG: - if (field.type == DOUBLE_ARG_FIELD_DESC.type) { - Double double_arg; - double_arg = iprot.readDouble(); - return double_arg; - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - return null; - } - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - return null; - } - } - - @Override - protected void standardSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case INT_ARG: - Integer int_arg = (Integer)value_; - oprot.writeI32(int_arg); - return; - case LONG_ARG: - Long long_arg = (Long)value_; - oprot.writeI64(long_arg); - return; - case STRING_ARG: - String string_arg = (String)value_; - oprot.writeString(string_arg); - return; - case BOOL_ARG: - Boolean bool_arg = (Boolean)value_; - oprot.writeBool(bool_arg); - return; - case BINARY_ARG: - ByteBuffer binary_arg = (ByteBuffer)value_; - oprot.writeBinary(binary_arg); - return; - case DOUBLE_ARG: - Double double_arg = (Double)value_; - oprot.writeDouble(double_arg); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected Object tupleSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, short fieldID) throws org.apache.thrift.TException { - _Fields setField = _Fields.findByThriftId(fieldID); - if (setField != null) { - switch (setField) { - case INT_ARG: - Integer int_arg; - int_arg = iprot.readI32(); - return int_arg; - case LONG_ARG: - Long long_arg; - long_arg = iprot.readI64(); - return long_arg; - case STRING_ARG: - String string_arg; - string_arg = iprot.readString(); - return string_arg; - case BOOL_ARG: - Boolean bool_arg; - bool_arg = iprot.readBool(); - return bool_arg; - case BINARY_ARG: - ByteBuffer binary_arg; - binary_arg = iprot.readBinary(); - return binary_arg; - case DOUBLE_ARG: - Double double_arg; - double_arg = iprot.readDouble(); - return double_arg; - default: - throw new IllegalStateException("setField wasn't null, but didn't match any of the case statements!"); - } - } else { - throw new TProtocolException("Couldn't find a field with field id " + fieldID); - } - } - - @Override - protected void tupleSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - switch (setField_) { - case INT_ARG: - Integer int_arg = (Integer)value_; - oprot.writeI32(int_arg); - return; - case LONG_ARG: - Long long_arg = (Long)value_; - oprot.writeI64(long_arg); - return; - case STRING_ARG: - String string_arg = (String)value_; - oprot.writeString(string_arg); - return; - case BOOL_ARG: - Boolean bool_arg = (Boolean)value_; - oprot.writeBool(bool_arg); - return; - case BINARY_ARG: - ByteBuffer binary_arg = (ByteBuffer)value_; - oprot.writeBinary(binary_arg); - return; - case DOUBLE_ARG: - Double double_arg = (Double)value_; - oprot.writeDouble(double_arg); - return; - default: - throw new IllegalStateException("Cannot write union with unknown field " + setField_); - } - } - - @Override - protected org.apache.thrift.protocol.TField getFieldDesc(_Fields setField) { - switch (setField) { - case INT_ARG: - return INT_ARG_FIELD_DESC; - case LONG_ARG: - return LONG_ARG_FIELD_DESC; - case STRING_ARG: - return STRING_ARG_FIELD_DESC; - case BOOL_ARG: - return BOOL_ARG_FIELD_DESC; - case BINARY_ARG: - return BINARY_ARG_FIELD_DESC; - case DOUBLE_ARG: - return DOUBLE_ARG_FIELD_DESC; - default: - throw new IllegalArgumentException("Unknown field id " + setField); - } - } - - @Override - protected org.apache.thrift.protocol.TStruct getStructDesc() { - return STRUCT_DESC; - } - - @Override - protected _Fields enumForId(short id) { - return _Fields.findByThriftIdOrThrow(id); - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - - public int getInt_arg() { - if (getSetField() == _Fields.INT_ARG) { - return (Integer)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'int_arg' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setInt_arg(int value) { - setField_ = _Fields.INT_ARG; - value_ = value; - } - - public long getLong_arg() { - if (getSetField() == _Fields.LONG_ARG) { - return (Long)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'long_arg' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setLong_arg(long value) { - setField_ = _Fields.LONG_ARG; - value_ = value; - } - - public String getString_arg() { - if (getSetField() == _Fields.STRING_ARG) { - return (String)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'string_arg' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setString_arg(String value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.STRING_ARG; - value_ = value; - } - - public boolean getBool_arg() { - if (getSetField() == _Fields.BOOL_ARG) { - return (Boolean)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'bool_arg' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setBool_arg(boolean value) { - setField_ = _Fields.BOOL_ARG; - value_ = value; - } - - public byte[] getBinary_arg() { - setBinary_arg(org.apache.thrift.TBaseHelper.rightSize(bufferForBinary_arg())); - ByteBuffer b = bufferForBinary_arg(); - return b == null ? null : b.array(); - } - - public ByteBuffer bufferForBinary_arg() { - if (getSetField() == _Fields.BINARY_ARG) { - return (ByteBuffer)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'binary_arg' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setBinary_arg(byte[] value) { - setBinary_arg(ByteBuffer.wrap(value)); - } - - public void setBinary_arg(ByteBuffer value) { - if (value == null) throw new NullPointerException(); - setField_ = _Fields.BINARY_ARG; - value_ = value; - } - - public double getDouble_arg() { - if (getSetField() == _Fields.DOUBLE_ARG) { - return (Double)getFieldValue(); - } else { - throw new RuntimeException("Cannot get field 'double_arg' because union is currently set to " + getFieldDesc(getSetField()).name); - } - } - - public void setDouble_arg(double value) { - setField_ = _Fields.DOUBLE_ARG; - value_ = value; - } - - public boolean isSetInt_arg() { - return setField_ == _Fields.INT_ARG; - } - - - public boolean isSetLong_arg() { - return setField_ == _Fields.LONG_ARG; - } - - - public boolean isSetString_arg() { - return setField_ == _Fields.STRING_ARG; - } - - - public boolean isSetBool_arg() { - return setField_ == _Fields.BOOL_ARG; - } - - - public boolean isSetBinary_arg() { - return setField_ == _Fields.BINARY_ARG; - } - - - public boolean isSetDouble_arg() { - return setField_ == _Fields.DOUBLE_ARG; - } - - - public boolean equals(Object other) { - if (other instanceof JavaObjectArg) { - return equals((JavaObjectArg)other); - } else { - return false; - } - } - - public boolean equals(JavaObjectArg other) { - return other != null && getSetField() == other.getSetField() && getFieldValue().equals(other.getFieldValue()); - } - - @Override - public int compareTo(JavaObjectArg other) { - int lastComparison = org.apache.thrift.TBaseHelper.compareTo(getSetField(), other.getSetField()); - if (lastComparison == 0) { - return org.apache.thrift.TBaseHelper.compareTo(getFieldValue(), other.getFieldValue()); - } - return lastComparison; - } - - - @Override - public int hashCode() { - HashCodeBuilder hcb = new HashCodeBuilder(); - hcb.append(this.getClass().getName()); - org.apache.thrift.TFieldIdEnum setField = getSetField(); - if (setField != null) { - hcb.append(setField.getThriftFieldId()); - Object value = getFieldValue(); - if (value instanceof org.apache.thrift.TEnum) { - hcb.append(((org.apache.thrift.TEnum)getFieldValue()).getValue()); - } else { - hcb.append(value); - } - } - return hcb.toHashCode(); - } - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/KillOptions.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/KillOptions.java deleted file mode 100644 index a492adc77..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/KillOptions.java +++ /dev/null @@ -1,389 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class KillOptions implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("KillOptions"); - - private static final org.apache.thrift.protocol.TField WAIT_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("wait_secs", org.apache.thrift.protocol.TType.I32, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new KillOptionsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new KillOptionsTupleSchemeFactory()); - } - - public int wait_secs; // optional - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - WAIT_SECS((short)1, "wait_secs"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // WAIT_SECS - return WAIT_SECS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __WAIT_SECS_ISSET_ID = 0; - private byte __isset_bitfield = 0; - private _Fields optionals[] = {_Fields.WAIT_SECS}; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.WAIT_SECS, new org.apache.thrift.meta_data.FieldMetaData("wait_secs", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(KillOptions.class, metaDataMap); - } - - public KillOptions() { - } - - /** - * Performs a deep copy on other. - */ - public KillOptions(KillOptions other) { - __isset_bitfield = other.__isset_bitfield; - this.wait_secs = other.wait_secs; - } - - public KillOptions deepCopy() { - return new KillOptions(this); - } - - @Override - public void clear() { - setWait_secsIsSet(false); - this.wait_secs = 0; - } - - public int getWait_secs() { - return this.wait_secs; - } - - public KillOptions setWait_secs(int wait_secs) { - this.wait_secs = wait_secs; - setWait_secsIsSet(true); - return this; - } - - public void unsetWait_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WAIT_SECS_ISSET_ID); - } - - /** Returns true if field wait_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetWait_secs() { - return EncodingUtils.testBit(__isset_bitfield, __WAIT_SECS_ISSET_ID); - } - - public void setWait_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WAIT_SECS_ISSET_ID, value); - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case WAIT_SECS: - if (value == null) { - unsetWait_secs(); - } else { - setWait_secs((Integer)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case WAIT_SECS: - return Integer.valueOf(getWait_secs()); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case WAIT_SECS: - return isSetWait_secs(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof KillOptions) - return this.equals((KillOptions)that); - return false; - } - - public boolean equals(KillOptions that) { - if (that == null) - return false; - - boolean this_present_wait_secs = true && this.isSetWait_secs(); - boolean that_present_wait_secs = true && that.isSetWait_secs(); - if (this_present_wait_secs || that_present_wait_secs) { - if (!(this_present_wait_secs && that_present_wait_secs)) - return false; - if (this.wait_secs != that.wait_secs) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_wait_secs = true && (isSetWait_secs()); - builder.append(present_wait_secs); - if (present_wait_secs) - builder.append(wait_secs); - - return builder.toHashCode(); - } - - public int compareTo(KillOptions other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - KillOptions typedOther = (KillOptions)other; - - lastComparison = Boolean.valueOf(isSetWait_secs()).compareTo(typedOther.isSetWait_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetWait_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wait_secs, typedOther.wait_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("KillOptions("); - boolean first = true; - - if (isSetWait_secs()) { - sb.append("wait_secs:"); - sb.append(this.wait_secs); - first = false; - } - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class KillOptionsStandardSchemeFactory implements SchemeFactory { - public KillOptionsStandardScheme getScheme() { - return new KillOptionsStandardScheme(); - } - } - - private static class KillOptionsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, KillOptions struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // WAIT_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.wait_secs = iprot.readI32(); - struct.setWait_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, KillOptions struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.isSetWait_secs()) { - oprot.writeFieldBegin(WAIT_SECS_FIELD_DESC); - oprot.writeI32(struct.wait_secs); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class KillOptionsTupleSchemeFactory implements SchemeFactory { - public KillOptionsTupleScheme getScheme() { - return new KillOptionsTupleScheme(); - } - } - - private static class KillOptionsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, KillOptions struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetWait_secs()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetWait_secs()) { - oprot.writeI32(struct.wait_secs); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, KillOptions struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.wait_secs = iprot.readI32(); - struct.setWait_secsIsSet(true); - } - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Nimbus.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Nimbus.java deleted file mode 100644 index 25f1f5926..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/Nimbus.java +++ /dev/null @@ -1,15944 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Nimbus { - - public interface Iface { - - public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology) throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException; - - public void submitTopologyWithOpts(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options) throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException; - - public void killTopology(String name) throws NotAliveException, org.apache.thrift.TException; - - public void killTopologyWithOpts(String name, KillOptions options) throws NotAliveException, org.apache.thrift.TException; - - public void activate(String name) throws NotAliveException, org.apache.thrift.TException; - - public void deactivate(String name) throws NotAliveException, org.apache.thrift.TException; - - public void rebalance(String name, RebalanceOptions options) throws NotAliveException, InvalidTopologyException, org.apache.thrift.TException; - - public String beginFileUpload() throws org.apache.thrift.TException; - - public void uploadChunk(String location, ByteBuffer chunk) throws org.apache.thrift.TException; - - public void finishFileUpload(String location) throws org.apache.thrift.TException; - - public String beginFileDownload(String file) throws org.apache.thrift.TException; - - public ByteBuffer downloadChunk(String id) throws org.apache.thrift.TException; - - public String getNimbusConf() throws org.apache.thrift.TException; - - public ClusterSummary getClusterInfo() throws org.apache.thrift.TException; - - public TopologyInfo getTopologyInfo(String id) throws NotAliveException, org.apache.thrift.TException; - - public String getTopologyConf(String id) throws NotAliveException, org.apache.thrift.TException; - - public StormTopology getTopology(String id) throws NotAliveException, org.apache.thrift.TException; - - public StormTopology getUserTopology(String id) throws NotAliveException, org.apache.thrift.TException; - - } - - public interface AsyncIface { - - public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void submitTopologyWithOpts(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void killTopology(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void killTopologyWithOpts(String name, KillOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void activate(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void deactivate(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void rebalance(String name, RebalanceOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void beginFileUpload(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void uploadChunk(String location, ByteBuffer chunk, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void finishFileUpload(String location, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void beginFileDownload(String file, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void downloadChunk(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void getNimbusConf(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void getClusterInfo(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void getTopologyInfo(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void getTopologyConf(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void getTopology(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - public void getUserTopology(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; - - } - - public static class Client extends org.apache.thrift.TServiceClient implements Iface { - public static class Factory implements org.apache.thrift.TServiceClientFactory { - public Factory() {} - public Client getClient(org.apache.thrift.protocol.TProtocol prot) { - return new Client(prot); - } - public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { - return new Client(iprot, oprot); - } - } - - public Client(org.apache.thrift.protocol.TProtocol prot) - { - super(prot, prot); - } - - public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { - super(iprot, oprot); - } - - public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology) throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException - { - send_submitTopology(name, uploadedJarLocation, jsonConf, topology); - recv_submitTopology(); - } - - public void send_submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology) throws org.apache.thrift.TException - { - submitTopology_args args = new submitTopology_args(); - args.setName(name); - args.setUploadedJarLocation(uploadedJarLocation); - args.setJsonConf(jsonConf); - args.setTopology(topology); - sendBase("submitTopology", args); - } - - public void recv_submitTopology() throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException - { - submitTopology_result result = new submitTopology_result(); - receiveBase(result, "submitTopology"); - if (result.e != null) { - throw result.e; - } - if (result.ite != null) { - throw result.ite; - } - return; - } - - public void submitTopologyWithOpts(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options) throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException - { - send_submitTopologyWithOpts(name, uploadedJarLocation, jsonConf, topology, options); - recv_submitTopologyWithOpts(); - } - - public void send_submitTopologyWithOpts(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options) throws org.apache.thrift.TException - { - submitTopologyWithOpts_args args = new submitTopologyWithOpts_args(); - args.setName(name); - args.setUploadedJarLocation(uploadedJarLocation); - args.setJsonConf(jsonConf); - args.setTopology(topology); - args.setOptions(options); - sendBase("submitTopologyWithOpts", args); - } - - public void recv_submitTopologyWithOpts() throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException - { - submitTopologyWithOpts_result result = new submitTopologyWithOpts_result(); - receiveBase(result, "submitTopologyWithOpts"); - if (result.e != null) { - throw result.e; - } - if (result.ite != null) { - throw result.ite; - } - return; - } - - public void killTopology(String name) throws NotAliveException, org.apache.thrift.TException - { - send_killTopology(name); - recv_killTopology(); - } - - public void send_killTopology(String name) throws org.apache.thrift.TException - { - killTopology_args args = new killTopology_args(); - args.setName(name); - sendBase("killTopology", args); - } - - public void recv_killTopology() throws NotAliveException, org.apache.thrift.TException - { - killTopology_result result = new killTopology_result(); - receiveBase(result, "killTopology"); - if (result.e != null) { - throw result.e; - } - return; - } - - public void killTopologyWithOpts(String name, KillOptions options) throws NotAliveException, org.apache.thrift.TException - { - send_killTopologyWithOpts(name, options); - recv_killTopologyWithOpts(); - } - - public void send_killTopologyWithOpts(String name, KillOptions options) throws org.apache.thrift.TException - { - killTopologyWithOpts_args args = new killTopologyWithOpts_args(); - args.setName(name); - args.setOptions(options); - sendBase("killTopologyWithOpts", args); - } - - public void recv_killTopologyWithOpts() throws NotAliveException, org.apache.thrift.TException - { - killTopologyWithOpts_result result = new killTopologyWithOpts_result(); - receiveBase(result, "killTopologyWithOpts"); - if (result.e != null) { - throw result.e; - } - return; - } - - public void activate(String name) throws NotAliveException, org.apache.thrift.TException - { - send_activate(name); - recv_activate(); - } - - public void send_activate(String name) throws org.apache.thrift.TException - { - activate_args args = new activate_args(); - args.setName(name); - sendBase("activate", args); - } - - public void recv_activate() throws NotAliveException, org.apache.thrift.TException - { - activate_result result = new activate_result(); - receiveBase(result, "activate"); - if (result.e != null) { - throw result.e; - } - return; - } - - public void deactivate(String name) throws NotAliveException, org.apache.thrift.TException - { - send_deactivate(name); - recv_deactivate(); - } - - public void send_deactivate(String name) throws org.apache.thrift.TException - { - deactivate_args args = new deactivate_args(); - args.setName(name); - sendBase("deactivate", args); - } - - public void recv_deactivate() throws NotAliveException, org.apache.thrift.TException - { - deactivate_result result = new deactivate_result(); - receiveBase(result, "deactivate"); - if (result.e != null) { - throw result.e; - } - return; - } - - public void rebalance(String name, RebalanceOptions options) throws NotAliveException, InvalidTopologyException, org.apache.thrift.TException - { - send_rebalance(name, options); - recv_rebalance(); - } - - public void send_rebalance(String name, RebalanceOptions options) throws org.apache.thrift.TException - { - rebalance_args args = new rebalance_args(); - args.setName(name); - args.setOptions(options); - sendBase("rebalance", args); - } - - public void recv_rebalance() throws NotAliveException, InvalidTopologyException, org.apache.thrift.TException - { - rebalance_result result = new rebalance_result(); - receiveBase(result, "rebalance"); - if (result.e != null) { - throw result.e; - } - if (result.ite != null) { - throw result.ite; - } - return; - } - - public String beginFileUpload() throws org.apache.thrift.TException - { - send_beginFileUpload(); - return recv_beginFileUpload(); - } - - public void send_beginFileUpload() throws org.apache.thrift.TException - { - beginFileUpload_args args = new beginFileUpload_args(); - sendBase("beginFileUpload", args); - } - - public String recv_beginFileUpload() throws org.apache.thrift.TException - { - beginFileUpload_result result = new beginFileUpload_result(); - receiveBase(result, "beginFileUpload"); - if (result.isSetSuccess()) { - return result.success; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "beginFileUpload failed: unknown result"); - } - - public void uploadChunk(String location, ByteBuffer chunk) throws org.apache.thrift.TException - { - send_uploadChunk(location, chunk); - recv_uploadChunk(); - } - - public void send_uploadChunk(String location, ByteBuffer chunk) throws org.apache.thrift.TException - { - uploadChunk_args args = new uploadChunk_args(); - args.setLocation(location); - args.setChunk(chunk); - sendBase("uploadChunk", args); - } - - public void recv_uploadChunk() throws org.apache.thrift.TException - { - uploadChunk_result result = new uploadChunk_result(); - receiveBase(result, "uploadChunk"); - return; - } - - public void finishFileUpload(String location) throws org.apache.thrift.TException - { - send_finishFileUpload(location); - recv_finishFileUpload(); - } - - public void send_finishFileUpload(String location) throws org.apache.thrift.TException - { - finishFileUpload_args args = new finishFileUpload_args(); - args.setLocation(location); - sendBase("finishFileUpload", args); - } - - public void recv_finishFileUpload() throws org.apache.thrift.TException - { - finishFileUpload_result result = new finishFileUpload_result(); - receiveBase(result, "finishFileUpload"); - return; - } - - public String beginFileDownload(String file) throws org.apache.thrift.TException - { - send_beginFileDownload(file); - return recv_beginFileDownload(); - } - - public void send_beginFileDownload(String file) throws org.apache.thrift.TException - { - beginFileDownload_args args = new beginFileDownload_args(); - args.setFile(file); - sendBase("beginFileDownload", args); - } - - public String recv_beginFileDownload() throws org.apache.thrift.TException - { - beginFileDownload_result result = new beginFileDownload_result(); - receiveBase(result, "beginFileDownload"); - if (result.isSetSuccess()) { - return result.success; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "beginFileDownload failed: unknown result"); - } - - public ByteBuffer downloadChunk(String id) throws org.apache.thrift.TException - { - send_downloadChunk(id); - return recv_downloadChunk(); - } - - public void send_downloadChunk(String id) throws org.apache.thrift.TException - { - downloadChunk_args args = new downloadChunk_args(); - args.setId(id); - sendBase("downloadChunk", args); - } - - public ByteBuffer recv_downloadChunk() throws org.apache.thrift.TException - { - downloadChunk_result result = new downloadChunk_result(); - receiveBase(result, "downloadChunk"); - if (result.isSetSuccess()) { - return result.success; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "downloadChunk failed: unknown result"); - } - - public String getNimbusConf() throws org.apache.thrift.TException - { - send_getNimbusConf(); - return recv_getNimbusConf(); - } - - public void send_getNimbusConf() throws org.apache.thrift.TException - { - getNimbusConf_args args = new getNimbusConf_args(); - sendBase("getNimbusConf", args); - } - - public String recv_getNimbusConf() throws org.apache.thrift.TException - { - getNimbusConf_result result = new getNimbusConf_result(); - receiveBase(result, "getNimbusConf"); - if (result.isSetSuccess()) { - return result.success; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getNimbusConf failed: unknown result"); - } - - public ClusterSummary getClusterInfo() throws org.apache.thrift.TException - { - send_getClusterInfo(); - return recv_getClusterInfo(); - } - - public void send_getClusterInfo() throws org.apache.thrift.TException - { - getClusterInfo_args args = new getClusterInfo_args(); - sendBase("getClusterInfo", args); - } - - public ClusterSummary recv_getClusterInfo() throws org.apache.thrift.TException - { - getClusterInfo_result result = new getClusterInfo_result(); - receiveBase(result, "getClusterInfo"); - if (result.isSetSuccess()) { - return result.success; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getClusterInfo failed: unknown result"); - } - - public TopologyInfo getTopologyInfo(String id) throws NotAliveException, org.apache.thrift.TException - { - send_getTopologyInfo(id); - return recv_getTopologyInfo(); - } - - public void send_getTopologyInfo(String id) throws org.apache.thrift.TException - { - getTopologyInfo_args args = new getTopologyInfo_args(); - args.setId(id); - sendBase("getTopologyInfo", args); - } - - public TopologyInfo recv_getTopologyInfo() throws NotAliveException, org.apache.thrift.TException - { - getTopologyInfo_result result = new getTopologyInfo_result(); - receiveBase(result, "getTopologyInfo"); - if (result.isSetSuccess()) { - return result.success; - } - if (result.e != null) { - throw result.e; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getTopologyInfo failed: unknown result"); - } - - public String getTopologyConf(String id) throws NotAliveException, org.apache.thrift.TException - { - send_getTopologyConf(id); - return recv_getTopologyConf(); - } - - public void send_getTopologyConf(String id) throws org.apache.thrift.TException - { - getTopologyConf_args args = new getTopologyConf_args(); - args.setId(id); - sendBase("getTopologyConf", args); - } - - public String recv_getTopologyConf() throws NotAliveException, org.apache.thrift.TException - { - getTopologyConf_result result = new getTopologyConf_result(); - receiveBase(result, "getTopologyConf"); - if (result.isSetSuccess()) { - return result.success; - } - if (result.e != null) { - throw result.e; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getTopologyConf failed: unknown result"); - } - - public StormTopology getTopology(String id) throws NotAliveException, org.apache.thrift.TException - { - send_getTopology(id); - return recv_getTopology(); - } - - public void send_getTopology(String id) throws org.apache.thrift.TException - { - getTopology_args args = new getTopology_args(); - args.setId(id); - sendBase("getTopology", args); - } - - public StormTopology recv_getTopology() throws NotAliveException, org.apache.thrift.TException - { - getTopology_result result = new getTopology_result(); - receiveBase(result, "getTopology"); - if (result.isSetSuccess()) { - return result.success; - } - if (result.e != null) { - throw result.e; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getTopology failed: unknown result"); - } - - public StormTopology getUserTopology(String id) throws NotAliveException, org.apache.thrift.TException - { - send_getUserTopology(id); - return recv_getUserTopology(); - } - - public void send_getUserTopology(String id) throws org.apache.thrift.TException - { - getUserTopology_args args = new getUserTopology_args(); - args.setId(id); - sendBase("getUserTopology", args); - } - - public StormTopology recv_getUserTopology() throws NotAliveException, org.apache.thrift.TException - { - getUserTopology_result result = new getUserTopology_result(); - receiveBase(result, "getUserTopology"); - if (result.isSetSuccess()) { - return result.success; - } - if (result.e != null) { - throw result.e; - } - throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserTopology failed: unknown result"); - } - - } - public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface { - public static class Factory implements org.apache.thrift.async.TAsyncClientFactory { - private org.apache.thrift.async.TAsyncClientManager clientManager; - private org.apache.thrift.protocol.TProtocolFactory protocolFactory; - public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) { - this.clientManager = clientManager; - this.protocolFactory = protocolFactory; - } - public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) { - return new AsyncClient(protocolFactory, clientManager, transport); - } - } - - public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) { - super(protocolFactory, clientManager, transport); - } - - public void submitTopology(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - submitTopology_call method_call = new submitTopology_call(name, uploadedJarLocation, jsonConf, topology, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class submitTopology_call extends org.apache.thrift.async.TAsyncMethodCall { - private String name; - private String uploadedJarLocation; - private String jsonConf; - private StormTopology topology; - public submitTopology_call(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.name = name; - this.uploadedJarLocation = uploadedJarLocation; - this.jsonConf = jsonConf; - this.topology = topology; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("submitTopology", org.apache.thrift.protocol.TMessageType.CALL, 0)); - submitTopology_args args = new submitTopology_args(); - args.setName(name); - args.setUploadedJarLocation(uploadedJarLocation); - args.setJsonConf(jsonConf); - args.setTopology(topology); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_submitTopology(); - } - } - - public void submitTopologyWithOpts(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - submitTopologyWithOpts_call method_call = new submitTopologyWithOpts_call(name, uploadedJarLocation, jsonConf, topology, options, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class submitTopologyWithOpts_call extends org.apache.thrift.async.TAsyncMethodCall { - private String name; - private String uploadedJarLocation; - private String jsonConf; - private StormTopology topology; - private SubmitOptions options; - public submitTopologyWithOpts_call(String name, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.name = name; - this.uploadedJarLocation = uploadedJarLocation; - this.jsonConf = jsonConf; - this.topology = topology; - this.options = options; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("submitTopologyWithOpts", org.apache.thrift.protocol.TMessageType.CALL, 0)); - submitTopologyWithOpts_args args = new submitTopologyWithOpts_args(); - args.setName(name); - args.setUploadedJarLocation(uploadedJarLocation); - args.setJsonConf(jsonConf); - args.setTopology(topology); - args.setOptions(options); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws AlreadyAliveException, InvalidTopologyException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_submitTopologyWithOpts(); - } - } - - public void killTopology(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - killTopology_call method_call = new killTopology_call(name, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class killTopology_call extends org.apache.thrift.async.TAsyncMethodCall { - private String name; - public killTopology_call(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.name = name; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("killTopology", org.apache.thrift.protocol.TMessageType.CALL, 0)); - killTopology_args args = new killTopology_args(); - args.setName(name); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_killTopology(); - } - } - - public void killTopologyWithOpts(String name, KillOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - killTopologyWithOpts_call method_call = new killTopologyWithOpts_call(name, options, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class killTopologyWithOpts_call extends org.apache.thrift.async.TAsyncMethodCall { - private String name; - private KillOptions options; - public killTopologyWithOpts_call(String name, KillOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.name = name; - this.options = options; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("killTopologyWithOpts", org.apache.thrift.protocol.TMessageType.CALL, 0)); - killTopologyWithOpts_args args = new killTopologyWithOpts_args(); - args.setName(name); - args.setOptions(options); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_killTopologyWithOpts(); - } - } - - public void activate(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - activate_call method_call = new activate_call(name, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class activate_call extends org.apache.thrift.async.TAsyncMethodCall { - private String name; - public activate_call(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.name = name; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("activate", org.apache.thrift.protocol.TMessageType.CALL, 0)); - activate_args args = new activate_args(); - args.setName(name); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_activate(); - } - } - - public void deactivate(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - deactivate_call method_call = new deactivate_call(name, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class deactivate_call extends org.apache.thrift.async.TAsyncMethodCall { - private String name; - public deactivate_call(String name, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.name = name; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deactivate", org.apache.thrift.protocol.TMessageType.CALL, 0)); - deactivate_args args = new deactivate_args(); - args.setName(name); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_deactivate(); - } - } - - public void rebalance(String name, RebalanceOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - rebalance_call method_call = new rebalance_call(name, options, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class rebalance_call extends org.apache.thrift.async.TAsyncMethodCall { - private String name; - private RebalanceOptions options; - public rebalance_call(String name, RebalanceOptions options, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.name = name; - this.options = options; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("rebalance", org.apache.thrift.protocol.TMessageType.CALL, 0)); - rebalance_args args = new rebalance_args(); - args.setName(name); - args.setOptions(options); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws NotAliveException, InvalidTopologyException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_rebalance(); - } - } - - public void beginFileUpload(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - beginFileUpload_call method_call = new beginFileUpload_call(resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class beginFileUpload_call extends org.apache.thrift.async.TAsyncMethodCall { - public beginFileUpload_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("beginFileUpload", org.apache.thrift.protocol.TMessageType.CALL, 0)); - beginFileUpload_args args = new beginFileUpload_args(); - args.write(prot); - prot.writeMessageEnd(); - } - - public String getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_beginFileUpload(); - } - } - - public void uploadChunk(String location, ByteBuffer chunk, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - uploadChunk_call method_call = new uploadChunk_call(location, chunk, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class uploadChunk_call extends org.apache.thrift.async.TAsyncMethodCall { - private String location; - private ByteBuffer chunk; - public uploadChunk_call(String location, ByteBuffer chunk, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.location = location; - this.chunk = chunk; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("uploadChunk", org.apache.thrift.protocol.TMessageType.CALL, 0)); - uploadChunk_args args = new uploadChunk_args(); - args.setLocation(location); - args.setChunk(chunk); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_uploadChunk(); - } - } - - public void finishFileUpload(String location, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - finishFileUpload_call method_call = new finishFileUpload_call(location, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class finishFileUpload_call extends org.apache.thrift.async.TAsyncMethodCall { - private String location; - public finishFileUpload_call(String location, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.location = location; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("finishFileUpload", org.apache.thrift.protocol.TMessageType.CALL, 0)); - finishFileUpload_args args = new finishFileUpload_args(); - args.setLocation(location); - args.write(prot); - prot.writeMessageEnd(); - } - - public void getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - (new Client(prot)).recv_finishFileUpload(); - } - } - - public void beginFileDownload(String file, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - beginFileDownload_call method_call = new beginFileDownload_call(file, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class beginFileDownload_call extends org.apache.thrift.async.TAsyncMethodCall { - private String file; - public beginFileDownload_call(String file, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.file = file; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("beginFileDownload", org.apache.thrift.protocol.TMessageType.CALL, 0)); - beginFileDownload_args args = new beginFileDownload_args(); - args.setFile(file); - args.write(prot); - prot.writeMessageEnd(); - } - - public String getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_beginFileDownload(); - } - } - - public void downloadChunk(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - downloadChunk_call method_call = new downloadChunk_call(id, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class downloadChunk_call extends org.apache.thrift.async.TAsyncMethodCall { - private String id; - public downloadChunk_call(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.id = id; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("downloadChunk", org.apache.thrift.protocol.TMessageType.CALL, 0)); - downloadChunk_args args = new downloadChunk_args(); - args.setId(id); - args.write(prot); - prot.writeMessageEnd(); - } - - public ByteBuffer getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_downloadChunk(); - } - } - - public void getNimbusConf(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - getNimbusConf_call method_call = new getNimbusConf_call(resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class getNimbusConf_call extends org.apache.thrift.async.TAsyncMethodCall { - public getNimbusConf_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getNimbusConf", org.apache.thrift.protocol.TMessageType.CALL, 0)); - getNimbusConf_args args = new getNimbusConf_args(); - args.write(prot); - prot.writeMessageEnd(); - } - - public String getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_getNimbusConf(); - } - } - - public void getClusterInfo(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - getClusterInfo_call method_call = new getClusterInfo_call(resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class getClusterInfo_call extends org.apache.thrift.async.TAsyncMethodCall { - public getClusterInfo_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getClusterInfo", org.apache.thrift.protocol.TMessageType.CALL, 0)); - getClusterInfo_args args = new getClusterInfo_args(); - args.write(prot); - prot.writeMessageEnd(); - } - - public ClusterSummary getResult() throws org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_getClusterInfo(); - } - } - - public void getTopologyInfo(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - getTopologyInfo_call method_call = new getTopologyInfo_call(id, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class getTopologyInfo_call extends org.apache.thrift.async.TAsyncMethodCall { - private String id; - public getTopologyInfo_call(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.id = id; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getTopologyInfo", org.apache.thrift.protocol.TMessageType.CALL, 0)); - getTopologyInfo_args args = new getTopologyInfo_args(); - args.setId(id); - args.write(prot); - prot.writeMessageEnd(); - } - - public TopologyInfo getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_getTopologyInfo(); - } - } - - public void getTopologyConf(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - getTopologyConf_call method_call = new getTopologyConf_call(id, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class getTopologyConf_call extends org.apache.thrift.async.TAsyncMethodCall { - private String id; - public getTopologyConf_call(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.id = id; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getTopologyConf", org.apache.thrift.protocol.TMessageType.CALL, 0)); - getTopologyConf_args args = new getTopologyConf_args(); - args.setId(id); - args.write(prot); - prot.writeMessageEnd(); - } - - public String getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_getTopologyConf(); - } - } - - public void getTopology(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - getTopology_call method_call = new getTopology_call(id, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class getTopology_call extends org.apache.thrift.async.TAsyncMethodCall { - private String id; - public getTopology_call(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.id = id; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getTopology", org.apache.thrift.protocol.TMessageType.CALL, 0)); - getTopology_args args = new getTopology_args(); - args.setId(id); - args.write(prot); - prot.writeMessageEnd(); - } - - public StormTopology getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_getTopology(); - } - } - - public void getUserTopology(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { - checkReady(); - getUserTopology_call method_call = new getUserTopology_call(id, resultHandler, this, ___protocolFactory, ___transport); - this.___currentMethod = method_call; - ___manager.call(method_call); - } - - public static class getUserTopology_call extends org.apache.thrift.async.TAsyncMethodCall { - private String id; - public getUserTopology_call(String id, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { - super(client, protocolFactory, transport, resultHandler, false); - this.id = id; - } - - public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { - prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserTopology", org.apache.thrift.protocol.TMessageType.CALL, 0)); - getUserTopology_args args = new getUserTopology_args(); - args.setId(id); - args.write(prot); - prot.writeMessageEnd(); - } - - public StormTopology getResult() throws NotAliveException, org.apache.thrift.TException { - if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { - throw new IllegalStateException("Method call not finished!"); - } - org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); - org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); - return (new Client(prot)).recv_getUserTopology(); - } - } - - } - - public static class Processor extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor { - private static final Logger LOGGER = LoggerFactory.getLogger(Processor.class.getName()); - public Processor(I iface) { - super(iface, getProcessMap(new HashMap>())); - } - - protected Processor(I iface, Map> processMap) { - super(iface, getProcessMap(processMap)); - } - - private static Map> getProcessMap(Map> processMap) { - processMap.put("submitTopology", new submitTopology()); - processMap.put("submitTopologyWithOpts", new submitTopologyWithOpts()); - processMap.put("killTopology", new killTopology()); - processMap.put("killTopologyWithOpts", new killTopologyWithOpts()); - processMap.put("activate", new activate()); - processMap.put("deactivate", new deactivate()); - processMap.put("rebalance", new rebalance()); - processMap.put("beginFileUpload", new beginFileUpload()); - processMap.put("uploadChunk", new uploadChunk()); - processMap.put("finishFileUpload", new finishFileUpload()); - processMap.put("beginFileDownload", new beginFileDownload()); - processMap.put("downloadChunk", new downloadChunk()); - processMap.put("getNimbusConf", new getNimbusConf()); - processMap.put("getClusterInfo", new getClusterInfo()); - processMap.put("getTopologyInfo", new getTopologyInfo()); - processMap.put("getTopologyConf", new getTopologyConf()); - processMap.put("getTopology", new getTopology()); - processMap.put("getUserTopology", new getUserTopology()); - return processMap; - } - - public static class submitTopology extends org.apache.thrift.ProcessFunction { - public submitTopology() { - super("submitTopology"); - } - - public submitTopology_args getEmptyArgsInstance() { - return new submitTopology_args(); - } - - protected boolean isOneway() { - return false; - } - - public submitTopology_result getResult(I iface, submitTopology_args args) throws org.apache.thrift.TException { - submitTopology_result result = new submitTopology_result(); - try { - iface.submitTopology(args.name, args.uploadedJarLocation, args.jsonConf, args.topology); - } catch (AlreadyAliveException e) { - result.e = e; - } catch (InvalidTopologyException ite) { - result.ite = ite; - } - return result; - } - } - - public static class submitTopologyWithOpts extends org.apache.thrift.ProcessFunction { - public submitTopologyWithOpts() { - super("submitTopologyWithOpts"); - } - - public submitTopologyWithOpts_args getEmptyArgsInstance() { - return new submitTopologyWithOpts_args(); - } - - protected boolean isOneway() { - return false; - } - - public submitTopologyWithOpts_result getResult(I iface, submitTopologyWithOpts_args args) throws org.apache.thrift.TException { - submitTopologyWithOpts_result result = new submitTopologyWithOpts_result(); - try { - iface.submitTopologyWithOpts(args.name, args.uploadedJarLocation, args.jsonConf, args.topology, args.options); - } catch (AlreadyAliveException e) { - result.e = e; - } catch (InvalidTopologyException ite) { - result.ite = ite; - } - return result; - } - } - - public static class killTopology extends org.apache.thrift.ProcessFunction { - public killTopology() { - super("killTopology"); - } - - public killTopology_args getEmptyArgsInstance() { - return new killTopology_args(); - } - - protected boolean isOneway() { - return false; - } - - public killTopology_result getResult(I iface, killTopology_args args) throws org.apache.thrift.TException { - killTopology_result result = new killTopology_result(); - try { - iface.killTopology(args.name); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - public static class killTopologyWithOpts extends org.apache.thrift.ProcessFunction { - public killTopologyWithOpts() { - super("killTopologyWithOpts"); - } - - public killTopologyWithOpts_args getEmptyArgsInstance() { - return new killTopologyWithOpts_args(); - } - - protected boolean isOneway() { - return false; - } - - public killTopologyWithOpts_result getResult(I iface, killTopologyWithOpts_args args) throws org.apache.thrift.TException { - killTopologyWithOpts_result result = new killTopologyWithOpts_result(); - try { - iface.killTopologyWithOpts(args.name, args.options); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - public static class activate extends org.apache.thrift.ProcessFunction { - public activate() { - super("activate"); - } - - public activate_args getEmptyArgsInstance() { - return new activate_args(); - } - - protected boolean isOneway() { - return false; - } - - public activate_result getResult(I iface, activate_args args) throws org.apache.thrift.TException { - activate_result result = new activate_result(); - try { - iface.activate(args.name); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - public static class deactivate extends org.apache.thrift.ProcessFunction { - public deactivate() { - super("deactivate"); - } - - public deactivate_args getEmptyArgsInstance() { - return new deactivate_args(); - } - - protected boolean isOneway() { - return false; - } - - public deactivate_result getResult(I iface, deactivate_args args) throws org.apache.thrift.TException { - deactivate_result result = new deactivate_result(); - try { - iface.deactivate(args.name); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - public static class rebalance extends org.apache.thrift.ProcessFunction { - public rebalance() { - super("rebalance"); - } - - public rebalance_args getEmptyArgsInstance() { - return new rebalance_args(); - } - - protected boolean isOneway() { - return false; - } - - public rebalance_result getResult(I iface, rebalance_args args) throws org.apache.thrift.TException { - rebalance_result result = new rebalance_result(); - try { - iface.rebalance(args.name, args.options); - } catch (NotAliveException e) { - result.e = e; - } catch (InvalidTopologyException ite) { - result.ite = ite; - } - return result; - } - } - - public static class beginFileUpload extends org.apache.thrift.ProcessFunction { - public beginFileUpload() { - super("beginFileUpload"); - } - - public beginFileUpload_args getEmptyArgsInstance() { - return new beginFileUpload_args(); - } - - protected boolean isOneway() { - return false; - } - - public beginFileUpload_result getResult(I iface, beginFileUpload_args args) throws org.apache.thrift.TException { - beginFileUpload_result result = new beginFileUpload_result(); - result.success = iface.beginFileUpload(); - return result; - } - } - - public static class uploadChunk extends org.apache.thrift.ProcessFunction { - public uploadChunk() { - super("uploadChunk"); - } - - public uploadChunk_args getEmptyArgsInstance() { - return new uploadChunk_args(); - } - - protected boolean isOneway() { - return false; - } - - public uploadChunk_result getResult(I iface, uploadChunk_args args) throws org.apache.thrift.TException { - uploadChunk_result result = new uploadChunk_result(); - iface.uploadChunk(args.location, args.chunk); - return result; - } - } - - public static class finishFileUpload extends org.apache.thrift.ProcessFunction { - public finishFileUpload() { - super("finishFileUpload"); - } - - public finishFileUpload_args getEmptyArgsInstance() { - return new finishFileUpload_args(); - } - - protected boolean isOneway() { - return false; - } - - public finishFileUpload_result getResult(I iface, finishFileUpload_args args) throws org.apache.thrift.TException { - finishFileUpload_result result = new finishFileUpload_result(); - iface.finishFileUpload(args.location); - return result; - } - } - - public static class beginFileDownload extends org.apache.thrift.ProcessFunction { - public beginFileDownload() { - super("beginFileDownload"); - } - - public beginFileDownload_args getEmptyArgsInstance() { - return new beginFileDownload_args(); - } - - protected boolean isOneway() { - return false; - } - - public beginFileDownload_result getResult(I iface, beginFileDownload_args args) throws org.apache.thrift.TException { - beginFileDownload_result result = new beginFileDownload_result(); - result.success = iface.beginFileDownload(args.file); - return result; - } - } - - public static class downloadChunk extends org.apache.thrift.ProcessFunction { - public downloadChunk() { - super("downloadChunk"); - } - - public downloadChunk_args getEmptyArgsInstance() { - return new downloadChunk_args(); - } - - protected boolean isOneway() { - return false; - } - - public downloadChunk_result getResult(I iface, downloadChunk_args args) throws org.apache.thrift.TException { - downloadChunk_result result = new downloadChunk_result(); - result.success = iface.downloadChunk(args.id); - return result; - } - } - - public static class getNimbusConf extends org.apache.thrift.ProcessFunction { - public getNimbusConf() { - super("getNimbusConf"); - } - - public getNimbusConf_args getEmptyArgsInstance() { - return new getNimbusConf_args(); - } - - protected boolean isOneway() { - return false; - } - - public getNimbusConf_result getResult(I iface, getNimbusConf_args args) throws org.apache.thrift.TException { - getNimbusConf_result result = new getNimbusConf_result(); - result.success = iface.getNimbusConf(); - return result; - } - } - - public static class getClusterInfo extends org.apache.thrift.ProcessFunction { - public getClusterInfo() { - super("getClusterInfo"); - } - - public getClusterInfo_args getEmptyArgsInstance() { - return new getClusterInfo_args(); - } - - protected boolean isOneway() { - return false; - } - - public getClusterInfo_result getResult(I iface, getClusterInfo_args args) throws org.apache.thrift.TException { - getClusterInfo_result result = new getClusterInfo_result(); - result.success = iface.getClusterInfo(); - return result; - } - } - - public static class getTopologyInfo extends org.apache.thrift.ProcessFunction { - public getTopologyInfo() { - super("getTopologyInfo"); - } - - public getTopologyInfo_args getEmptyArgsInstance() { - return new getTopologyInfo_args(); - } - - protected boolean isOneway() { - return false; - } - - public getTopologyInfo_result getResult(I iface, getTopologyInfo_args args) throws org.apache.thrift.TException { - getTopologyInfo_result result = new getTopologyInfo_result(); - try { - result.success = iface.getTopologyInfo(args.id); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - public static class getTopologyConf extends org.apache.thrift.ProcessFunction { - public getTopologyConf() { - super("getTopologyConf"); - } - - public getTopologyConf_args getEmptyArgsInstance() { - return new getTopologyConf_args(); - } - - protected boolean isOneway() { - return false; - } - - public getTopologyConf_result getResult(I iface, getTopologyConf_args args) throws org.apache.thrift.TException { - getTopologyConf_result result = new getTopologyConf_result(); - try { - result.success = iface.getTopologyConf(args.id); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - public static class getTopology extends org.apache.thrift.ProcessFunction { - public getTopology() { - super("getTopology"); - } - - public getTopology_args getEmptyArgsInstance() { - return new getTopology_args(); - } - - protected boolean isOneway() { - return false; - } - - public getTopology_result getResult(I iface, getTopology_args args) throws org.apache.thrift.TException { - getTopology_result result = new getTopology_result(); - try { - result.success = iface.getTopology(args.id); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - public static class getUserTopology extends org.apache.thrift.ProcessFunction { - public getUserTopology() { - super("getUserTopology"); - } - - public getUserTopology_args getEmptyArgsInstance() { - return new getUserTopology_args(); - } - - protected boolean isOneway() { - return false; - } - - public getUserTopology_result getResult(I iface, getUserTopology_args args) throws org.apache.thrift.TException { - getUserTopology_result result = new getUserTopology_result(); - try { - result.success = iface.getUserTopology(args.id); - } catch (NotAliveException e) { - result.e = e; - } - return result; - } - } - - } - - public static class submitTopology_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("submitTopology_args"); - - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField UPLOADED_JAR_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("uploadedJarLocation", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField JSON_CONF_FIELD_DESC = new org.apache.thrift.protocol.TField("jsonConf", org.apache.thrift.protocol.TType.STRING, (short)3); - private static final org.apache.thrift.protocol.TField TOPOLOGY_FIELD_DESC = new org.apache.thrift.protocol.TField("topology", org.apache.thrift.protocol.TType.STRUCT, (short)4); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new submitTopology_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new submitTopology_argsTupleSchemeFactory()); - } - - public String name; // required - public String uploadedJarLocation; // required - public String jsonConf; // required - public StormTopology topology; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - NAME((short)1, "name"), - UPLOADED_JAR_LOCATION((short)2, "uploadedJarLocation"), - JSON_CONF((short)3, "jsonConf"), - TOPOLOGY((short)4, "topology"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // NAME - return NAME; - case 2: // UPLOADED_JAR_LOCATION - return UPLOADED_JAR_LOCATION; - case 3: // JSON_CONF - return JSON_CONF; - case 4: // TOPOLOGY - return TOPOLOGY; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.UPLOADED_JAR_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("uploadedJarLocation", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.JSON_CONF, new org.apache.thrift.meta_data.FieldMetaData("jsonConf", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.TOPOLOGY, new org.apache.thrift.meta_data.FieldMetaData("topology", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StormTopology.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(submitTopology_args.class, metaDataMap); - } - - public submitTopology_args() { - } - - public submitTopology_args( - String name, - String uploadedJarLocation, - String jsonConf, - StormTopology topology) - { - this(); - this.name = name; - this.uploadedJarLocation = uploadedJarLocation; - this.jsonConf = jsonConf; - this.topology = topology; - } - - /** - * Performs a deep copy on other. - */ - public submitTopology_args(submitTopology_args other) { - if (other.isSetName()) { - this.name = other.name; - } - if (other.isSetUploadedJarLocation()) { - this.uploadedJarLocation = other.uploadedJarLocation; - } - if (other.isSetJsonConf()) { - this.jsonConf = other.jsonConf; - } - if (other.isSetTopology()) { - this.topology = new StormTopology(other.topology); - } - } - - public submitTopology_args deepCopy() { - return new submitTopology_args(this); - } - - @Override - public void clear() { - this.name = null; - this.uploadedJarLocation = null; - this.jsonConf = null; - this.topology = null; - } - - public String getName() { - return this.name; - } - - public submitTopology_args setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public String getUploadedJarLocation() { - return this.uploadedJarLocation; - } - - public submitTopology_args setUploadedJarLocation(String uploadedJarLocation) { - this.uploadedJarLocation = uploadedJarLocation; - return this; - } - - public void unsetUploadedJarLocation() { - this.uploadedJarLocation = null; - } - - /** Returns true if field uploadedJarLocation is set (has been assigned a value) and false otherwise */ - public boolean isSetUploadedJarLocation() { - return this.uploadedJarLocation != null; - } - - public void setUploadedJarLocationIsSet(boolean value) { - if (!value) { - this.uploadedJarLocation = null; - } - } - - public String getJsonConf() { - return this.jsonConf; - } - - public submitTopology_args setJsonConf(String jsonConf) { - this.jsonConf = jsonConf; - return this; - } - - public void unsetJsonConf() { - this.jsonConf = null; - } - - /** Returns true if field jsonConf is set (has been assigned a value) and false otherwise */ - public boolean isSetJsonConf() { - return this.jsonConf != null; - } - - public void setJsonConfIsSet(boolean value) { - if (!value) { - this.jsonConf = null; - } - } - - public StormTopology getTopology() { - return this.topology; - } - - public submitTopology_args setTopology(StormTopology topology) { - this.topology = topology; - return this; - } - - public void unsetTopology() { - this.topology = null; - } - - /** Returns true if field topology is set (has been assigned a value) and false otherwise */ - public boolean isSetTopology() { - return this.topology != null; - } - - public void setTopologyIsSet(boolean value) { - if (!value) { - this.topology = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - case UPLOADED_JAR_LOCATION: - if (value == null) { - unsetUploadedJarLocation(); - } else { - setUploadedJarLocation((String)value); - } - break; - - case JSON_CONF: - if (value == null) { - unsetJsonConf(); - } else { - setJsonConf((String)value); - } - break; - - case TOPOLOGY: - if (value == null) { - unsetTopology(); - } else { - setTopology((StormTopology)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case NAME: - return getName(); - - case UPLOADED_JAR_LOCATION: - return getUploadedJarLocation(); - - case JSON_CONF: - return getJsonConf(); - - case TOPOLOGY: - return getTopology(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case NAME: - return isSetName(); - case UPLOADED_JAR_LOCATION: - return isSetUploadedJarLocation(); - case JSON_CONF: - return isSetJsonConf(); - case TOPOLOGY: - return isSetTopology(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof submitTopology_args) - return this.equals((submitTopology_args)that); - return false; - } - - public boolean equals(submitTopology_args that) { - if (that == null) - return false; - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - boolean this_present_uploadedJarLocation = true && this.isSetUploadedJarLocation(); - boolean that_present_uploadedJarLocation = true && that.isSetUploadedJarLocation(); - if (this_present_uploadedJarLocation || that_present_uploadedJarLocation) { - if (!(this_present_uploadedJarLocation && that_present_uploadedJarLocation)) - return false; - if (!this.uploadedJarLocation.equals(that.uploadedJarLocation)) - return false; - } - - boolean this_present_jsonConf = true && this.isSetJsonConf(); - boolean that_present_jsonConf = true && that.isSetJsonConf(); - if (this_present_jsonConf || that_present_jsonConf) { - if (!(this_present_jsonConf && that_present_jsonConf)) - return false; - if (!this.jsonConf.equals(that.jsonConf)) - return false; - } - - boolean this_present_topology = true && this.isSetTopology(); - boolean that_present_topology = true && that.isSetTopology(); - if (this_present_topology || that_present_topology) { - if (!(this_present_topology && that_present_topology)) - return false; - if (!this.topology.equals(that.topology)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - boolean present_uploadedJarLocation = true && (isSetUploadedJarLocation()); - builder.append(present_uploadedJarLocation); - if (present_uploadedJarLocation) - builder.append(uploadedJarLocation); - - boolean present_jsonConf = true && (isSetJsonConf()); - builder.append(present_jsonConf); - if (present_jsonConf) - builder.append(jsonConf); - - boolean present_topology = true && (isSetTopology()); - builder.append(present_topology); - if (present_topology) - builder.append(topology); - - return builder.toHashCode(); - } - - public int compareTo(submitTopology_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - submitTopology_args typedOther = (submitTopology_args)other; - - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetUploadedJarLocation()).compareTo(typedOther.isSetUploadedJarLocation()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetUploadedJarLocation()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uploadedJarLocation, typedOther.uploadedJarLocation); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetJsonConf()).compareTo(typedOther.isSetJsonConf()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetJsonConf()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jsonConf, typedOther.jsonConf); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetTopology()).compareTo(typedOther.isSetTopology()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTopology()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.topology, typedOther.topology); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("submitTopology_args("); - boolean first = true; - - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - if (!first) sb.append(", "); - sb.append("uploadedJarLocation:"); - if (this.uploadedJarLocation == null) { - sb.append("null"); - } else { - sb.append(this.uploadedJarLocation); - } - first = false; - if (!first) sb.append(", "); - sb.append("jsonConf:"); - if (this.jsonConf == null) { - sb.append("null"); - } else { - sb.append(this.jsonConf); - } - first = false; - if (!first) sb.append(", "); - sb.append("topology:"); - if (this.topology == null) { - sb.append("null"); - } else { - sb.append(this.topology); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (topology != null) { - topology.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class submitTopology_argsStandardSchemeFactory implements SchemeFactory { - public submitTopology_argsStandardScheme getScheme() { - return new submitTopology_argsStandardScheme(); - } - } - - private static class submitTopology_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, submitTopology_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // UPLOADED_JAR_LOCATION - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.uploadedJarLocation = iprot.readString(); - struct.setUploadedJarLocationIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // JSON_CONF - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.jsonConf = iprot.readString(); - struct.setJsonConfIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // TOPOLOGY - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.topology = new StormTopology(); - struct.topology.read(iprot); - struct.setTopologyIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, submitTopology_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - if (struct.uploadedJarLocation != null) { - oprot.writeFieldBegin(UPLOADED_JAR_LOCATION_FIELD_DESC); - oprot.writeString(struct.uploadedJarLocation); - oprot.writeFieldEnd(); - } - if (struct.jsonConf != null) { - oprot.writeFieldBegin(JSON_CONF_FIELD_DESC); - oprot.writeString(struct.jsonConf); - oprot.writeFieldEnd(); - } - if (struct.topology != null) { - oprot.writeFieldBegin(TOPOLOGY_FIELD_DESC); - struct.topology.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class submitTopology_argsTupleSchemeFactory implements SchemeFactory { - public submitTopology_argsTupleScheme getScheme() { - return new submitTopology_argsTupleScheme(); - } - } - - private static class submitTopology_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, submitTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetName()) { - optionals.set(0); - } - if (struct.isSetUploadedJarLocation()) { - optionals.set(1); - } - if (struct.isSetJsonConf()) { - optionals.set(2); - } - if (struct.isSetTopology()) { - optionals.set(3); - } - oprot.writeBitSet(optionals, 4); - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - if (struct.isSetUploadedJarLocation()) { - oprot.writeString(struct.uploadedJarLocation); - } - if (struct.isSetJsonConf()) { - oprot.writeString(struct.jsonConf); - } - if (struct.isSetTopology()) { - struct.topology.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, submitTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(4); - if (incoming.get(0)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - if (incoming.get(1)) { - struct.uploadedJarLocation = iprot.readString(); - struct.setUploadedJarLocationIsSet(true); - } - if (incoming.get(2)) { - struct.jsonConf = iprot.readString(); - struct.setJsonConfIsSet(true); - } - if (incoming.get(3)) { - struct.topology = new StormTopology(); - struct.topology.read(iprot); - struct.setTopologyIsSet(true); - } - } - } - - } - - public static class submitTopology_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("submitTopology_result"); - - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField ITE_FIELD_DESC = new org.apache.thrift.protocol.TField("ite", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new submitTopology_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new submitTopology_resultTupleSchemeFactory()); - } - - public AlreadyAliveException e; // required - public InvalidTopologyException ite; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - E((short)1, "e"), - ITE((short)2, "ite"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // E - return E; - case 2: // ITE - return ITE; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - tmpMap.put(_Fields.ITE, new org.apache.thrift.meta_data.FieldMetaData("ite", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(submitTopology_result.class, metaDataMap); - } - - public submitTopology_result() { - } - - public submitTopology_result( - AlreadyAliveException e, - InvalidTopologyException ite) - { - this(); - this.e = e; - this.ite = ite; - } - - /** - * Performs a deep copy on other. - */ - public submitTopology_result(submitTopology_result other) { - if (other.isSetE()) { - this.e = new AlreadyAliveException(other.e); - } - if (other.isSetIte()) { - this.ite = new InvalidTopologyException(other.ite); - } - } - - public submitTopology_result deepCopy() { - return new submitTopology_result(this); - } - - @Override - public void clear() { - this.e = null; - this.ite = null; - } - - public AlreadyAliveException getE() { - return this.e; - } - - public submitTopology_result setE(AlreadyAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public InvalidTopologyException getIte() { - return this.ite; - } - - public submitTopology_result setIte(InvalidTopologyException ite) { - this.ite = ite; - return this; - } - - public void unsetIte() { - this.ite = null; - } - - /** Returns true if field ite is set (has been assigned a value) and false otherwise */ - public boolean isSetIte() { - return this.ite != null; - } - - public void setIteIsSet(boolean value) { - if (!value) { - this.ite = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case E: - if (value == null) { - unsetE(); - } else { - setE((AlreadyAliveException)value); - } - break; - - case ITE: - if (value == null) { - unsetIte(); - } else { - setIte((InvalidTopologyException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case E: - return getE(); - - case ITE: - return getIte(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case E: - return isSetE(); - case ITE: - return isSetIte(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof submitTopology_result) - return this.equals((submitTopology_result)that); - return false; - } - - public boolean equals(submitTopology_result that) { - if (that == null) - return false; - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - boolean this_present_ite = true && this.isSetIte(); - boolean that_present_ite = true && that.isSetIte(); - if (this_present_ite || that_present_ite) { - if (!(this_present_ite && that_present_ite)) - return false; - if (!this.ite.equals(that.ite)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - boolean present_ite = true && (isSetIte()); - builder.append(present_ite); - if (present_ite) - builder.append(ite); - - return builder.toHashCode(); - } - - public int compareTo(submitTopology_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - submitTopology_result typedOther = (submitTopology_result)other; - - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetIte()).compareTo(typedOther.isSetIte()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetIte()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ite, typedOther.ite); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("submitTopology_result("); - boolean first = true; - - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - if (!first) sb.append(", "); - sb.append("ite:"); - if (this.ite == null) { - sb.append("null"); - } else { - sb.append(this.ite); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class submitTopology_resultStandardSchemeFactory implements SchemeFactory { - public submitTopology_resultStandardScheme getScheme() { - return new submitTopology_resultStandardScheme(); - } - } - - private static class submitTopology_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, submitTopology_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new AlreadyAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // ITE - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.ite = new InvalidTopologyException(); - struct.ite.read(iprot); - struct.setIteIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, submitTopology_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.ite != null) { - oprot.writeFieldBegin(ITE_FIELD_DESC); - struct.ite.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class submitTopology_resultTupleSchemeFactory implements SchemeFactory { - public submitTopology_resultTupleScheme getScheme() { - return new submitTopology_resultTupleScheme(); - } - } - - private static class submitTopology_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, submitTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetE()) { - optionals.set(0); - } - if (struct.isSetIte()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetE()) { - struct.e.write(oprot); - } - if (struct.isSetIte()) { - struct.ite.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, submitTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.e = new AlreadyAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - if (incoming.get(1)) { - struct.ite = new InvalidTopologyException(); - struct.ite.read(iprot); - struct.setIteIsSet(true); - } - } - } - - } - - public static class submitTopologyWithOpts_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("submitTopologyWithOpts_args"); - - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField UPLOADED_JAR_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("uploadedJarLocation", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField JSON_CONF_FIELD_DESC = new org.apache.thrift.protocol.TField("jsonConf", org.apache.thrift.protocol.TType.STRING, (short)3); - private static final org.apache.thrift.protocol.TField TOPOLOGY_FIELD_DESC = new org.apache.thrift.protocol.TField("topology", org.apache.thrift.protocol.TType.STRUCT, (short)4); - private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.STRUCT, (short)5); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new submitTopologyWithOpts_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new submitTopologyWithOpts_argsTupleSchemeFactory()); - } - - public String name; // required - public String uploadedJarLocation; // required - public String jsonConf; // required - public StormTopology topology; // required - public SubmitOptions options; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - NAME((short)1, "name"), - UPLOADED_JAR_LOCATION((short)2, "uploadedJarLocation"), - JSON_CONF((short)3, "jsonConf"), - TOPOLOGY((short)4, "topology"), - OPTIONS((short)5, "options"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // NAME - return NAME; - case 2: // UPLOADED_JAR_LOCATION - return UPLOADED_JAR_LOCATION; - case 3: // JSON_CONF - return JSON_CONF; - case 4: // TOPOLOGY - return TOPOLOGY; - case 5: // OPTIONS - return OPTIONS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.UPLOADED_JAR_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("uploadedJarLocation", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.JSON_CONF, new org.apache.thrift.meta_data.FieldMetaData("jsonConf", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.TOPOLOGY, new org.apache.thrift.meta_data.FieldMetaData("topology", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StormTopology.class))); - tmpMap.put(_Fields.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SubmitOptions.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(submitTopologyWithOpts_args.class, metaDataMap); - } - - public submitTopologyWithOpts_args() { - } - - public submitTopologyWithOpts_args( - String name, - String uploadedJarLocation, - String jsonConf, - StormTopology topology, - SubmitOptions options) - { - this(); - this.name = name; - this.uploadedJarLocation = uploadedJarLocation; - this.jsonConf = jsonConf; - this.topology = topology; - this.options = options; - } - - /** - * Performs a deep copy on other. - */ - public submitTopologyWithOpts_args(submitTopologyWithOpts_args other) { - if (other.isSetName()) { - this.name = other.name; - } - if (other.isSetUploadedJarLocation()) { - this.uploadedJarLocation = other.uploadedJarLocation; - } - if (other.isSetJsonConf()) { - this.jsonConf = other.jsonConf; - } - if (other.isSetTopology()) { - this.topology = new StormTopology(other.topology); - } - if (other.isSetOptions()) { - this.options = new SubmitOptions(other.options); - } - } - - public submitTopologyWithOpts_args deepCopy() { - return new submitTopologyWithOpts_args(this); - } - - @Override - public void clear() { - this.name = null; - this.uploadedJarLocation = null; - this.jsonConf = null; - this.topology = null; - this.options = null; - } - - public String getName() { - return this.name; - } - - public submitTopologyWithOpts_args setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public String getUploadedJarLocation() { - return this.uploadedJarLocation; - } - - public submitTopologyWithOpts_args setUploadedJarLocation(String uploadedJarLocation) { - this.uploadedJarLocation = uploadedJarLocation; - return this; - } - - public void unsetUploadedJarLocation() { - this.uploadedJarLocation = null; - } - - /** Returns true if field uploadedJarLocation is set (has been assigned a value) and false otherwise */ - public boolean isSetUploadedJarLocation() { - return this.uploadedJarLocation != null; - } - - public void setUploadedJarLocationIsSet(boolean value) { - if (!value) { - this.uploadedJarLocation = null; - } - } - - public String getJsonConf() { - return this.jsonConf; - } - - public submitTopologyWithOpts_args setJsonConf(String jsonConf) { - this.jsonConf = jsonConf; - return this; - } - - public void unsetJsonConf() { - this.jsonConf = null; - } - - /** Returns true if field jsonConf is set (has been assigned a value) and false otherwise */ - public boolean isSetJsonConf() { - return this.jsonConf != null; - } - - public void setJsonConfIsSet(boolean value) { - if (!value) { - this.jsonConf = null; - } - } - - public StormTopology getTopology() { - return this.topology; - } - - public submitTopologyWithOpts_args setTopology(StormTopology topology) { - this.topology = topology; - return this; - } - - public void unsetTopology() { - this.topology = null; - } - - /** Returns true if field topology is set (has been assigned a value) and false otherwise */ - public boolean isSetTopology() { - return this.topology != null; - } - - public void setTopologyIsSet(boolean value) { - if (!value) { - this.topology = null; - } - } - - public SubmitOptions getOptions() { - return this.options; - } - - public submitTopologyWithOpts_args setOptions(SubmitOptions options) { - this.options = options; - return this; - } - - public void unsetOptions() { - this.options = null; - } - - /** Returns true if field options is set (has been assigned a value) and false otherwise */ - public boolean isSetOptions() { - return this.options != null; - } - - public void setOptionsIsSet(boolean value) { - if (!value) { - this.options = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - case UPLOADED_JAR_LOCATION: - if (value == null) { - unsetUploadedJarLocation(); - } else { - setUploadedJarLocation((String)value); - } - break; - - case JSON_CONF: - if (value == null) { - unsetJsonConf(); - } else { - setJsonConf((String)value); - } - break; - - case TOPOLOGY: - if (value == null) { - unsetTopology(); - } else { - setTopology((StormTopology)value); - } - break; - - case OPTIONS: - if (value == null) { - unsetOptions(); - } else { - setOptions((SubmitOptions)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case NAME: - return getName(); - - case UPLOADED_JAR_LOCATION: - return getUploadedJarLocation(); - - case JSON_CONF: - return getJsonConf(); - - case TOPOLOGY: - return getTopology(); - - case OPTIONS: - return getOptions(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case NAME: - return isSetName(); - case UPLOADED_JAR_LOCATION: - return isSetUploadedJarLocation(); - case JSON_CONF: - return isSetJsonConf(); - case TOPOLOGY: - return isSetTopology(); - case OPTIONS: - return isSetOptions(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof submitTopologyWithOpts_args) - return this.equals((submitTopologyWithOpts_args)that); - return false; - } - - public boolean equals(submitTopologyWithOpts_args that) { - if (that == null) - return false; - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - boolean this_present_uploadedJarLocation = true && this.isSetUploadedJarLocation(); - boolean that_present_uploadedJarLocation = true && that.isSetUploadedJarLocation(); - if (this_present_uploadedJarLocation || that_present_uploadedJarLocation) { - if (!(this_present_uploadedJarLocation && that_present_uploadedJarLocation)) - return false; - if (!this.uploadedJarLocation.equals(that.uploadedJarLocation)) - return false; - } - - boolean this_present_jsonConf = true && this.isSetJsonConf(); - boolean that_present_jsonConf = true && that.isSetJsonConf(); - if (this_present_jsonConf || that_present_jsonConf) { - if (!(this_present_jsonConf && that_present_jsonConf)) - return false; - if (!this.jsonConf.equals(that.jsonConf)) - return false; - } - - boolean this_present_topology = true && this.isSetTopology(); - boolean that_present_topology = true && that.isSetTopology(); - if (this_present_topology || that_present_topology) { - if (!(this_present_topology && that_present_topology)) - return false; - if (!this.topology.equals(that.topology)) - return false; - } - - boolean this_present_options = true && this.isSetOptions(); - boolean that_present_options = true && that.isSetOptions(); - if (this_present_options || that_present_options) { - if (!(this_present_options && that_present_options)) - return false; - if (!this.options.equals(that.options)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - boolean present_uploadedJarLocation = true && (isSetUploadedJarLocation()); - builder.append(present_uploadedJarLocation); - if (present_uploadedJarLocation) - builder.append(uploadedJarLocation); - - boolean present_jsonConf = true && (isSetJsonConf()); - builder.append(present_jsonConf); - if (present_jsonConf) - builder.append(jsonConf); - - boolean present_topology = true && (isSetTopology()); - builder.append(present_topology); - if (present_topology) - builder.append(topology); - - boolean present_options = true && (isSetOptions()); - builder.append(present_options); - if (present_options) - builder.append(options); - - return builder.toHashCode(); - } - - public int compareTo(submitTopologyWithOpts_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - submitTopologyWithOpts_args typedOther = (submitTopologyWithOpts_args)other; - - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetUploadedJarLocation()).compareTo(typedOther.isSetUploadedJarLocation()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetUploadedJarLocation()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uploadedJarLocation, typedOther.uploadedJarLocation); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetJsonConf()).compareTo(typedOther.isSetJsonConf()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetJsonConf()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jsonConf, typedOther.jsonConf); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetTopology()).compareTo(typedOther.isSetTopology()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetTopology()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.topology, typedOther.topology); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetOptions()).compareTo(typedOther.isSetOptions()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetOptions()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, typedOther.options); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("submitTopologyWithOpts_args("); - boolean first = true; - - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - if (!first) sb.append(", "); - sb.append("uploadedJarLocation:"); - if (this.uploadedJarLocation == null) { - sb.append("null"); - } else { - sb.append(this.uploadedJarLocation); - } - first = false; - if (!first) sb.append(", "); - sb.append("jsonConf:"); - if (this.jsonConf == null) { - sb.append("null"); - } else { - sb.append(this.jsonConf); - } - first = false; - if (!first) sb.append(", "); - sb.append("topology:"); - if (this.topology == null) { - sb.append("null"); - } else { - sb.append(this.topology); - } - first = false; - if (!first) sb.append(", "); - sb.append("options:"); - if (this.options == null) { - sb.append("null"); - } else { - sb.append(this.options); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (topology != null) { - topology.validate(); - } - if (options != null) { - options.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class submitTopologyWithOpts_argsStandardSchemeFactory implements SchemeFactory { - public submitTopologyWithOpts_argsStandardScheme getScheme() { - return new submitTopologyWithOpts_argsStandardScheme(); - } - } - - private static class submitTopologyWithOpts_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, submitTopologyWithOpts_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // UPLOADED_JAR_LOCATION - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.uploadedJarLocation = iprot.readString(); - struct.setUploadedJarLocationIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // JSON_CONF - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.jsonConf = iprot.readString(); - struct.setJsonConfIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // TOPOLOGY - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.topology = new StormTopology(); - struct.topology.read(iprot); - struct.setTopologyIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // OPTIONS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.options = new SubmitOptions(); - struct.options.read(iprot); - struct.setOptionsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, submitTopologyWithOpts_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - if (struct.uploadedJarLocation != null) { - oprot.writeFieldBegin(UPLOADED_JAR_LOCATION_FIELD_DESC); - oprot.writeString(struct.uploadedJarLocation); - oprot.writeFieldEnd(); - } - if (struct.jsonConf != null) { - oprot.writeFieldBegin(JSON_CONF_FIELD_DESC); - oprot.writeString(struct.jsonConf); - oprot.writeFieldEnd(); - } - if (struct.topology != null) { - oprot.writeFieldBegin(TOPOLOGY_FIELD_DESC); - struct.topology.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.options != null) { - oprot.writeFieldBegin(OPTIONS_FIELD_DESC); - struct.options.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class submitTopologyWithOpts_argsTupleSchemeFactory implements SchemeFactory { - public submitTopologyWithOpts_argsTupleScheme getScheme() { - return new submitTopologyWithOpts_argsTupleScheme(); - } - } - - private static class submitTopologyWithOpts_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, submitTopologyWithOpts_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetName()) { - optionals.set(0); - } - if (struct.isSetUploadedJarLocation()) { - optionals.set(1); - } - if (struct.isSetJsonConf()) { - optionals.set(2); - } - if (struct.isSetTopology()) { - optionals.set(3); - } - if (struct.isSetOptions()) { - optionals.set(4); - } - oprot.writeBitSet(optionals, 5); - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - if (struct.isSetUploadedJarLocation()) { - oprot.writeString(struct.uploadedJarLocation); - } - if (struct.isSetJsonConf()) { - oprot.writeString(struct.jsonConf); - } - if (struct.isSetTopology()) { - struct.topology.write(oprot); - } - if (struct.isSetOptions()) { - struct.options.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, submitTopologyWithOpts_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(5); - if (incoming.get(0)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - if (incoming.get(1)) { - struct.uploadedJarLocation = iprot.readString(); - struct.setUploadedJarLocationIsSet(true); - } - if (incoming.get(2)) { - struct.jsonConf = iprot.readString(); - struct.setJsonConfIsSet(true); - } - if (incoming.get(3)) { - struct.topology = new StormTopology(); - struct.topology.read(iprot); - struct.setTopologyIsSet(true); - } - if (incoming.get(4)) { - struct.options = new SubmitOptions(); - struct.options.read(iprot); - struct.setOptionsIsSet(true); - } - } - } - - } - - public static class submitTopologyWithOpts_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("submitTopologyWithOpts_result"); - - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField ITE_FIELD_DESC = new org.apache.thrift.protocol.TField("ite", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new submitTopologyWithOpts_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new submitTopologyWithOpts_resultTupleSchemeFactory()); - } - - public AlreadyAliveException e; // required - public InvalidTopologyException ite; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - E((short)1, "e"), - ITE((short)2, "ite"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // E - return E; - case 2: // ITE - return ITE; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - tmpMap.put(_Fields.ITE, new org.apache.thrift.meta_data.FieldMetaData("ite", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(submitTopologyWithOpts_result.class, metaDataMap); - } - - public submitTopologyWithOpts_result() { - } - - public submitTopologyWithOpts_result( - AlreadyAliveException e, - InvalidTopologyException ite) - { - this(); - this.e = e; - this.ite = ite; - } - - /** - * Performs a deep copy on other. - */ - public submitTopologyWithOpts_result(submitTopologyWithOpts_result other) { - if (other.isSetE()) { - this.e = new AlreadyAliveException(other.e); - } - if (other.isSetIte()) { - this.ite = new InvalidTopologyException(other.ite); - } - } - - public submitTopologyWithOpts_result deepCopy() { - return new submitTopologyWithOpts_result(this); - } - - @Override - public void clear() { - this.e = null; - this.ite = null; - } - - public AlreadyAliveException getE() { - return this.e; - } - - public submitTopologyWithOpts_result setE(AlreadyAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public InvalidTopologyException getIte() { - return this.ite; - } - - public submitTopologyWithOpts_result setIte(InvalidTopologyException ite) { - this.ite = ite; - return this; - } - - public void unsetIte() { - this.ite = null; - } - - /** Returns true if field ite is set (has been assigned a value) and false otherwise */ - public boolean isSetIte() { - return this.ite != null; - } - - public void setIteIsSet(boolean value) { - if (!value) { - this.ite = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case E: - if (value == null) { - unsetE(); - } else { - setE((AlreadyAliveException)value); - } - break; - - case ITE: - if (value == null) { - unsetIte(); - } else { - setIte((InvalidTopologyException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case E: - return getE(); - - case ITE: - return getIte(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case E: - return isSetE(); - case ITE: - return isSetIte(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof submitTopologyWithOpts_result) - return this.equals((submitTopologyWithOpts_result)that); - return false; - } - - public boolean equals(submitTopologyWithOpts_result that) { - if (that == null) - return false; - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - boolean this_present_ite = true && this.isSetIte(); - boolean that_present_ite = true && that.isSetIte(); - if (this_present_ite || that_present_ite) { - if (!(this_present_ite && that_present_ite)) - return false; - if (!this.ite.equals(that.ite)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - boolean present_ite = true && (isSetIte()); - builder.append(present_ite); - if (present_ite) - builder.append(ite); - - return builder.toHashCode(); - } - - public int compareTo(submitTopologyWithOpts_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - submitTopologyWithOpts_result typedOther = (submitTopologyWithOpts_result)other; - - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetIte()).compareTo(typedOther.isSetIte()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetIte()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ite, typedOther.ite); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("submitTopologyWithOpts_result("); - boolean first = true; - - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - if (!first) sb.append(", "); - sb.append("ite:"); - if (this.ite == null) { - sb.append("null"); - } else { - sb.append(this.ite); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class submitTopologyWithOpts_resultStandardSchemeFactory implements SchemeFactory { - public submitTopologyWithOpts_resultStandardScheme getScheme() { - return new submitTopologyWithOpts_resultStandardScheme(); - } - } - - private static class submitTopologyWithOpts_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, submitTopologyWithOpts_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new AlreadyAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // ITE - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.ite = new InvalidTopologyException(); - struct.ite.read(iprot); - struct.setIteIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, submitTopologyWithOpts_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.ite != null) { - oprot.writeFieldBegin(ITE_FIELD_DESC); - struct.ite.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class submitTopologyWithOpts_resultTupleSchemeFactory implements SchemeFactory { - public submitTopologyWithOpts_resultTupleScheme getScheme() { - return new submitTopologyWithOpts_resultTupleScheme(); - } - } - - private static class submitTopologyWithOpts_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, submitTopologyWithOpts_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetE()) { - optionals.set(0); - } - if (struct.isSetIte()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetE()) { - struct.e.write(oprot); - } - if (struct.isSetIte()) { - struct.ite.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, submitTopologyWithOpts_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.e = new AlreadyAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - if (incoming.get(1)) { - struct.ite = new InvalidTopologyException(); - struct.ite.read(iprot); - struct.setIteIsSet(true); - } - } - } - - } - - public static class killTopology_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("killTopology_args"); - - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new killTopology_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new killTopology_argsTupleSchemeFactory()); - } - - public String name; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - NAME((short)1, "name"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // NAME - return NAME; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(killTopology_args.class, metaDataMap); - } - - public killTopology_args() { - } - - public killTopology_args( - String name) - { - this(); - this.name = name; - } - - /** - * Performs a deep copy on other. - */ - public killTopology_args(killTopology_args other) { - if (other.isSetName()) { - this.name = other.name; - } - } - - public killTopology_args deepCopy() { - return new killTopology_args(this); - } - - @Override - public void clear() { - this.name = null; - } - - public String getName() { - return this.name; - } - - public killTopology_args setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case NAME: - return getName(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case NAME: - return isSetName(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof killTopology_args) - return this.equals((killTopology_args)that); - return false; - } - - public boolean equals(killTopology_args that) { - if (that == null) - return false; - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - return builder.toHashCode(); - } - - public int compareTo(killTopology_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - killTopology_args typedOther = (killTopology_args)other; - - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("killTopology_args("); - boolean first = true; - - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class killTopology_argsStandardSchemeFactory implements SchemeFactory { - public killTopology_argsStandardScheme getScheme() { - return new killTopology_argsStandardScheme(); - } - } - - private static class killTopology_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, killTopology_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, killTopology_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class killTopology_argsTupleSchemeFactory implements SchemeFactory { - public killTopology_argsTupleScheme getScheme() { - return new killTopology_argsTupleScheme(); - } - } - - private static class killTopology_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, killTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetName()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, killTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - } - } - - } - - public static class killTopology_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("killTopology_result"); - - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new killTopology_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new killTopology_resultTupleSchemeFactory()); - } - - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(killTopology_result.class, metaDataMap); - } - - public killTopology_result() { - } - - public killTopology_result( - NotAliveException e) - { - this(); - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public killTopology_result(killTopology_result other) { - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public killTopology_result deepCopy() { - return new killTopology_result(this); - } - - @Override - public void clear() { - this.e = null; - } - - public NotAliveException getE() { - return this.e; - } - - public killTopology_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof killTopology_result) - return this.equals((killTopology_result)that); - return false; - } - - public boolean equals(killTopology_result that) { - if (that == null) - return false; - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(killTopology_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - killTopology_result typedOther = (killTopology_result)other; - - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("killTopology_result("); - boolean first = true; - - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class killTopology_resultStandardSchemeFactory implements SchemeFactory { - public killTopology_resultStandardScheme getScheme() { - return new killTopology_resultStandardScheme(); - } - } - - private static class killTopology_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, killTopology_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, killTopology_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class killTopology_resultTupleSchemeFactory implements SchemeFactory { - public killTopology_resultTupleScheme getScheme() { - return new killTopology_resultTupleScheme(); - } - } - - private static class killTopology_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, killTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetE()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, killTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - - public static class killTopologyWithOpts_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("killTopologyWithOpts_args"); - - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new killTopologyWithOpts_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new killTopologyWithOpts_argsTupleSchemeFactory()); - } - - public String name; // required - public KillOptions options; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - NAME((short)1, "name"), - OPTIONS((short)2, "options"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // NAME - return NAME; - case 2: // OPTIONS - return OPTIONS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, KillOptions.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(killTopologyWithOpts_args.class, metaDataMap); - } - - public killTopologyWithOpts_args() { - } - - public killTopologyWithOpts_args( - String name, - KillOptions options) - { - this(); - this.name = name; - this.options = options; - } - - /** - * Performs a deep copy on other. - */ - public killTopologyWithOpts_args(killTopologyWithOpts_args other) { - if (other.isSetName()) { - this.name = other.name; - } - if (other.isSetOptions()) { - this.options = new KillOptions(other.options); - } - } - - public killTopologyWithOpts_args deepCopy() { - return new killTopologyWithOpts_args(this); - } - - @Override - public void clear() { - this.name = null; - this.options = null; - } - - public String getName() { - return this.name; - } - - public killTopologyWithOpts_args setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public KillOptions getOptions() { - return this.options; - } - - public killTopologyWithOpts_args setOptions(KillOptions options) { - this.options = options; - return this; - } - - public void unsetOptions() { - this.options = null; - } - - /** Returns true if field options is set (has been assigned a value) and false otherwise */ - public boolean isSetOptions() { - return this.options != null; - } - - public void setOptionsIsSet(boolean value) { - if (!value) { - this.options = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - case OPTIONS: - if (value == null) { - unsetOptions(); - } else { - setOptions((KillOptions)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case NAME: - return getName(); - - case OPTIONS: - return getOptions(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case NAME: - return isSetName(); - case OPTIONS: - return isSetOptions(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof killTopologyWithOpts_args) - return this.equals((killTopologyWithOpts_args)that); - return false; - } - - public boolean equals(killTopologyWithOpts_args that) { - if (that == null) - return false; - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - boolean this_present_options = true && this.isSetOptions(); - boolean that_present_options = true && that.isSetOptions(); - if (this_present_options || that_present_options) { - if (!(this_present_options && that_present_options)) - return false; - if (!this.options.equals(that.options)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - boolean present_options = true && (isSetOptions()); - builder.append(present_options); - if (present_options) - builder.append(options); - - return builder.toHashCode(); - } - - public int compareTo(killTopologyWithOpts_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - killTopologyWithOpts_args typedOther = (killTopologyWithOpts_args)other; - - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetOptions()).compareTo(typedOther.isSetOptions()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetOptions()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, typedOther.options); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("killTopologyWithOpts_args("); - boolean first = true; - - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - if (!first) sb.append(", "); - sb.append("options:"); - if (this.options == null) { - sb.append("null"); - } else { - sb.append(this.options); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (options != null) { - options.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class killTopologyWithOpts_argsStandardSchemeFactory implements SchemeFactory { - public killTopologyWithOpts_argsStandardScheme getScheme() { - return new killTopologyWithOpts_argsStandardScheme(); - } - } - - private static class killTopologyWithOpts_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, killTopologyWithOpts_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // OPTIONS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.options = new KillOptions(); - struct.options.read(iprot); - struct.setOptionsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, killTopologyWithOpts_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - if (struct.options != null) { - oprot.writeFieldBegin(OPTIONS_FIELD_DESC); - struct.options.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class killTopologyWithOpts_argsTupleSchemeFactory implements SchemeFactory { - public killTopologyWithOpts_argsTupleScheme getScheme() { - return new killTopologyWithOpts_argsTupleScheme(); - } - } - - private static class killTopologyWithOpts_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, killTopologyWithOpts_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetName()) { - optionals.set(0); - } - if (struct.isSetOptions()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - if (struct.isSetOptions()) { - struct.options.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, killTopologyWithOpts_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - if (incoming.get(1)) { - struct.options = new KillOptions(); - struct.options.read(iprot); - struct.setOptionsIsSet(true); - } - } - } - - } - - public static class killTopologyWithOpts_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("killTopologyWithOpts_result"); - - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new killTopologyWithOpts_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new killTopologyWithOpts_resultTupleSchemeFactory()); - } - - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(killTopologyWithOpts_result.class, metaDataMap); - } - - public killTopologyWithOpts_result() { - } - - public killTopologyWithOpts_result( - NotAliveException e) - { - this(); - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public killTopologyWithOpts_result(killTopologyWithOpts_result other) { - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public killTopologyWithOpts_result deepCopy() { - return new killTopologyWithOpts_result(this); - } - - @Override - public void clear() { - this.e = null; - } - - public NotAliveException getE() { - return this.e; - } - - public killTopologyWithOpts_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof killTopologyWithOpts_result) - return this.equals((killTopologyWithOpts_result)that); - return false; - } - - public boolean equals(killTopologyWithOpts_result that) { - if (that == null) - return false; - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(killTopologyWithOpts_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - killTopologyWithOpts_result typedOther = (killTopologyWithOpts_result)other; - - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("killTopologyWithOpts_result("); - boolean first = true; - - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class killTopologyWithOpts_resultStandardSchemeFactory implements SchemeFactory { - public killTopologyWithOpts_resultStandardScheme getScheme() { - return new killTopologyWithOpts_resultStandardScheme(); - } - } - - private static class killTopologyWithOpts_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, killTopologyWithOpts_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, killTopologyWithOpts_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class killTopologyWithOpts_resultTupleSchemeFactory implements SchemeFactory { - public killTopologyWithOpts_resultTupleScheme getScheme() { - return new killTopologyWithOpts_resultTupleScheme(); - } - } - - private static class killTopologyWithOpts_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, killTopologyWithOpts_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetE()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, killTopologyWithOpts_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - - public static class activate_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("activate_args"); - - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new activate_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new activate_argsTupleSchemeFactory()); - } - - public String name; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - NAME((short)1, "name"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // NAME - return NAME; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(activate_args.class, metaDataMap); - } - - public activate_args() { - } - - public activate_args( - String name) - { - this(); - this.name = name; - } - - /** - * Performs a deep copy on other. - */ - public activate_args(activate_args other) { - if (other.isSetName()) { - this.name = other.name; - } - } - - public activate_args deepCopy() { - return new activate_args(this); - } - - @Override - public void clear() { - this.name = null; - } - - public String getName() { - return this.name; - } - - public activate_args setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case NAME: - return getName(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case NAME: - return isSetName(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof activate_args) - return this.equals((activate_args)that); - return false; - } - - public boolean equals(activate_args that) { - if (that == null) - return false; - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - return builder.toHashCode(); - } - - public int compareTo(activate_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - activate_args typedOther = (activate_args)other; - - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("activate_args("); - boolean first = true; - - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class activate_argsStandardSchemeFactory implements SchemeFactory { - public activate_argsStandardScheme getScheme() { - return new activate_argsStandardScheme(); - } - } - - private static class activate_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, activate_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, activate_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class activate_argsTupleSchemeFactory implements SchemeFactory { - public activate_argsTupleScheme getScheme() { - return new activate_argsTupleScheme(); - } - } - - private static class activate_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, activate_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetName()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, activate_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - } - } - - } - - public static class activate_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("activate_result"); - - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new activate_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new activate_resultTupleSchemeFactory()); - } - - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(activate_result.class, metaDataMap); - } - - public activate_result() { - } - - public activate_result( - NotAliveException e) - { - this(); - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public activate_result(activate_result other) { - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public activate_result deepCopy() { - return new activate_result(this); - } - - @Override - public void clear() { - this.e = null; - } - - public NotAliveException getE() { - return this.e; - } - - public activate_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof activate_result) - return this.equals((activate_result)that); - return false; - } - - public boolean equals(activate_result that) { - if (that == null) - return false; - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(activate_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - activate_result typedOther = (activate_result)other; - - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("activate_result("); - boolean first = true; - - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class activate_resultStandardSchemeFactory implements SchemeFactory { - public activate_resultStandardScheme getScheme() { - return new activate_resultStandardScheme(); - } - } - - private static class activate_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, activate_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, activate_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class activate_resultTupleSchemeFactory implements SchemeFactory { - public activate_resultTupleScheme getScheme() { - return new activate_resultTupleScheme(); - } - } - - private static class activate_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, activate_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetE()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, activate_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - - public static class deactivate_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deactivate_args"); - - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new deactivate_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new deactivate_argsTupleSchemeFactory()); - } - - public String name; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - NAME((short)1, "name"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // NAME - return NAME; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deactivate_args.class, metaDataMap); - } - - public deactivate_args() { - } - - public deactivate_args( - String name) - { - this(); - this.name = name; - } - - /** - * Performs a deep copy on other. - */ - public deactivate_args(deactivate_args other) { - if (other.isSetName()) { - this.name = other.name; - } - } - - public deactivate_args deepCopy() { - return new deactivate_args(this); - } - - @Override - public void clear() { - this.name = null; - } - - public String getName() { - return this.name; - } - - public deactivate_args setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case NAME: - return getName(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case NAME: - return isSetName(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof deactivate_args) - return this.equals((deactivate_args)that); - return false; - } - - public boolean equals(deactivate_args that) { - if (that == null) - return false; - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - return builder.toHashCode(); - } - - public int compareTo(deactivate_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - deactivate_args typedOther = (deactivate_args)other; - - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("deactivate_args("); - boolean first = true; - - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class deactivate_argsStandardSchemeFactory implements SchemeFactory { - public deactivate_argsStandardScheme getScheme() { - return new deactivate_argsStandardScheme(); - } - } - - private static class deactivate_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, deactivate_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, deactivate_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class deactivate_argsTupleSchemeFactory implements SchemeFactory { - public deactivate_argsTupleScheme getScheme() { - return new deactivate_argsTupleScheme(); - } - } - - private static class deactivate_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, deactivate_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetName()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, deactivate_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - } - } - - } - - public static class deactivate_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deactivate_result"); - - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new deactivate_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new deactivate_resultTupleSchemeFactory()); - } - - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deactivate_result.class, metaDataMap); - } - - public deactivate_result() { - } - - public deactivate_result( - NotAliveException e) - { - this(); - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public deactivate_result(deactivate_result other) { - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public deactivate_result deepCopy() { - return new deactivate_result(this); - } - - @Override - public void clear() { - this.e = null; - } - - public NotAliveException getE() { - return this.e; - } - - public deactivate_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof deactivate_result) - return this.equals((deactivate_result)that); - return false; - } - - public boolean equals(deactivate_result that) { - if (that == null) - return false; - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(deactivate_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - deactivate_result typedOther = (deactivate_result)other; - - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("deactivate_result("); - boolean first = true; - - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class deactivate_resultStandardSchemeFactory implements SchemeFactory { - public deactivate_resultStandardScheme getScheme() { - return new deactivate_resultStandardScheme(); - } - } - - private static class deactivate_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, deactivate_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, deactivate_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class deactivate_resultTupleSchemeFactory implements SchemeFactory { - public deactivate_resultTupleScheme getScheme() { - return new deactivate_resultTupleScheme(); - } - } - - private static class deactivate_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, deactivate_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetE()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, deactivate_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - - public static class rebalance_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("rebalance_args"); - - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("options", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new rebalance_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new rebalance_argsTupleSchemeFactory()); - } - - public String name; // required - public RebalanceOptions options; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - NAME((short)1, "name"), - OPTIONS((short)2, "options"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // NAME - return NAME; - case 2: // OPTIONS - return OPTIONS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.OPTIONS, new org.apache.thrift.meta_data.FieldMetaData("options", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RebalanceOptions.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(rebalance_args.class, metaDataMap); - } - - public rebalance_args() { - } - - public rebalance_args( - String name, - RebalanceOptions options) - { - this(); - this.name = name; - this.options = options; - } - - /** - * Performs a deep copy on other. - */ - public rebalance_args(rebalance_args other) { - if (other.isSetName()) { - this.name = other.name; - } - if (other.isSetOptions()) { - this.options = new RebalanceOptions(other.options); - } - } - - public rebalance_args deepCopy() { - return new rebalance_args(this); - } - - @Override - public void clear() { - this.name = null; - this.options = null; - } - - public String getName() { - return this.name; - } - - public rebalance_args setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public RebalanceOptions getOptions() { - return this.options; - } - - public rebalance_args setOptions(RebalanceOptions options) { - this.options = options; - return this; - } - - public void unsetOptions() { - this.options = null; - } - - /** Returns true if field options is set (has been assigned a value) and false otherwise */ - public boolean isSetOptions() { - return this.options != null; - } - - public void setOptionsIsSet(boolean value) { - if (!value) { - this.options = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - case OPTIONS: - if (value == null) { - unsetOptions(); - } else { - setOptions((RebalanceOptions)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case NAME: - return getName(); - - case OPTIONS: - return getOptions(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case NAME: - return isSetName(); - case OPTIONS: - return isSetOptions(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof rebalance_args) - return this.equals((rebalance_args)that); - return false; - } - - public boolean equals(rebalance_args that) { - if (that == null) - return false; - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - boolean this_present_options = true && this.isSetOptions(); - boolean that_present_options = true && that.isSetOptions(); - if (this_present_options || that_present_options) { - if (!(this_present_options && that_present_options)) - return false; - if (!this.options.equals(that.options)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - boolean present_options = true && (isSetOptions()); - builder.append(present_options); - if (present_options) - builder.append(options); - - return builder.toHashCode(); - } - - public int compareTo(rebalance_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - rebalance_args typedOther = (rebalance_args)other; - - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetOptions()).compareTo(typedOther.isSetOptions()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetOptions()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.options, typedOther.options); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("rebalance_args("); - boolean first = true; - - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - if (!first) sb.append(", "); - sb.append("options:"); - if (this.options == null) { - sb.append("null"); - } else { - sb.append(this.options); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (options != null) { - options.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class rebalance_argsStandardSchemeFactory implements SchemeFactory { - public rebalance_argsStandardScheme getScheme() { - return new rebalance_argsStandardScheme(); - } - } - - private static class rebalance_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, rebalance_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // OPTIONS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.options = new RebalanceOptions(); - struct.options.read(iprot); - struct.setOptionsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, rebalance_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - if (struct.options != null) { - oprot.writeFieldBegin(OPTIONS_FIELD_DESC); - struct.options.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class rebalance_argsTupleSchemeFactory implements SchemeFactory { - public rebalance_argsTupleScheme getScheme() { - return new rebalance_argsTupleScheme(); - } - } - - private static class rebalance_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, rebalance_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetName()) { - optionals.set(0); - } - if (struct.isSetOptions()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetName()) { - oprot.writeString(struct.name); - } - if (struct.isSetOptions()) { - struct.options.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, rebalance_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } - if (incoming.get(1)) { - struct.options = new RebalanceOptions(); - struct.options.read(iprot); - struct.setOptionsIsSet(true); - } - } - } - - } - - public static class rebalance_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("rebalance_result"); - - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField ITE_FIELD_DESC = new org.apache.thrift.protocol.TField("ite", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new rebalance_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new rebalance_resultTupleSchemeFactory()); - } - - public NotAliveException e; // required - public InvalidTopologyException ite; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - E((short)1, "e"), - ITE((short)2, "ite"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // E - return E; - case 2: // ITE - return ITE; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - tmpMap.put(_Fields.ITE, new org.apache.thrift.meta_data.FieldMetaData("ite", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(rebalance_result.class, metaDataMap); - } - - public rebalance_result() { - } - - public rebalance_result( - NotAliveException e, - InvalidTopologyException ite) - { - this(); - this.e = e; - this.ite = ite; - } - - /** - * Performs a deep copy on other. - */ - public rebalance_result(rebalance_result other) { - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - if (other.isSetIte()) { - this.ite = new InvalidTopologyException(other.ite); - } - } - - public rebalance_result deepCopy() { - return new rebalance_result(this); - } - - @Override - public void clear() { - this.e = null; - this.ite = null; - } - - public NotAliveException getE() { - return this.e; - } - - public rebalance_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public InvalidTopologyException getIte() { - return this.ite; - } - - public rebalance_result setIte(InvalidTopologyException ite) { - this.ite = ite; - return this; - } - - public void unsetIte() { - this.ite = null; - } - - /** Returns true if field ite is set (has been assigned a value) and false otherwise */ - public boolean isSetIte() { - return this.ite != null; - } - - public void setIteIsSet(boolean value) { - if (!value) { - this.ite = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - case ITE: - if (value == null) { - unsetIte(); - } else { - setIte((InvalidTopologyException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case E: - return getE(); - - case ITE: - return getIte(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case E: - return isSetE(); - case ITE: - return isSetIte(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof rebalance_result) - return this.equals((rebalance_result)that); - return false; - } - - public boolean equals(rebalance_result that) { - if (that == null) - return false; - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - boolean this_present_ite = true && this.isSetIte(); - boolean that_present_ite = true && that.isSetIte(); - if (this_present_ite || that_present_ite) { - if (!(this_present_ite && that_present_ite)) - return false; - if (!this.ite.equals(that.ite)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - boolean present_ite = true && (isSetIte()); - builder.append(present_ite); - if (present_ite) - builder.append(ite); - - return builder.toHashCode(); - } - - public int compareTo(rebalance_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - rebalance_result typedOther = (rebalance_result)other; - - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetIte()).compareTo(typedOther.isSetIte()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetIte()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ite, typedOther.ite); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("rebalance_result("); - boolean first = true; - - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - if (!first) sb.append(", "); - sb.append("ite:"); - if (this.ite == null) { - sb.append("null"); - } else { - sb.append(this.ite); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class rebalance_resultStandardSchemeFactory implements SchemeFactory { - public rebalance_resultStandardScheme getScheme() { - return new rebalance_resultStandardScheme(); - } - } - - private static class rebalance_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, rebalance_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // ITE - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.ite = new InvalidTopologyException(); - struct.ite.read(iprot); - struct.setIteIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, rebalance_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.ite != null) { - oprot.writeFieldBegin(ITE_FIELD_DESC); - struct.ite.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class rebalance_resultTupleSchemeFactory implements SchemeFactory { - public rebalance_resultTupleScheme getScheme() { - return new rebalance_resultTupleScheme(); - } - } - - private static class rebalance_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, rebalance_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetE()) { - optionals.set(0); - } - if (struct.isSetIte()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetE()) { - struct.e.write(oprot); - } - if (struct.isSetIte()) { - struct.ite.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, rebalance_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - if (incoming.get(1)) { - struct.ite = new InvalidTopologyException(); - struct.ite.read(iprot); - struct.setIteIsSet(true); - } - } - } - - } - - public static class beginFileUpload_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("beginFileUpload_args"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new beginFileUpload_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new beginFileUpload_argsTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(beginFileUpload_args.class, metaDataMap); - } - - public beginFileUpload_args() { - } - - /** - * Performs a deep copy on other. - */ - public beginFileUpload_args(beginFileUpload_args other) { - } - - public beginFileUpload_args deepCopy() { - return new beginFileUpload_args(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof beginFileUpload_args) - return this.equals((beginFileUpload_args)that); - return false; - } - - public boolean equals(beginFileUpload_args that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(beginFileUpload_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - beginFileUpload_args typedOther = (beginFileUpload_args)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("beginFileUpload_args("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class beginFileUpload_argsStandardSchemeFactory implements SchemeFactory { - public beginFileUpload_argsStandardScheme getScheme() { - return new beginFileUpload_argsStandardScheme(); - } - } - - private static class beginFileUpload_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, beginFileUpload_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, beginFileUpload_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class beginFileUpload_argsTupleSchemeFactory implements SchemeFactory { - public beginFileUpload_argsTupleScheme getScheme() { - return new beginFileUpload_argsTupleScheme(); - } - } - - private static class beginFileUpload_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, beginFileUpload_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, beginFileUpload_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - - } - - public static class beginFileUpload_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("beginFileUpload_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new beginFileUpload_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new beginFileUpload_resultTupleSchemeFactory()); - } - - public String success; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(beginFileUpload_result.class, metaDataMap); - } - - public beginFileUpload_result() { - } - - public beginFileUpload_result( - String success) - { - this(); - this.success = success; - } - - /** - * Performs a deep copy on other. - */ - public beginFileUpload_result(beginFileUpload_result other) { - if (other.isSetSuccess()) { - this.success = other.success; - } - } - - public beginFileUpload_result deepCopy() { - return new beginFileUpload_result(this); - } - - @Override - public void clear() { - this.success = null; - } - - public String getSuccess() { - return this.success; - } - - public beginFileUpload_result setSuccess(String success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof beginFileUpload_result) - return this.equals((beginFileUpload_result)that); - return false; - } - - public boolean equals(beginFileUpload_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - return builder.toHashCode(); - } - - public int compareTo(beginFileUpload_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - beginFileUpload_result typedOther = (beginFileUpload_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("beginFileUpload_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class beginFileUpload_resultStandardSchemeFactory implements SchemeFactory { - public beginFileUpload_resultStandardScheme getScheme() { - return new beginFileUpload_resultStandardScheme(); - } - } - - private static class beginFileUpload_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, beginFileUpload_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, beginFileUpload_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - oprot.writeString(struct.success); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class beginFileUpload_resultTupleSchemeFactory implements SchemeFactory { - public beginFileUpload_resultTupleScheme getScheme() { - return new beginFileUpload_resultTupleScheme(); - } - } - - private static class beginFileUpload_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, beginFileUpload_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetSuccess()) { - oprot.writeString(struct.success); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, beginFileUpload_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } - } - } - - } - - public static class uploadChunk_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("uploadChunk_args"); - - private static final org.apache.thrift.protocol.TField LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("location", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField CHUNK_FIELD_DESC = new org.apache.thrift.protocol.TField("chunk", org.apache.thrift.protocol.TType.STRING, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new uploadChunk_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new uploadChunk_argsTupleSchemeFactory()); - } - - public String location; // required - public ByteBuffer chunk; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - LOCATION((short)1, "location"), - CHUNK((short)2, "chunk"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // LOCATION - return LOCATION; - case 2: // CHUNK - return CHUNK; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.LOCATION, new org.apache.thrift.meta_data.FieldMetaData("location", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.CHUNK, new org.apache.thrift.meta_data.FieldMetaData("chunk", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(uploadChunk_args.class, metaDataMap); - } - - public uploadChunk_args() { - } - - public uploadChunk_args( - String location, - ByteBuffer chunk) - { - this(); - this.location = location; - this.chunk = chunk; - } - - /** - * Performs a deep copy on other. - */ - public uploadChunk_args(uploadChunk_args other) { - if (other.isSetLocation()) { - this.location = other.location; - } - if (other.isSetChunk()) { - this.chunk = org.apache.thrift.TBaseHelper.copyBinary(other.chunk); -; - } - } - - public uploadChunk_args deepCopy() { - return new uploadChunk_args(this); - } - - @Override - public void clear() { - this.location = null; - this.chunk = null; - } - - public String getLocation() { - return this.location; - } - - public uploadChunk_args setLocation(String location) { - this.location = location; - return this; - } - - public void unsetLocation() { - this.location = null; - } - - /** Returns true if field location is set (has been assigned a value) and false otherwise */ - public boolean isSetLocation() { - return this.location != null; - } - - public void setLocationIsSet(boolean value) { - if (!value) { - this.location = null; - } - } - - public byte[] getChunk() { - setChunk(org.apache.thrift.TBaseHelper.rightSize(chunk)); - return chunk == null ? null : chunk.array(); - } - - public ByteBuffer bufferForChunk() { - return chunk; - } - - public uploadChunk_args setChunk(byte[] chunk) { - setChunk(chunk == null ? (ByteBuffer)null : ByteBuffer.wrap(chunk)); - return this; - } - - public uploadChunk_args setChunk(ByteBuffer chunk) { - this.chunk = chunk; - return this; - } - - public void unsetChunk() { - this.chunk = null; - } - - /** Returns true if field chunk is set (has been assigned a value) and false otherwise */ - public boolean isSetChunk() { - return this.chunk != null; - } - - public void setChunkIsSet(boolean value) { - if (!value) { - this.chunk = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case LOCATION: - if (value == null) { - unsetLocation(); - } else { - setLocation((String)value); - } - break; - - case CHUNK: - if (value == null) { - unsetChunk(); - } else { - setChunk((ByteBuffer)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case LOCATION: - return getLocation(); - - case CHUNK: - return getChunk(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case LOCATION: - return isSetLocation(); - case CHUNK: - return isSetChunk(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof uploadChunk_args) - return this.equals((uploadChunk_args)that); - return false; - } - - public boolean equals(uploadChunk_args that) { - if (that == null) - return false; - - boolean this_present_location = true && this.isSetLocation(); - boolean that_present_location = true && that.isSetLocation(); - if (this_present_location || that_present_location) { - if (!(this_present_location && that_present_location)) - return false; - if (!this.location.equals(that.location)) - return false; - } - - boolean this_present_chunk = true && this.isSetChunk(); - boolean that_present_chunk = true && that.isSetChunk(); - if (this_present_chunk || that_present_chunk) { - if (!(this_present_chunk && that_present_chunk)) - return false; - if (!this.chunk.equals(that.chunk)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_location = true && (isSetLocation()); - builder.append(present_location); - if (present_location) - builder.append(location); - - boolean present_chunk = true && (isSetChunk()); - builder.append(present_chunk); - if (present_chunk) - builder.append(chunk); - - return builder.toHashCode(); - } - - public int compareTo(uploadChunk_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - uploadChunk_args typedOther = (uploadChunk_args)other; - - lastComparison = Boolean.valueOf(isSetLocation()).compareTo(typedOther.isSetLocation()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetLocation()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.location, typedOther.location); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetChunk()).compareTo(typedOther.isSetChunk()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetChunk()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.chunk, typedOther.chunk); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("uploadChunk_args("); - boolean first = true; - - sb.append("location:"); - if (this.location == null) { - sb.append("null"); - } else { - sb.append(this.location); - } - first = false; - if (!first) sb.append(", "); - sb.append("chunk:"); - if (this.chunk == null) { - sb.append("null"); - } else { - org.apache.thrift.TBaseHelper.toString(this.chunk, sb); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class uploadChunk_argsStandardSchemeFactory implements SchemeFactory { - public uploadChunk_argsStandardScheme getScheme() { - return new uploadChunk_argsStandardScheme(); - } - } - - private static class uploadChunk_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, uploadChunk_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // LOCATION - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.location = iprot.readString(); - struct.setLocationIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // CHUNK - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.chunk = iprot.readBinary(); - struct.setChunkIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, uploadChunk_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.location != null) { - oprot.writeFieldBegin(LOCATION_FIELD_DESC); - oprot.writeString(struct.location); - oprot.writeFieldEnd(); - } - if (struct.chunk != null) { - oprot.writeFieldBegin(CHUNK_FIELD_DESC); - oprot.writeBinary(struct.chunk); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class uploadChunk_argsTupleSchemeFactory implements SchemeFactory { - public uploadChunk_argsTupleScheme getScheme() { - return new uploadChunk_argsTupleScheme(); - } - } - - private static class uploadChunk_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, uploadChunk_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetLocation()) { - optionals.set(0); - } - if (struct.isSetChunk()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetLocation()) { - oprot.writeString(struct.location); - } - if (struct.isSetChunk()) { - oprot.writeBinary(struct.chunk); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, uploadChunk_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.location = iprot.readString(); - struct.setLocationIsSet(true); - } - if (incoming.get(1)) { - struct.chunk = iprot.readBinary(); - struct.setChunkIsSet(true); - } - } - } - - } - - public static class uploadChunk_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("uploadChunk_result"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new uploadChunk_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new uploadChunk_resultTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(uploadChunk_result.class, metaDataMap); - } - - public uploadChunk_result() { - } - - /** - * Performs a deep copy on other. - */ - public uploadChunk_result(uploadChunk_result other) { - } - - public uploadChunk_result deepCopy() { - return new uploadChunk_result(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof uploadChunk_result) - return this.equals((uploadChunk_result)that); - return false; - } - - public boolean equals(uploadChunk_result that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(uploadChunk_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - uploadChunk_result typedOther = (uploadChunk_result)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("uploadChunk_result("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class uploadChunk_resultStandardSchemeFactory implements SchemeFactory { - public uploadChunk_resultStandardScheme getScheme() { - return new uploadChunk_resultStandardScheme(); - } - } - - private static class uploadChunk_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, uploadChunk_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, uploadChunk_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class uploadChunk_resultTupleSchemeFactory implements SchemeFactory { - public uploadChunk_resultTupleScheme getScheme() { - return new uploadChunk_resultTupleScheme(); - } - } - - private static class uploadChunk_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, uploadChunk_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, uploadChunk_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - - } - - public static class finishFileUpload_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("finishFileUpload_args"); - - private static final org.apache.thrift.protocol.TField LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("location", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new finishFileUpload_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new finishFileUpload_argsTupleSchemeFactory()); - } - - public String location; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - LOCATION((short)1, "location"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // LOCATION - return LOCATION; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.LOCATION, new org.apache.thrift.meta_data.FieldMetaData("location", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(finishFileUpload_args.class, metaDataMap); - } - - public finishFileUpload_args() { - } - - public finishFileUpload_args( - String location) - { - this(); - this.location = location; - } - - /** - * Performs a deep copy on other. - */ - public finishFileUpload_args(finishFileUpload_args other) { - if (other.isSetLocation()) { - this.location = other.location; - } - } - - public finishFileUpload_args deepCopy() { - return new finishFileUpload_args(this); - } - - @Override - public void clear() { - this.location = null; - } - - public String getLocation() { - return this.location; - } - - public finishFileUpload_args setLocation(String location) { - this.location = location; - return this; - } - - public void unsetLocation() { - this.location = null; - } - - /** Returns true if field location is set (has been assigned a value) and false otherwise */ - public boolean isSetLocation() { - return this.location != null; - } - - public void setLocationIsSet(boolean value) { - if (!value) { - this.location = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case LOCATION: - if (value == null) { - unsetLocation(); - } else { - setLocation((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case LOCATION: - return getLocation(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case LOCATION: - return isSetLocation(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof finishFileUpload_args) - return this.equals((finishFileUpload_args)that); - return false; - } - - public boolean equals(finishFileUpload_args that) { - if (that == null) - return false; - - boolean this_present_location = true && this.isSetLocation(); - boolean that_present_location = true && that.isSetLocation(); - if (this_present_location || that_present_location) { - if (!(this_present_location && that_present_location)) - return false; - if (!this.location.equals(that.location)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_location = true && (isSetLocation()); - builder.append(present_location); - if (present_location) - builder.append(location); - - return builder.toHashCode(); - } - - public int compareTo(finishFileUpload_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - finishFileUpload_args typedOther = (finishFileUpload_args)other; - - lastComparison = Boolean.valueOf(isSetLocation()).compareTo(typedOther.isSetLocation()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetLocation()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.location, typedOther.location); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("finishFileUpload_args("); - boolean first = true; - - sb.append("location:"); - if (this.location == null) { - sb.append("null"); - } else { - sb.append(this.location); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class finishFileUpload_argsStandardSchemeFactory implements SchemeFactory { - public finishFileUpload_argsStandardScheme getScheme() { - return new finishFileUpload_argsStandardScheme(); - } - } - - private static class finishFileUpload_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, finishFileUpload_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // LOCATION - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.location = iprot.readString(); - struct.setLocationIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, finishFileUpload_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.location != null) { - oprot.writeFieldBegin(LOCATION_FIELD_DESC); - oprot.writeString(struct.location); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class finishFileUpload_argsTupleSchemeFactory implements SchemeFactory { - public finishFileUpload_argsTupleScheme getScheme() { - return new finishFileUpload_argsTupleScheme(); - } - } - - private static class finishFileUpload_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, finishFileUpload_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetLocation()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetLocation()) { - oprot.writeString(struct.location); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, finishFileUpload_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.location = iprot.readString(); - struct.setLocationIsSet(true); - } - } - } - - } - - public static class finishFileUpload_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("finishFileUpload_result"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new finishFileUpload_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new finishFileUpload_resultTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(finishFileUpload_result.class, metaDataMap); - } - - public finishFileUpload_result() { - } - - /** - * Performs a deep copy on other. - */ - public finishFileUpload_result(finishFileUpload_result other) { - } - - public finishFileUpload_result deepCopy() { - return new finishFileUpload_result(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof finishFileUpload_result) - return this.equals((finishFileUpload_result)that); - return false; - } - - public boolean equals(finishFileUpload_result that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(finishFileUpload_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - finishFileUpload_result typedOther = (finishFileUpload_result)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("finishFileUpload_result("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class finishFileUpload_resultStandardSchemeFactory implements SchemeFactory { - public finishFileUpload_resultStandardScheme getScheme() { - return new finishFileUpload_resultStandardScheme(); - } - } - - private static class finishFileUpload_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, finishFileUpload_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, finishFileUpload_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class finishFileUpload_resultTupleSchemeFactory implements SchemeFactory { - public finishFileUpload_resultTupleScheme getScheme() { - return new finishFileUpload_resultTupleScheme(); - } - } - - private static class finishFileUpload_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, finishFileUpload_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, finishFileUpload_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - - } - - public static class beginFileDownload_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("beginFileDownload_args"); - - private static final org.apache.thrift.protocol.TField FILE_FIELD_DESC = new org.apache.thrift.protocol.TField("file", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new beginFileDownload_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new beginFileDownload_argsTupleSchemeFactory()); - } - - public String file; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - FILE((short)1, "file"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // FILE - return FILE; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.FILE, new org.apache.thrift.meta_data.FieldMetaData("file", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(beginFileDownload_args.class, metaDataMap); - } - - public beginFileDownload_args() { - } - - public beginFileDownload_args( - String file) - { - this(); - this.file = file; - } - - /** - * Performs a deep copy on other. - */ - public beginFileDownload_args(beginFileDownload_args other) { - if (other.isSetFile()) { - this.file = other.file; - } - } - - public beginFileDownload_args deepCopy() { - return new beginFileDownload_args(this); - } - - @Override - public void clear() { - this.file = null; - } - - public String getFile() { - return this.file; - } - - public beginFileDownload_args setFile(String file) { - this.file = file; - return this; - } - - public void unsetFile() { - this.file = null; - } - - /** Returns true if field file is set (has been assigned a value) and false otherwise */ - public boolean isSetFile() { - return this.file != null; - } - - public void setFileIsSet(boolean value) { - if (!value) { - this.file = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case FILE: - if (value == null) { - unsetFile(); - } else { - setFile((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case FILE: - return getFile(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case FILE: - return isSetFile(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof beginFileDownload_args) - return this.equals((beginFileDownload_args)that); - return false; - } - - public boolean equals(beginFileDownload_args that) { - if (that == null) - return false; - - boolean this_present_file = true && this.isSetFile(); - boolean that_present_file = true && that.isSetFile(); - if (this_present_file || that_present_file) { - if (!(this_present_file && that_present_file)) - return false; - if (!this.file.equals(that.file)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_file = true && (isSetFile()); - builder.append(present_file); - if (present_file) - builder.append(file); - - return builder.toHashCode(); - } - - public int compareTo(beginFileDownload_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - beginFileDownload_args typedOther = (beginFileDownload_args)other; - - lastComparison = Boolean.valueOf(isSetFile()).compareTo(typedOther.isSetFile()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFile()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.file, typedOther.file); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("beginFileDownload_args("); - boolean first = true; - - sb.append("file:"); - if (this.file == null) { - sb.append("null"); - } else { - sb.append(this.file); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class beginFileDownload_argsStandardSchemeFactory implements SchemeFactory { - public beginFileDownload_argsStandardScheme getScheme() { - return new beginFileDownload_argsStandardScheme(); - } - } - - private static class beginFileDownload_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, beginFileDownload_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // FILE - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.file = iprot.readString(); - struct.setFileIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, beginFileDownload_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.file != null) { - oprot.writeFieldBegin(FILE_FIELD_DESC); - oprot.writeString(struct.file); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class beginFileDownload_argsTupleSchemeFactory implements SchemeFactory { - public beginFileDownload_argsTupleScheme getScheme() { - return new beginFileDownload_argsTupleScheme(); - } - } - - private static class beginFileDownload_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, beginFileDownload_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetFile()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetFile()) { - oprot.writeString(struct.file); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, beginFileDownload_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.file = iprot.readString(); - struct.setFileIsSet(true); - } - } - } - - } - - public static class beginFileDownload_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("beginFileDownload_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new beginFileDownload_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new beginFileDownload_resultTupleSchemeFactory()); - } - - public String success; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(beginFileDownload_result.class, metaDataMap); - } - - public beginFileDownload_result() { - } - - public beginFileDownload_result( - String success) - { - this(); - this.success = success; - } - - /** - * Performs a deep copy on other. - */ - public beginFileDownload_result(beginFileDownload_result other) { - if (other.isSetSuccess()) { - this.success = other.success; - } - } - - public beginFileDownload_result deepCopy() { - return new beginFileDownload_result(this); - } - - @Override - public void clear() { - this.success = null; - } - - public String getSuccess() { - return this.success; - } - - public beginFileDownload_result setSuccess(String success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof beginFileDownload_result) - return this.equals((beginFileDownload_result)that); - return false; - } - - public boolean equals(beginFileDownload_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - return builder.toHashCode(); - } - - public int compareTo(beginFileDownload_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - beginFileDownload_result typedOther = (beginFileDownload_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("beginFileDownload_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class beginFileDownload_resultStandardSchemeFactory implements SchemeFactory { - public beginFileDownload_resultStandardScheme getScheme() { - return new beginFileDownload_resultStandardScheme(); - } - } - - private static class beginFileDownload_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, beginFileDownload_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, beginFileDownload_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - oprot.writeString(struct.success); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class beginFileDownload_resultTupleSchemeFactory implements SchemeFactory { - public beginFileDownload_resultTupleScheme getScheme() { - return new beginFileDownload_resultTupleScheme(); - } - } - - private static class beginFileDownload_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, beginFileDownload_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetSuccess()) { - oprot.writeString(struct.success); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, beginFileDownload_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } - } - } - - } - - public static class downloadChunk_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("downloadChunk_args"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new downloadChunk_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new downloadChunk_argsTupleSchemeFactory()); - } - - public String id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(downloadChunk_args.class, metaDataMap); - } - - public downloadChunk_args() { - } - - public downloadChunk_args( - String id) - { - this(); - this.id = id; - } - - /** - * Performs a deep copy on other. - */ - public downloadChunk_args(downloadChunk_args other) { - if (other.isSetId()) { - this.id = other.id; - } - } - - public downloadChunk_args deepCopy() { - return new downloadChunk_args(this); - } - - @Override - public void clear() { - this.id = null; - } - - public String getId() { - return this.id; - } - - public downloadChunk_args setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof downloadChunk_args) - return this.equals((downloadChunk_args)that); - return false; - } - - public boolean equals(downloadChunk_args that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - return builder.toHashCode(); - } - - public int compareTo(downloadChunk_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - downloadChunk_args typedOther = (downloadChunk_args)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("downloadChunk_args("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class downloadChunk_argsStandardSchemeFactory implements SchemeFactory { - public downloadChunk_argsStandardScheme getScheme() { - return new downloadChunk_argsStandardScheme(); - } - } - - private static class downloadChunk_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, downloadChunk_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, downloadChunk_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class downloadChunk_argsTupleSchemeFactory implements SchemeFactory { - public downloadChunk_argsTupleScheme getScheme() { - return new downloadChunk_argsTupleScheme(); - } - } - - private static class downloadChunk_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, downloadChunk_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetId()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetId()) { - oprot.writeString(struct.id); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, downloadChunk_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } - } - } - - } - - public static class downloadChunk_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("downloadChunk_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new downloadChunk_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new downloadChunk_resultTupleSchemeFactory()); - } - - public ByteBuffer success; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , true))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(downloadChunk_result.class, metaDataMap); - } - - public downloadChunk_result() { - } - - public downloadChunk_result( - ByteBuffer success) - { - this(); - this.success = success; - } - - /** - * Performs a deep copy on other. - */ - public downloadChunk_result(downloadChunk_result other) { - if (other.isSetSuccess()) { - this.success = org.apache.thrift.TBaseHelper.copyBinary(other.success); -; - } - } - - public downloadChunk_result deepCopy() { - return new downloadChunk_result(this); - } - - @Override - public void clear() { - this.success = null; - } - - public byte[] getSuccess() { - setSuccess(org.apache.thrift.TBaseHelper.rightSize(success)); - return success == null ? null : success.array(); - } - - public ByteBuffer bufferForSuccess() { - return success; - } - - public downloadChunk_result setSuccess(byte[] success) { - setSuccess(success == null ? (ByteBuffer)null : ByteBuffer.wrap(success)); - return this; - } - - public downloadChunk_result setSuccess(ByteBuffer success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((ByteBuffer)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof downloadChunk_result) - return this.equals((downloadChunk_result)that); - return false; - } - - public boolean equals(downloadChunk_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - return builder.toHashCode(); - } - - public int compareTo(downloadChunk_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - downloadChunk_result typedOther = (downloadChunk_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("downloadChunk_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - org.apache.thrift.TBaseHelper.toString(this.success, sb); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class downloadChunk_resultStandardSchemeFactory implements SchemeFactory { - public downloadChunk_resultStandardScheme getScheme() { - return new downloadChunk_resultStandardScheme(); - } - } - - private static class downloadChunk_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, downloadChunk_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.success = iprot.readBinary(); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, downloadChunk_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - oprot.writeBinary(struct.success); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class downloadChunk_resultTupleSchemeFactory implements SchemeFactory { - public downloadChunk_resultTupleScheme getScheme() { - return new downloadChunk_resultTupleScheme(); - } - } - - private static class downloadChunk_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, downloadChunk_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetSuccess()) { - oprot.writeBinary(struct.success); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, downloadChunk_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.success = iprot.readBinary(); - struct.setSuccessIsSet(true); - } - } - } - - } - - public static class getNimbusConf_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getNimbusConf_args"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getNimbusConf_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getNimbusConf_argsTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getNimbusConf_args.class, metaDataMap); - } - - public getNimbusConf_args() { - } - - /** - * Performs a deep copy on other. - */ - public getNimbusConf_args(getNimbusConf_args other) { - } - - public getNimbusConf_args deepCopy() { - return new getNimbusConf_args(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getNimbusConf_args) - return this.equals((getNimbusConf_args)that); - return false; - } - - public boolean equals(getNimbusConf_args that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(getNimbusConf_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getNimbusConf_args typedOther = (getNimbusConf_args)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getNimbusConf_args("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getNimbusConf_argsStandardSchemeFactory implements SchemeFactory { - public getNimbusConf_argsStandardScheme getScheme() { - return new getNimbusConf_argsStandardScheme(); - } - } - - private static class getNimbusConf_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getNimbusConf_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getNimbusConf_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getNimbusConf_argsTupleSchemeFactory implements SchemeFactory { - public getNimbusConf_argsTupleScheme getScheme() { - return new getNimbusConf_argsTupleScheme(); - } - } - - private static class getNimbusConf_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getNimbusConf_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getNimbusConf_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - - } - - public static class getNimbusConf_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getNimbusConf_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getNimbusConf_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getNimbusConf_resultTupleSchemeFactory()); - } - - public String success; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getNimbusConf_result.class, metaDataMap); - } - - public getNimbusConf_result() { - } - - public getNimbusConf_result( - String success) - { - this(); - this.success = success; - } - - /** - * Performs a deep copy on other. - */ - public getNimbusConf_result(getNimbusConf_result other) { - if (other.isSetSuccess()) { - this.success = other.success; - } - } - - public getNimbusConf_result deepCopy() { - return new getNimbusConf_result(this); - } - - @Override - public void clear() { - this.success = null; - } - - public String getSuccess() { - return this.success; - } - - public getNimbusConf_result setSuccess(String success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getNimbusConf_result) - return this.equals((getNimbusConf_result)that); - return false; - } - - public boolean equals(getNimbusConf_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - return builder.toHashCode(); - } - - public int compareTo(getNimbusConf_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getNimbusConf_result typedOther = (getNimbusConf_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getNimbusConf_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getNimbusConf_resultStandardSchemeFactory implements SchemeFactory { - public getNimbusConf_resultStandardScheme getScheme() { - return new getNimbusConf_resultStandardScheme(); - } - } - - private static class getNimbusConf_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getNimbusConf_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getNimbusConf_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - oprot.writeString(struct.success); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getNimbusConf_resultTupleSchemeFactory implements SchemeFactory { - public getNimbusConf_resultTupleScheme getScheme() { - return new getNimbusConf_resultTupleScheme(); - } - } - - private static class getNimbusConf_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getNimbusConf_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetSuccess()) { - oprot.writeString(struct.success); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getNimbusConf_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } - } - } - - } - - public static class getClusterInfo_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getClusterInfo_args"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getClusterInfo_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getClusterInfo_argsTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getClusterInfo_args.class, metaDataMap); - } - - public getClusterInfo_args() { - } - - /** - * Performs a deep copy on other. - */ - public getClusterInfo_args(getClusterInfo_args other) { - } - - public getClusterInfo_args deepCopy() { - return new getClusterInfo_args(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getClusterInfo_args) - return this.equals((getClusterInfo_args)that); - return false; - } - - public boolean equals(getClusterInfo_args that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(getClusterInfo_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getClusterInfo_args typedOther = (getClusterInfo_args)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getClusterInfo_args("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getClusterInfo_argsStandardSchemeFactory implements SchemeFactory { - public getClusterInfo_argsStandardScheme getScheme() { - return new getClusterInfo_argsStandardScheme(); - } - } - - private static class getClusterInfo_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getClusterInfo_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getClusterInfo_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getClusterInfo_argsTupleSchemeFactory implements SchemeFactory { - public getClusterInfo_argsTupleScheme getScheme() { - return new getClusterInfo_argsTupleScheme(); - } - } - - private static class getClusterInfo_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getClusterInfo_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getClusterInfo_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - - } - - public static class getClusterInfo_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getClusterInfo_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getClusterInfo_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getClusterInfo_resultTupleSchemeFactory()); - } - - public ClusterSummary success; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ClusterSummary.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getClusterInfo_result.class, metaDataMap); - } - - public getClusterInfo_result() { - } - - public getClusterInfo_result( - ClusterSummary success) - { - this(); - this.success = success; - } - - /** - * Performs a deep copy on other. - */ - public getClusterInfo_result(getClusterInfo_result other) { - if (other.isSetSuccess()) { - this.success = new ClusterSummary(other.success); - } - } - - public getClusterInfo_result deepCopy() { - return new getClusterInfo_result(this); - } - - @Override - public void clear() { - this.success = null; - } - - public ClusterSummary getSuccess() { - return this.success; - } - - public getClusterInfo_result setSuccess(ClusterSummary success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((ClusterSummary)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getClusterInfo_result) - return this.equals((getClusterInfo_result)that); - return false; - } - - public boolean equals(getClusterInfo_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - return builder.toHashCode(); - } - - public int compareTo(getClusterInfo_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getClusterInfo_result typedOther = (getClusterInfo_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getClusterInfo_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (success != null) { - success.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getClusterInfo_resultStandardSchemeFactory implements SchemeFactory { - public getClusterInfo_resultStandardScheme getScheme() { - return new getClusterInfo_resultStandardScheme(); - } - } - - private static class getClusterInfo_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getClusterInfo_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.success = new ClusterSummary(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getClusterInfo_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - struct.success.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getClusterInfo_resultTupleSchemeFactory implements SchemeFactory { - public getClusterInfo_resultTupleScheme getScheme() { - return new getClusterInfo_resultTupleScheme(); - } - } - - private static class getClusterInfo_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getClusterInfo_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetSuccess()) { - struct.success.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getClusterInfo_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.success = new ClusterSummary(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } - } - } - - } - - public static class getTopologyInfo_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTopologyInfo_args"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getTopologyInfo_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getTopologyInfo_argsTupleSchemeFactory()); - } - - public String id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyInfo_args.class, metaDataMap); - } - - public getTopologyInfo_args() { - } - - public getTopologyInfo_args( - String id) - { - this(); - this.id = id; - } - - /** - * Performs a deep copy on other. - */ - public getTopologyInfo_args(getTopologyInfo_args other) { - if (other.isSetId()) { - this.id = other.id; - } - } - - public getTopologyInfo_args deepCopy() { - return new getTopologyInfo_args(this); - } - - @Override - public void clear() { - this.id = null; - } - - public String getId() { - return this.id; - } - - public getTopologyInfo_args setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getTopologyInfo_args) - return this.equals((getTopologyInfo_args)that); - return false; - } - - public boolean equals(getTopologyInfo_args that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - return builder.toHashCode(); - } - - public int compareTo(getTopologyInfo_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getTopologyInfo_args typedOther = (getTopologyInfo_args)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getTopologyInfo_args("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getTopologyInfo_argsStandardSchemeFactory implements SchemeFactory { - public getTopologyInfo_argsStandardScheme getScheme() { - return new getTopologyInfo_argsStandardScheme(); - } - } - - private static class getTopologyInfo_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getTopologyInfo_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getTopologyInfo_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getTopologyInfo_argsTupleSchemeFactory implements SchemeFactory { - public getTopologyInfo_argsTupleScheme getScheme() { - return new getTopologyInfo_argsTupleScheme(); - } - } - - private static class getTopologyInfo_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getTopologyInfo_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetId()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetId()) { - oprot.writeString(struct.id); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getTopologyInfo_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } - } - } - - } - - public static class getTopologyInfo_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTopologyInfo_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getTopologyInfo_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getTopologyInfo_resultTupleSchemeFactory()); - } - - public TopologyInfo success; // required - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"), - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TopologyInfo.class))); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyInfo_result.class, metaDataMap); - } - - public getTopologyInfo_result() { - } - - public getTopologyInfo_result( - TopologyInfo success, - NotAliveException e) - { - this(); - this.success = success; - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public getTopologyInfo_result(getTopologyInfo_result other) { - if (other.isSetSuccess()) { - this.success = new TopologyInfo(other.success); - } - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public getTopologyInfo_result deepCopy() { - return new getTopologyInfo_result(this); - } - - @Override - public void clear() { - this.success = null; - this.e = null; - } - - public TopologyInfo getSuccess() { - return this.success; - } - - public getTopologyInfo_result setSuccess(TopologyInfo success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public NotAliveException getE() { - return this.e; - } - - public getTopologyInfo_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((TopologyInfo)value); - } - break; - - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getTopologyInfo_result) - return this.equals((getTopologyInfo_result)that); - return false; - } - - public boolean equals(getTopologyInfo_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(getTopologyInfo_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getTopologyInfo_result typedOther = (getTopologyInfo_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getTopologyInfo_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - if (!first) sb.append(", "); - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (success != null) { - success.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getTopologyInfo_resultStandardSchemeFactory implements SchemeFactory { - public getTopologyInfo_resultStandardScheme getScheme() { - return new getTopologyInfo_resultStandardScheme(); - } - } - - private static class getTopologyInfo_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getTopologyInfo_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.success = new TopologyInfo(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getTopologyInfo_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - struct.success.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getTopologyInfo_resultTupleSchemeFactory implements SchemeFactory { - public getTopologyInfo_resultTupleScheme getScheme() { - return new getTopologyInfo_resultTupleScheme(); - } - } - - private static class getTopologyInfo_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getTopologyInfo_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - if (struct.isSetE()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetSuccess()) { - struct.success.write(oprot); - } - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getTopologyInfo_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.success = new TopologyInfo(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } - if (incoming.get(1)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - - public static class getTopologyConf_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTopologyConf_args"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getTopologyConf_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getTopologyConf_argsTupleSchemeFactory()); - } - - public String id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyConf_args.class, metaDataMap); - } - - public getTopologyConf_args() { - } - - public getTopologyConf_args( - String id) - { - this(); - this.id = id; - } - - /** - * Performs a deep copy on other. - */ - public getTopologyConf_args(getTopologyConf_args other) { - if (other.isSetId()) { - this.id = other.id; - } - } - - public getTopologyConf_args deepCopy() { - return new getTopologyConf_args(this); - } - - @Override - public void clear() { - this.id = null; - } - - public String getId() { - return this.id; - } - - public getTopologyConf_args setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getTopologyConf_args) - return this.equals((getTopologyConf_args)that); - return false; - } - - public boolean equals(getTopologyConf_args that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - return builder.toHashCode(); - } - - public int compareTo(getTopologyConf_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getTopologyConf_args typedOther = (getTopologyConf_args)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getTopologyConf_args("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getTopologyConf_argsStandardSchemeFactory implements SchemeFactory { - public getTopologyConf_argsStandardScheme getScheme() { - return new getTopologyConf_argsStandardScheme(); - } - } - - private static class getTopologyConf_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getTopologyConf_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getTopologyConf_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getTopologyConf_argsTupleSchemeFactory implements SchemeFactory { - public getTopologyConf_argsTupleScheme getScheme() { - return new getTopologyConf_argsTupleScheme(); - } - } - - private static class getTopologyConf_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getTopologyConf_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetId()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetId()) { - oprot.writeString(struct.id); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getTopologyConf_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } - } - } - - } - - public static class getTopologyConf_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTopologyConf_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0); - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getTopologyConf_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getTopologyConf_resultTupleSchemeFactory()); - } - - public String success; // required - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"), - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTopologyConf_result.class, metaDataMap); - } - - public getTopologyConf_result() { - } - - public getTopologyConf_result( - String success, - NotAliveException e) - { - this(); - this.success = success; - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public getTopologyConf_result(getTopologyConf_result other) { - if (other.isSetSuccess()) { - this.success = other.success; - } - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public getTopologyConf_result deepCopy() { - return new getTopologyConf_result(this); - } - - @Override - public void clear() { - this.success = null; - this.e = null; - } - - public String getSuccess() { - return this.success; - } - - public getTopologyConf_result setSuccess(String success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public NotAliveException getE() { - return this.e; - } - - public getTopologyConf_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((String)value); - } - break; - - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getTopologyConf_result) - return this.equals((getTopologyConf_result)that); - return false; - } - - public boolean equals(getTopologyConf_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(getTopologyConf_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getTopologyConf_result typedOther = (getTopologyConf_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getTopologyConf_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - if (!first) sb.append(", "); - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getTopologyConf_resultStandardSchemeFactory implements SchemeFactory { - public getTopologyConf_resultStandardScheme getScheme() { - return new getTopologyConf_resultStandardScheme(); - } - } - - private static class getTopologyConf_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getTopologyConf_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getTopologyConf_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - oprot.writeString(struct.success); - oprot.writeFieldEnd(); - } - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getTopologyConf_resultTupleSchemeFactory implements SchemeFactory { - public getTopologyConf_resultTupleScheme getScheme() { - return new getTopologyConf_resultTupleScheme(); - } - } - - private static class getTopologyConf_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getTopologyConf_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - if (struct.isSetE()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetSuccess()) { - oprot.writeString(struct.success); - } - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getTopologyConf_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.success = iprot.readString(); - struct.setSuccessIsSet(true); - } - if (incoming.get(1)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - - public static class getTopology_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTopology_args"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getTopology_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getTopology_argsTupleSchemeFactory()); - } - - public String id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTopology_args.class, metaDataMap); - } - - public getTopology_args() { - } - - public getTopology_args( - String id) - { - this(); - this.id = id; - } - - /** - * Performs a deep copy on other. - */ - public getTopology_args(getTopology_args other) { - if (other.isSetId()) { - this.id = other.id; - } - } - - public getTopology_args deepCopy() { - return new getTopology_args(this); - } - - @Override - public void clear() { - this.id = null; - } - - public String getId() { - return this.id; - } - - public getTopology_args setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getTopology_args) - return this.equals((getTopology_args)that); - return false; - } - - public boolean equals(getTopology_args that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - return builder.toHashCode(); - } - - public int compareTo(getTopology_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getTopology_args typedOther = (getTopology_args)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getTopology_args("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getTopology_argsStandardSchemeFactory implements SchemeFactory { - public getTopology_argsStandardScheme getScheme() { - return new getTopology_argsStandardScheme(); - } - } - - private static class getTopology_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getTopology_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getTopology_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getTopology_argsTupleSchemeFactory implements SchemeFactory { - public getTopology_argsTupleScheme getScheme() { - return new getTopology_argsTupleScheme(); - } - } - - private static class getTopology_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetId()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetId()) { - oprot.writeString(struct.id); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } - } - } - - } - - public static class getTopology_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getTopology_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getTopology_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getTopology_resultTupleSchemeFactory()); - } - - public StormTopology success; // required - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"), - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StormTopology.class))); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTopology_result.class, metaDataMap); - } - - public getTopology_result() { - } - - public getTopology_result( - StormTopology success, - NotAliveException e) - { - this(); - this.success = success; - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public getTopology_result(getTopology_result other) { - if (other.isSetSuccess()) { - this.success = new StormTopology(other.success); - } - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public getTopology_result deepCopy() { - return new getTopology_result(this); - } - - @Override - public void clear() { - this.success = null; - this.e = null; - } - - public StormTopology getSuccess() { - return this.success; - } - - public getTopology_result setSuccess(StormTopology success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public NotAliveException getE() { - return this.e; - } - - public getTopology_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((StormTopology)value); - } - break; - - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getTopology_result) - return this.equals((getTopology_result)that); - return false; - } - - public boolean equals(getTopology_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(getTopology_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getTopology_result typedOther = (getTopology_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getTopology_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - if (!first) sb.append(", "); - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (success != null) { - success.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getTopology_resultStandardSchemeFactory implements SchemeFactory { - public getTopology_resultStandardScheme getScheme() { - return new getTopology_resultStandardScheme(); - } - } - - private static class getTopology_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getTopology_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.success = new StormTopology(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getTopology_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - struct.success.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getTopology_resultTupleSchemeFactory implements SchemeFactory { - public getTopology_resultTupleScheme getScheme() { - return new getTopology_resultTupleScheme(); - } - } - - private static class getTopology_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - if (struct.isSetE()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetSuccess()) { - struct.success.write(oprot); - } - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.success = new StormTopology(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } - if (incoming.get(1)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - - public static class getUserTopology_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserTopology_args"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getUserTopology_argsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getUserTopology_argsTupleSchemeFactory()); - } - - public String id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserTopology_args.class, metaDataMap); - } - - public getUserTopology_args() { - } - - public getUserTopology_args( - String id) - { - this(); - this.id = id; - } - - /** - * Performs a deep copy on other. - */ - public getUserTopology_args(getUserTopology_args other) { - if (other.isSetId()) { - this.id = other.id; - } - } - - public getUserTopology_args deepCopy() { - return new getUserTopology_args(this); - } - - @Override - public void clear() { - this.id = null; - } - - public String getId() { - return this.id; - } - - public getUserTopology_args setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getUserTopology_args) - return this.equals((getUserTopology_args)that); - return false; - } - - public boolean equals(getUserTopology_args that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - return builder.toHashCode(); - } - - public int compareTo(getUserTopology_args other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getUserTopology_args typedOther = (getUserTopology_args)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getUserTopology_args("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getUserTopology_argsStandardSchemeFactory implements SchemeFactory { - public getUserTopology_argsStandardScheme getScheme() { - return new getUserTopology_argsStandardScheme(); - } - } - - private static class getUserTopology_argsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getUserTopology_args struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getUserTopology_args struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getUserTopology_argsTupleSchemeFactory implements SchemeFactory { - public getUserTopology_argsTupleScheme getScheme() { - return new getUserTopology_argsTupleScheme(); - } - } - - private static class getUserTopology_argsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getUserTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetId()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetId()) { - oprot.writeString(struct.id); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getUserTopology_args struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } - } - } - - } - - public static class getUserTopology_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getUserTopology_result"); - - private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); - private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new getUserTopology_resultStandardSchemeFactory()); - schemes.put(TupleScheme.class, new getUserTopology_resultTupleSchemeFactory()); - } - - public StormTopology success; // required - public NotAliveException e; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SUCCESS((short)0, "success"), - E((short)1, "e"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 0: // SUCCESS - return SUCCESS; - case 1: // E - return E; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StormTopology.class))); - tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getUserTopology_result.class, metaDataMap); - } - - public getUserTopology_result() { - } - - public getUserTopology_result( - StormTopology success, - NotAliveException e) - { - this(); - this.success = success; - this.e = e; - } - - /** - * Performs a deep copy on other. - */ - public getUserTopology_result(getUserTopology_result other) { - if (other.isSetSuccess()) { - this.success = new StormTopology(other.success); - } - if (other.isSetE()) { - this.e = new NotAliveException(other.e); - } - } - - public getUserTopology_result deepCopy() { - return new getUserTopology_result(this); - } - - @Override - public void clear() { - this.success = null; - this.e = null; - } - - public StormTopology getSuccess() { - return this.success; - } - - public getUserTopology_result setSuccess(StormTopology success) { - this.success = success; - return this; - } - - public void unsetSuccess() { - this.success = null; - } - - /** Returns true if field success is set (has been assigned a value) and false otherwise */ - public boolean isSetSuccess() { - return this.success != null; - } - - public void setSuccessIsSet(boolean value) { - if (!value) { - this.success = null; - } - } - - public NotAliveException getE() { - return this.e; - } - - public getUserTopology_result setE(NotAliveException e) { - this.e = e; - return this; - } - - public void unsetE() { - this.e = null; - } - - /** Returns true if field e is set (has been assigned a value) and false otherwise */ - public boolean isSetE() { - return this.e != null; - } - - public void setEIsSet(boolean value) { - if (!value) { - this.e = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SUCCESS: - if (value == null) { - unsetSuccess(); - } else { - setSuccess((StormTopology)value); - } - break; - - case E: - if (value == null) { - unsetE(); - } else { - setE((NotAliveException)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SUCCESS: - return getSuccess(); - - case E: - return getE(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SUCCESS: - return isSetSuccess(); - case E: - return isSetE(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof getUserTopology_result) - return this.equals((getUserTopology_result)that); - return false; - } - - public boolean equals(getUserTopology_result that) { - if (that == null) - return false; - - boolean this_present_success = true && this.isSetSuccess(); - boolean that_present_success = true && that.isSetSuccess(); - if (this_present_success || that_present_success) { - if (!(this_present_success && that_present_success)) - return false; - if (!this.success.equals(that.success)) - return false; - } - - boolean this_present_e = true && this.isSetE(); - boolean that_present_e = true && that.isSetE(); - if (this_present_e || that_present_e) { - if (!(this_present_e && that_present_e)) - return false; - if (!this.e.equals(that.e)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_success = true && (isSetSuccess()); - builder.append(present_success); - if (present_success) - builder.append(success); - - boolean present_e = true && (isSetE()); - builder.append(present_e); - if (present_e) - builder.append(e); - - return builder.toHashCode(); - } - - public int compareTo(getUserTopology_result other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - getUserTopology_result typedOther = (getUserTopology_result)other; - - lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSuccess()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetE()).compareTo(typedOther.isSetE()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetE()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, typedOther.e); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("getUserTopology_result("); - boolean first = true; - - sb.append("success:"); - if (this.success == null) { - sb.append("null"); - } else { - sb.append(this.success); - } - first = false; - if (!first) sb.append(", "); - sb.append("e:"); - if (this.e == null) { - sb.append("null"); - } else { - sb.append(this.e); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - if (success != null) { - success.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class getUserTopology_resultStandardSchemeFactory implements SchemeFactory { - public getUserTopology_resultStandardScheme getScheme() { - return new getUserTopology_resultStandardScheme(); - } - } - - private static class getUserTopology_resultStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, getUserTopology_result struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 0: // SUCCESS - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.success = new StormTopology(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 1: // E - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, getUserTopology_result struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.success != null) { - oprot.writeFieldBegin(SUCCESS_FIELD_DESC); - struct.success.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.e != null) { - oprot.writeFieldBegin(E_FIELD_DESC); - struct.e.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class getUserTopology_resultTupleSchemeFactory implements SchemeFactory { - public getUserTopology_resultTupleScheme getScheme() { - return new getUserTopology_resultTupleScheme(); - } - } - - private static class getUserTopology_resultTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, getUserTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSuccess()) { - optionals.set(0); - } - if (struct.isSetE()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetSuccess()) { - struct.success.write(oprot); - } - if (struct.isSetE()) { - struct.e.write(oprot); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, getUserTopology_result struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.success = new StormTopology(); - struct.success.read(iprot); - struct.setSuccessIsSet(true); - } - if (incoming.get(1)) { - struct.e = new NotAliveException(); - struct.e.read(iprot); - struct.setEIsSet(true); - } - } - } - - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/NotAliveException.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/NotAliveException.java deleted file mode 100644 index 9467a17fb..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/NotAliveException.java +++ /dev/null @@ -1,387 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class NotAliveException extends TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NotAliveException"); - - private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new org.apache.thrift.protocol.TField("msg", org.apache.thrift.protocol.TType.STRING, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new NotAliveExceptionStandardSchemeFactory()); - schemes.put(TupleScheme.class, new NotAliveExceptionTupleSchemeFactory()); - } - - public String msg; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - MSG((short)1, "msg"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // MSG - return MSG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.MSG, new org.apache.thrift.meta_data.FieldMetaData("msg", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NotAliveException.class, metaDataMap); - } - - public NotAliveException() { - } - - public NotAliveException( - String msg) - { - this(); - this.msg = msg; - } - - /** - * Performs a deep copy on other. - */ - public NotAliveException(NotAliveException other) { - if (other.isSetMsg()) { - this.msg = other.msg; - } - } - - public NotAliveException deepCopy() { - return new NotAliveException(this); - } - - @Override - public void clear() { - this.msg = null; - } - - public String getMsg() { - return this.msg; - } - - public NotAliveException setMsg(String msg) { - this.msg = msg; - return this; - } - - public void unsetMsg() { - this.msg = null; - } - - /** Returns true if field msg is set (has been assigned a value) and false otherwise */ - public boolean isSetMsg() { - return this.msg != null; - } - - public void setMsgIsSet(boolean value) { - if (!value) { - this.msg = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case MSG: - if (value == null) { - unsetMsg(); - } else { - setMsg((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case MSG: - return getMsg(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case MSG: - return isSetMsg(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof NotAliveException) - return this.equals((NotAliveException)that); - return false; - } - - public boolean equals(NotAliveException that) { - if (that == null) - return false; - - boolean this_present_msg = true && this.isSetMsg(); - boolean that_present_msg = true && that.isSetMsg(); - if (this_present_msg || that_present_msg) { - if (!(this_present_msg && that_present_msg)) - return false; - if (!this.msg.equals(that.msg)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_msg = true && (isSetMsg()); - builder.append(present_msg); - if (present_msg) - builder.append(msg); - - return builder.toHashCode(); - } - - public int compareTo(NotAliveException other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - NotAliveException typedOther = (NotAliveException)other; - - lastComparison = Boolean.valueOf(isSetMsg()).compareTo(typedOther.isSetMsg()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetMsg()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.msg, typedOther.msg); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("NotAliveException("); - boolean first = true; - - sb.append("msg:"); - if (this.msg == null) { - sb.append("null"); - } else { - sb.append(this.msg); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (msg == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'msg' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class NotAliveExceptionStandardSchemeFactory implements SchemeFactory { - public NotAliveExceptionStandardScheme getScheme() { - return new NotAliveExceptionStandardScheme(); - } - } - - private static class NotAliveExceptionStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, NotAliveException struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // MSG - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, NotAliveException struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.msg != null) { - oprot.writeFieldBegin(MSG_FIELD_DESC); - oprot.writeString(struct.msg); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class NotAliveExceptionTupleSchemeFactory implements SchemeFactory { - public NotAliveExceptionTupleScheme getScheme() { - return new NotAliveExceptionTupleScheme(); - } - } - - private static class NotAliveExceptionTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, NotAliveException struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.msg); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, NotAliveException struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.msg = iprot.readString(); - struct.setMsgIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/NullStruct.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/NullStruct.java deleted file mode 100644 index 42c73324a..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/NullStruct.java +++ /dev/null @@ -1,281 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class NullStruct implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NullStruct"); - - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new NullStructStandardSchemeFactory()); - schemes.put(TupleScheme.class, new NullStructTupleSchemeFactory()); - } - - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { -; - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NullStruct.class, metaDataMap); - } - - public NullStruct() { - } - - /** - * Performs a deep copy on other. - */ - public NullStruct(NullStruct other) { - } - - public NullStruct deepCopy() { - return new NullStruct(this); - } - - @Override - public void clear() { - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof NullStruct) - return this.equals((NullStruct)that); - return false; - } - - public boolean equals(NullStruct that) { - if (that == null) - return false; - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - return builder.toHashCode(); - } - - public int compareTo(NullStruct other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - NullStruct typedOther = (NullStruct)other; - - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("NullStruct("); - boolean first = true; - - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class NullStructStandardSchemeFactory implements SchemeFactory { - public NullStructStandardScheme getScheme() { - return new NullStructStandardScheme(); - } - } - - private static class NullStructStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, NullStruct struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, NullStruct struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class NullStructTupleSchemeFactory implements SchemeFactory { - public NullStructTupleScheme getScheme() { - return new NullStructTupleScheme(); - } - } - - private static class NullStructTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, NullStruct struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, NullStruct struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/RebalanceOptions.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/RebalanceOptions.java deleted file mode 100644 index c39008b8e..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/RebalanceOptions.java +++ /dev/null @@ -1,659 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class RebalanceOptions implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("RebalanceOptions"); - - private static final org.apache.thrift.protocol.TField WAIT_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("wait_secs", org.apache.thrift.protocol.TType.I32, (short)1); - private static final org.apache.thrift.protocol.TField NUM_WORKERS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_workers", org.apache.thrift.protocol.TType.I32, (short)2); - private static final org.apache.thrift.protocol.TField NUM_EXECUTORS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_executors", org.apache.thrift.protocol.TType.MAP, (short)3); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new RebalanceOptionsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new RebalanceOptionsTupleSchemeFactory()); - } - - public int wait_secs; // optional - public int num_workers; // optional - public Map num_executors; // optional - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - WAIT_SECS((short)1, "wait_secs"), - NUM_WORKERS((short)2, "num_workers"), - NUM_EXECUTORS((short)3, "num_executors"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // WAIT_SECS - return WAIT_SECS; - case 2: // NUM_WORKERS - return NUM_WORKERS; - case 3: // NUM_EXECUTORS - return NUM_EXECUTORS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __WAIT_SECS_ISSET_ID = 0; - private static final int __NUM_WORKERS_ISSET_ID = 1; - private byte __isset_bitfield = 0; - private _Fields optionals[] = {_Fields.WAIT_SECS,_Fields.NUM_WORKERS,_Fields.NUM_EXECUTORS}; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.WAIT_SECS, new org.apache.thrift.meta_data.FieldMetaData("wait_secs", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.NUM_WORKERS, new org.apache.thrift.meta_data.FieldMetaData("num_workers", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.NUM_EXECUTORS, new org.apache.thrift.meta_data.FieldMetaData("num_executors", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(RebalanceOptions.class, metaDataMap); - } - - public RebalanceOptions() { - } - - /** - * Performs a deep copy on other. - */ - public RebalanceOptions(RebalanceOptions other) { - __isset_bitfield = other.__isset_bitfield; - this.wait_secs = other.wait_secs; - this.num_workers = other.num_workers; - if (other.isSetNum_executors()) { - Map __this__num_executors = new HashMap(); - for (Map.Entry other_element : other.num_executors.entrySet()) { - - String other_element_key = other_element.getKey(); - Integer other_element_value = other_element.getValue(); - - String __this__num_executors_copy_key = other_element_key; - - Integer __this__num_executors_copy_value = other_element_value; - - __this__num_executors.put(__this__num_executors_copy_key, __this__num_executors_copy_value); - } - this.num_executors = __this__num_executors; - } - } - - public RebalanceOptions deepCopy() { - return new RebalanceOptions(this); - } - - @Override - public void clear() { - setWait_secsIsSet(false); - this.wait_secs = 0; - setNum_workersIsSet(false); - this.num_workers = 0; - this.num_executors = null; - } - - public int getWait_secs() { - return this.wait_secs; - } - - public RebalanceOptions setWait_secs(int wait_secs) { - this.wait_secs = wait_secs; - setWait_secsIsSet(true); - return this; - } - - public void unsetWait_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WAIT_SECS_ISSET_ID); - } - - /** Returns true if field wait_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetWait_secs() { - return EncodingUtils.testBit(__isset_bitfield, __WAIT_SECS_ISSET_ID); - } - - public void setWait_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WAIT_SECS_ISSET_ID, value); - } - - public int getNum_workers() { - return this.num_workers; - } - - public RebalanceOptions setNum_workers(int num_workers) { - this.num_workers = num_workers; - setNum_workersIsSet(true); - return this; - } - - public void unsetNum_workers() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID); - } - - /** Returns true if field num_workers is set (has been assigned a value) and false otherwise */ - public boolean isSetNum_workers() { - return EncodingUtils.testBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID); - } - - public void setNum_workersIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID, value); - } - - public int getNum_executorsSize() { - return (this.num_executors == null) ? 0 : this.num_executors.size(); - } - - public void putToNum_executors(String key, int val) { - if (this.num_executors == null) { - this.num_executors = new HashMap(); - } - this.num_executors.put(key, val); - } - - public Map getNum_executors() { - return this.num_executors; - } - - public RebalanceOptions setNum_executors(Map num_executors) { - this.num_executors = num_executors; - return this; - } - - public void unsetNum_executors() { - this.num_executors = null; - } - - /** Returns true if field num_executors is set (has been assigned a value) and false otherwise */ - public boolean isSetNum_executors() { - return this.num_executors != null; - } - - public void setNum_executorsIsSet(boolean value) { - if (!value) { - this.num_executors = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case WAIT_SECS: - if (value == null) { - unsetWait_secs(); - } else { - setWait_secs((Integer)value); - } - break; - - case NUM_WORKERS: - if (value == null) { - unsetNum_workers(); - } else { - setNum_workers((Integer)value); - } - break; - - case NUM_EXECUTORS: - if (value == null) { - unsetNum_executors(); - } else { - setNum_executors((Map)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case WAIT_SECS: - return Integer.valueOf(getWait_secs()); - - case NUM_WORKERS: - return Integer.valueOf(getNum_workers()); - - case NUM_EXECUTORS: - return getNum_executors(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case WAIT_SECS: - return isSetWait_secs(); - case NUM_WORKERS: - return isSetNum_workers(); - case NUM_EXECUTORS: - return isSetNum_executors(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof RebalanceOptions) - return this.equals((RebalanceOptions)that); - return false; - } - - public boolean equals(RebalanceOptions that) { - if (that == null) - return false; - - boolean this_present_wait_secs = true && this.isSetWait_secs(); - boolean that_present_wait_secs = true && that.isSetWait_secs(); - if (this_present_wait_secs || that_present_wait_secs) { - if (!(this_present_wait_secs && that_present_wait_secs)) - return false; - if (this.wait_secs != that.wait_secs) - return false; - } - - boolean this_present_num_workers = true && this.isSetNum_workers(); - boolean that_present_num_workers = true && that.isSetNum_workers(); - if (this_present_num_workers || that_present_num_workers) { - if (!(this_present_num_workers && that_present_num_workers)) - return false; - if (this.num_workers != that.num_workers) - return false; - } - - boolean this_present_num_executors = true && this.isSetNum_executors(); - boolean that_present_num_executors = true && that.isSetNum_executors(); - if (this_present_num_executors || that_present_num_executors) { - if (!(this_present_num_executors && that_present_num_executors)) - return false; - if (!this.num_executors.equals(that.num_executors)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_wait_secs = true && (isSetWait_secs()); - builder.append(present_wait_secs); - if (present_wait_secs) - builder.append(wait_secs); - - boolean present_num_workers = true && (isSetNum_workers()); - builder.append(present_num_workers); - if (present_num_workers) - builder.append(num_workers); - - boolean present_num_executors = true && (isSetNum_executors()); - builder.append(present_num_executors); - if (present_num_executors) - builder.append(num_executors); - - return builder.toHashCode(); - } - - public int compareTo(RebalanceOptions other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - RebalanceOptions typedOther = (RebalanceOptions)other; - - lastComparison = Boolean.valueOf(isSetWait_secs()).compareTo(typedOther.isSetWait_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetWait_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.wait_secs, typedOther.wait_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNum_workers()).compareTo(typedOther.isSetNum_workers()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNum_workers()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_workers, typedOther.num_workers); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNum_executors()).compareTo(typedOther.isSetNum_executors()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNum_executors()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_executors, typedOther.num_executors); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("RebalanceOptions("); - boolean first = true; - - if (isSetWait_secs()) { - sb.append("wait_secs:"); - sb.append(this.wait_secs); - first = false; - } - if (isSetNum_workers()) { - if (!first) sb.append(", "); - sb.append("num_workers:"); - sb.append(this.num_workers); - first = false; - } - if (isSetNum_executors()) { - if (!first) sb.append(", "); - sb.append("num_executors:"); - if (this.num_executors == null) { - sb.append("null"); - } else { - sb.append(this.num_executors); - } - first = false; - } - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class RebalanceOptionsStandardSchemeFactory implements SchemeFactory { - public RebalanceOptionsStandardScheme getScheme() { - return new RebalanceOptionsStandardScheme(); - } - } - - private static class RebalanceOptionsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, RebalanceOptions struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // WAIT_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.wait_secs = iprot.readI32(); - struct.setWait_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // NUM_WORKERS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.num_workers = iprot.readI32(); - struct.setNum_workersIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // NUM_EXECUTORS - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map316 = iprot.readMapBegin(); - struct.num_executors = new HashMap(2*_map316.size); - for (int _i317 = 0; _i317 < _map316.size; ++_i317) - { - String _key318; // required - int _val319; // required - _key318 = iprot.readString(); - _val319 = iprot.readI32(); - struct.num_executors.put(_key318, _val319); - } - iprot.readMapEnd(); - } - struct.setNum_executorsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, RebalanceOptions struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.isSetWait_secs()) { - oprot.writeFieldBegin(WAIT_SECS_FIELD_DESC); - oprot.writeI32(struct.wait_secs); - oprot.writeFieldEnd(); - } - if (struct.isSetNum_workers()) { - oprot.writeFieldBegin(NUM_WORKERS_FIELD_DESC); - oprot.writeI32(struct.num_workers); - oprot.writeFieldEnd(); - } - if (struct.num_executors != null) { - if (struct.isSetNum_executors()) { - oprot.writeFieldBegin(NUM_EXECUTORS_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, struct.num_executors.size())); - for (Map.Entry _iter320 : struct.num_executors.entrySet()) - { - oprot.writeString(_iter320.getKey()); - oprot.writeI32(_iter320.getValue()); - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class RebalanceOptionsTupleSchemeFactory implements SchemeFactory { - public RebalanceOptionsTupleScheme getScheme() { - return new RebalanceOptionsTupleScheme(); - } - } - - private static class RebalanceOptionsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, RebalanceOptions struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetWait_secs()) { - optionals.set(0); - } - if (struct.isSetNum_workers()) { - optionals.set(1); - } - if (struct.isSetNum_executors()) { - optionals.set(2); - } - oprot.writeBitSet(optionals, 3); - if (struct.isSetWait_secs()) { - oprot.writeI32(struct.wait_secs); - } - if (struct.isSetNum_workers()) { - oprot.writeI32(struct.num_workers); - } - if (struct.isSetNum_executors()) { - { - oprot.writeI32(struct.num_executors.size()); - for (Map.Entry _iter321 : struct.num_executors.entrySet()) - { - oprot.writeString(_iter321.getKey()); - oprot.writeI32(_iter321.getValue()); - } - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, RebalanceOptions struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(3); - if (incoming.get(0)) { - struct.wait_secs = iprot.readI32(); - struct.setWait_secsIsSet(true); - } - if (incoming.get(1)) { - struct.num_workers = iprot.readI32(); - struct.setNum_workersIsSet(true); - } - if (incoming.get(2)) { - { - org.apache.thrift.protocol.TMap _map322 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, iprot.readI32()); - struct.num_executors = new HashMap(2*_map322.size); - for (int _i323 = 0; _i323 < _map322.size; ++_i323) - { - String _key324; // required - int _val325; // required - _key324 = iprot.readString(); - _val325 = iprot.readI32(); - struct.num_executors.put(_key324, _val325); - } - } - struct.setNum_executorsIsSet(true); - } - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ShellComponent.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ShellComponent.java deleted file mode 100644 index 8e8b5d741..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/ShellComponent.java +++ /dev/null @@ -1,499 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ShellComponent implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ShellComponent"); - - private static final org.apache.thrift.protocol.TField EXECUTION_COMMAND_FIELD_DESC = new org.apache.thrift.protocol.TField("execution_command", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField SCRIPT_FIELD_DESC = new org.apache.thrift.protocol.TField("script", org.apache.thrift.protocol.TType.STRING, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new ShellComponentStandardSchemeFactory()); - schemes.put(TupleScheme.class, new ShellComponentTupleSchemeFactory()); - } - - public String execution_command; // required - public String script; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - EXECUTION_COMMAND((short)1, "execution_command"), - SCRIPT((short)2, "script"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // EXECUTION_COMMAND - return EXECUTION_COMMAND; - case 2: // SCRIPT - return SCRIPT; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.EXECUTION_COMMAND, new org.apache.thrift.meta_data.FieldMetaData("execution_command", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.SCRIPT, new org.apache.thrift.meta_data.FieldMetaData("script", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ShellComponent.class, metaDataMap); - } - - public ShellComponent() { - } - - public ShellComponent( - String execution_command, - String script) - { - this(); - this.execution_command = execution_command; - this.script = script; - } - - /** - * Performs a deep copy on other. - */ - public ShellComponent(ShellComponent other) { - if (other.isSetExecution_command()) { - this.execution_command = other.execution_command; - } - if (other.isSetScript()) { - this.script = other.script; - } - } - - public ShellComponent deepCopy() { - return new ShellComponent(this); - } - - @Override - public void clear() { - this.execution_command = null; - this.script = null; - } - - public String getExecution_command() { - return this.execution_command; - } - - public ShellComponent setExecution_command(String execution_command) { - this.execution_command = execution_command; - return this; - } - - public void unsetExecution_command() { - this.execution_command = null; - } - - /** Returns true if field execution_command is set (has been assigned a value) and false otherwise */ - public boolean isSetExecution_command() { - return this.execution_command != null; - } - - public void setExecution_commandIsSet(boolean value) { - if (!value) { - this.execution_command = null; - } - } - - public String getScript() { - return this.script; - } - - public ShellComponent setScript(String script) { - this.script = script; - return this; - } - - public void unsetScript() { - this.script = null; - } - - /** Returns true if field script is set (has been assigned a value) and false otherwise */ - public boolean isSetScript() { - return this.script != null; - } - - public void setScriptIsSet(boolean value) { - if (!value) { - this.script = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case EXECUTION_COMMAND: - if (value == null) { - unsetExecution_command(); - } else { - setExecution_command((String)value); - } - break; - - case SCRIPT: - if (value == null) { - unsetScript(); - } else { - setScript((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case EXECUTION_COMMAND: - return getExecution_command(); - - case SCRIPT: - return getScript(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case EXECUTION_COMMAND: - return isSetExecution_command(); - case SCRIPT: - return isSetScript(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof ShellComponent) - return this.equals((ShellComponent)that); - return false; - } - - public boolean equals(ShellComponent that) { - if (that == null) - return false; - - boolean this_present_execution_command = true && this.isSetExecution_command(); - boolean that_present_execution_command = true && that.isSetExecution_command(); - if (this_present_execution_command || that_present_execution_command) { - if (!(this_present_execution_command && that_present_execution_command)) - return false; - if (!this.execution_command.equals(that.execution_command)) - return false; - } - - boolean this_present_script = true && this.isSetScript(); - boolean that_present_script = true && that.isSetScript(); - if (this_present_script || that_present_script) { - if (!(this_present_script && that_present_script)) - return false; - if (!this.script.equals(that.script)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_execution_command = true && (isSetExecution_command()); - builder.append(present_execution_command); - if (present_execution_command) - builder.append(execution_command); - - boolean present_script = true && (isSetScript()); - builder.append(present_script); - if (present_script) - builder.append(script); - - return builder.toHashCode(); - } - - public int compareTo(ShellComponent other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - ShellComponent typedOther = (ShellComponent)other; - - lastComparison = Boolean.valueOf(isSetExecution_command()).compareTo(typedOther.isSetExecution_command()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetExecution_command()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.execution_command, typedOther.execution_command); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetScript()).compareTo(typedOther.isSetScript()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetScript()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.script, typedOther.script); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("ShellComponent("); - boolean first = true; - - sb.append("execution_command:"); - if (this.execution_command == null) { - sb.append("null"); - } else { - sb.append(this.execution_command); - } - first = false; - if (!first) sb.append(", "); - sb.append("script:"); - if (this.script == null) { - sb.append("null"); - } else { - sb.append(this.script); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class ShellComponentStandardSchemeFactory implements SchemeFactory { - public ShellComponentStandardScheme getScheme() { - return new ShellComponentStandardScheme(); - } - } - - private static class ShellComponentStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, ShellComponent struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // EXECUTION_COMMAND - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.execution_command = iprot.readString(); - struct.setExecution_commandIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // SCRIPT - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.script = iprot.readString(); - struct.setScriptIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, ShellComponent struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.execution_command != null) { - oprot.writeFieldBegin(EXECUTION_COMMAND_FIELD_DESC); - oprot.writeString(struct.execution_command); - oprot.writeFieldEnd(); - } - if (struct.script != null) { - oprot.writeFieldBegin(SCRIPT_FIELD_DESC); - oprot.writeString(struct.script); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class ShellComponentTupleSchemeFactory implements SchemeFactory { - public ShellComponentTupleScheme getScheme() { - return new ShellComponentTupleScheme(); - } - } - - private static class ShellComponentTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, ShellComponent struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetExecution_command()) { - optionals.set(0); - } - if (struct.isSetScript()) { - optionals.set(1); - } - oprot.writeBitSet(optionals, 2); - if (struct.isSetExecution_command()) { - oprot.writeString(struct.execution_command); - } - if (struct.isSetScript()) { - oprot.writeString(struct.script); - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, ShellComponent struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); - if (incoming.get(0)) { - struct.execution_command = iprot.readString(); - struct.setExecution_commandIsSet(true); - } - if (incoming.get(1)) { - struct.script = iprot.readString(); - struct.setScriptIsSet(true); - } - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SpoutSpec.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SpoutSpec.java deleted file mode 100644 index d530666c3..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SpoutSpec.java +++ /dev/null @@ -1,495 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SpoutSpec implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SpoutSpec"); - - private static final org.apache.thrift.protocol.TField SPOUT_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("spout_object", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField COMMON_FIELD_DESC = new org.apache.thrift.protocol.TField("common", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new SpoutSpecStandardSchemeFactory()); - schemes.put(TupleScheme.class, new SpoutSpecTupleSchemeFactory()); - } - - public ComponentObject spout_object; // required - public ComponentCommon common; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SPOUT_OBJECT((short)1, "spout_object"), - COMMON((short)2, "common"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // SPOUT_OBJECT - return SPOUT_OBJECT; - case 2: // COMMON - return COMMON; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SPOUT_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("spout_object", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentObject.class))); - tmpMap.put(_Fields.COMMON, new org.apache.thrift.meta_data.FieldMetaData("common", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentCommon.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SpoutSpec.class, metaDataMap); - } - - public SpoutSpec() { - } - - public SpoutSpec( - ComponentObject spout_object, - ComponentCommon common) - { - this(); - this.spout_object = spout_object; - this.common = common; - } - - /** - * Performs a deep copy on other. - */ - public SpoutSpec(SpoutSpec other) { - if (other.isSetSpout_object()) { - this.spout_object = new ComponentObject(other.spout_object); - } - if (other.isSetCommon()) { - this.common = new ComponentCommon(other.common); - } - } - - public SpoutSpec deepCopy() { - return new SpoutSpec(this); - } - - @Override - public void clear() { - this.spout_object = null; - this.common = null; - } - - public ComponentObject getSpout_object() { - return this.spout_object; - } - - public SpoutSpec setSpout_object(ComponentObject spout_object) { - this.spout_object = spout_object; - return this; - } - - public void unsetSpout_object() { - this.spout_object = null; - } - - /** Returns true if field spout_object is set (has been assigned a value) and false otherwise */ - public boolean isSetSpout_object() { - return this.spout_object != null; - } - - public void setSpout_objectIsSet(boolean value) { - if (!value) { - this.spout_object = null; - } - } - - public ComponentCommon getCommon() { - return this.common; - } - - public SpoutSpec setCommon(ComponentCommon common) { - this.common = common; - return this; - } - - public void unsetCommon() { - this.common = null; - } - - /** Returns true if field common is set (has been assigned a value) and false otherwise */ - public boolean isSetCommon() { - return this.common != null; - } - - public void setCommonIsSet(boolean value) { - if (!value) { - this.common = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SPOUT_OBJECT: - if (value == null) { - unsetSpout_object(); - } else { - setSpout_object((ComponentObject)value); - } - break; - - case COMMON: - if (value == null) { - unsetCommon(); - } else { - setCommon((ComponentCommon)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SPOUT_OBJECT: - return getSpout_object(); - - case COMMON: - return getCommon(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SPOUT_OBJECT: - return isSetSpout_object(); - case COMMON: - return isSetCommon(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof SpoutSpec) - return this.equals((SpoutSpec)that); - return false; - } - - public boolean equals(SpoutSpec that) { - if (that == null) - return false; - - boolean this_present_spout_object = true && this.isSetSpout_object(); - boolean that_present_spout_object = true && that.isSetSpout_object(); - if (this_present_spout_object || that_present_spout_object) { - if (!(this_present_spout_object && that_present_spout_object)) - return false; - if (!this.spout_object.equals(that.spout_object)) - return false; - } - - boolean this_present_common = true && this.isSetCommon(); - boolean that_present_common = true && that.isSetCommon(); - if (this_present_common || that_present_common) { - if (!(this_present_common && that_present_common)) - return false; - if (!this.common.equals(that.common)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_spout_object = true && (isSetSpout_object()); - builder.append(present_spout_object); - if (present_spout_object) - builder.append(spout_object); - - boolean present_common = true && (isSetCommon()); - builder.append(present_common); - if (present_common) - builder.append(common); - - return builder.toHashCode(); - } - - public int compareTo(SpoutSpec other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - SpoutSpec typedOther = (SpoutSpec)other; - - lastComparison = Boolean.valueOf(isSetSpout_object()).compareTo(typedOther.isSetSpout_object()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSpout_object()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.spout_object, typedOther.spout_object); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetCommon()).compareTo(typedOther.isSetCommon()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetCommon()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.common, typedOther.common); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("SpoutSpec("); - boolean first = true; - - sb.append("spout_object:"); - if (this.spout_object == null) { - sb.append("null"); - } else { - sb.append(this.spout_object); - } - first = false; - if (!first) sb.append(", "); - sb.append("common:"); - if (this.common == null) { - sb.append("null"); - } else { - sb.append(this.common); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (spout_object == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'spout_object' was not present! Struct: " + toString()); - } - if (common == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'common' was not present! Struct: " + toString()); - } - // check for sub-struct validity - if (common != null) { - common.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class SpoutSpecStandardSchemeFactory implements SchemeFactory { - public SpoutSpecStandardScheme getScheme() { - return new SpoutSpecStandardScheme(); - } - } - - private static class SpoutSpecStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, SpoutSpec struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // SPOUT_OBJECT - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.spout_object = new ComponentObject(); - struct.spout_object.read(iprot); - struct.setSpout_objectIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // COMMON - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.common = new ComponentCommon(); - struct.common.read(iprot); - struct.setCommonIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, SpoutSpec struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.spout_object != null) { - oprot.writeFieldBegin(SPOUT_OBJECT_FIELD_DESC); - struct.spout_object.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.common != null) { - oprot.writeFieldBegin(COMMON_FIELD_DESC); - struct.common.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class SpoutSpecTupleSchemeFactory implements SchemeFactory { - public SpoutSpecTupleScheme getScheme() { - return new SpoutSpecTupleScheme(); - } - } - - private static class SpoutSpecTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, SpoutSpec struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - struct.spout_object.write(oprot); - struct.common.write(oprot); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, SpoutSpec struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.spout_object = new ComponentObject(); - struct.spout_object.read(iprot); - struct.setSpout_objectIsSet(true); - struct.common = new ComponentCommon(); - struct.common.read(iprot); - struct.setCommonIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SpoutStats.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SpoutStats.java deleted file mode 100644 index 5f93068db..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SpoutStats.java +++ /dev/null @@ -1,931 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SpoutStats implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SpoutStats"); - - private static final org.apache.thrift.protocol.TField ACKED_FIELD_DESC = new org.apache.thrift.protocol.TField("acked", org.apache.thrift.protocol.TType.MAP, (short)1); - private static final org.apache.thrift.protocol.TField FAILED_FIELD_DESC = new org.apache.thrift.protocol.TField("failed", org.apache.thrift.protocol.TType.MAP, (short)2); - private static final org.apache.thrift.protocol.TField COMPLETE_MS_AVG_FIELD_DESC = new org.apache.thrift.protocol.TField("complete_ms_avg", org.apache.thrift.protocol.TType.MAP, (short)3); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new SpoutStatsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new SpoutStatsTupleSchemeFactory()); - } - - public Map> acked; // required - public Map> failed; // required - public Map> complete_ms_avg; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ACKED((short)1, "acked"), - FAILED((short)2, "failed"), - COMPLETE_MS_AVG((short)3, "complete_ms_avg"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ACKED - return ACKED; - case 2: // FAILED - return FAILED; - case 3: // COMPLETE_MS_AVG - return COMPLETE_MS_AVG; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ACKED, new org.apache.thrift.meta_data.FieldMetaData("acked", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))))); - tmpMap.put(_Fields.FAILED, new org.apache.thrift.meta_data.FieldMetaData("failed", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))))); - tmpMap.put(_Fields.COMPLETE_MS_AVG, new org.apache.thrift.meta_data.FieldMetaData("complete_ms_avg", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE))))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SpoutStats.class, metaDataMap); - } - - public SpoutStats() { - } - - public SpoutStats( - Map> acked, - Map> failed, - Map> complete_ms_avg) - { - this(); - this.acked = acked; - this.failed = failed; - this.complete_ms_avg = complete_ms_avg; - } - - /** - * Performs a deep copy on other. - */ - public SpoutStats(SpoutStats other) { - if (other.isSetAcked()) { - Map> __this__acked = new HashMap>(); - for (Map.Entry> other_element : other.acked.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__acked_copy_key = other_element_key; - - Map __this__acked_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - String other_element_value_element_key = other_element_value_element.getKey(); - Long other_element_value_element_value = other_element_value_element.getValue(); - - String __this__acked_copy_value_copy_key = other_element_value_element_key; - - Long __this__acked_copy_value_copy_value = other_element_value_element_value; - - __this__acked_copy_value.put(__this__acked_copy_value_copy_key, __this__acked_copy_value_copy_value); - } - - __this__acked.put(__this__acked_copy_key, __this__acked_copy_value); - } - this.acked = __this__acked; - } - if (other.isSetFailed()) { - Map> __this__failed = new HashMap>(); - for (Map.Entry> other_element : other.failed.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__failed_copy_key = other_element_key; - - Map __this__failed_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - String other_element_value_element_key = other_element_value_element.getKey(); - Long other_element_value_element_value = other_element_value_element.getValue(); - - String __this__failed_copy_value_copy_key = other_element_value_element_key; - - Long __this__failed_copy_value_copy_value = other_element_value_element_value; - - __this__failed_copy_value.put(__this__failed_copy_value_copy_key, __this__failed_copy_value_copy_value); - } - - __this__failed.put(__this__failed_copy_key, __this__failed_copy_value); - } - this.failed = __this__failed; - } - if (other.isSetComplete_ms_avg()) { - Map> __this__complete_ms_avg = new HashMap>(); - for (Map.Entry> other_element : other.complete_ms_avg.entrySet()) { - - String other_element_key = other_element.getKey(); - Map other_element_value = other_element.getValue(); - - String __this__complete_ms_avg_copy_key = other_element_key; - - Map __this__complete_ms_avg_copy_value = new HashMap(); - for (Map.Entry other_element_value_element : other_element_value.entrySet()) { - - String other_element_value_element_key = other_element_value_element.getKey(); - Double other_element_value_element_value = other_element_value_element.getValue(); - - String __this__complete_ms_avg_copy_value_copy_key = other_element_value_element_key; - - Double __this__complete_ms_avg_copy_value_copy_value = other_element_value_element_value; - - __this__complete_ms_avg_copy_value.put(__this__complete_ms_avg_copy_value_copy_key, __this__complete_ms_avg_copy_value_copy_value); - } - - __this__complete_ms_avg.put(__this__complete_ms_avg_copy_key, __this__complete_ms_avg_copy_value); - } - this.complete_ms_avg = __this__complete_ms_avg; - } - } - - public SpoutStats deepCopy() { - return new SpoutStats(this); - } - - @Override - public void clear() { - this.acked = null; - this.failed = null; - this.complete_ms_avg = null; - } - - public int getAckedSize() { - return (this.acked == null) ? 0 : this.acked.size(); - } - - public void putToAcked(String key, Map val) { - if (this.acked == null) { - this.acked = new HashMap>(); - } - this.acked.put(key, val); - } - - public Map> getAcked() { - return this.acked; - } - - public SpoutStats setAcked(Map> acked) { - this.acked = acked; - return this; - } - - public void unsetAcked() { - this.acked = null; - } - - /** Returns true if field acked is set (has been assigned a value) and false otherwise */ - public boolean isSetAcked() { - return this.acked != null; - } - - public void setAckedIsSet(boolean value) { - if (!value) { - this.acked = null; - } - } - - public int getFailedSize() { - return (this.failed == null) ? 0 : this.failed.size(); - } - - public void putToFailed(String key, Map val) { - if (this.failed == null) { - this.failed = new HashMap>(); - } - this.failed.put(key, val); - } - - public Map> getFailed() { - return this.failed; - } - - public SpoutStats setFailed(Map> failed) { - this.failed = failed; - return this; - } - - public void unsetFailed() { - this.failed = null; - } - - /** Returns true if field failed is set (has been assigned a value) and false otherwise */ - public boolean isSetFailed() { - return this.failed != null; - } - - public void setFailedIsSet(boolean value) { - if (!value) { - this.failed = null; - } - } - - public int getComplete_ms_avgSize() { - return (this.complete_ms_avg == null) ? 0 : this.complete_ms_avg.size(); - } - - public void putToComplete_ms_avg(String key, Map val) { - if (this.complete_ms_avg == null) { - this.complete_ms_avg = new HashMap>(); - } - this.complete_ms_avg.put(key, val); - } - - public Map> getComplete_ms_avg() { - return this.complete_ms_avg; - } - - public SpoutStats setComplete_ms_avg(Map> complete_ms_avg) { - this.complete_ms_avg = complete_ms_avg; - return this; - } - - public void unsetComplete_ms_avg() { - this.complete_ms_avg = null; - } - - /** Returns true if field complete_ms_avg is set (has been assigned a value) and false otherwise */ - public boolean isSetComplete_ms_avg() { - return this.complete_ms_avg != null; - } - - public void setComplete_ms_avgIsSet(boolean value) { - if (!value) { - this.complete_ms_avg = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ACKED: - if (value == null) { - unsetAcked(); - } else { - setAcked((Map>)value); - } - break; - - case FAILED: - if (value == null) { - unsetFailed(); - } else { - setFailed((Map>)value); - } - break; - - case COMPLETE_MS_AVG: - if (value == null) { - unsetComplete_ms_avg(); - } else { - setComplete_ms_avg((Map>)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ACKED: - return getAcked(); - - case FAILED: - return getFailed(); - - case COMPLETE_MS_AVG: - return getComplete_ms_avg(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ACKED: - return isSetAcked(); - case FAILED: - return isSetFailed(); - case COMPLETE_MS_AVG: - return isSetComplete_ms_avg(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof SpoutStats) - return this.equals((SpoutStats)that); - return false; - } - - public boolean equals(SpoutStats that) { - if (that == null) - return false; - - boolean this_present_acked = true && this.isSetAcked(); - boolean that_present_acked = true && that.isSetAcked(); - if (this_present_acked || that_present_acked) { - if (!(this_present_acked && that_present_acked)) - return false; - if (!this.acked.equals(that.acked)) - return false; - } - - boolean this_present_failed = true && this.isSetFailed(); - boolean that_present_failed = true && that.isSetFailed(); - if (this_present_failed || that_present_failed) { - if (!(this_present_failed && that_present_failed)) - return false; - if (!this.failed.equals(that.failed)) - return false; - } - - boolean this_present_complete_ms_avg = true && this.isSetComplete_ms_avg(); - boolean that_present_complete_ms_avg = true && that.isSetComplete_ms_avg(); - if (this_present_complete_ms_avg || that_present_complete_ms_avg) { - if (!(this_present_complete_ms_avg && that_present_complete_ms_avg)) - return false; - if (!this.complete_ms_avg.equals(that.complete_ms_avg)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_acked = true && (isSetAcked()); - builder.append(present_acked); - if (present_acked) - builder.append(acked); - - boolean present_failed = true && (isSetFailed()); - builder.append(present_failed); - if (present_failed) - builder.append(failed); - - boolean present_complete_ms_avg = true && (isSetComplete_ms_avg()); - builder.append(present_complete_ms_avg); - if (present_complete_ms_avg) - builder.append(complete_ms_avg); - - return builder.toHashCode(); - } - - public int compareTo(SpoutStats other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - SpoutStats typedOther = (SpoutStats)other; - - lastComparison = Boolean.valueOf(isSetAcked()).compareTo(typedOther.isSetAcked()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetAcked()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.acked, typedOther.acked); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetFailed()).compareTo(typedOther.isSetFailed()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetFailed()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.failed, typedOther.failed); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetComplete_ms_avg()).compareTo(typedOther.isSetComplete_ms_avg()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetComplete_ms_avg()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.complete_ms_avg, typedOther.complete_ms_avg); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("SpoutStats("); - boolean first = true; - - sb.append("acked:"); - if (this.acked == null) { - sb.append("null"); - } else { - sb.append(this.acked); - } - first = false; - if (!first) sb.append(", "); - sb.append("failed:"); - if (this.failed == null) { - sb.append("null"); - } else { - sb.append(this.failed); - } - first = false; - if (!first) sb.append(", "); - sb.append("complete_ms_avg:"); - if (this.complete_ms_avg == null) { - sb.append("null"); - } else { - sb.append(this.complete_ms_avg); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (acked == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'acked' was not present! Struct: " + toString()); - } - if (failed == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'failed' was not present! Struct: " + toString()); - } - if (complete_ms_avg == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'complete_ms_avg' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class SpoutStatsStandardSchemeFactory implements SchemeFactory { - public SpoutStatsStandardScheme getScheme() { - return new SpoutStatsStandardScheme(); - } - } - - private static class SpoutStatsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, SpoutStats struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ACKED - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map190 = iprot.readMapBegin(); - struct.acked = new HashMap>(2*_map190.size); - for (int _i191 = 0; _i191 < _map190.size; ++_i191) - { - String _key192; // required - Map _val193; // required - _key192 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map194 = iprot.readMapBegin(); - _val193 = new HashMap(2*_map194.size); - for (int _i195 = 0; _i195 < _map194.size; ++_i195) - { - String _key196; // required - long _val197; // required - _key196 = iprot.readString(); - _val197 = iprot.readI64(); - _val193.put(_key196, _val197); - } - iprot.readMapEnd(); - } - struct.acked.put(_key192, _val193); - } - iprot.readMapEnd(); - } - struct.setAckedIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // FAILED - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map198 = iprot.readMapBegin(); - struct.failed = new HashMap>(2*_map198.size); - for (int _i199 = 0; _i199 < _map198.size; ++_i199) - { - String _key200; // required - Map _val201; // required - _key200 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map202 = iprot.readMapBegin(); - _val201 = new HashMap(2*_map202.size); - for (int _i203 = 0; _i203 < _map202.size; ++_i203) - { - String _key204; // required - long _val205; // required - _key204 = iprot.readString(); - _val205 = iprot.readI64(); - _val201.put(_key204, _val205); - } - iprot.readMapEnd(); - } - struct.failed.put(_key200, _val201); - } - iprot.readMapEnd(); - } - struct.setFailedIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // COMPLETE_MS_AVG - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map206 = iprot.readMapBegin(); - struct.complete_ms_avg = new HashMap>(2*_map206.size); - for (int _i207 = 0; _i207 < _map206.size; ++_i207) - { - String _key208; // required - Map _val209; // required - _key208 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map210 = iprot.readMapBegin(); - _val209 = new HashMap(2*_map210.size); - for (int _i211 = 0; _i211 < _map210.size; ++_i211) - { - String _key212; // required - double _val213; // required - _key212 = iprot.readString(); - _val213 = iprot.readDouble(); - _val209.put(_key212, _val213); - } - iprot.readMapEnd(); - } - struct.complete_ms_avg.put(_key208, _val209); - } - iprot.readMapEnd(); - } - struct.setComplete_ms_avgIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, SpoutStats struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.acked != null) { - oprot.writeFieldBegin(ACKED_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.acked.size())); - for (Map.Entry> _iter214 : struct.acked.entrySet()) - { - oprot.writeString(_iter214.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, _iter214.getValue().size())); - for (Map.Entry _iter215 : _iter214.getValue().entrySet()) - { - oprot.writeString(_iter215.getKey()); - oprot.writeI64(_iter215.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.failed != null) { - oprot.writeFieldBegin(FAILED_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.failed.size())); - for (Map.Entry> _iter216 : struct.failed.entrySet()) - { - oprot.writeString(_iter216.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, _iter216.getValue().size())); - for (Map.Entry _iter217 : _iter216.getValue().entrySet()) - { - oprot.writeString(_iter217.getKey()); - oprot.writeI64(_iter217.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.complete_ms_avg != null) { - oprot.writeFieldBegin(COMPLETE_MS_AVG_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.complete_ms_avg.size())); - for (Map.Entry> _iter218 : struct.complete_ms_avg.entrySet()) - { - oprot.writeString(_iter218.getKey()); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.DOUBLE, _iter218.getValue().size())); - for (Map.Entry _iter219 : _iter218.getValue().entrySet()) - { - oprot.writeString(_iter219.getKey()); - oprot.writeDouble(_iter219.getValue()); - } - oprot.writeMapEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class SpoutStatsTupleSchemeFactory implements SchemeFactory { - public SpoutStatsTupleScheme getScheme() { - return new SpoutStatsTupleScheme(); - } - } - - private static class SpoutStatsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, SpoutStats struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - { - oprot.writeI32(struct.acked.size()); - for (Map.Entry> _iter220 : struct.acked.entrySet()) - { - oprot.writeString(_iter220.getKey()); - { - oprot.writeI32(_iter220.getValue().size()); - for (Map.Entry _iter221 : _iter220.getValue().entrySet()) - { - oprot.writeString(_iter221.getKey()); - oprot.writeI64(_iter221.getValue()); - } - } - } - } - { - oprot.writeI32(struct.failed.size()); - for (Map.Entry> _iter222 : struct.failed.entrySet()) - { - oprot.writeString(_iter222.getKey()); - { - oprot.writeI32(_iter222.getValue().size()); - for (Map.Entry _iter223 : _iter222.getValue().entrySet()) - { - oprot.writeString(_iter223.getKey()); - oprot.writeI64(_iter223.getValue()); - } - } - } - } - { - oprot.writeI32(struct.complete_ms_avg.size()); - for (Map.Entry> _iter224 : struct.complete_ms_avg.entrySet()) - { - oprot.writeString(_iter224.getKey()); - { - oprot.writeI32(_iter224.getValue().size()); - for (Map.Entry _iter225 : _iter224.getValue().entrySet()) - { - oprot.writeString(_iter225.getKey()); - oprot.writeDouble(_iter225.getValue()); - } - } - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, SpoutStats struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - { - org.apache.thrift.protocol.TMap _map226 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.acked = new HashMap>(2*_map226.size); - for (int _i227 = 0; _i227 < _map226.size; ++_i227) - { - String _key228; // required - Map _val229; // required - _key228 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map230 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, iprot.readI32()); - _val229 = new HashMap(2*_map230.size); - for (int _i231 = 0; _i231 < _map230.size; ++_i231) - { - String _key232; // required - long _val233; // required - _key232 = iprot.readString(); - _val233 = iprot.readI64(); - _val229.put(_key232, _val233); - } - } - struct.acked.put(_key228, _val229); - } - } - struct.setAckedIsSet(true); - { - org.apache.thrift.protocol.TMap _map234 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.failed = new HashMap>(2*_map234.size); - for (int _i235 = 0; _i235 < _map234.size; ++_i235) - { - String _key236; // required - Map _val237; // required - _key236 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map238 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I64, iprot.readI32()); - _val237 = new HashMap(2*_map238.size); - for (int _i239 = 0; _i239 < _map238.size; ++_i239) - { - String _key240; // required - long _val241; // required - _key240 = iprot.readString(); - _val241 = iprot.readI64(); - _val237.put(_key240, _val241); - } - } - struct.failed.put(_key236, _val237); - } - } - struct.setFailedIsSet(true); - { - org.apache.thrift.protocol.TMap _map242 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32()); - struct.complete_ms_avg = new HashMap>(2*_map242.size); - for (int _i243 = 0; _i243 < _map242.size; ++_i243) - { - String _key244; // required - Map _val245; // required - _key244 = iprot.readString(); - { - org.apache.thrift.protocol.TMap _map246 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32()); - _val245 = new HashMap(2*_map246.size); - for (int _i247 = 0; _i247 < _map246.size; ++_i247) - { - String _key248; // required - double _val249; // required - _key248 = iprot.readString(); - _val249 = iprot.readDouble(); - _val245.put(_key248, _val249); - } - } - struct.complete_ms_avg.put(_key244, _val245); - } - } - struct.setComplete_ms_avgIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StateSpoutSpec.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StateSpoutSpec.java deleted file mode 100644 index c1f2c8d94..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StateSpoutSpec.java +++ /dev/null @@ -1,495 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class StateSpoutSpec implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StateSpoutSpec"); - - private static final org.apache.thrift.protocol.TField STATE_SPOUT_OBJECT_FIELD_DESC = new org.apache.thrift.protocol.TField("state_spout_object", org.apache.thrift.protocol.TType.STRUCT, (short)1); - private static final org.apache.thrift.protocol.TField COMMON_FIELD_DESC = new org.apache.thrift.protocol.TField("common", org.apache.thrift.protocol.TType.STRUCT, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new StateSpoutSpecStandardSchemeFactory()); - schemes.put(TupleScheme.class, new StateSpoutSpecTupleSchemeFactory()); - } - - public ComponentObject state_spout_object; // required - public ComponentCommon common; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - STATE_SPOUT_OBJECT((short)1, "state_spout_object"), - COMMON((short)2, "common"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // STATE_SPOUT_OBJECT - return STATE_SPOUT_OBJECT; - case 2: // COMMON - return COMMON; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.STATE_SPOUT_OBJECT, new org.apache.thrift.meta_data.FieldMetaData("state_spout_object", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentObject.class))); - tmpMap.put(_Fields.COMMON, new org.apache.thrift.meta_data.FieldMetaData("common", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComponentCommon.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StateSpoutSpec.class, metaDataMap); - } - - public StateSpoutSpec() { - } - - public StateSpoutSpec( - ComponentObject state_spout_object, - ComponentCommon common) - { - this(); - this.state_spout_object = state_spout_object; - this.common = common; - } - - /** - * Performs a deep copy on other. - */ - public StateSpoutSpec(StateSpoutSpec other) { - if (other.isSetState_spout_object()) { - this.state_spout_object = new ComponentObject(other.state_spout_object); - } - if (other.isSetCommon()) { - this.common = new ComponentCommon(other.common); - } - } - - public StateSpoutSpec deepCopy() { - return new StateSpoutSpec(this); - } - - @Override - public void clear() { - this.state_spout_object = null; - this.common = null; - } - - public ComponentObject getState_spout_object() { - return this.state_spout_object; - } - - public StateSpoutSpec setState_spout_object(ComponentObject state_spout_object) { - this.state_spout_object = state_spout_object; - return this; - } - - public void unsetState_spout_object() { - this.state_spout_object = null; - } - - /** Returns true if field state_spout_object is set (has been assigned a value) and false otherwise */ - public boolean isSetState_spout_object() { - return this.state_spout_object != null; - } - - public void setState_spout_objectIsSet(boolean value) { - if (!value) { - this.state_spout_object = null; - } - } - - public ComponentCommon getCommon() { - return this.common; - } - - public StateSpoutSpec setCommon(ComponentCommon common) { - this.common = common; - return this; - } - - public void unsetCommon() { - this.common = null; - } - - /** Returns true if field common is set (has been assigned a value) and false otherwise */ - public boolean isSetCommon() { - return this.common != null; - } - - public void setCommonIsSet(boolean value) { - if (!value) { - this.common = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case STATE_SPOUT_OBJECT: - if (value == null) { - unsetState_spout_object(); - } else { - setState_spout_object((ComponentObject)value); - } - break; - - case COMMON: - if (value == null) { - unsetCommon(); - } else { - setCommon((ComponentCommon)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case STATE_SPOUT_OBJECT: - return getState_spout_object(); - - case COMMON: - return getCommon(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case STATE_SPOUT_OBJECT: - return isSetState_spout_object(); - case COMMON: - return isSetCommon(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof StateSpoutSpec) - return this.equals((StateSpoutSpec)that); - return false; - } - - public boolean equals(StateSpoutSpec that) { - if (that == null) - return false; - - boolean this_present_state_spout_object = true && this.isSetState_spout_object(); - boolean that_present_state_spout_object = true && that.isSetState_spout_object(); - if (this_present_state_spout_object || that_present_state_spout_object) { - if (!(this_present_state_spout_object && that_present_state_spout_object)) - return false; - if (!this.state_spout_object.equals(that.state_spout_object)) - return false; - } - - boolean this_present_common = true && this.isSetCommon(); - boolean that_present_common = true && that.isSetCommon(); - if (this_present_common || that_present_common) { - if (!(this_present_common && that_present_common)) - return false; - if (!this.common.equals(that.common)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_state_spout_object = true && (isSetState_spout_object()); - builder.append(present_state_spout_object); - if (present_state_spout_object) - builder.append(state_spout_object); - - boolean present_common = true && (isSetCommon()); - builder.append(present_common); - if (present_common) - builder.append(common); - - return builder.toHashCode(); - } - - public int compareTo(StateSpoutSpec other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - StateSpoutSpec typedOther = (StateSpoutSpec)other; - - lastComparison = Boolean.valueOf(isSetState_spout_object()).compareTo(typedOther.isSetState_spout_object()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetState_spout_object()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_spout_object, typedOther.state_spout_object); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetCommon()).compareTo(typedOther.isSetCommon()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetCommon()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.common, typedOther.common); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("StateSpoutSpec("); - boolean first = true; - - sb.append("state_spout_object:"); - if (this.state_spout_object == null) { - sb.append("null"); - } else { - sb.append(this.state_spout_object); - } - first = false; - if (!first) sb.append(", "); - sb.append("common:"); - if (this.common == null) { - sb.append("null"); - } else { - sb.append(this.common); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (state_spout_object == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'state_spout_object' was not present! Struct: " + toString()); - } - if (common == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'common' was not present! Struct: " + toString()); - } - // check for sub-struct validity - if (common != null) { - common.validate(); - } - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class StateSpoutSpecStandardSchemeFactory implements SchemeFactory { - public StateSpoutSpecStandardScheme getScheme() { - return new StateSpoutSpecStandardScheme(); - } - } - - private static class StateSpoutSpecStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, StateSpoutSpec struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // STATE_SPOUT_OBJECT - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.state_spout_object = new ComponentObject(); - struct.state_spout_object.read(iprot); - struct.setState_spout_objectIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // COMMON - if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { - struct.common = new ComponentCommon(); - struct.common.read(iprot); - struct.setCommonIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, StateSpoutSpec struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.state_spout_object != null) { - oprot.writeFieldBegin(STATE_SPOUT_OBJECT_FIELD_DESC); - struct.state_spout_object.write(oprot); - oprot.writeFieldEnd(); - } - if (struct.common != null) { - oprot.writeFieldBegin(COMMON_FIELD_DESC); - struct.common.write(oprot); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class StateSpoutSpecTupleSchemeFactory implements SchemeFactory { - public StateSpoutSpecTupleScheme getScheme() { - return new StateSpoutSpecTupleScheme(); - } - } - - private static class StateSpoutSpecTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, StateSpoutSpec struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - struct.state_spout_object.write(oprot); - struct.common.write(oprot); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, StateSpoutSpec struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.state_spout_object = new ComponentObject(); - struct.state_spout_object.read(iprot); - struct.setState_spout_objectIsSet(true); - struct.common = new ComponentCommon(); - struct.common.read(iprot); - struct.setCommonIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StormTopology.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StormTopology.java deleted file mode 100644 index 5a8c616db..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StormTopology.java +++ /dev/null @@ -1,784 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class StormTopology implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StormTopology"); - - private static final org.apache.thrift.protocol.TField SPOUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("spouts", org.apache.thrift.protocol.TType.MAP, (short)1); - private static final org.apache.thrift.protocol.TField BOLTS_FIELD_DESC = new org.apache.thrift.protocol.TField("bolts", org.apache.thrift.protocol.TType.MAP, (short)2); - private static final org.apache.thrift.protocol.TField STATE_SPOUTS_FIELD_DESC = new org.apache.thrift.protocol.TField("state_spouts", org.apache.thrift.protocol.TType.MAP, (short)3); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new StormTopologyStandardSchemeFactory()); - schemes.put(TupleScheme.class, new StormTopologyTupleSchemeFactory()); - } - - public Map spouts; // required - public Map bolts; // required - public Map state_spouts; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SPOUTS((short)1, "spouts"), - BOLTS((short)2, "bolts"), - STATE_SPOUTS((short)3, "state_spouts"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // SPOUTS - return SPOUTS; - case 2: // BOLTS - return BOLTS; - case 3: // STATE_SPOUTS - return STATE_SPOUTS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SPOUTS, new org.apache.thrift.meta_data.FieldMetaData("spouts", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SpoutSpec.class)))); - tmpMap.put(_Fields.BOLTS, new org.apache.thrift.meta_data.FieldMetaData("bolts", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Bolt.class)))); - tmpMap.put(_Fields.STATE_SPOUTS, new org.apache.thrift.meta_data.FieldMetaData("state_spouts", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, StateSpoutSpec.class)))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StormTopology.class, metaDataMap); - } - - public StormTopology() { - } - - public StormTopology( - Map spouts, - Map bolts, - Map state_spouts) - { - this(); - this.spouts = spouts; - this.bolts = bolts; - this.state_spouts = state_spouts; - } - - /** - * Performs a deep copy on other. - */ - public StormTopology(StormTopology other) { - if (other.isSetSpouts()) { - Map __this__spouts = new HashMap(); - for (Map.Entry other_element : other.spouts.entrySet()) { - - String other_element_key = other_element.getKey(); - SpoutSpec other_element_value = other_element.getValue(); - - String __this__spouts_copy_key = other_element_key; - - SpoutSpec __this__spouts_copy_value = new SpoutSpec(other_element_value); - - __this__spouts.put(__this__spouts_copy_key, __this__spouts_copy_value); - } - this.spouts = __this__spouts; - } - if (other.isSetBolts()) { - Map __this__bolts = new HashMap(); - for (Map.Entry other_element : other.bolts.entrySet()) { - - String other_element_key = other_element.getKey(); - Bolt other_element_value = other_element.getValue(); - - String __this__bolts_copy_key = other_element_key; - - Bolt __this__bolts_copy_value = new Bolt(other_element_value); - - __this__bolts.put(__this__bolts_copy_key, __this__bolts_copy_value); - } - this.bolts = __this__bolts; - } - if (other.isSetState_spouts()) { - Map __this__state_spouts = new HashMap(); - for (Map.Entry other_element : other.state_spouts.entrySet()) { - - String other_element_key = other_element.getKey(); - StateSpoutSpec other_element_value = other_element.getValue(); - - String __this__state_spouts_copy_key = other_element_key; - - StateSpoutSpec __this__state_spouts_copy_value = new StateSpoutSpec(other_element_value); - - __this__state_spouts.put(__this__state_spouts_copy_key, __this__state_spouts_copy_value); - } - this.state_spouts = __this__state_spouts; - } - } - - public StormTopology deepCopy() { - return new StormTopology(this); - } - - @Override - public void clear() { - this.spouts = null; - this.bolts = null; - this.state_spouts = null; - } - - public int getSpoutsSize() { - return (this.spouts == null) ? 0 : this.spouts.size(); - } - - public void putToSpouts(String key, SpoutSpec val) { - if (this.spouts == null) { - this.spouts = new HashMap(); - } - this.spouts.put(key, val); - } - - public Map getSpouts() { - return this.spouts; - } - - public StormTopology setSpouts(Map spouts) { - this.spouts = spouts; - return this; - } - - public void unsetSpouts() { - this.spouts = null; - } - - /** Returns true if field spouts is set (has been assigned a value) and false otherwise */ - public boolean isSetSpouts() { - return this.spouts != null; - } - - public void setSpoutsIsSet(boolean value) { - if (!value) { - this.spouts = null; - } - } - - public int getBoltsSize() { - return (this.bolts == null) ? 0 : this.bolts.size(); - } - - public void putToBolts(String key, Bolt val) { - if (this.bolts == null) { - this.bolts = new HashMap(); - } - this.bolts.put(key, val); - } - - public Map getBolts() { - return this.bolts; - } - - public StormTopology setBolts(Map bolts) { - this.bolts = bolts; - return this; - } - - public void unsetBolts() { - this.bolts = null; - } - - /** Returns true if field bolts is set (has been assigned a value) and false otherwise */ - public boolean isSetBolts() { - return this.bolts != null; - } - - public void setBoltsIsSet(boolean value) { - if (!value) { - this.bolts = null; - } - } - - public int getState_spoutsSize() { - return (this.state_spouts == null) ? 0 : this.state_spouts.size(); - } - - public void putToState_spouts(String key, StateSpoutSpec val) { - if (this.state_spouts == null) { - this.state_spouts = new HashMap(); - } - this.state_spouts.put(key, val); - } - - public Map getState_spouts() { - return this.state_spouts; - } - - public StormTopology setState_spouts(Map state_spouts) { - this.state_spouts = state_spouts; - return this; - } - - public void unsetState_spouts() { - this.state_spouts = null; - } - - /** Returns true if field state_spouts is set (has been assigned a value) and false otherwise */ - public boolean isSetState_spouts() { - return this.state_spouts != null; - } - - public void setState_spoutsIsSet(boolean value) { - if (!value) { - this.state_spouts = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SPOUTS: - if (value == null) { - unsetSpouts(); - } else { - setSpouts((Map)value); - } - break; - - case BOLTS: - if (value == null) { - unsetBolts(); - } else { - setBolts((Map)value); - } - break; - - case STATE_SPOUTS: - if (value == null) { - unsetState_spouts(); - } else { - setState_spouts((Map)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SPOUTS: - return getSpouts(); - - case BOLTS: - return getBolts(); - - case STATE_SPOUTS: - return getState_spouts(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SPOUTS: - return isSetSpouts(); - case BOLTS: - return isSetBolts(); - case STATE_SPOUTS: - return isSetState_spouts(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof StormTopology) - return this.equals((StormTopology)that); - return false; - } - - public boolean equals(StormTopology that) { - if (that == null) - return false; - - boolean this_present_spouts = true && this.isSetSpouts(); - boolean that_present_spouts = true && that.isSetSpouts(); - if (this_present_spouts || that_present_spouts) { - if (!(this_present_spouts && that_present_spouts)) - return false; - if (!this.spouts.equals(that.spouts)) - return false; - } - - boolean this_present_bolts = true && this.isSetBolts(); - boolean that_present_bolts = true && that.isSetBolts(); - if (this_present_bolts || that_present_bolts) { - if (!(this_present_bolts && that_present_bolts)) - return false; - if (!this.bolts.equals(that.bolts)) - return false; - } - - boolean this_present_state_spouts = true && this.isSetState_spouts(); - boolean that_present_state_spouts = true && that.isSetState_spouts(); - if (this_present_state_spouts || that_present_state_spouts) { - if (!(this_present_state_spouts && that_present_state_spouts)) - return false; - if (!this.state_spouts.equals(that.state_spouts)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_spouts = true && (isSetSpouts()); - builder.append(present_spouts); - if (present_spouts) - builder.append(spouts); - - boolean present_bolts = true && (isSetBolts()); - builder.append(present_bolts); - if (present_bolts) - builder.append(bolts); - - boolean present_state_spouts = true && (isSetState_spouts()); - builder.append(present_state_spouts); - if (present_state_spouts) - builder.append(state_spouts); - - return builder.toHashCode(); - } - - public int compareTo(StormTopology other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - StormTopology typedOther = (StormTopology)other; - - lastComparison = Boolean.valueOf(isSetSpouts()).compareTo(typedOther.isSetSpouts()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSpouts()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.spouts, typedOther.spouts); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetBolts()).compareTo(typedOther.isSetBolts()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetBolts()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bolts, typedOther.bolts); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetState_spouts()).compareTo(typedOther.isSetState_spouts()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetState_spouts()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.state_spouts, typedOther.state_spouts); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("StormTopology("); - boolean first = true; - - sb.append("spouts:"); - if (this.spouts == null) { - sb.append("null"); - } else { - sb.append(this.spouts); - } - first = false; - if (!first) sb.append(", "); - sb.append("bolts:"); - if (this.bolts == null) { - sb.append("null"); - } else { - sb.append(this.bolts); - } - first = false; - if (!first) sb.append(", "); - sb.append("state_spouts:"); - if (this.state_spouts == null) { - sb.append("null"); - } else { - sb.append(this.state_spouts); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (spouts == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'spouts' was not present! Struct: " + toString()); - } - if (bolts == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'bolts' was not present! Struct: " + toString()); - } - if (state_spouts == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'state_spouts' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class StormTopologyStandardSchemeFactory implements SchemeFactory { - public StormTopologyStandardScheme getScheme() { - return new StormTopologyStandardScheme(); - } - } - - private static class StormTopologyStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, StormTopology struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // SPOUTS - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map44 = iprot.readMapBegin(); - struct.spouts = new HashMap(2*_map44.size); - for (int _i45 = 0; _i45 < _map44.size; ++_i45) - { - String _key46; // required - SpoutSpec _val47; // required - _key46 = iprot.readString(); - _val47 = new SpoutSpec(); - _val47.read(iprot); - struct.spouts.put(_key46, _val47); - } - iprot.readMapEnd(); - } - struct.setSpoutsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // BOLTS - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map48 = iprot.readMapBegin(); - struct.bolts = new HashMap(2*_map48.size); - for (int _i49 = 0; _i49 < _map48.size; ++_i49) - { - String _key50; // required - Bolt _val51; // required - _key50 = iprot.readString(); - _val51 = new Bolt(); - _val51.read(iprot); - struct.bolts.put(_key50, _val51); - } - iprot.readMapEnd(); - } - struct.setBoltsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // STATE_SPOUTS - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map52 = iprot.readMapBegin(); - struct.state_spouts = new HashMap(2*_map52.size); - for (int _i53 = 0; _i53 < _map52.size; ++_i53) - { - String _key54; // required - StateSpoutSpec _val55; // required - _key54 = iprot.readString(); - _val55 = new StateSpoutSpec(); - _val55.read(iprot); - struct.state_spouts.put(_key54, _val55); - } - iprot.readMapEnd(); - } - struct.setState_spoutsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, StormTopology struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.spouts != null) { - oprot.writeFieldBegin(SPOUTS_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.spouts.size())); - for (Map.Entry _iter56 : struct.spouts.entrySet()) - { - oprot.writeString(_iter56.getKey()); - _iter56.getValue().write(oprot); - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.bolts != null) { - oprot.writeFieldBegin(BOLTS_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.bolts.size())); - for (Map.Entry _iter57 : struct.bolts.entrySet()) - { - oprot.writeString(_iter57.getKey()); - _iter57.getValue().write(oprot); - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.state_spouts != null) { - oprot.writeFieldBegin(STATE_SPOUTS_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.state_spouts.size())); - for (Map.Entry _iter58 : struct.state_spouts.entrySet()) - { - oprot.writeString(_iter58.getKey()); - _iter58.getValue().write(oprot); - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class StormTopologyTupleSchemeFactory implements SchemeFactory { - public StormTopologyTupleScheme getScheme() { - return new StormTopologyTupleScheme(); - } - } - - private static class StormTopologyTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, StormTopology struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - { - oprot.writeI32(struct.spouts.size()); - for (Map.Entry _iter59 : struct.spouts.entrySet()) - { - oprot.writeString(_iter59.getKey()); - _iter59.getValue().write(oprot); - } - } - { - oprot.writeI32(struct.bolts.size()); - for (Map.Entry _iter60 : struct.bolts.entrySet()) - { - oprot.writeString(_iter60.getKey()); - _iter60.getValue().write(oprot); - } - } - { - oprot.writeI32(struct.state_spouts.size()); - for (Map.Entry _iter61 : struct.state_spouts.entrySet()) - { - oprot.writeString(_iter61.getKey()); - _iter61.getValue().write(oprot); - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, StormTopology struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - { - org.apache.thrift.protocol.TMap _map62 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.spouts = new HashMap(2*_map62.size); - for (int _i63 = 0; _i63 < _map62.size; ++_i63) - { - String _key64; // required - SpoutSpec _val65; // required - _key64 = iprot.readString(); - _val65 = new SpoutSpec(); - _val65.read(iprot); - struct.spouts.put(_key64, _val65); - } - } - struct.setSpoutsIsSet(true); - { - org.apache.thrift.protocol.TMap _map66 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.bolts = new HashMap(2*_map66.size); - for (int _i67 = 0; _i67 < _map66.size; ++_i67) - { - String _key68; // required - Bolt _val69; // required - _key68 = iprot.readString(); - _val69 = new Bolt(); - _val69.read(iprot); - struct.bolts.put(_key68, _val69); - } - } - struct.setBoltsIsSet(true); - { - org.apache.thrift.protocol.TMap _map70 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.state_spouts = new HashMap(2*_map70.size); - for (int _i71 = 0; _i71 < _map70.size; ++_i71) - { - String _key72; // required - StateSpoutSpec _val73; // required - _key72 = iprot.readString(); - _val73 = new StateSpoutSpec(); - _val73.read(iprot); - struct.state_spouts.put(_key72, _val73); - } - } - struct.setState_spoutsIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StreamInfo.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StreamInfo.java deleted file mode 100644 index 88f7a279f..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/StreamInfo.java +++ /dev/null @@ -1,539 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class StreamInfo implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StreamInfo"); - - private static final org.apache.thrift.protocol.TField OUTPUT_FIELDS_FIELD_DESC = new org.apache.thrift.protocol.TField("output_fields", org.apache.thrift.protocol.TType.LIST, (short)1); - private static final org.apache.thrift.protocol.TField DIRECT_FIELD_DESC = new org.apache.thrift.protocol.TField("direct", org.apache.thrift.protocol.TType.BOOL, (short)2); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new StreamInfoStandardSchemeFactory()); - schemes.put(TupleScheme.class, new StreamInfoTupleSchemeFactory()); - } - - public List output_fields; // required - public boolean direct; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - OUTPUT_FIELDS((short)1, "output_fields"), - DIRECT((short)2, "direct"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // OUTPUT_FIELDS - return OUTPUT_FIELDS; - case 2: // DIRECT - return DIRECT; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __DIRECT_ISSET_ID = 0; - private byte __isset_bitfield = 0; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.OUTPUT_FIELDS, new org.apache.thrift.meta_data.FieldMetaData("output_fields", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); - tmpMap.put(_Fields.DIRECT, new org.apache.thrift.meta_data.FieldMetaData("direct", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(StreamInfo.class, metaDataMap); - } - - public StreamInfo() { - } - - public StreamInfo( - List output_fields, - boolean direct) - { - this(); - this.output_fields = output_fields; - this.direct = direct; - setDirectIsSet(true); - } - - /** - * Performs a deep copy on other. - */ - public StreamInfo(StreamInfo other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetOutput_fields()) { - List __this__output_fields = new ArrayList(); - for (String other_element : other.output_fields) { - __this__output_fields.add(other_element); - } - this.output_fields = __this__output_fields; - } - this.direct = other.direct; - } - - public StreamInfo deepCopy() { - return new StreamInfo(this); - } - - @Override - public void clear() { - this.output_fields = null; - setDirectIsSet(false); - this.direct = false; - } - - public int getOutput_fieldsSize() { - return (this.output_fields == null) ? 0 : this.output_fields.size(); - } - - public java.util.Iterator getOutput_fieldsIterator() { - return (this.output_fields == null) ? null : this.output_fields.iterator(); - } - - public void addToOutput_fields(String elem) { - if (this.output_fields == null) { - this.output_fields = new ArrayList(); - } - this.output_fields.add(elem); - } - - public List getOutput_fields() { - return this.output_fields; - } - - public StreamInfo setOutput_fields(List output_fields) { - this.output_fields = output_fields; - return this; - } - - public void unsetOutput_fields() { - this.output_fields = null; - } - - /** Returns true if field output_fields is set (has been assigned a value) and false otherwise */ - public boolean isSetOutput_fields() { - return this.output_fields != null; - } - - public void setOutput_fieldsIsSet(boolean value) { - if (!value) { - this.output_fields = null; - } - } - - public boolean isDirect() { - return this.direct; - } - - public StreamInfo setDirect(boolean direct) { - this.direct = direct; - setDirectIsSet(true); - return this; - } - - public void unsetDirect() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DIRECT_ISSET_ID); - } - - /** Returns true if field direct is set (has been assigned a value) and false otherwise */ - public boolean isSetDirect() { - return EncodingUtils.testBit(__isset_bitfield, __DIRECT_ISSET_ID); - } - - public void setDirectIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DIRECT_ISSET_ID, value); - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case OUTPUT_FIELDS: - if (value == null) { - unsetOutput_fields(); - } else { - setOutput_fields((List)value); - } - break; - - case DIRECT: - if (value == null) { - unsetDirect(); - } else { - setDirect((Boolean)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case OUTPUT_FIELDS: - return getOutput_fields(); - - case DIRECT: - return Boolean.valueOf(isDirect()); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case OUTPUT_FIELDS: - return isSetOutput_fields(); - case DIRECT: - return isSetDirect(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof StreamInfo) - return this.equals((StreamInfo)that); - return false; - } - - public boolean equals(StreamInfo that) { - if (that == null) - return false; - - boolean this_present_output_fields = true && this.isSetOutput_fields(); - boolean that_present_output_fields = true && that.isSetOutput_fields(); - if (this_present_output_fields || that_present_output_fields) { - if (!(this_present_output_fields && that_present_output_fields)) - return false; - if (!this.output_fields.equals(that.output_fields)) - return false; - } - - boolean this_present_direct = true; - boolean that_present_direct = true; - if (this_present_direct || that_present_direct) { - if (!(this_present_direct && that_present_direct)) - return false; - if (this.direct != that.direct) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_output_fields = true && (isSetOutput_fields()); - builder.append(present_output_fields); - if (present_output_fields) - builder.append(output_fields); - - boolean present_direct = true; - builder.append(present_direct); - if (present_direct) - builder.append(direct); - - return builder.toHashCode(); - } - - public int compareTo(StreamInfo other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - StreamInfo typedOther = (StreamInfo)other; - - lastComparison = Boolean.valueOf(isSetOutput_fields()).compareTo(typedOther.isSetOutput_fields()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetOutput_fields()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.output_fields, typedOther.output_fields); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetDirect()).compareTo(typedOther.isSetDirect()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetDirect()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.direct, typedOther.direct); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("StreamInfo("); - boolean first = true; - - sb.append("output_fields:"); - if (this.output_fields == null) { - sb.append("null"); - } else { - sb.append(this.output_fields); - } - first = false; - if (!first) sb.append(", "); - sb.append("direct:"); - sb.append(this.direct); - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (output_fields == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'output_fields' was not present! Struct: " + toString()); - } - // alas, we cannot check 'direct' because it's a primitive and you chose the non-beans generator. - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class StreamInfoStandardSchemeFactory implements SchemeFactory { - public StreamInfoStandardScheme getScheme() { - return new StreamInfoStandardScheme(); - } - } - - private static class StreamInfoStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, StreamInfo struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // OUTPUT_FIELDS - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list16 = iprot.readListBegin(); - struct.output_fields = new ArrayList(_list16.size); - for (int _i17 = 0; _i17 < _list16.size; ++_i17) - { - String _elem18; // required - _elem18 = iprot.readString(); - struct.output_fields.add(_elem18); - } - iprot.readListEnd(); - } - struct.setOutput_fieldsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // DIRECT - if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) { - struct.direct = iprot.readBool(); - struct.setDirectIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetDirect()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'direct' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, StreamInfo struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.output_fields != null) { - oprot.writeFieldBegin(OUTPUT_FIELDS_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.output_fields.size())); - for (String _iter19 : struct.output_fields) - { - oprot.writeString(_iter19); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(DIRECT_FIELD_DESC); - oprot.writeBool(struct.direct); - oprot.writeFieldEnd(); - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class StreamInfoTupleSchemeFactory implements SchemeFactory { - public StreamInfoTupleScheme getScheme() { - return new StreamInfoTupleScheme(); - } - } - - private static class StreamInfoTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, StreamInfo struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - { - oprot.writeI32(struct.output_fields.size()); - for (String _iter20 : struct.output_fields) - { - oprot.writeString(_iter20); - } - } - oprot.writeBool(struct.direct); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, StreamInfo struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - { - org.apache.thrift.protocol.TList _list21 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.output_fields = new ArrayList(_list21.size); - for (int _i22 = 0; _i22 < _list21.size; ++_i22) - { - String _elem23; // required - _elem23 = iprot.readString(); - struct.output_fields.add(_elem23); - } - } - struct.setOutput_fieldsIsSet(true); - struct.direct = iprot.readBool(); - struct.setDirectIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SubmitOptions.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SubmitOptions.java deleted file mode 100644 index a617ab6f2..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SubmitOptions.java +++ /dev/null @@ -1,403 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SubmitOptions implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SubmitOptions"); - - private static final org.apache.thrift.protocol.TField INITIAL_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("initial_status", org.apache.thrift.protocol.TType.I32, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new SubmitOptionsStandardSchemeFactory()); - schemes.put(TupleScheme.class, new SubmitOptionsTupleSchemeFactory()); - } - - /** - * - * @see TopologyInitialStatus - */ - public TopologyInitialStatus initial_status; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - /** - * - * @see TopologyInitialStatus - */ - INITIAL_STATUS((short)1, "initial_status"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // INITIAL_STATUS - return INITIAL_STATUS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.INITIAL_STATUS, new org.apache.thrift.meta_data.FieldMetaData("initial_status", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, TopologyInitialStatus.class))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SubmitOptions.class, metaDataMap); - } - - public SubmitOptions() { - } - - public SubmitOptions( - TopologyInitialStatus initial_status) - { - this(); - this.initial_status = initial_status; - } - - /** - * Performs a deep copy on other. - */ - public SubmitOptions(SubmitOptions other) { - if (other.isSetInitial_status()) { - this.initial_status = other.initial_status; - } - } - - public SubmitOptions deepCopy() { - return new SubmitOptions(this); - } - - @Override - public void clear() { - this.initial_status = null; - } - - /** - * - * @see TopologyInitialStatus - */ - public TopologyInitialStatus getInitial_status() { - return this.initial_status; - } - - /** - * - * @see TopologyInitialStatus - */ - public SubmitOptions setInitial_status(TopologyInitialStatus initial_status) { - this.initial_status = initial_status; - return this; - } - - public void unsetInitial_status() { - this.initial_status = null; - } - - /** Returns true if field initial_status is set (has been assigned a value) and false otherwise */ - public boolean isSetInitial_status() { - return this.initial_status != null; - } - - public void setInitial_statusIsSet(boolean value) { - if (!value) { - this.initial_status = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case INITIAL_STATUS: - if (value == null) { - unsetInitial_status(); - } else { - setInitial_status((TopologyInitialStatus)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case INITIAL_STATUS: - return getInitial_status(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case INITIAL_STATUS: - return isSetInitial_status(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof SubmitOptions) - return this.equals((SubmitOptions)that); - return false; - } - - public boolean equals(SubmitOptions that) { - if (that == null) - return false; - - boolean this_present_initial_status = true && this.isSetInitial_status(); - boolean that_present_initial_status = true && that.isSetInitial_status(); - if (this_present_initial_status || that_present_initial_status) { - if (!(this_present_initial_status && that_present_initial_status)) - return false; - if (!this.initial_status.equals(that.initial_status)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_initial_status = true && (isSetInitial_status()); - builder.append(present_initial_status); - if (present_initial_status) - builder.append(initial_status.getValue()); - - return builder.toHashCode(); - } - - public int compareTo(SubmitOptions other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - SubmitOptions typedOther = (SubmitOptions)other; - - lastComparison = Boolean.valueOf(isSetInitial_status()).compareTo(typedOther.isSetInitial_status()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetInitial_status()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.initial_status, typedOther.initial_status); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("SubmitOptions("); - boolean first = true; - - sb.append("initial_status:"); - if (this.initial_status == null) { - sb.append("null"); - } else { - sb.append(this.initial_status); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (initial_status == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'initial_status' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class SubmitOptionsStandardSchemeFactory implements SchemeFactory { - public SubmitOptionsStandardScheme getScheme() { - return new SubmitOptionsStandardScheme(); - } - } - - private static class SubmitOptionsStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, SubmitOptions struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // INITIAL_STATUS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.initial_status = TopologyInitialStatus.findByValue(iprot.readI32()); - struct.setInitial_statusIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, SubmitOptions struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.initial_status != null) { - oprot.writeFieldBegin(INITIAL_STATUS_FIELD_DESC); - oprot.writeI32(struct.initial_status.getValue()); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class SubmitOptionsTupleSchemeFactory implements SchemeFactory { - public SubmitOptionsTupleScheme getScheme() { - return new SubmitOptionsTupleScheme(); - } - } - - private static class SubmitOptionsTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, SubmitOptions struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeI32(struct.initial_status.getValue()); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, SubmitOptions struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.initial_status = TopologyInitialStatus.findByValue(iprot.readI32()); - struct.setInitial_statusIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SupervisorSummary.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SupervisorSummary.java deleted file mode 100644 index 5bf077fa1..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/SupervisorSummary.java +++ /dev/null @@ -1,780 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SupervisorSummary implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SupervisorSummary"); - - private static final org.apache.thrift.protocol.TField HOST_FIELD_DESC = new org.apache.thrift.protocol.TField("host", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField UPTIME_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("uptime_secs", org.apache.thrift.protocol.TType.I32, (short)2); - private static final org.apache.thrift.protocol.TField NUM_WORKERS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_workers", org.apache.thrift.protocol.TType.I32, (short)3); - private static final org.apache.thrift.protocol.TField NUM_USED_WORKERS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_used_workers", org.apache.thrift.protocol.TType.I32, (short)4); - private static final org.apache.thrift.protocol.TField SUPERVISOR_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("supervisor_id", org.apache.thrift.protocol.TType.STRING, (short)5); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new SupervisorSummaryStandardSchemeFactory()); - schemes.put(TupleScheme.class, new SupervisorSummaryTupleSchemeFactory()); - } - - public String host; // required - public int uptime_secs; // required - public int num_workers; // required - public int num_used_workers; // required - public String supervisor_id; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - HOST((short)1, "host"), - UPTIME_SECS((short)2, "uptime_secs"), - NUM_WORKERS((short)3, "num_workers"), - NUM_USED_WORKERS((short)4, "num_used_workers"), - SUPERVISOR_ID((short)5, "supervisor_id"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // HOST - return HOST; - case 2: // UPTIME_SECS - return UPTIME_SECS; - case 3: // NUM_WORKERS - return NUM_WORKERS; - case 4: // NUM_USED_WORKERS - return NUM_USED_WORKERS; - case 5: // SUPERVISOR_ID - return SUPERVISOR_ID; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __UPTIME_SECS_ISSET_ID = 0; - private static final int __NUM_WORKERS_ISSET_ID = 1; - private static final int __NUM_USED_WORKERS_ISSET_ID = 2; - private byte __isset_bitfield = 0; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.HOST, new org.apache.thrift.meta_data.FieldMetaData("host", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.UPTIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("uptime_secs", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.NUM_WORKERS, new org.apache.thrift.meta_data.FieldMetaData("num_workers", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.NUM_USED_WORKERS, new org.apache.thrift.meta_data.FieldMetaData("num_used_workers", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.SUPERVISOR_ID, new org.apache.thrift.meta_data.FieldMetaData("supervisor_id", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SupervisorSummary.class, metaDataMap); - } - - public SupervisorSummary() { - } - - public SupervisorSummary( - String host, - int uptime_secs, - int num_workers, - int num_used_workers, - String supervisor_id) - { - this(); - this.host = host; - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - this.num_workers = num_workers; - setNum_workersIsSet(true); - this.num_used_workers = num_used_workers; - setNum_used_workersIsSet(true); - this.supervisor_id = supervisor_id; - } - - /** - * Performs a deep copy on other. - */ - public SupervisorSummary(SupervisorSummary other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetHost()) { - this.host = other.host; - } - this.uptime_secs = other.uptime_secs; - this.num_workers = other.num_workers; - this.num_used_workers = other.num_used_workers; - if (other.isSetSupervisor_id()) { - this.supervisor_id = other.supervisor_id; - } - } - - public SupervisorSummary deepCopy() { - return new SupervisorSummary(this); - } - - @Override - public void clear() { - this.host = null; - setUptime_secsIsSet(false); - this.uptime_secs = 0; - setNum_workersIsSet(false); - this.num_workers = 0; - setNum_used_workersIsSet(false); - this.num_used_workers = 0; - this.supervisor_id = null; - } - - public String getHost() { - return this.host; - } - - public SupervisorSummary setHost(String host) { - this.host = host; - return this; - } - - public void unsetHost() { - this.host = null; - } - - /** Returns true if field host is set (has been assigned a value) and false otherwise */ - public boolean isSetHost() { - return this.host != null; - } - - public void setHostIsSet(boolean value) { - if (!value) { - this.host = null; - } - } - - public int getUptime_secs() { - return this.uptime_secs; - } - - public SupervisorSummary setUptime_secs(int uptime_secs) { - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - return this; - } - - public void unsetUptime_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - /** Returns true if field uptime_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetUptime_secs() { - return EncodingUtils.testBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - public void setUptime_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID, value); - } - - public int getNum_workers() { - return this.num_workers; - } - - public SupervisorSummary setNum_workers(int num_workers) { - this.num_workers = num_workers; - setNum_workersIsSet(true); - return this; - } - - public void unsetNum_workers() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID); - } - - /** Returns true if field num_workers is set (has been assigned a value) and false otherwise */ - public boolean isSetNum_workers() { - return EncodingUtils.testBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID); - } - - public void setNum_workersIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID, value); - } - - public int getNum_used_workers() { - return this.num_used_workers; - } - - public SupervisorSummary setNum_used_workers(int num_used_workers) { - this.num_used_workers = num_used_workers; - setNum_used_workersIsSet(true); - return this; - } - - public void unsetNum_used_workers() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUM_USED_WORKERS_ISSET_ID); - } - - /** Returns true if field num_used_workers is set (has been assigned a value) and false otherwise */ - public boolean isSetNum_used_workers() { - return EncodingUtils.testBit(__isset_bitfield, __NUM_USED_WORKERS_ISSET_ID); - } - - public void setNum_used_workersIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUM_USED_WORKERS_ISSET_ID, value); - } - - public String getSupervisor_id() { - return this.supervisor_id; - } - - public SupervisorSummary setSupervisor_id(String supervisor_id) { - this.supervisor_id = supervisor_id; - return this; - } - - public void unsetSupervisor_id() { - this.supervisor_id = null; - } - - /** Returns true if field supervisor_id is set (has been assigned a value) and false otherwise */ - public boolean isSetSupervisor_id() { - return this.supervisor_id != null; - } - - public void setSupervisor_idIsSet(boolean value) { - if (!value) { - this.supervisor_id = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case HOST: - if (value == null) { - unsetHost(); - } else { - setHost((String)value); - } - break; - - case UPTIME_SECS: - if (value == null) { - unsetUptime_secs(); - } else { - setUptime_secs((Integer)value); - } - break; - - case NUM_WORKERS: - if (value == null) { - unsetNum_workers(); - } else { - setNum_workers((Integer)value); - } - break; - - case NUM_USED_WORKERS: - if (value == null) { - unsetNum_used_workers(); - } else { - setNum_used_workers((Integer)value); - } - break; - - case SUPERVISOR_ID: - if (value == null) { - unsetSupervisor_id(); - } else { - setSupervisor_id((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case HOST: - return getHost(); - - case UPTIME_SECS: - return Integer.valueOf(getUptime_secs()); - - case NUM_WORKERS: - return Integer.valueOf(getNum_workers()); - - case NUM_USED_WORKERS: - return Integer.valueOf(getNum_used_workers()); - - case SUPERVISOR_ID: - return getSupervisor_id(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case HOST: - return isSetHost(); - case UPTIME_SECS: - return isSetUptime_secs(); - case NUM_WORKERS: - return isSetNum_workers(); - case NUM_USED_WORKERS: - return isSetNum_used_workers(); - case SUPERVISOR_ID: - return isSetSupervisor_id(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof SupervisorSummary) - return this.equals((SupervisorSummary)that); - return false; - } - - public boolean equals(SupervisorSummary that) { - if (that == null) - return false; - - boolean this_present_host = true && this.isSetHost(); - boolean that_present_host = true && that.isSetHost(); - if (this_present_host || that_present_host) { - if (!(this_present_host && that_present_host)) - return false; - if (!this.host.equals(that.host)) - return false; - } - - boolean this_present_uptime_secs = true; - boolean that_present_uptime_secs = true; - if (this_present_uptime_secs || that_present_uptime_secs) { - if (!(this_present_uptime_secs && that_present_uptime_secs)) - return false; - if (this.uptime_secs != that.uptime_secs) - return false; - } - - boolean this_present_num_workers = true; - boolean that_present_num_workers = true; - if (this_present_num_workers || that_present_num_workers) { - if (!(this_present_num_workers && that_present_num_workers)) - return false; - if (this.num_workers != that.num_workers) - return false; - } - - boolean this_present_num_used_workers = true; - boolean that_present_num_used_workers = true; - if (this_present_num_used_workers || that_present_num_used_workers) { - if (!(this_present_num_used_workers && that_present_num_used_workers)) - return false; - if (this.num_used_workers != that.num_used_workers) - return false; - } - - boolean this_present_supervisor_id = true && this.isSetSupervisor_id(); - boolean that_present_supervisor_id = true && that.isSetSupervisor_id(); - if (this_present_supervisor_id || that_present_supervisor_id) { - if (!(this_present_supervisor_id && that_present_supervisor_id)) - return false; - if (!this.supervisor_id.equals(that.supervisor_id)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_host = true && (isSetHost()); - builder.append(present_host); - if (present_host) - builder.append(host); - - boolean present_uptime_secs = true; - builder.append(present_uptime_secs); - if (present_uptime_secs) - builder.append(uptime_secs); - - boolean present_num_workers = true; - builder.append(present_num_workers); - if (present_num_workers) - builder.append(num_workers); - - boolean present_num_used_workers = true; - builder.append(present_num_used_workers); - if (present_num_used_workers) - builder.append(num_used_workers); - - boolean present_supervisor_id = true && (isSetSupervisor_id()); - builder.append(present_supervisor_id); - if (present_supervisor_id) - builder.append(supervisor_id); - - return builder.toHashCode(); - } - - public int compareTo(SupervisorSummary other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - SupervisorSummary typedOther = (SupervisorSummary)other; - - lastComparison = Boolean.valueOf(isSetHost()).compareTo(typedOther.isSetHost()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetHost()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.host, typedOther.host); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetUptime_secs()).compareTo(typedOther.isSetUptime_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetUptime_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uptime_secs, typedOther.uptime_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNum_workers()).compareTo(typedOther.isSetNum_workers()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNum_workers()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_workers, typedOther.num_workers); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNum_used_workers()).compareTo(typedOther.isSetNum_used_workers()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNum_used_workers()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_used_workers, typedOther.num_used_workers); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetSupervisor_id()).compareTo(typedOther.isSetSupervisor_id()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSupervisor_id()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.supervisor_id, typedOther.supervisor_id); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("SupervisorSummary("); - boolean first = true; - - sb.append("host:"); - if (this.host == null) { - sb.append("null"); - } else { - sb.append(this.host); - } - first = false; - if (!first) sb.append(", "); - sb.append("uptime_secs:"); - sb.append(this.uptime_secs); - first = false; - if (!first) sb.append(", "); - sb.append("num_workers:"); - sb.append(this.num_workers); - first = false; - if (!first) sb.append(", "); - sb.append("num_used_workers:"); - sb.append(this.num_used_workers); - first = false; - if (!first) sb.append(", "); - sb.append("supervisor_id:"); - if (this.supervisor_id == null) { - sb.append("null"); - } else { - sb.append(this.supervisor_id); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (host == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'host' was not present! Struct: " + toString()); - } - // alas, we cannot check 'uptime_secs' because it's a primitive and you chose the non-beans generator. - // alas, we cannot check 'num_workers' because it's a primitive and you chose the non-beans generator. - // alas, we cannot check 'num_used_workers' because it's a primitive and you chose the non-beans generator. - if (supervisor_id == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'supervisor_id' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class SupervisorSummaryStandardSchemeFactory implements SchemeFactory { - public SupervisorSummaryStandardScheme getScheme() { - return new SupervisorSummaryStandardScheme(); - } - } - - private static class SupervisorSummaryStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, SupervisorSummary struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // HOST - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.host = iprot.readString(); - struct.setHostIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // UPTIME_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // NUM_WORKERS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.num_workers = iprot.readI32(); - struct.setNum_workersIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // NUM_USED_WORKERS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.num_used_workers = iprot.readI32(); - struct.setNum_used_workersIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // SUPERVISOR_ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.supervisor_id = iprot.readString(); - struct.setSupervisor_idIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetUptime_secs()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'uptime_secs' was not found in serialized data! Struct: " + toString()); - } - if (!struct.isSetNum_workers()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'num_workers' was not found in serialized data! Struct: " + toString()); - } - if (!struct.isSetNum_used_workers()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'num_used_workers' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, SupervisorSummary struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.host != null) { - oprot.writeFieldBegin(HOST_FIELD_DESC); - oprot.writeString(struct.host); - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(UPTIME_SECS_FIELD_DESC); - oprot.writeI32(struct.uptime_secs); - oprot.writeFieldEnd(); - oprot.writeFieldBegin(NUM_WORKERS_FIELD_DESC); - oprot.writeI32(struct.num_workers); - oprot.writeFieldEnd(); - oprot.writeFieldBegin(NUM_USED_WORKERS_FIELD_DESC); - oprot.writeI32(struct.num_used_workers); - oprot.writeFieldEnd(); - if (struct.supervisor_id != null) { - oprot.writeFieldBegin(SUPERVISOR_ID_FIELD_DESC); - oprot.writeString(struct.supervisor_id); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class SupervisorSummaryTupleSchemeFactory implements SchemeFactory { - public SupervisorSummaryTupleScheme getScheme() { - return new SupervisorSummaryTupleScheme(); - } - } - - private static class SupervisorSummaryTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, SupervisorSummary struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.host); - oprot.writeI32(struct.uptime_secs); - oprot.writeI32(struct.num_workers); - oprot.writeI32(struct.num_used_workers); - oprot.writeString(struct.supervisor_id); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, SupervisorSummary struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.host = iprot.readString(); - struct.setHostIsSet(true); - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - struct.num_workers = iprot.readI32(); - struct.setNum_workersIsSet(true); - struct.num_used_workers = iprot.readI32(); - struct.setNum_used_workersIsSet(true); - struct.supervisor_id = iprot.readString(); - struct.setSupervisor_idIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologyInfo.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologyInfo.java deleted file mode 100644 index 36fb36b26..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologyInfo.java +++ /dev/null @@ -1,1046 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class TopologyInfo implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TopologyInfo"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField UPTIME_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("uptime_secs", org.apache.thrift.protocol.TType.I32, (short)3); - private static final org.apache.thrift.protocol.TField EXECUTORS_FIELD_DESC = new org.apache.thrift.protocol.TField("executors", org.apache.thrift.protocol.TType.LIST, (short)4); - private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRING, (short)5); - private static final org.apache.thrift.protocol.TField ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("errors", org.apache.thrift.protocol.TType.MAP, (short)6); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new TopologyInfoStandardSchemeFactory()); - schemes.put(TupleScheme.class, new TopologyInfoTupleSchemeFactory()); - } - - public String id; // required - public String name; // required - public int uptime_secs; // required - public List executors; // required - public String status; // required - public Map> errors; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"), - NAME((short)2, "name"), - UPTIME_SECS((short)3, "uptime_secs"), - EXECUTORS((short)4, "executors"), - STATUS((short)5, "status"), - ERRORS((short)6, "errors"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - case 2: // NAME - return NAME; - case 3: // UPTIME_SECS - return UPTIME_SECS; - case 4: // EXECUTORS - return EXECUTORS; - case 5: // STATUS - return STATUS; - case 6: // ERRORS - return ERRORS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __UPTIME_SECS_ISSET_ID = 0; - private byte __isset_bitfield = 0; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.UPTIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("uptime_secs", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.EXECUTORS, new org.apache.thrift.meta_data.FieldMetaData("executors", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExecutorSummary.class)))); - tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.ERRORS, new org.apache.thrift.meta_data.FieldMetaData("errors", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ErrorInfo.class))))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TopologyInfo.class, metaDataMap); - } - - public TopologyInfo() { - } - - public TopologyInfo( - String id, - String name, - int uptime_secs, - List executors, - String status, - Map> errors) - { - this(); - this.id = id; - this.name = name; - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - this.executors = executors; - this.status = status; - this.errors = errors; - } - - /** - * Performs a deep copy on other. - */ - public TopologyInfo(TopologyInfo other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetId()) { - this.id = other.id; - } - if (other.isSetName()) { - this.name = other.name; - } - this.uptime_secs = other.uptime_secs; - if (other.isSetExecutors()) { - List __this__executors = new ArrayList(); - for (ExecutorSummary other_element : other.executors) { - __this__executors.add(new ExecutorSummary(other_element)); - } - this.executors = __this__executors; - } - if (other.isSetStatus()) { - this.status = other.status; - } - if (other.isSetErrors()) { - Map> __this__errors = new HashMap>(); - for (Map.Entry> other_element : other.errors.entrySet()) { - - String other_element_key = other_element.getKey(); - List other_element_value = other_element.getValue(); - - String __this__errors_copy_key = other_element_key; - - List __this__errors_copy_value = new ArrayList(); - for (ErrorInfo other_element_value_element : other_element_value) { - __this__errors_copy_value.add(new ErrorInfo(other_element_value_element)); - } - - __this__errors.put(__this__errors_copy_key, __this__errors_copy_value); - } - this.errors = __this__errors; - } - } - - public TopologyInfo deepCopy() { - return new TopologyInfo(this); - } - - @Override - public void clear() { - this.id = null; - this.name = null; - setUptime_secsIsSet(false); - this.uptime_secs = 0; - this.executors = null; - this.status = null; - this.errors = null; - } - - public String getId() { - return this.id; - } - - public TopologyInfo setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public String getName() { - return this.name; - } - - public TopologyInfo setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public int getUptime_secs() { - return this.uptime_secs; - } - - public TopologyInfo setUptime_secs(int uptime_secs) { - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - return this; - } - - public void unsetUptime_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - /** Returns true if field uptime_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetUptime_secs() { - return EncodingUtils.testBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - public void setUptime_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID, value); - } - - public int getExecutorsSize() { - return (this.executors == null) ? 0 : this.executors.size(); - } - - public java.util.Iterator getExecutorsIterator() { - return (this.executors == null) ? null : this.executors.iterator(); - } - - public void addToExecutors(ExecutorSummary elem) { - if (this.executors == null) { - this.executors = new ArrayList(); - } - this.executors.add(elem); - } - - public List getExecutors() { - return this.executors; - } - - public TopologyInfo setExecutors(List executors) { - this.executors = executors; - return this; - } - - public void unsetExecutors() { - this.executors = null; - } - - /** Returns true if field executors is set (has been assigned a value) and false otherwise */ - public boolean isSetExecutors() { - return this.executors != null; - } - - public void setExecutorsIsSet(boolean value) { - if (!value) { - this.executors = null; - } - } - - public String getStatus() { - return this.status; - } - - public TopologyInfo setStatus(String status) { - this.status = status; - return this; - } - - public void unsetStatus() { - this.status = null; - } - - /** Returns true if field status is set (has been assigned a value) and false otherwise */ - public boolean isSetStatus() { - return this.status != null; - } - - public void setStatusIsSet(boolean value) { - if (!value) { - this.status = null; - } - } - - public int getErrorsSize() { - return (this.errors == null) ? 0 : this.errors.size(); - } - - public void putToErrors(String key, List val) { - if (this.errors == null) { - this.errors = new HashMap>(); - } - this.errors.put(key, val); - } - - public Map> getErrors() { - return this.errors; - } - - public TopologyInfo setErrors(Map> errors) { - this.errors = errors; - return this; - } - - public void unsetErrors() { - this.errors = null; - } - - /** Returns true if field errors is set (has been assigned a value) and false otherwise */ - public boolean isSetErrors() { - return this.errors != null; - } - - public void setErrorsIsSet(boolean value) { - if (!value) { - this.errors = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - case UPTIME_SECS: - if (value == null) { - unsetUptime_secs(); - } else { - setUptime_secs((Integer)value); - } - break; - - case EXECUTORS: - if (value == null) { - unsetExecutors(); - } else { - setExecutors((List)value); - } - break; - - case STATUS: - if (value == null) { - unsetStatus(); - } else { - setStatus((String)value); - } - break; - - case ERRORS: - if (value == null) { - unsetErrors(); - } else { - setErrors((Map>)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - case NAME: - return getName(); - - case UPTIME_SECS: - return Integer.valueOf(getUptime_secs()); - - case EXECUTORS: - return getExecutors(); - - case STATUS: - return getStatus(); - - case ERRORS: - return getErrors(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - case NAME: - return isSetName(); - case UPTIME_SECS: - return isSetUptime_secs(); - case EXECUTORS: - return isSetExecutors(); - case STATUS: - return isSetStatus(); - case ERRORS: - return isSetErrors(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof TopologyInfo) - return this.equals((TopologyInfo)that); - return false; - } - - public boolean equals(TopologyInfo that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - boolean this_present_uptime_secs = true; - boolean that_present_uptime_secs = true; - if (this_present_uptime_secs || that_present_uptime_secs) { - if (!(this_present_uptime_secs && that_present_uptime_secs)) - return false; - if (this.uptime_secs != that.uptime_secs) - return false; - } - - boolean this_present_executors = true && this.isSetExecutors(); - boolean that_present_executors = true && that.isSetExecutors(); - if (this_present_executors || that_present_executors) { - if (!(this_present_executors && that_present_executors)) - return false; - if (!this.executors.equals(that.executors)) - return false; - } - - boolean this_present_status = true && this.isSetStatus(); - boolean that_present_status = true && that.isSetStatus(); - if (this_present_status || that_present_status) { - if (!(this_present_status && that_present_status)) - return false; - if (!this.status.equals(that.status)) - return false; - } - - boolean this_present_errors = true && this.isSetErrors(); - boolean that_present_errors = true && that.isSetErrors(); - if (this_present_errors || that_present_errors) { - if (!(this_present_errors && that_present_errors)) - return false; - if (!this.errors.equals(that.errors)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - boolean present_uptime_secs = true; - builder.append(present_uptime_secs); - if (present_uptime_secs) - builder.append(uptime_secs); - - boolean present_executors = true && (isSetExecutors()); - builder.append(present_executors); - if (present_executors) - builder.append(executors); - - boolean present_status = true && (isSetStatus()); - builder.append(present_status); - if (present_status) - builder.append(status); - - boolean present_errors = true && (isSetErrors()); - builder.append(present_errors); - if (present_errors) - builder.append(errors); - - return builder.toHashCode(); - } - - public int compareTo(TopologyInfo other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - TopologyInfo typedOther = (TopologyInfo)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetUptime_secs()).compareTo(typedOther.isSetUptime_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetUptime_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uptime_secs, typedOther.uptime_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetExecutors()).compareTo(typedOther.isSetExecutors()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetExecutors()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executors, typedOther.executors); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetStatus()).compareTo(typedOther.isSetStatus()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetStatus()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, typedOther.status); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetErrors()).compareTo(typedOther.isSetErrors()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetErrors()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.errors, typedOther.errors); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("TopologyInfo("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - if (!first) sb.append(", "); - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - if (!first) sb.append(", "); - sb.append("uptime_secs:"); - sb.append(this.uptime_secs); - first = false; - if (!first) sb.append(", "); - sb.append("executors:"); - if (this.executors == null) { - sb.append("null"); - } else { - sb.append(this.executors); - } - first = false; - if (!first) sb.append(", "); - sb.append("status:"); - if (this.status == null) { - sb.append("null"); - } else { - sb.append(this.status); - } - first = false; - if (!first) sb.append(", "); - sb.append("errors:"); - if (this.errors == null) { - sb.append("null"); - } else { - sb.append(this.errors); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (id == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'id' was not present! Struct: " + toString()); - } - if (name == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! Struct: " + toString()); - } - // alas, we cannot check 'uptime_secs' because it's a primitive and you chose the non-beans generator. - if (executors == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'executors' was not present! Struct: " + toString()); - } - if (status == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString()); - } - if (errors == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'errors' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class TopologyInfoStandardSchemeFactory implements SchemeFactory { - public TopologyInfoStandardScheme getScheme() { - return new TopologyInfoStandardScheme(); - } - } - - private static class TopologyInfoStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, TopologyInfo struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // UPTIME_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // EXECUTORS - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list290 = iprot.readListBegin(); - struct.executors = new ArrayList(_list290.size); - for (int _i291 = 0; _i291 < _list290.size; ++_i291) - { - ExecutorSummary _elem292; // required - _elem292 = new ExecutorSummary(); - _elem292.read(iprot); - struct.executors.add(_elem292); - } - iprot.readListEnd(); - } - struct.setExecutorsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // STATUS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.status = iprot.readString(); - struct.setStatusIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 6: // ERRORS - if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { - { - org.apache.thrift.protocol.TMap _map293 = iprot.readMapBegin(); - struct.errors = new HashMap>(2*_map293.size); - for (int _i294 = 0; _i294 < _map293.size; ++_i294) - { - String _key295; // required - List _val296; // required - _key295 = iprot.readString(); - { - org.apache.thrift.protocol.TList _list297 = iprot.readListBegin(); - _val296 = new ArrayList(_list297.size); - for (int _i298 = 0; _i298 < _list297.size; ++_i298) - { - ErrorInfo _elem299; // required - _elem299 = new ErrorInfo(); - _elem299.read(iprot); - _val296.add(_elem299); - } - iprot.readListEnd(); - } - struct.errors.put(_key295, _val296); - } - iprot.readMapEnd(); - } - struct.setErrorsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetUptime_secs()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'uptime_secs' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, TopologyInfo struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(UPTIME_SECS_FIELD_DESC); - oprot.writeI32(struct.uptime_secs); - oprot.writeFieldEnd(); - if (struct.executors != null) { - oprot.writeFieldBegin(EXECUTORS_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.executors.size())); - for (ExecutorSummary _iter300 : struct.executors) - { - _iter300.write(oprot); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - if (struct.status != null) { - oprot.writeFieldBegin(STATUS_FIELD_DESC); - oprot.writeString(struct.status); - oprot.writeFieldEnd(); - } - if (struct.errors != null) { - oprot.writeFieldBegin(ERRORS_FIELD_DESC); - { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, struct.errors.size())); - for (Map.Entry> _iter301 : struct.errors.entrySet()) - { - oprot.writeString(_iter301.getKey()); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter301.getValue().size())); - for (ErrorInfo _iter302 : _iter301.getValue()) - { - _iter302.write(oprot); - } - oprot.writeListEnd(); - } - } - oprot.writeMapEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class TopologyInfoTupleSchemeFactory implements SchemeFactory { - public TopologyInfoTupleScheme getScheme() { - return new TopologyInfoTupleScheme(); - } - } - - private static class TopologyInfoTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, TopologyInfo struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.id); - oprot.writeString(struct.name); - oprot.writeI32(struct.uptime_secs); - { - oprot.writeI32(struct.executors.size()); - for (ExecutorSummary _iter303 : struct.executors) - { - _iter303.write(oprot); - } - } - oprot.writeString(struct.status); - { - oprot.writeI32(struct.errors.size()); - for (Map.Entry> _iter304 : struct.errors.entrySet()) - { - oprot.writeString(_iter304.getKey()); - { - oprot.writeI32(_iter304.getValue().size()); - for (ErrorInfo _iter305 : _iter304.getValue()) - { - _iter305.write(oprot); - } - } - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, TopologyInfo struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.id = iprot.readString(); - struct.setIdIsSet(true); - struct.name = iprot.readString(); - struct.setNameIsSet(true); - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - { - org.apache.thrift.protocol.TList _list306 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.executors = new ArrayList(_list306.size); - for (int _i307 = 0; _i307 < _list306.size; ++_i307) - { - ExecutorSummary _elem308; // required - _elem308 = new ExecutorSummary(); - _elem308.read(iprot); - struct.executors.add(_elem308); - } - } - struct.setExecutorsIsSet(true); - struct.status = iprot.readString(); - struct.setStatusIsSet(true); - { - org.apache.thrift.protocol.TMap _map309 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32()); - struct.errors = new HashMap>(2*_map309.size); - for (int _i310 = 0; _i310 < _map309.size; ++_i310) - { - String _key311; // required - List _val312; // required - _key311 = iprot.readString(); - { - org.apache.thrift.protocol.TList _list313 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - _val312 = new ArrayList(_list313.size); - for (int _i314 = 0; _i314 < _list313.size; ++_i314) - { - ErrorInfo _elem315; // required - _elem315 = new ErrorInfo(); - _elem315.read(iprot); - _val312.add(_elem315); - } - } - struct.errors.put(_key311, _val312); - } - } - struct.setErrorsIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologyInitialStatus.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologyInitialStatus.java deleted file mode 100644 index 5ed30f953..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologyInitialStatus.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - - -import java.util.Map; -import java.util.HashMap; -import org.apache.thrift.TEnum; - -public enum TopologyInitialStatus implements org.apache.thrift.TEnum { - ACTIVE(1), - INACTIVE(2); - - private final int value; - - private TopologyInitialStatus(int value) { - this.value = value; - } - - /** - * Get the integer value of this enum value, as defined in the Thrift IDL. - */ - public int getValue() { - return value; - } - - /** - * Find a the enum type by its integer value, as defined in the Thrift IDL. - * @return null if the value is not found. - */ - public static TopologyInitialStatus findByValue(int value) { - switch (value) { - case 1: - return ACTIVE; - case 2: - return INACTIVE; - default: - return null; - } - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologySummary.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologySummary.java deleted file mode 100644 index 968065eac..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/thrift/generated/TopologySummary.java +++ /dev/null @@ -1,977 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package com.intel.hibench.streambench.storm.thrift.generated; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class TopologySummary implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TopologySummary"); - - private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1); - private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2); - private static final org.apache.thrift.protocol.TField NUM_TASKS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_tasks", org.apache.thrift.protocol.TType.I32, (short)3); - private static final org.apache.thrift.protocol.TField NUM_EXECUTORS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_executors", org.apache.thrift.protocol.TType.I32, (short)4); - private static final org.apache.thrift.protocol.TField NUM_WORKERS_FIELD_DESC = new org.apache.thrift.protocol.TField("num_workers", org.apache.thrift.protocol.TType.I32, (short)5); - private static final org.apache.thrift.protocol.TField UPTIME_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("uptime_secs", org.apache.thrift.protocol.TType.I32, (short)6); - private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRING, (short)7); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new TopologySummaryStandardSchemeFactory()); - schemes.put(TupleScheme.class, new TopologySummaryTupleSchemeFactory()); - } - - public String id; // required - public String name; // required - public int num_tasks; // required - public int num_executors; // required - public int num_workers; // required - public int uptime_secs; // required - public String status; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - ID((short)1, "id"), - NAME((short)2, "name"), - NUM_TASKS((short)3, "num_tasks"), - NUM_EXECUTORS((short)4, "num_executors"), - NUM_WORKERS((short)5, "num_workers"), - UPTIME_SECS((short)6, "uptime_secs"), - STATUS((short)7, "status"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // ID - return ID; - case 2: // NAME - return NAME; - case 3: // NUM_TASKS - return NUM_TASKS; - case 4: // NUM_EXECUTORS - return NUM_EXECUTORS; - case 5: // NUM_WORKERS - return NUM_WORKERS; - case 6: // UPTIME_SECS - return UPTIME_SECS; - case 7: // STATUS - return STATUS; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - private static final int __NUM_TASKS_ISSET_ID = 0; - private static final int __NUM_EXECUTORS_ISSET_ID = 1; - private static final int __NUM_WORKERS_ISSET_ID = 2; - private static final int __UPTIME_SECS_ISSET_ID = 3; - private byte __isset_bitfield = 0; - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.NUM_TASKS, new org.apache.thrift.meta_data.FieldMetaData("num_tasks", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.NUM_EXECUTORS, new org.apache.thrift.meta_data.FieldMetaData("num_executors", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.NUM_WORKERS, new org.apache.thrift.meta_data.FieldMetaData("num_workers", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.UPTIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("uptime_secs", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); - tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TopologySummary.class, metaDataMap); - } - - public TopologySummary() { - } - - public TopologySummary( - String id, - String name, - int num_tasks, - int num_executors, - int num_workers, - int uptime_secs, - String status) - { - this(); - this.id = id; - this.name = name; - this.num_tasks = num_tasks; - setNum_tasksIsSet(true); - this.num_executors = num_executors; - setNum_executorsIsSet(true); - this.num_workers = num_workers; - setNum_workersIsSet(true); - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - this.status = status; - } - - /** - * Performs a deep copy on other. - */ - public TopologySummary(TopologySummary other) { - __isset_bitfield = other.__isset_bitfield; - if (other.isSetId()) { - this.id = other.id; - } - if (other.isSetName()) { - this.name = other.name; - } - this.num_tasks = other.num_tasks; - this.num_executors = other.num_executors; - this.num_workers = other.num_workers; - this.uptime_secs = other.uptime_secs; - if (other.isSetStatus()) { - this.status = other.status; - } - } - - public TopologySummary deepCopy() { - return new TopologySummary(this); - } - - @Override - public void clear() { - this.id = null; - this.name = null; - setNum_tasksIsSet(false); - this.num_tasks = 0; - setNum_executorsIsSet(false); - this.num_executors = 0; - setNum_workersIsSet(false); - this.num_workers = 0; - setUptime_secsIsSet(false); - this.uptime_secs = 0; - this.status = null; - } - - public String getId() { - return this.id; - } - - public TopologySummary setId(String id) { - this.id = id; - return this; - } - - public void unsetId() { - this.id = null; - } - - /** Returns true if field id is set (has been assigned a value) and false otherwise */ - public boolean isSetId() { - return this.id != null; - } - - public void setIdIsSet(boolean value) { - if (!value) { - this.id = null; - } - } - - public String getName() { - return this.name; - } - - public TopologySummary setName(String name) { - this.name = name; - return this; - } - - public void unsetName() { - this.name = null; - } - - /** Returns true if field name is set (has been assigned a value) and false otherwise */ - public boolean isSetName() { - return this.name != null; - } - - public void setNameIsSet(boolean value) { - if (!value) { - this.name = null; - } - } - - public int getNum_tasks() { - return this.num_tasks; - } - - public TopologySummary setNum_tasks(int num_tasks) { - this.num_tasks = num_tasks; - setNum_tasksIsSet(true); - return this; - } - - public void unsetNum_tasks() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUM_TASKS_ISSET_ID); - } - - /** Returns true if field num_tasks is set (has been assigned a value) and false otherwise */ - public boolean isSetNum_tasks() { - return EncodingUtils.testBit(__isset_bitfield, __NUM_TASKS_ISSET_ID); - } - - public void setNum_tasksIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUM_TASKS_ISSET_ID, value); - } - - public int getNum_executors() { - return this.num_executors; - } - - public TopologySummary setNum_executors(int num_executors) { - this.num_executors = num_executors; - setNum_executorsIsSet(true); - return this; - } - - public void unsetNum_executors() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUM_EXECUTORS_ISSET_ID); - } - - /** Returns true if field num_executors is set (has been assigned a value) and false otherwise */ - public boolean isSetNum_executors() { - return EncodingUtils.testBit(__isset_bitfield, __NUM_EXECUTORS_ISSET_ID); - } - - public void setNum_executorsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUM_EXECUTORS_ISSET_ID, value); - } - - public int getNum_workers() { - return this.num_workers; - } - - public TopologySummary setNum_workers(int num_workers) { - this.num_workers = num_workers; - setNum_workersIsSet(true); - return this; - } - - public void unsetNum_workers() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID); - } - - /** Returns true if field num_workers is set (has been assigned a value) and false otherwise */ - public boolean isSetNum_workers() { - return EncodingUtils.testBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID); - } - - public void setNum_workersIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NUM_WORKERS_ISSET_ID, value); - } - - public int getUptime_secs() { - return this.uptime_secs; - } - - public TopologySummary setUptime_secs(int uptime_secs) { - this.uptime_secs = uptime_secs; - setUptime_secsIsSet(true); - return this; - } - - public void unsetUptime_secs() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - /** Returns true if field uptime_secs is set (has been assigned a value) and false otherwise */ - public boolean isSetUptime_secs() { - return EncodingUtils.testBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID); - } - - public void setUptime_secsIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __UPTIME_SECS_ISSET_ID, value); - } - - public String getStatus() { - return this.status; - } - - public TopologySummary setStatus(String status) { - this.status = status; - return this; - } - - public void unsetStatus() { - this.status = null; - } - - /** Returns true if field status is set (has been assigned a value) and false otherwise */ - public boolean isSetStatus() { - return this.status != null; - } - - public void setStatusIsSet(boolean value) { - if (!value) { - this.status = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case ID: - if (value == null) { - unsetId(); - } else { - setId((String)value); - } - break; - - case NAME: - if (value == null) { - unsetName(); - } else { - setName((String)value); - } - break; - - case NUM_TASKS: - if (value == null) { - unsetNum_tasks(); - } else { - setNum_tasks((Integer)value); - } - break; - - case NUM_EXECUTORS: - if (value == null) { - unsetNum_executors(); - } else { - setNum_executors((Integer)value); - } - break; - - case NUM_WORKERS: - if (value == null) { - unsetNum_workers(); - } else { - setNum_workers((Integer)value); - } - break; - - case UPTIME_SECS: - if (value == null) { - unsetUptime_secs(); - } else { - setUptime_secs((Integer)value); - } - break; - - case STATUS: - if (value == null) { - unsetStatus(); - } else { - setStatus((String)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case ID: - return getId(); - - case NAME: - return getName(); - - case NUM_TASKS: - return Integer.valueOf(getNum_tasks()); - - case NUM_EXECUTORS: - return Integer.valueOf(getNum_executors()); - - case NUM_WORKERS: - return Integer.valueOf(getNum_workers()); - - case UPTIME_SECS: - return Integer.valueOf(getUptime_secs()); - - case STATUS: - return getStatus(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case ID: - return isSetId(); - case NAME: - return isSetName(); - case NUM_TASKS: - return isSetNum_tasks(); - case NUM_EXECUTORS: - return isSetNum_executors(); - case NUM_WORKERS: - return isSetNum_workers(); - case UPTIME_SECS: - return isSetUptime_secs(); - case STATUS: - return isSetStatus(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof TopologySummary) - return this.equals((TopologySummary)that); - return false; - } - - public boolean equals(TopologySummary that) { - if (that == null) - return false; - - boolean this_present_id = true && this.isSetId(); - boolean that_present_id = true && that.isSetId(); - if (this_present_id || that_present_id) { - if (!(this_present_id && that_present_id)) - return false; - if (!this.id.equals(that.id)) - return false; - } - - boolean this_present_name = true && this.isSetName(); - boolean that_present_name = true && that.isSetName(); - if (this_present_name || that_present_name) { - if (!(this_present_name && that_present_name)) - return false; - if (!this.name.equals(that.name)) - return false; - } - - boolean this_present_num_tasks = true; - boolean that_present_num_tasks = true; - if (this_present_num_tasks || that_present_num_tasks) { - if (!(this_present_num_tasks && that_present_num_tasks)) - return false; - if (this.num_tasks != that.num_tasks) - return false; - } - - boolean this_present_num_executors = true; - boolean that_present_num_executors = true; - if (this_present_num_executors || that_present_num_executors) { - if (!(this_present_num_executors && that_present_num_executors)) - return false; - if (this.num_executors != that.num_executors) - return false; - } - - boolean this_present_num_workers = true; - boolean that_present_num_workers = true; - if (this_present_num_workers || that_present_num_workers) { - if (!(this_present_num_workers && that_present_num_workers)) - return false; - if (this.num_workers != that.num_workers) - return false; - } - - boolean this_present_uptime_secs = true; - boolean that_present_uptime_secs = true; - if (this_present_uptime_secs || that_present_uptime_secs) { - if (!(this_present_uptime_secs && that_present_uptime_secs)) - return false; - if (this.uptime_secs != that.uptime_secs) - return false; - } - - boolean this_present_status = true && this.isSetStatus(); - boolean that_present_status = true && that.isSetStatus(); - if (this_present_status || that_present_status) { - if (!(this_present_status && that_present_status)) - return false; - if (!this.status.equals(that.status)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_id = true && (isSetId()); - builder.append(present_id); - if (present_id) - builder.append(id); - - boolean present_name = true && (isSetName()); - builder.append(present_name); - if (present_name) - builder.append(name); - - boolean present_num_tasks = true; - builder.append(present_num_tasks); - if (present_num_tasks) - builder.append(num_tasks); - - boolean present_num_executors = true; - builder.append(present_num_executors); - if (present_num_executors) - builder.append(num_executors); - - boolean present_num_workers = true; - builder.append(present_num_workers); - if (present_num_workers) - builder.append(num_workers); - - boolean present_uptime_secs = true; - builder.append(present_uptime_secs); - if (present_uptime_secs) - builder.append(uptime_secs); - - boolean present_status = true && (isSetStatus()); - builder.append(present_status); - if (present_status) - builder.append(status); - - return builder.toHashCode(); - } - - public int compareTo(TopologySummary other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - TopologySummary typedOther = (TopologySummary)other; - - lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetId()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, typedOther.id); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetName()).compareTo(typedOther.isSetName()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetName()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, typedOther.name); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNum_tasks()).compareTo(typedOther.isSetNum_tasks()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNum_tasks()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_tasks, typedOther.num_tasks); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNum_executors()).compareTo(typedOther.isSetNum_executors()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNum_executors()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_executors, typedOther.num_executors); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetNum_workers()).compareTo(typedOther.isSetNum_workers()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetNum_workers()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.num_workers, typedOther.num_workers); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetUptime_secs()).compareTo(typedOther.isSetUptime_secs()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetUptime_secs()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.uptime_secs, typedOther.uptime_secs); - if (lastComparison != 0) { - return lastComparison; - } - } - lastComparison = Boolean.valueOf(isSetStatus()).compareTo(typedOther.isSetStatus()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetStatus()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, typedOther.status); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("TopologySummary("); - boolean first = true; - - sb.append("id:"); - if (this.id == null) { - sb.append("null"); - } else { - sb.append(this.id); - } - first = false; - if (!first) sb.append(", "); - sb.append("name:"); - if (this.name == null) { - sb.append("null"); - } else { - sb.append(this.name); - } - first = false; - if (!first) sb.append(", "); - sb.append("num_tasks:"); - sb.append(this.num_tasks); - first = false; - if (!first) sb.append(", "); - sb.append("num_executors:"); - sb.append(this.num_executors); - first = false; - if (!first) sb.append(", "); - sb.append("num_workers:"); - sb.append(this.num_workers); - first = false; - if (!first) sb.append(", "); - sb.append("uptime_secs:"); - sb.append(this.uptime_secs); - first = false; - if (!first) sb.append(", "); - sb.append("status:"); - if (this.status == null) { - sb.append("null"); - } else { - sb.append(this.status); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - if (id == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'id' was not present! Struct: " + toString()); - } - if (name == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' was not present! Struct: " + toString()); - } - // alas, we cannot check 'num_tasks' because it's a primitive and you chose the non-beans generator. - // alas, we cannot check 'num_executors' because it's a primitive and you chose the non-beans generator. - // alas, we cannot check 'num_workers' because it's a primitive and you chose the non-beans generator. - // alas, we cannot check 'uptime_secs' because it's a primitive and you chose the non-beans generator. - if (status == null) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' was not present! Struct: " + toString()); - } - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. - __isset_bitfield = 0; - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class TopologySummaryStandardSchemeFactory implements SchemeFactory { - public TopologySummaryStandardScheme getScheme() { - return new TopologySummaryStandardScheme(); - } - } - - private static class TopologySummaryStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, TopologySummary struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // ID - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.id = iprot.readString(); - struct.setIdIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 2: // NAME - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.name = iprot.readString(); - struct.setNameIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 3: // NUM_TASKS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.num_tasks = iprot.readI32(); - struct.setNum_tasksIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 4: // NUM_EXECUTORS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.num_executors = iprot.readI32(); - struct.setNum_executorsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 5: // NUM_WORKERS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.num_workers = iprot.readI32(); - struct.setNum_workersIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 6: // UPTIME_SECS - if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - case 7: // STATUS - if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { - struct.status = iprot.readString(); - struct.setStatusIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - - // check for required fields of primitive type, which can't be checked in the validate method - if (!struct.isSetNum_tasks()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'num_tasks' was not found in serialized data! Struct: " + toString()); - } - if (!struct.isSetNum_executors()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'num_executors' was not found in serialized data! Struct: " + toString()); - } - if (!struct.isSetNum_workers()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'num_workers' was not found in serialized data! Struct: " + toString()); - } - if (!struct.isSetUptime_secs()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'uptime_secs' was not found in serialized data! Struct: " + toString()); - } - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, TopologySummary struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.id != null) { - oprot.writeFieldBegin(ID_FIELD_DESC); - oprot.writeString(struct.id); - oprot.writeFieldEnd(); - } - if (struct.name != null) { - oprot.writeFieldBegin(NAME_FIELD_DESC); - oprot.writeString(struct.name); - oprot.writeFieldEnd(); - } - oprot.writeFieldBegin(NUM_TASKS_FIELD_DESC); - oprot.writeI32(struct.num_tasks); - oprot.writeFieldEnd(); - oprot.writeFieldBegin(NUM_EXECUTORS_FIELD_DESC); - oprot.writeI32(struct.num_executors); - oprot.writeFieldEnd(); - oprot.writeFieldBegin(NUM_WORKERS_FIELD_DESC); - oprot.writeI32(struct.num_workers); - oprot.writeFieldEnd(); - oprot.writeFieldBegin(UPTIME_SECS_FIELD_DESC); - oprot.writeI32(struct.uptime_secs); - oprot.writeFieldEnd(); - if (struct.status != null) { - oprot.writeFieldBegin(STATUS_FIELD_DESC); - oprot.writeString(struct.status); - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class TopologySummaryTupleSchemeFactory implements SchemeFactory { - public TopologySummaryTupleScheme getScheme() { - return new TopologySummaryTupleScheme(); - } - } - - private static class TopologySummaryTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, TopologySummary struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - oprot.writeString(struct.id); - oprot.writeString(struct.name); - oprot.writeI32(struct.num_tasks); - oprot.writeI32(struct.num_executors); - oprot.writeI32(struct.num_workers); - oprot.writeI32(struct.uptime_secs); - oprot.writeString(struct.status); - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, TopologySummary struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - struct.id = iprot.readString(); - struct.setIdIsSet(true); - struct.name = iprot.readString(); - struct.setNameIsSet(true); - struct.num_tasks = iprot.readI32(); - struct.setNum_tasksIsSet(true); - struct.num_executors = iprot.readI32(); - struct.setNum_executorsIsSet(true); - struct.num_workers = iprot.readI32(); - struct.setNum_workersIsSet(true); - struct.uptime_secs = iprot.readI32(); - struct.setUptime_secsIsSet(true); - struct.status = iprot.readString(); - struct.setStatusIsSet(true); - } - } - -} - diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleSpoutTops.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleSpoutTops.java deleted file mode 100644 index f747cf117..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleSpoutTops.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.topologies; - -import backtype.storm.topology.*; -import backtype.storm.*; - -import com.intel.hibench.streambench.storm.util.*; - -public class SingleSpoutTops extends AbstractStormSpoutTops { - - public SingleSpoutTops(StormBenchConfig c) { - super(c); - } - - public void run() throws Exception { - StormSubmitter.submitTopology(config.benchName, getConf(), getBuilder().createTopology()); - } - - public Config getConf() { - Config conf = new Config(); - conf.setMaxTaskParallelism(200); - conf.put("topology.spout.max.batch.size", 64 * 1024); - conf.setNumWorkers(config.workerCount); - if (!config.ackon) - conf.setNumAckers(0); - return conf; - } - - public TopologyBuilder getBuilder() { - TopologyBuilder builder = new TopologyBuilder(); - setSpout(builder); - setBolt(builder); - return builder; - } - - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleTridentSpoutTops.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleTridentSpoutTops.java deleted file mode 100644 index eb2d8d90c..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/topologies/SingleTridentSpoutTops.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.topologies; - -import backtype.storm.*; -import storm.trident.TridentTopology; - -import com.intel.hibench.streambench.storm.util.*; - -public class SingleTridentSpoutTops extends AbstractTridentSpoutTops { - - protected StormBenchConfig config; - - public SingleTridentSpoutTops(StormBenchConfig c) { - this.config = c; - } - - public void run() throws Exception { - StormSubmitter.submitTopology(config.benchName, getConf(), createTridentTopology().build()); - } - - public Config getConf() { - Config conf = new Config(); - conf.setMaxTaskParallelism(200); - conf.put("topology.spout.max.batch.size", 64 * 1024); - conf.setNumWorkers(config.workerCount); - if (!config.ackon) - conf.setNumAckers(0); - return conf; - } - - public TridentTopology createTridentTopology() { - TridentTopology topology = new TridentTopology(); - setTopology(topology); - return topology; - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/Sketch.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/Sketch.java deleted file mode 100644 index 9c44cc65f..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/Sketch.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import backtype.storm.Config; -import backtype.storm.LocalCluster; -import backtype.storm.LocalDRPC; -import backtype.storm.StormSubmitter; -import backtype.storm.generated.StormTopology; -import backtype.storm.tuple.Fields; -import backtype.storm.tuple.Values; -import backtype.storm.utils.*; -import backtype.storm.topology.base.BaseRichSpout; - -import storm.trident.TridentState; -import storm.trident.TridentTopology; -import storm.trident.operation.BaseFunction; -import storm.trident.operation.TridentCollector; -import storm.trident.operation.builtin.Count; -import storm.trident.operation.builtin.FilterNull; -import storm.trident.operation.builtin.MapGet; -import storm.trident.operation.builtin.Sum; -import storm.trident.testing.FixedBatchSpout; -import storm.trident.testing.MemoryMapState; -import storm.trident.tuple.TridentTuple; -import storm.kafka.trident.*; - - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.spout.*; -import com.intel.hibench.streambench.storm.topologies.*; - -public class Sketch extends BaseFunction { - private int fieldIndex; - private String separator; - - public Sketch(int fieldIndex, String separator) { - this.fieldIndex = fieldIndex; - this.separator = separator; - } - - @Override - public void execute(TridentTuple tuple, TridentCollector collector){ - String record = tuple.getString(0); - String[] fields = record.split(separator); - if (fields.length > fieldIndex) - collector.emit(new Values(fields[fieldIndex])); - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentDistinctCount.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentDistinctCount.java deleted file mode 100644 index 6afacd08c..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentDistinctCount.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import backtype.storm.tuple.Fields; -import backtype.storm.tuple.Values; -import storm.trident.TridentTopology; -import storm.trident.operation.BaseFunction; -import storm.trident.operation.TridentCollector; - -import storm.trident.tuple.TridentTuple; -import storm.kafka.trident.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.spout.*; -import com.intel.hibench.streambench.storm.topologies.*; - -import java.util.Set; -import java.util.HashSet; - -public class TridentDistinctCount extends SingleTridentSpoutTops { - - public TridentDistinctCount(StormBenchConfig config) { - super(config); - } - - @Override - public void setTopology(TridentTopology topology) { - OpaqueTridentKafkaSpout spout = ConstructSpoutUtil.constructTridentSpout(); - - topology - .newStream("bg0", spout) - .each(spout.getOutputFields(), new Sketch(config.fieldIndex, config.separator), new Fields("field")) - .parallelismHint(config.spoutThreads) - .partitionBy(new Fields("field")) - .each(new Fields("field"), new DistinctCount(), new Fields("size")) - .parallelismHint(config.workerCount); - } - - public static class DistinctCount extends BaseFunction { - Set set = new HashSet(); - - @Override - public void execute(TridentTuple tuple, TridentCollector collector) { - String word = tuple.getString(0); - set.add(word); - BenchLogUtil.logMsg("Distinct count:"+set.size()); - collector.emit(new Values(set.size())); - } - - - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentGrep.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentGrep.java deleted file mode 100644 index e61a0c33a..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentGrep.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import backtype.storm.tuple.Fields; -import backtype.storm.tuple.Values; - -import storm.trident.TridentTopology; -import storm.trident.operation.BaseFunction; -import storm.trident.operation.TridentCollector; - -import storm.trident.tuple.TridentTuple; -import storm.kafka.trident.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.spout.*; -import com.intel.hibench.streambench.storm.topologies.*; - -public class TridentGrep extends SingleTridentSpoutTops { - - public TridentGrep(StormBenchConfig config){ - super(config); - } - - @Override - public void setTopology(TridentTopology topology) { - OpaqueTridentKafkaSpout spout = ConstructSpoutUtil.constructTridentSpout(); - - topology - .newStream("bg0", spout) - .each(spout.getOutputFields(), new Grep(config.pattern), new Fields("tuple")) - .parallelismHint(config.workerCount); - } - - public static class Grep extends BaseFunction { - private String pattern; - - public Grep(String pattern) { - this.pattern = pattern; - } - - @Override - public void execute(TridentTuple tuple, TridentCollector collector){ - String val = tuple.getString(0); - if (val.contains(pattern)) - // BenchLogUtil.logMsg(val); - collector.emit(new Values(val)); - } - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentIdentity.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentIdentity.java deleted file mode 100644 index aa887773a..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentIdentity.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import backtype.storm.tuple.*; - -import storm.trident.TridentTopology; -import storm.trident.operation.BaseFunction; -import storm.trident.operation.TridentCollector; -import storm.trident.tuple.TridentTuple; -import storm.kafka.trident.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.spout.*; -import com.intel.hibench.streambench.storm.topologies.*; - -public class TridentIdentity extends SingleTridentSpoutTops { - - public TridentIdentity(StormBenchConfig config){ - super(config); - } - - @Override - public void setTopology(TridentTopology topology) { - OpaqueTridentKafkaSpout spout = ConstructSpoutUtil.constructTridentSpout(); - - topology - .newStream("bg0", spout) - .each(spout.getOutputFields(), new Identity(), new Fields("tuple")) - .parallelismHint(config.workerCount); - } - public static class Identity extends BaseFunction { - @Override - public void execute(TridentTuple tuple, TridentCollector collector){ - collector.emit(new Values(tuple.getValues())); - } - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentNumericCalc.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentNumericCalc.java deleted file mode 100644 index adc6894bb..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentNumericCalc.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import java.io.Serializable; - -import backtype.storm.tuple.Fields; -import backtype.storm.tuple.Values; - -import com.intel.hibench.streambench.storm.spout.ConstructSpoutUtil; -import com.intel.hibench.streambench.storm.topologies.SingleTridentSpoutTops; -import com.intel.hibench.streambench.storm.util.StormBenchConfig; -import storm.trident.TridentTopology; -import storm.trident.operation.*; -import storm.trident.testing.MemoryMapState; -import storm.trident.tuple.TridentTuple; -import storm.kafka.trident.*; - - -class Numeric implements Serializable { - public Long max = 0L; - public Long min = 10000L; - public Long sum = 0L; - public Long count = 0L; - public Numeric() {} - public Numeric(Long max, Long min, Long sum, Long count) { - this.max = max; - this.min = min; - this.sum = sum; - this.count = count; - } -} - -class NumericCalc implements CombinerAggregator, Serializable { - - @Override - public Numeric init(TridentTuple tuple) { - if (tuple.contains("number")) { - Long val = tuple.getLong(0); - return new Numeric(val, val, val, 1L); - } - return new Numeric(); - } - - @Override - public Numeric combine(Numeric val1, Numeric val2) { - if (val1.max < val2.max) val1.max = val2.max; - if (val1.min > val2.min) val1.min = val2.min; - val1.sum += val2.sum; - val1.count += val2.count; - System.out.println(val1.max + " " + val1.min + " " + val1.sum + " " + val1.count); - return val1; - } - - @Override - public Numeric zero() { - return new Numeric(); - } -} - -public class TridentNumericCalc extends SingleTridentSpoutTops implements Serializable { - - public TridentNumericCalc(StormBenchConfig config){ - super(config); - } - - @Override - public void setTopology(TridentTopology topology) { - OpaqueTridentKafkaSpout spout = ConstructSpoutUtil.constructTridentSpout(); - - topology - .newStream("bg0", spout) - .parallelismHint(config.spoutThreads) - .each(spout.getOutputFields(), new Trim(config.separator, config.fieldIndex), new Fields("number")) - .persistentAggregate(new MemoryMapState.Factory(), new Fields("number"), new NumericCalc(), new Fields("res")) - ; - } - - public static class Trim extends BaseFunction { - String separator; - int fieldIndex; - - public Trim(String separator, int fieldIndex) { - this.separator = separator; - this.fieldIndex = fieldIndex; - } - - @Override - public void execute(TridentTuple tuple, TridentCollector collector) { - String record = tuple.getString(0); - String[] fields = record.trim().split(separator); - if (fields.length > fieldIndex) { - Long val = Long.parseLong(fields[fieldIndex]); - collector.emit(new Values(val)); - } - } - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentProject.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentProject.java deleted file mode 100644 index a9fb1fff9..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentProject.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import backtype.storm.tuple.Fields; -import storm.trident.TridentTopology; -import storm.kafka.trident.*; - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.spout.*; -import com.intel.hibench.streambench.storm.topologies.*; - -public class TridentProject extends SingleTridentSpoutTops { - - public TridentProject(StormBenchConfig config) { - super(config); - } - - @Override - public void setTopology(TridentTopology topology) { - OpaqueTridentKafkaSpout spout = ConstructSpoutUtil.constructTridentSpout(); - - topology - .newStream("bg0", spout) - .each(spout.getOutputFields(), new Sketch(config.fieldIndex, config.separator), new Fields("field")) - .parallelismHint(config.workerCount); - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentSample.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentSample.java deleted file mode 100644 index 5b90cb8d0..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentSample.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import backtype.storm.tuple.Fields; -import backtype.storm.tuple.Values; -import storm.trident.TridentTopology; -import storm.trident.operation.BaseFunction; -import storm.trident.operation.TridentCollector; - -import storm.trident.tuple.TridentTuple; -import storm.kafka.trident.*; - - -import com.intel.hibench.streambench.storm.util.*; -import com.intel.hibench.streambench.storm.spout.*; -import com.intel.hibench.streambench.storm.topologies.*; - -import java.util.Random; - -public class TridentSample extends SingleTridentSpoutTops { - private double probability; - public TridentSample(StormBenchConfig config){ - super(config); - } - - @Override - public void setTopology(TridentTopology topology) { - OpaqueTridentKafkaSpout spout = ConstructSpoutUtil.constructTridentSpout(); - - topology - .newStream("bg0", spout) - .each(spout.getOutputFields(), new Sample(config.prob), new Fields("tuple")) - .parallelismHint(config.workerCount); - } - public static class Sample extends BaseFunction { - private double probability; - private int count = 0; - private ThreadLocal rand = null; - - public Sample(double prob) { - probability = prob; - rand = threadRandom(1); - } - - @Override - public void execute(TridentTuple tuple, TridentCollector collector){ - double randVal = rand.get().nextDouble(); - if (randVal <= probability) { - count += 1; - collector.emit(new Values(tuple.getString(0))); - BenchLogUtil.logMsg(" count:" + count); - } - } - - public static ThreadLocal threadRandom(final long seed) { - return new ThreadLocal(){ - @Override - protected Random initialValue() { - return new Random(seed); - } - }; - } - - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentWordcount.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentWordcount.java deleted file mode 100644 index 466ce7e98..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/trident/TridentWordcount.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.trident; - -import backtype.storm.tuple.Fields; -import backtype.storm.tuple.Values; - -import com.intel.hibench.streambench.storm.spout.ConstructSpoutUtil; -import com.intel.hibench.streambench.storm.topologies.SingleTridentSpoutTops; -import com.intel.hibench.streambench.storm.util.BenchLogUtil; -import com.intel.hibench.streambench.storm.util.StormBenchConfig; -import storm.trident.TridentTopology; -import storm.trident.operation.BaseFunction; -import storm.trident.operation.TridentCollector; -import storm.trident.tuple.TridentTuple; -import storm.kafka.trident.*; - - -import java.util.Map; -import java.util.HashMap; - -public class TridentWordcount extends SingleTridentSpoutTops { - - public TridentWordcount(StormBenchConfig config){ - super(config); - } - - @Override - public void setTopology(TridentTopology topology) { - OpaqueTridentKafkaSpout spout = ConstructSpoutUtil.constructTridentSpout(); - - topology - .newStream("bg0", spout) - .each(spout.getOutputFields(), new Split(config.separator), new Fields("words")) - .parallelismHint(config.spoutThreads) - .partitionBy(new Fields("words")) - .each(new Fields("words"), new WordCount(), new Fields("word", "count")) - .parallelismHint(config.workerCount) - ; - } - - public static class Split extends BaseFunction { - String separator; - - public Split(String separator) { - this.separator = separator; - } - - @Override - public void execute(TridentTuple tuple, TridentCollector collector) { - String sentence = tuple.getString(0); - for (String word : sentence.split(separator)) { - collector.emit(new Values(word)); - } - } - } - - public static class WordCount extends BaseFunction { - Map counts = new HashMap(); - - @Override - public void execute(TridentTuple tuple, TridentCollector collector) { - String word = tuple.getString(0); - Integer count = counts.get(word); - if (count == null) - count = 0; - count++; - counts.put(word, count); - BenchLogUtil.logMsg("Word:" + word + " count:" + count); - collector.emit(new Values(word, count)); - } - } - -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/BenchLogUtil.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/BenchLogUtil.java deleted file mode 100644 index 91174eb45..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/BenchLogUtil.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.intel.hibench.streambench.storm.util; - -import java.io.*; - -public class BenchLogUtil{ - private static PrintWriter out; - - public static void init() throws Exception{ - File file=new File("/tmp/benchlog-storm.txt"); - out=new PrintWriter(file); - } - - public static void logMsg(String msg){ - try{ - if(out==null) - init(); - }catch(Exception e){ - e.printStackTrace(); - } - - out.println(msg); - out.flush(); - System.out.println(msg); - } - - public static void close(){ - if(out!=null) out.close(); - } - - public static void handleError(String msg){ - System.err.println(msg); - System.exit(1); - } -} \ No newline at end of file diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/ConfigLoader.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/ConfigLoader.java deleted file mode 100644 index 57d663652..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/ConfigLoader.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.storm.util; - - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class ConfigLoader { - private String ConfigFileName = null; - private Map store; - - public ConfigLoader(String filename){ - ConfigFileName = filename; - store = new HashMap(); - // Load and parse config - try { - BufferedReader br = new BufferedReader(new FileReader(filename)); - String line = br.readLine(); - while(line != null){ - if ((line.length()>0) && (line.charAt(0)!='#')) { - String[] words = line.split("\\s+"); - if (words.length == 2) { - String key = words[0]; - String value = words[1]; - store.put(key, value); - } else if (words.length == 1) { - String key = words[0]; - store.put(key, ""); - } else { - if (!line.startsWith("hibench")) - System.out.println("Warning: unknown config parsed, skip:" + line); - } - } - line = br.readLine(); - } - } catch (FileNotFoundException e) { - System.out.println("ERROR: Config file not found! Should not happen. Caused by:"); - } catch (IOException e) { - System.out.println("ERROR: IO exception during read file. Should not happen. Caused by:"); - e.printStackTrace(); - } - } - - public String getProperty(String key){ - if (store.containsKey(key)) - return (String) store.get(key); - else { - System.out.println("ERROR: Unknown config key:" + key); - return null; - } - } -} diff --git a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/StormBenchConfig.java b/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/StormBenchConfig.java deleted file mode 100644 index 179f2c2d1..000000000 --- a/src/streambench/stormbench/src/main/java/com/intel/hibench/streambench/storm/util/StormBenchConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.intel.hibench.streambench.storm.util; - -public class StormBenchConfig{ - public String nimbus; - public int nimbusAPIPort; - public String zkHost; - public int workerCount; - public int spoutThreads; - public int boltThreads; - public String benchName; - public long recordCount; - public String topic; - public String consumerGroup; - public boolean readFromStart; - public boolean ackon; - public int nimbusContactInterval; - - //Following are fields that are benchmark specific - public String separator; - public int fieldIndex; - public double prob; - public String pattern; -} \ No newline at end of file diff --git a/src/streambench/stormbench/src/main/thrift/storm.thrift b/src/streambench/stormbench/src/main/thrift/storm.thrift deleted file mode 100644 index 48e3548bf..000000000 --- a/src/streambench/stormbench/src/main/thrift/storm.thrift +++ /dev/null @@ -1,255 +0,0 @@ -#!/usr/local/bin/thrift --gen java:beans,nocamel,hashcode - -namespace java com.intel.hibench.streambench.storm.thrift.generated - -union JavaObjectArg { - 1: i32 int_arg; - 2: i64 long_arg; - 3: string string_arg; - 4: bool bool_arg; - 5: binary binary_arg; - 6: double double_arg; -} - -struct JavaObject { - 1: required string full_class_name; - 2: required list args_list; -} - -struct NullStruct { - -} - -struct GlobalStreamId { - 1: required string componentId; - 2: required string streamId; - #Going to need to add an enum for the stream type (NORMAL or FAILURE) -} - -union Grouping { - 1: list fields; //empty list means global grouping - 2: NullStruct shuffle; // tuple is sent to random task - 3: NullStruct all; // tuple is sent to every task - 4: NullStruct none; // tuple is sent to a single task (storm's choice) -> allows storm to optimize the topology by bundling tasks into a single process - 5: NullStruct direct; // this bolt expects the source bolt to send tuples directly to it - 6: JavaObject custom_object; - 7: binary custom_serialized; - 8: NullStruct local_or_shuffle; // prefer sending to tasks in the same worker process, otherwise shuffle -} - -struct StreamInfo { - 1: required list output_fields; - 2: required bool direct; -} - -struct ShellComponent { - // should change this to 1: required list execution_command; - 1: string execution_command; - 2: string script; -} - -union ComponentObject { - 1: binary serialized_java; - 2: ShellComponent shell; - 3: JavaObject java_object; -} - -struct ComponentCommon { - 1: required map inputs; - 2: required map streams; //key is stream id - 3: optional i32 parallelism_hint; //how many threads across the cluster should be dedicated to this component - - // component specific configuration respects: - // topology.debug: false - // topology.max.task.parallelism: null // can replace isDistributed with this - // topology.max.spout.pending: null - // topology.kryo.register // this is the only additive one - - // component specific configuration - 4: optional string json_conf; -} - -struct SpoutSpec { - 1: required ComponentObject spout_object; - 2: required ComponentCommon common; - // can force a spout to be non-distributed by overriding the component configuration - // and setting TOPOLOGY_MAX_TASK_PARALLELISM to 1 -} - -struct Bolt { - 1: required ComponentObject bolt_object; - 2: required ComponentCommon common; -} - -// not implemented yet -// this will eventually be the basis for subscription implementation in storm -struct StateSpoutSpec { - 1: required ComponentObject state_spout_object; - 2: required ComponentCommon common; -} - -struct StormTopology { - //ids must be unique across maps - // #workers to use is in conf - 1: required map spouts; - 2: required map bolts; - 3: required map state_spouts; -} - -exception AlreadyAliveException { - 1: required string msg; -} - -exception NotAliveException { - 1: required string msg; -} - -exception InvalidTopologyException { - 1: required string msg; -} - -struct TopologySummary { - 1: required string id; - 2: required string name; - 3: required i32 num_tasks; - 4: required i32 num_executors; - 5: required i32 num_workers; - 6: required i32 uptime_secs; - 7: required string status; -} - -struct SupervisorSummary { - 1: required string host; - 2: required i32 uptime_secs; - 3: required i32 num_workers; - 4: required i32 num_used_workers; - 5: required string supervisor_id; -} - -struct ClusterSummary { - 1: required list supervisors; - 2: required i32 nimbus_uptime_secs; - 3: required list topologies; -} - -struct ErrorInfo { - 1: required string error; - 2: required i32 error_time_secs; -} - -struct BoltStats { - 1: required map> acked; - 2: required map> failed; - 3: required map> process_ms_avg; - 4: required map> executed; - 5: required map> execute_ms_avg; -} - -struct SpoutStats { - 1: required map> acked; - 2: required map> failed; - 3: required map> complete_ms_avg; -} - -union ExecutorSpecificStats { - 1: BoltStats bolt; - 2: SpoutStats spout; -} - -// Stats are a map from the time window (all time or a number indicating number of seconds in the window) -// to the stats. Usually stats are a stream id to a count or average. -struct ExecutorStats { - 1: required map> emitted; - 2: required map> transferred; - 3: required ExecutorSpecificStats specific; -} - -struct ExecutorInfo { - 1: required i32 task_start; - 2: required i32 task_end; -} - -struct ExecutorSummary { - 1: required ExecutorInfo executor_info; - 2: required string component_id; - 3: required string host; - 4: required i32 port; - 5: required i32 uptime_secs; - 7: optional ExecutorStats stats; -} - -struct TopologyInfo { - 1: required string id; - 2: required string name; - 3: required i32 uptime_secs; - 4: required list executors; - 5: required string status; - 6: required map> errors; -} - -struct KillOptions { - 1: optional i32 wait_secs; -} - -struct RebalanceOptions { - 1: optional i32 wait_secs; - 2: optional i32 num_workers; - 3: optional map num_executors; -} - -enum TopologyInitialStatus { - ACTIVE = 1, - INACTIVE = 2 -} -struct SubmitOptions { - 1: required TopologyInitialStatus initial_status; -} - -service Nimbus { - void submitTopology(1: string name, 2: string uploadedJarLocation, 3: string jsonConf, 4: StormTopology topology) throws (1: AlreadyAliveException e, 2: InvalidTopologyException ite); - void submitTopologyWithOpts(1: string name, 2: string uploadedJarLocation, 3: string jsonConf, 4: StormTopology topology, 5: SubmitOptions options) throws (1: AlreadyAliveException e, 2: InvalidTopologyException ite); - void killTopology(1: string name) throws (1: NotAliveException e); - void killTopologyWithOpts(1: string name, 2: KillOptions options) throws (1: NotAliveException e); - void activate(1: string name) throws (1: NotAliveException e); - void deactivate(1: string name) throws (1: NotAliveException e); - void rebalance(1: string name, 2: RebalanceOptions options) throws (1: NotAliveException e, 2: InvalidTopologyException ite); - - // need to add functions for asking about status of storms, what nodes they're running on, looking at task logs - - string beginFileUpload(); - void uploadChunk(1: string location, 2: binary chunk); - void finishFileUpload(1: string location); - - string beginFileDownload(1: string file); - //can stop downloading chunks when receive 0-length byte array back - binary downloadChunk(1: string id); - - // returns json - string getNimbusConf(); - // stats functions - ClusterSummary getClusterInfo(); - TopologyInfo getTopologyInfo(1: string id) throws (1: NotAliveException e); - //returns json - string getTopologyConf(1: string id) throws (1: NotAliveException e); - StormTopology getTopology(1: string id) throws (1: NotAliveException e); - StormTopology getUserTopology(1: string id) throws (1: NotAliveException e); -} - -struct DRPCRequest { - 1: required string func_args; - 2: required string request_id; -} - -exception DRPCExecutionException { - 1: required string msg; -} - -service DistributedRPC { - string execute(1: string functionName, 2: string funcArgs) throws (1: DRPCExecutionException e); -} - -service DistributedRPCInvocations { - void result(1: string id, 2: string result); - DRPCRequest fetchRequest(1: string functionName); - void failRequest(1: string id); -} diff --git a/src/streambench/zkHelper/pom.xml b/src/streambench/zkHelper/pom.xml deleted file mode 100644 index b7ddfb723..000000000 --- a/src/streambench/zkHelper/pom.xml +++ /dev/null @@ -1,87 +0,0 @@ - - 4.0.0 - - - com.intel.hibench - streambench - 5.0-SNAPSHOT - - - - 3.0.0 - - - com.intel.RPCcloud - streaming-bench-zkhelper - 0.1-SNAPSHOT - jar - Streaming Benchmark Zookeeper Helper Utils - - - - UTF-8 - - - - - org.apache.kafka - kafka_2.10 - 0.8.2.1 - - - org.slf4j - slf4j-api - ${slf4j.version} - - - org.slf4j - slf4j-log4j12 - ${slf4j.version} - - - - - - apache-releases - https://repository.apache.org/content/groups/public - - - - - src/main - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - 1.6 - 1.6 - - - - maven-assembly-plugin - - - jar-with-dependencies - - - - - - - - - - make-assembly - package - - single - - - - - - - diff --git a/src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKUtil.java b/src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKUtil.java deleted file mode 100644 index 4e9ad1173..000000000 --- a/src/streambench/zkHelper/src/main/com/intel/hibench/streambench/zkHelper/ZKUtil.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.intel.hibench.streambench.zkHelper; - -import org.I0Itec.zkclient.ZkClient; - -public class ZKUtil { - - ZkClient zkClient; - - public ZKUtil(String zkHost){ - zkClient=new ZkClient(zkHost,30*1000, 30*1000, new ZKStringSerializer()); - } - - public void resetOffsetToBegin(String path,int partitionCount,String newOffset){ - OffsetResetUpdater update=new OffsetResetUpdater(newOffset); - for(int i=0;i "); - return; - } - String op=args[0]; - String zkHost=args[1]; - String path=args[2]; - int partitionCount=Integer.parseInt(args[3]); - String offset="0"; - if(args.length>4){ - offset=args[4]; - } - - ZKUtil zk=new ZKUtil(zkHost); - if(op.equals("ls")){ - zk.lsOffsets(path, partitionCount); - }else if(op.equals("update")){ - zk.resetOffsetToBegin(path, partitionCount, offset); - }else{ - System.err.println("Unsupported operation!"); - } - } -} diff --git a/stormbench/pom.xml b/stormbench/pom.xml new file mode 100644 index 000000000..6b53aea89 --- /dev/null +++ b/stormbench/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + + + com.intel.hibench + hibench + 6.0-SNAPSHOT + + + com.intel.hibench + stormbench + pom + 6.0-SNAPSHOT + stormbench + + + + streaming + + streaming + + + + + allModules + + streaming + + + + !modules + + + + + diff --git a/stormbench/streaming/pom.xml b/stormbench/streaming/pom.xml new file mode 100644 index 000000000..a94f2a10c --- /dev/null +++ b/stormbench/streaming/pom.xml @@ -0,0 +1,123 @@ + + + + + 4.0.0 + + com.intel.hibench + stormbench + 6.0-SNAPSHOT + + + com.intel.hibench.stormbench + stormbench-streaming + jar + stormbench-streaming + + + + com.intel.hibench + hibench-common + ${project.version} + + + org.apache.storm + storm-core + 1.0.1 + provided + + + org.apache.storm + storm-kafka + 1.0.1 + + + org.slf4j + slf4j-api + + + org.apache.kafka + kafka-clients + + + + + org.apache.kafka + kafka_2.11 + 0.8.2.1 + + + org.apache.zookeeper + zookeeper + + + org.slf4j + slf4j-api + + + org.slf4j + slf4j-log4j12 + + + org.slf4j + log4j-over-slf4j + + + log4j + log4j + + + + + com.google.guava + guava + 15.0 + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + true + + + + package + + shade + + + + + + + + + + + + + + diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/RunBench.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/RunBench.java new file mode 100644 index 000000000..c2fd29234 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/RunBench.java @@ -0,0 +1,105 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench; + +import com.intel.hibench.common.streaming.ConfigLoader; +import com.intel.hibench.common.streaming.Platform; +import com.intel.hibench.common.streaming.StreamBenchConfig; +import com.intel.hibench.common.streaming.TestCase; +import com.intel.hibench.common.streaming.metrics.MetricsUtil; +import com.intel.hibench.stormbench.micro.*; +import com.intel.hibench.stormbench.trident.*; +import com.intel.hibench.stormbench.util.BenchLogUtil; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +public class RunBench { + + public static void main(String[] args) throws Exception { + runAll(args); + } + + private static void runAll(String[] args) throws Exception { + + if (args.length < 2) + BenchLogUtil.handleError("Usage: RunBench "); + + StormBenchConfig conf = new StormBenchConfig(); + + ConfigLoader cl = new ConfigLoader(args[0]); + boolean TridentFramework = false; + if (args[1].equals("trident")) TridentFramework = true; + + conf.zkHost = cl.getProperty(StreamBenchConfig.ZK_HOST); + conf.workerCount = Integer.parseInt(cl.getProperty(StreamBenchConfig.STORM_WORKERCOUNT)); + conf.spoutThreads = Integer.parseInt(cl.getProperty(StreamBenchConfig.STORM_SPOUT_THREADS)); + conf.boltThreads = Integer.parseInt(cl.getProperty(StreamBenchConfig.STORM_BOLT_THREADS)); + conf.benchName = cl.getProperty(StreamBenchConfig.TESTCASE); + conf.topic = cl.getProperty(StreamBenchConfig.KAFKA_TOPIC); + conf.consumerGroup = cl.getProperty(StreamBenchConfig.CONSUMER_GROUP); + conf.ackon = Boolean.parseBoolean(cl.getProperty(StreamBenchConfig.STORM_ACKON)); + conf.localShuffle = Boolean.parseBoolean(cl.getProperty(StreamBenchConfig.STORM_LOCAL_SHUFFLE)); + + conf.windowDuration = Long.parseLong(cl.getProperty(StreamBenchConfig.FixWINDOW_DURATION)); + conf.windowSlideStep = Long.parseLong(cl.getProperty(StreamBenchConfig.FixWINDOW_SLIDESTEP)); + + conf.brokerList = cl.getProperty(StreamBenchConfig.KAFKA_BROKER_LIST); + int producerNum = Integer.parseInt(cl.getProperty(StreamBenchConfig.DATAGEN_PRODUCER_NUMBER)); + long recordPerInterval = Long.parseLong(cl.getProperty(StreamBenchConfig.DATAGEN_RECORDS_PRE_INTERVAL)); + int intervalSpan = Integer.parseInt(cl.getProperty(StreamBenchConfig.DATAGEN_INTERVAL_SPAN)); + if (TridentFramework) { + conf.reporterTopic = MetricsUtil.getTopic(Platform.TRIDENT, + conf.topic, producerNum, recordPerInterval, intervalSpan); + } else { + conf.reporterTopic = MetricsUtil.getTopic(Platform.STORM, + conf.topic, producerNum, recordPerInterval, intervalSpan); + } + int reportTopicPartitions = Integer.parseInt(cl.getProperty(StreamBenchConfig.KAFKA_TOPIC_PARTITIONS)); + MetricsUtil.createTopic(conf.zkHost, conf.reporterTopic, reportTopicPartitions); + TestCase benchName = TestCase.withValue(conf.benchName); + + BenchLogUtil.logMsg("Benchmark starts... " + " " + benchName + + " Frameworks:" + (TridentFramework ? "Trident" : "Storm")); + + if (TridentFramework) { // For trident workloads + if (benchName.equals(TestCase.WORDCOUNT)) { + TridentWordcount wordcount = new TridentWordcount(conf); + wordcount.run(); + } else if (benchName.equals(TestCase.IDENTITY)) { + TridentIdentity identity = new TridentIdentity(conf); + identity.run(); + } else if (benchName.equals(TestCase.REPARTITION)) { + TridentRepartition repartition = new TridentRepartition(conf); + repartition.run(); + } else if (benchName.equals(TestCase.FIXWINDOW)) { + TridentWindow window = new TridentWindow(conf); + window.run(); + } + } else { // For storm workloads + if (benchName.equals(TestCase.IDENTITY)) { + Identity identity = new Identity(conf); + identity.run(); + } else if (benchName.equals(TestCase.WORDCOUNT)) { + WordCount wordCount = new WordCount(conf); + wordCount.run(); + } else if (benchName.equals(TestCase.FIXWINDOW)) { + WindowedCount window = new WindowedCount(conf); + window.run(); + } + } + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/Identity.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/Identity.java new file mode 100644 index 000000000..65fde5217 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/Identity.java @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.micro; + +import com.google.common.collect.ImmutableMap; +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.metrics.LatencyReporter; +import com.intel.hibench.stormbench.topologies.SingleSpoutTops; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.topology.BasicOutputCollector; +import org.apache.storm.topology.BoltDeclarer; +import org.apache.storm.topology.OutputFieldsDeclarer; +import org.apache.storm.topology.TopologyBuilder; +import org.apache.storm.topology.base.BaseBasicBolt; +import org.apache.storm.tuple.Fields; +import org.apache.storm.tuple.Tuple; +import org.apache.storm.tuple.Values; + + +public class Identity extends SingleSpoutTops { + + public Identity(StormBenchConfig config) { + super(config); + } + + @Override + public void setBolts(TopologyBuilder builder) { + BoltDeclarer boltDeclarer = builder.setBolt("identity", new IdentityBolt(config), + config.boltThreads); + if (config.localShuffle) { + boltDeclarer.localOrShuffleGrouping("spout"); + } else { + boltDeclarer.shuffleGrouping("spout"); + } + } + + private static class IdentityBolt extends BaseBasicBolt { + + private final StormBenchConfig config; + + IdentityBolt(StormBenchConfig config) { + this.config = config; + } + + @Override + public void execute(Tuple tuple, BasicOutputCollector collector) { + final LatencyReporter latencyReporter = new KafkaReporter(config.reporterTopic, config.brokerList); + ImmutableMap kv = (ImmutableMap) tuple.getValue(0); + collector.emit(new Values(kv)); + latencyReporter.report(Long.parseLong(kv.keySet().iterator().next()), System.currentTimeMillis()); + } + + @Override + public void declareOutputFields(OutputFieldsDeclarer declarer) { + declarer.declare(new Fields("tuple")); + } + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/WindowedCount.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/WindowedCount.java new file mode 100644 index 000000000..f792d6d01 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/WindowedCount.java @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.micro; + +import com.google.common.collect.ImmutableMap; +import com.intel.hibench.common.streaming.UserVisit; +import com.intel.hibench.common.streaming.UserVisitParser; +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.metrics.LatencyReporter; +import com.intel.hibench.stormbench.topologies.SingleSpoutTops; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.topology.BasicOutputCollector; +import org.apache.storm.topology.BoltDeclarer; +import org.apache.storm.topology.OutputFieldsDeclarer; +import org.apache.storm.topology.base.BaseBasicBolt; +import org.apache.storm.tuple.Fields; +import org.apache.storm.tuple.Tuple; +import org.apache.storm.topology.TopologyBuilder; +import org.apache.storm.topology.base.BaseWindowedBolt; +import org.apache.storm.topology.base.BaseWindowedBolt.Duration; +import org.apache.storm.tuple.Values; +import org.apache.storm.windowing.TupleWindow; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class WindowedCount extends SingleSpoutTops { + + public WindowedCount(StormBenchConfig config) { + super(config); + } + + @Override + public void setBolts(TopologyBuilder builder) { + Duration windowDuration = new Duration((int) config.windowDuration, TimeUnit.MILLISECONDS); + Duration windowSlide = new Duration((int) config.windowSlideStep, TimeUnit.MILLISECONDS); + BoltDeclarer boltDeclarer = builder.setBolt("parser", new ParserBolt(), config.boltThreads); + if (config.localShuffle) { + boltDeclarer.localOrShuffleGrouping("spout"); + } else { + boltDeclarer.shuffleGrouping("spout"); + } + builder.setBolt("window", new SlidingWindowBolt(config) + .withWindow(windowDuration, windowSlide), + config.boltThreads).fieldsGrouping("parser", new Fields("ip")); + } + + private static class ParserBolt extends BaseBasicBolt { + + @Override + public void execute(Tuple tuple, BasicOutputCollector basicOutputCollector) { + ImmutableMap kv = (ImmutableMap) tuple.getValue(0); + String time = kv.keySet().iterator().next(); + UserVisit uv = UserVisitParser.parse(kv.get(time)); + basicOutputCollector.emit(new Values(uv.getIp(), Long.parseLong(time))); + } + + @Override + public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) { + outputFieldsDeclarer.declare(new Fields("ip", "time")); + } + } + + private static class SlidingWindowBolt extends BaseWindowedBolt { + private final StormBenchConfig config; + + SlidingWindowBolt(StormBenchConfig config) { + this.config = config; + } + + @Override + public void execute(TupleWindow inputWindow) { + Map counts = new HashMap(); + for (Tuple tuple : inputWindow.get()) { + Long time = tuple.getLong(1); + String ip = tuple.getString(0); + Long[] timeAndCount = counts.get(ip); + if (null == timeAndCount) { + timeAndCount = new Long[2]; + timeAndCount[0] = time; + timeAndCount[1] = 0L; + } + timeAndCount[0] = Math.min(timeAndCount[0], time); + timeAndCount[1]++; + counts.put(ip, timeAndCount); + } + LatencyReporter latencyReporter = new KafkaReporter(config.reporterTopic, config.brokerList); + for (Long[] timeAndCount : counts.values()) { + for (int i = 0; i < timeAndCount[1]; i++) { + latencyReporter.report(timeAndCount[0], System.currentTimeMillis()); + } + } + } + + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/WordCount.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/WordCount.java new file mode 100644 index 000000000..59dc2179d --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/micro/WordCount.java @@ -0,0 +1,101 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.micro; + +import com.google.common.collect.ImmutableMap; +import com.intel.hibench.common.streaming.UserVisit; +import com.intel.hibench.common.streaming.UserVisitParser; +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.metrics.LatencyReporter; +import com.intel.hibench.stormbench.topologies.SingleSpoutTops; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.topology.BasicOutputCollector; +import org.apache.storm.topology.BoltDeclarer; +import org.apache.storm.topology.OutputFieldsDeclarer; +import org.apache.storm.topology.TopologyBuilder; +import org.apache.storm.topology.base.BaseBasicBolt; +import org.apache.storm.tuple.Fields; +import org.apache.storm.tuple.Tuple; +import org.apache.storm.tuple.Values; + +import java.util.HashMap; +import java.util.Map; + +public class WordCount extends SingleSpoutTops { + + public WordCount(StormBenchConfig config) { + super(config); + } + + @Override + public void setBolts(TopologyBuilder builder) { + BoltDeclarer boltDeclarer = builder.setBolt("split", new SplitStreamBolt(), + config.boltThreads); + if (config.localShuffle) { + boltDeclarer.localOrShuffleGrouping("spout"); + } else { + boltDeclarer.shuffleGrouping("spout"); + } + builder.setBolt("count", new WordCountBolt(config), + config.boltThreads).fieldsGrouping("split", new Fields("ip")); + } + + private static class WordCountBolt extends BaseBasicBolt { + Map counts = new HashMap(); + private final StormBenchConfig config; + + WordCountBolt(StormBenchConfig config) { + this.config = config; + } + + @Override + public void execute(Tuple tuple, BasicOutputCollector collector) { + String word = tuple.getString(0); + Integer count = counts.get(word); + if (count == null) + count = 0; + count++; + counts.put(word, count); + + LatencyReporter latencyReporter = new KafkaReporter(config.reporterTopic, config.brokerList); + latencyReporter.report(tuple.getLong(1), System.currentTimeMillis()); + } + + @Override + public void declareOutputFields(OutputFieldsDeclarer declarer) { + declarer.declare(new Fields("ip", "count")); + } + } + + private static class SplitStreamBolt extends BaseBasicBolt { + + public void execute(Tuple tuple, BasicOutputCollector collector) { + ImmutableMap kv = (ImmutableMap) tuple.getValue(0); + String key = kv.keySet().iterator().next(); + Long startTime = Long.parseLong(key); + UserVisit uv = UserVisitParser.parse(kv.get(key)); + collector.emit(new Values(uv.getIp(), startTime)); + } + + public void declareOutputFields(OutputFieldsDeclarer declarer) { + declarer.declare(new Fields("ip", "time")); + } + } + +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/spout/KafkaSpoutFactory.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/spout/KafkaSpoutFactory.java new file mode 100644 index 000000000..d92cd18e2 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/spout/KafkaSpoutFactory.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.spout; + +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import kafka.api.OffsetRequest; + +import org.apache.storm.kafka.*; +import org.apache.storm.kafka.trident.OpaqueTridentKafkaSpout; +import org.apache.storm.kafka.trident.TransactionalTridentKafkaSpout; +import org.apache.storm.kafka.trident.TridentKafkaConfig; +import org.apache.storm.topology.base.BaseRichSpout; +import org.apache.storm.trident.spout.ITridentDataSource; + +public class KafkaSpoutFactory { + + public static BaseRichSpout getSpout(StormBenchConfig conf) { + String topic = conf.topic; + String consumerGroup = conf.consumerGroup; + String zkHost = conf.zkHost; + BrokerHosts brokerHosts = new ZkHosts(zkHost); + SpoutConfig spoutConfig = new SpoutConfig(brokerHosts, topic, "", consumerGroup); + spoutConfig.scheme = new KeyValueSchemeAsMultiScheme(new StringKeyValueScheme()); + spoutConfig.ignoreZkOffsets = true; + spoutConfig.startOffsetTime = OffsetRequest.LatestTime(); + return new KafkaSpout(spoutConfig); + } + + + public static ITridentDataSource getTridentSpout(StormBenchConfig conf, boolean opaque) { + String topic = conf.topic; + String consumerGroup = conf.consumerGroup; + String zkHost = conf.zkHost; + BrokerHosts brokerHosts = new ZkHosts(zkHost); + TridentKafkaConfig tridentKafkaConfig = new TridentKafkaConfig(brokerHosts, topic, consumerGroup); + tridentKafkaConfig.scheme = new KeyValueSchemeAsMultiScheme(new StringKeyValueScheme()); + tridentKafkaConfig.ignoreZkOffsets = true; + tridentKafkaConfig.startOffsetTime = OffsetRequest.LatestTime(); + if (opaque) { + return new OpaqueTridentKafkaSpout(tridentKafkaConfig); + } else { + return new TransactionalTridentKafkaSpout(tridentKafkaConfig); + } + } + +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/topologies/SingleSpoutTops.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/topologies/SingleSpoutTops.java new file mode 100644 index 000000000..caeca66c4 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/topologies/SingleSpoutTops.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.topologies; + +import com.intel.hibench.stormbench.spout.KafkaSpoutFactory; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.Config; +import org.apache.storm.StormSubmitter; +import org.apache.storm.topology.TopologyBuilder; +import org.apache.storm.topology.base.BaseRichSpout; + +public abstract class SingleSpoutTops { + + protected StormBenchConfig config; + + public SingleSpoutTops(StormBenchConfig config) { + this.config = config; + } + + public void run() throws Exception { + StormSubmitter.submitTopology(config.benchName, getConf(), getBuilder().createTopology()); + } + + private Config getConf() { + Config conf = new Config(); + conf.setNumWorkers(config.workerCount); + conf.put(Config.TOPOLOGY_BACKPRESSURE_ENABLE, false); + if (!config.ackon) { + conf.setNumAckers(0); + } + return conf; + } + + public TopologyBuilder getBuilder() { + TopologyBuilder builder = new TopologyBuilder(); + BaseRichSpout spout = KafkaSpoutFactory.getSpout(config); + builder.setSpout("spout", spout, config.spoutThreads); + setBolts(builder); + return builder; + } + + public abstract void setBolts(TopologyBuilder builder); + +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/topologies/SingleTridentSpoutTops.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/topologies/SingleTridentSpoutTops.java new file mode 100644 index 000000000..8747edd0e --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/topologies/SingleTridentSpoutTops.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.topologies; + +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.Config; +import org.apache.storm.StormSubmitter; +import org.apache.storm.trident.TridentTopology; + +public abstract class SingleTridentSpoutTops { + + protected StormBenchConfig config; + + public SingleTridentSpoutTops(StormBenchConfig config) { + this.config = config; + } + + public void run() throws Exception { + StormSubmitter.submitTopology(config.benchName, getConf(), createTopology().build()); + } + + private Config getConf() { + Config conf = new Config(); + conf.setNumWorkers(config.workerCount); + return conf; + } + + public abstract TridentTopology createTopology(); +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentIdentity.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentIdentity.java new file mode 100644 index 000000000..aa11e9a04 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentIdentity.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.trident; + +import com.intel.hibench.stormbench.spout.KafkaSpoutFactory; +import com.intel.hibench.stormbench.topologies.SingleTridentSpoutTops; +import com.intel.hibench.stormbench.trident.functions.Identity; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.trident.TridentTopology; +import org.apache.storm.trident.spout.ITridentDataSource; + +public class TridentIdentity extends SingleTridentSpoutTops { + + public TridentIdentity(StormBenchConfig config) { + super(config); + } + + @Override + public TridentTopology createTopology() { + ITridentDataSource source = KafkaSpoutFactory.getTridentSpout(config, true); + + TridentTopology topology = new TridentTopology(); + + topology.newStream("kafka", source) + .map(new Identity(config) + ) + .parallelismHint(config.boltThreads); + return topology; + } + +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentRepartition.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentRepartition.java new file mode 100644 index 000000000..36515414b --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentRepartition.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.trident; + +import com.intel.hibench.stormbench.spout.KafkaSpoutFactory; +import com.intel.hibench.stormbench.topologies.SingleTridentSpoutTops; +import com.intel.hibench.stormbench.trident.functions.Identity; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.trident.TridentTopology; +import org.apache.storm.trident.spout.ITridentDataSource; + +public class TridentRepartition extends SingleTridentSpoutTops { + + public TridentRepartition(StormBenchConfig config) { + super(config); + } + + @Override + public TridentTopology createTopology() { + ITridentDataSource source = KafkaSpoutFactory.getTridentSpout(config, true); + + TridentTopology topology = new TridentTopology(); + + topology.newStream("kafka", source) + .parallelismHint(config.spoutThreads) + .shuffle() + .map(new Identity(config)) + .parallelismHint(config.boltThreads); + return topology; + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentWindow.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentWindow.java new file mode 100644 index 000000000..9d5008cc6 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentWindow.java @@ -0,0 +1,104 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.stormbench.trident; + +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.metrics.LatencyReporter; +import com.intel.hibench.stormbench.spout.KafkaSpoutFactory; +import com.intel.hibench.stormbench.topologies.SingleTridentSpoutTops; +import com.intel.hibench.stormbench.trident.functions.Parser; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.topology.base.BaseWindowedBolt; +import org.apache.storm.trident.TridentTopology; +import org.apache.storm.trident.operation.BaseAggregator; +import org.apache.storm.trident.operation.TridentCollector; +import org.apache.storm.trident.operation.TridentOperationContext; +import org.apache.storm.trident.spout.ITridentDataSource; +import org.apache.storm.trident.tuple.TridentTuple; +import org.apache.storm.trident.windowing.InMemoryWindowsStoreFactory; +import org.apache.storm.tuple.Fields; +import org.apache.storm.tuple.Values; + +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class TridentWindow extends SingleTridentSpoutTops { + + public TridentWindow(StormBenchConfig config) { + super(config); + } + + @Override + public TridentTopology createTopology() { + ITridentDataSource source = KafkaSpoutFactory.getTridentSpout(config, true); + + TridentTopology topology = new TridentTopology(); + topology.newStream("kafka", source) + .each(new Fields("str"), new Parser(), new Fields("ip", "time")) + .project(new Fields("ip", "time")) + .parallelismHint(config.spoutThreads) + .groupBy(new Fields("ip")).toStream() + .slidingWindow(new BaseWindowedBolt.Duration((int) config.windowDuration, TimeUnit.MILLISECONDS), + new BaseWindowedBolt.Duration((int) config.windowSlideStep, TimeUnit.MILLISECONDS), + new InMemoryWindowsStoreFactory(), + new Fields("ip", "time"), new Count(config), new Fields("ip", "count")) + .parallelismHint(config.boltThreads); + return topology; + } + + private static class Count extends BaseAggregator { + + private final StormBenchConfig config; + private LatencyReporter reporter = null; + + Count(StormBenchConfig config) { + this.config = config; + } + + static class State { + String ip; + long minTime = Long.MAX_VALUE; + long count = 0L; + } + + @Override + public void prepare(Map conf, TridentOperationContext context) { + this.reporter = new KafkaReporter(config.reporterTopic, config.brokerList); + } + + @Override + public State init(Object batchId, TridentCollector tridentCollector) { + return new State(); + } + + @Override + public void aggregate(State state, TridentTuple tridentTuple, TridentCollector tridentCollector) { + state.ip = tridentTuple.getString(0); + state.count++; + state.minTime = Math.min(tridentTuple.getLong(1), state.minTime); + } + + @Override + public void complete(State state, TridentCollector tridentCollector) { + tridentCollector.emit(new Values(state.ip, state.count)); + for (int i = 0; i < state.count; i++) { + reporter.report(state.minTime, System.currentTimeMillis()); + } + } + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentWordcount.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentWordcount.java new file mode 100644 index 000000000..a4d7957a9 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/TridentWordcount.java @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.intel.hibench.stormbench.trident; + +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.metrics.LatencyReporter; +import com.intel.hibench.stormbench.spout.KafkaSpoutFactory; +import com.intel.hibench.stormbench.topologies.SingleTridentSpoutTops; +import com.intel.hibench.stormbench.trident.functions.Parser; +import com.intel.hibench.stormbench.util.StormBenchConfig; + +import org.apache.storm.trident.TridentTopology; +import org.apache.storm.trident.operation.ReducerAggregator; +import org.apache.storm.trident.spout.ITridentDataSource; +import org.apache.storm.trident.testing.MemoryMapState; +import org.apache.storm.trident.tuple.TridentTuple; +import org.apache.storm.tuple.Fields; + +public class TridentWordcount extends SingleTridentSpoutTops { + + public TridentWordcount(StormBenchConfig config) { + super(config); + } + + @Override + public TridentTopology createTopology() { + ITridentDataSource source = KafkaSpoutFactory.getTridentSpout(config, true); + + TridentTopology topology = new TridentTopology(); + topology.newStream("kafka", source) + .each(new Fields("str"), new Parser(), new Fields("ip", "time")) + .project(new Fields("ip", "time")) + .parallelismHint(config.spoutThreads) + .groupBy(new Fields("ip")) + .persistentAggregate(new MemoryMapState.Factory(), new Fields("ip", "time"), new Count(config), + new Fields("word", "count")) + .parallelismHint(config.boltThreads); + return topology; + } + + private static class Count implements ReducerAggregator { + + private final StormBenchConfig config; + private LatencyReporter reporter = null; + + Count(StormBenchConfig config) { + this.config = config; + } + + @Override + public State init() { + this.reporter = new KafkaReporter(config.reporterTopic, config.brokerList); + return new State(); + } + + @Override + public State reduce(State state, TridentTuple tridentTuple) { + state.ip = tridentTuple.getString(0); + state.count++; + reporter.report(tridentTuple.getLong(1), System.currentTimeMillis()); + return state; + } + + static class State { + String ip; + long count = 0; + } + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/functions/Identity.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/functions/Identity.java new file mode 100644 index 000000000..d88046597 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/functions/Identity.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.stormbench.trident.functions; + +import com.google.common.collect.ImmutableMap; +import com.intel.hibench.common.streaming.metrics.KafkaReporter; +import com.intel.hibench.common.streaming.metrics.LatencyReporter; +import com.intel.hibench.stormbench.util.StormBenchConfig; +import org.apache.storm.trident.operation.MapFunction; +import org.apache.storm.trident.tuple.TridentTuple; +import org.apache.storm.tuple.Values; + + +public class Identity implements MapFunction { + + private final StormBenchConfig config; + + public Identity(StormBenchConfig config) { + this.config = config; + } + + @Override + public Values execute(TridentTuple tridentTuple) { + ImmutableMap kv = (ImmutableMap) tridentTuple.getValue(0); + LatencyReporter reporter = new KafkaReporter(config.reporterTopic, config.brokerList); + reporter.report(Long.parseLong(kv.keySet().iterator().next()), + System.currentTimeMillis()); + return new Values(kv); + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/functions/Parser.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/functions/Parser.java new file mode 100644 index 000000000..9ad03ef52 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/trident/functions/Parser.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intel.hibench.stormbench.trident.functions; + +import com.google.common.collect.ImmutableMap; +import com.intel.hibench.common.streaming.UserVisit; +import com.intel.hibench.common.streaming.UserVisitParser; +import org.apache.storm.trident.operation.BaseFunction; +import org.apache.storm.trident.operation.TridentCollector; +import org.apache.storm.trident.tuple.TridentTuple; +import org.apache.storm.tuple.Values; + +public class Parser extends BaseFunction { + + @Override + public void execute(TridentTuple tuple, TridentCollector collector) { + ImmutableMap kv = (ImmutableMap) tuple.getValue(0); + String key = kv.keySet().iterator().next(); + Long startTime = Long.parseLong(key); + UserVisit uv = UserVisitParser.parse(kv.get(key)); + collector.emit(new Values(uv.getIp(), startTime)); + } +} diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/util/BenchLogUtil.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/util/BenchLogUtil.java new file mode 100644 index 000000000..91578d616 --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/util/BenchLogUtil.java @@ -0,0 +1,35 @@ +package com.intel.hibench.stormbench.util; + +import java.io.File; +import java.io.PrintWriter; + +public class BenchLogUtil { + private static PrintWriter out; + + public static void init() throws Exception { + File file = new File("/tmp/benchlog-storm.txt"); + out = new PrintWriter(file); + } + + public static void logMsg(String msg) { + try { + if (out == null) + init(); + } catch (Exception e) { + e.printStackTrace(); + } + + out.println(msg); + out.flush(); + System.out.println(msg); + } + + public static void close() { + if (out != null) out.close(); + } + + public static void handleError(String msg) { + System.err.println(msg); + System.exit(1); + } +} \ No newline at end of file diff --git a/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/util/StormBenchConfig.java b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/util/StormBenchConfig.java new file mode 100644 index 000000000..3084a999b --- /dev/null +++ b/stormbench/streaming/src/main/java/com/intel/hibench/stormbench/util/StormBenchConfig.java @@ -0,0 +1,25 @@ +package com.intel.hibench.stormbench.util; + +import java.io.Serializable; + +public class StormBenchConfig implements Serializable { + public String zkHost; + public int workerCount; + public int spoutThreads; + public int boltThreads; + public String benchName; + public String topic; + public String consumerGroup; + public boolean ackon; + public boolean localShuffle; + public String brokerList; + public String reporterTopic; + + public long windowDuration; + public long windowSlideStep; + + //Following are fields that are benchmark specific + public String separator = "\\s+"; + public int fieldIndex = 1; + public String pattern = " "; +} \ No newline at end of file diff --git a/workloads/aggregation/conf/00-aggregation-default.conf b/workloads/aggregation/conf/00-aggregation-default.conf deleted file mode 100644 index 32f328a91..000000000 --- a/workloads/aggregation/conf/00-aggregation-default.conf +++ /dev/null @@ -1,14 +0,0 @@ - -# default configurations here - -hibench.aggregation.uservisits ${hibench.aggregation.${hibench.scale.profile}.uservisits} -hibench.aggregation.pages ${hibench.aggregation.${hibench.scale.profile}.pages} -hibench.aggregation.base_hdfs ${hibench.hdfs.data.dir}/Aggregation - -# export for shell script -hibench.hive.base.hdfs ${hibench.aggregation.base_hdfs} -hibench.workload.input ${hibench.aggregation.base_hdfs}/${hibench.hive.dir.name.input} -hibench.workload.output ${hibench.aggregation.base_hdfs}/${hibench.hive.dir.name.ouput} -hibench.workload.pages ${hibench.aggregation.pages} -hibench.workload.uservisits ${hibench.aggregation.uservisits} - diff --git a/workloads/aggregation/conf/10-aggregation-userdefine.conf b/workloads/aggregation/conf/10-aggregation-userdefine.conf deleted file mode 100644 index 720c6568e..000000000 --- a/workloads/aggregation/conf/10-aggregation-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations for aggregation workload here - diff --git a/workloads/aggregation/mapreduce/hadoop.conf b/workloads/aggregation/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/aggregation/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/aggregation/spark/java/java.conf b/workloads/aggregation/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/aggregation/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/aggregation/spark/python/bin/run.sh b/workloads/aggregation/spark/python/bin/run.sh deleted file mode 100755 index 3d089a694..000000000 --- a/workloads/aggregation/spark/python/bin/run.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkAggregation ${workload_root} ${workload_folder} -show_bannar start - -# prepare SQL -HIVEBENCH_SQL_FILE=${WORKLOAD_RESULT_FOLDER}/uservisits_aggre.hive -prepare-sql-aggregation ${HIVEBENCH_SQL_FILE} - -START_TIME=`timestamp` -rmr-hdfs $OUTPUT_HDFS -run-spark-job ${HIBENCH_PYTHON_PATH}/python_spark_sql_bench.py PythonAggregation ${HIVEBENCH_SQL_FILE} -END_TIME=`timestamp` - -sleep 5 -SIZE=`dir_size $OUTPUT_HDFS` -gen_report ${START_TIME} ${END_TIME} ${SIZE:-0} -show_bannar finish -leave_bench - diff --git a/workloads/aggregation/spark/python/python.conf b/workloads/aggregation/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/aggregation/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/aggregation/spark/scala/bin/run.sh b/workloads/aggregation/spark/scala/bin/run.sh deleted file mode 100755 index dce4bd357..000000000 --- a/workloads/aggregation/spark/scala/bin/run.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench ScalaSparkAggregation ${workload_root} ${workload_folder} -show_bannar start - -# prepare SQL -HIVEBENCH_SQL_FILE=${WORKLOAD_RESULT_FOLDER}/uservisits_aggre.hive -prepare-sql-aggregation ${HIVEBENCH_SQL_FILE} - -START_TIME=`timestamp` -rmr-hdfs $OUTPUT_HDFS -run-spark-job com.intel.sparkbench.sql.ScalaSparkSQLBench ScalaAggregation ${HIVEBENCH_SQL_FILE} -END_TIME=`timestamp` - -sleep 5 -SIZE=`dir_size $OUTPUT_HDFS` -gen_report ${START_TIME} ${END_TIME} ${SIZE:-0} -show_bannar finish -leave_bench - diff --git a/workloads/aggregation/spark/scala/scala.conf b/workloads/aggregation/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/aggregation/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/bayes/conf/00-bayes-default.conf b/workloads/bayes/conf/00-bayes-default.conf deleted file mode 100644 index a87f855ce..000000000 --- a/workloads/bayes/conf/00-bayes-default.conf +++ /dev/null @@ -1,12 +0,0 @@ - -# override configurations here -hibench.bayes.pages ${hibench.bayes.${hibench.scale.profile}.pages} -hibench.bayes.classes ${hibench.bayes.${hibench.scale.profile}.classes} -hibench.bayes.ngrams ${hibench.bayes.${hibench.scale.profile}.ngrams} -hibench.bayes.base.hdfs ${hibench.hdfs.data.dir}/Bayes - -# export for shell script -hibench.workload.input ${hibench.bayes.base.hdfs}/${hibench.workload.dir.name.input} -hibench.workload.output ${hibench.bayes.base.hdfs}/${hibench.workload.dir.name.output} -hibench.workload.pages ${hibench.bayes.pages} -hibench.workload.classes ${hibench.bayes.classes} diff --git a/workloads/bayes/conf/10-bayes-userdefine.conf b/workloads/bayes/conf/10-bayes-userdefine.conf deleted file mode 100644 index 8e449b4ff..000000000 --- a/workloads/bayes/conf/10-bayes-userdefine.conf +++ /dev/null @@ -1,7 +0,0 @@ - -# override configurations here - -#hibench.yarn.driver.memory 16G -#hibench.yarn.executor.memory 16G -#hibench.yarn.executor.cores 5 -#hibench.yarn.executor.num 60 diff --git a/workloads/bayes/mapreduce/hadoop.conf b/workloads/bayes/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/bayes/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/bayes/spark/java/bin/run.sh b/workloads/bayes/spark/java/bin/run.sh deleted file mode 100755 index 2f83fb569..000000000 --- a/workloads/bayes/spark/java/bin/run.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkBayes ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.bayes.JavaBayes ${INPUT_HDFS} -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - - - -#run-spark-job com.intel.sparkbench.bayes.JavaBayes ${INPUT_HDFS}/vectors.txt ${NUM_FEATURES} || exit 1 -#$SPARK_HOME/bin/spark-submit --class com.intel.sparkbench.bayes.JavaBayes --master ${SPARK_MASTER} ${SPARKBENCH_JAR} ${INPUT_HDFS}/vectors.txt ${NUM_FEATURES} - diff --git a/workloads/bayes/spark/java/java.conf b/workloads/bayes/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/bayes/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/bayes/spark/python/bin/run.sh b/workloads/bayes/spark/python/bin/run.sh deleted file mode 100755 index 4f3f35828..000000000 --- a/workloads/bayes/spark/python/bin/run.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkBayes ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-spark-job ${HIBENCH_PYTHON_PATH}/bayes.py ${INPUT_HDFS} -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - - - - - - -# run bench -#run-spark-job ${SPARKBENCH_HOME}/common/src/main/python/bayes.py $INPUT_HDFS/vectors.txt ${NUM_FEATURES} || exit 1 -#$SPARK_HOME/bin/spark-submit --master ${SPARK_MASTER} ${SPARKBENCH_HOME}/common/src/main/python/bayes.py ${INPUT_HDFS}/vectors.txt ${NUM_FEATURES} diff --git a/workloads/bayes/spark/python/python.conf b/workloads/bayes/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/bayes/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/bayes/spark/scala/scala.conf b/workloads/bayes/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/bayes/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/dfsioe/conf/00-dfsioe-default.conf b/workloads/dfsioe/conf/00-dfsioe-default.conf deleted file mode 100644 index 794091880..000000000 --- a/workloads/dfsioe/conf/00-dfsioe-default.conf +++ /dev/null @@ -1,11 +0,0 @@ - -# override configurations here -hibench.dfsioe.read.number_of_files ${hibench.dfsioe.${hibench.scale.profile}.read.number_of_files} -hibench.dfsioe.read.file_size ${hibench.dfsioe.${hibench.scale.profile}.read.file_size} -hibench.dfsioe.write.number_of_files ${hibench.dfsioe.${hibench.scale.profile}.write.number_of_files} -hibench.dfsioe.write.file_size ${hibench.dfsioe.${hibench.scale.profile}.write.file_size} -hibench.dfsioe.base.hdfs ${hibench.hdfs.data.dir}/Dfsioe - -# export for shell script -hibench.workload.input ${hibench.dfsioe.base.hdfs}/${hibench.dfsioe.dir.name.input} -hibench.workload.output ${hibench.dfsioe.base.hdfs}/${hibench.dfsioe.dir.name.output} diff --git a/workloads/dfsioe/conf/10-dfsioe-userdefine.conf b/workloads/dfsioe/conf/10-dfsioe-userdefine.conf deleted file mode 100644 index 815352aef..000000000 --- a/workloads/dfsioe/conf/10-dfsioe-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations here - diff --git a/workloads/dfsioe/mapreduce/hadoop.conf b/workloads/dfsioe/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/dfsioe/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/dfsioe/spark/java/bin/run.sh b/workloads/dfsioe/spark/java/bin/run.sh deleted file mode 100755 index cef4d5c74..000000000 --- a/workloads/dfsioe/spark/java/bin/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkDFSIOE ${workload_root} ${workload_folder} -show_bannar start -echo -e "${On_Blue}Spark DFSIOE not implemented yet, nothing to do.${Color_Off}" -show_bannar finish -leave_bench - diff --git a/workloads/dfsioe/spark/java/java.conf b/workloads/dfsioe/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/dfsioe/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/dfsioe/spark/python/bin/run.sh b/workloads/dfsioe/spark/python/bin/run.sh deleted file mode 100755 index 5234017f9..000000000 --- a/workloads/dfsioe/spark/python/bin/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkDFSIOE ${workload_root} ${workload_folder} -show_bannar start -echo -e "${On_Blue}Spark DFSIOE not implemented yet, nothing to do.${Color_Off}" -show_bannar finish -leave_bench - diff --git a/workloads/dfsioe/spark/python/python.conf b/workloads/dfsioe/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/dfsioe/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/dfsioe/spark/scala/bin/run.sh b/workloads/dfsioe/spark/scala/bin/run.sh deleted file mode 100755 index 9126c6d87..000000000 --- a/workloads/dfsioe/spark/scala/bin/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench ScalaSparkDFSIOE ${workload_root} ${workload_folder} -show_bannar start -echo -e "${On_Blue}Spark DFSIOE not implemented yet, nothing to do.${Color_Off}" -show_bannar finish -leave_bench - diff --git a/workloads/dfsioe/spark/scala/scala.conf b/workloads/dfsioe/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/dfsioe/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/join/conf/00-join-default.conf b/workloads/join/conf/00-join-default.conf deleted file mode 100644 index eb9027594..000000000 --- a/workloads/join/conf/00-join-default.conf +++ /dev/null @@ -1,13 +0,0 @@ - -# default configurations here - -hibench.join.uservisits ${hibench.join.${hibench.scale.profile}.uservisits} -hibench.join.pages ${hibench.join.${hibench.scale.profile}.pages} -hibench.join.base_hdfs ${hibench.hdfs.data.dir}/Join - -# export for shell script -hibench.hive.base.hdfs ${hibench.join.base_hdfs} -hibench.workload.input ${hibench.join.base_hdfs}/${hibench.hive.dir.name.input} -hibench.workload.output ${hibench.join.base_hdfs}/${hibench.hive.dir.name.ouput} -hibench.workload.pages ${hibench.join.pages} -hibench.workload.uservisits ${hibench.join.uservisits} diff --git a/workloads/join/conf/10-join-userdefine.conf b/workloads/join/conf/10-join-userdefine.conf deleted file mode 100644 index 720c6568e..000000000 --- a/workloads/join/conf/10-join-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations for aggregation workload here - diff --git a/workloads/join/mapreduce/hadoop.conf b/workloads/join/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/join/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/join/spark/java/java.conf b/workloads/join/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/join/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/join/spark/python/bin/run.sh b/workloads/join/spark/python/bin/run.sh deleted file mode 100755 index f18ff6f6f..000000000 --- a/workloads/join/spark/python/bin/run.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkJoin ${workload_root} ${workload_folder} -show_bannar start - -# prepare SQL -HIVEBENCH_SQL_FILE=${WORKLOAD_RESULT_FOLDER}/rankings_uservisits_join.hive -prepare-sql-join ${HIVEBENCH_SQL_FILE} - -START_TIME=`timestamp` -SIZE=`dir_size $INPUT_HDFS` -rmr-hdfs $OUTPUT_HDFS -run-spark-job ${HIBENCH_PYTHON_PATH}/python_spark_sql_bench.py PythonJoin ${HIVEBENCH_SQL_FILE} - -sleep 5 -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE:-0} -show_bannar finish -leave_bench - - diff --git a/workloads/join/spark/python/python.conf b/workloads/join/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/join/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/join/spark/scala/bin/run.sh b/workloads/join/spark/scala/bin/run.sh deleted file mode 100755 index 8828c200b..000000000 --- a/workloads/join/spark/scala/bin/run.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench ScalaSparkJoin ${workload_root} ${workload_folder} -show_bannar start - -# prepare SQL -HIVEBENCH_SQL_FILE=${WORKLOAD_RESULT_FOLDER}/rankings_uservisits_join.hive -prepare-sql-join ${HIVEBENCH_SQL_FILE} - -START_TIME=`timestamp` -SIZE=`dir_size $INPUT_HDFS` -rmr-hdfs $OUTPUT_HDFS -run-spark-job com.intel.sparkbench.sql.ScalaSparkSQLBench ScalaJoin ${HIVEBENCH_SQL_FILE} - -sleep 5 -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE:-0} -show_bannar finish -leave_bench - diff --git a/workloads/join/spark/scala/scala.conf b/workloads/join/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/join/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/kmeans/conf/00-kmeans-default.conf b/workloads/kmeans/conf/00-kmeans-default.conf deleted file mode 100644 index 3284bb146..000000000 --- a/workloads/kmeans/conf/00-kmeans-default.conf +++ /dev/null @@ -1,16 +0,0 @@ - -# override configurations here -hibench.kmeans.num_of_clusters ${hibench.kmeans.${hibench.scale.profile}.num_of_clusters} -hibench.kmeans.dimensions ${hibench.kmeans.${hibench.scale.profile}.dimensions} -hibench.kmeans.num_of_samples ${hibench.kmeans.${hibench.scale.profile}.num_of_samples} -hibench.kmeans.samples_per_inputfile ${hibench.kmeans.${hibench.scale.profile}.samples_per_inputfile} -hibench.kmeans.max_iteration ${hibench.kmeans.${hibench.scale.profile}.max_iteration} -hibench.kmeans.k ${hibench.kmeans.${hibench.scale.profile}.k} -hibench.kmeans.convergedist ${hibench.kmeans.${hibench.scale.profile}.convergedist} -hibench.kmeans.base.hdfs ${hibench.hdfs.data.dir}/Kmeans -hibench.kmeans.input.sample ${hibench.workload.input}/samples -hibench.kmeans.input.cluster ${hibench.workload.input}/cluster - -# export for shell script -hibench.workload.input ${hibench.kmeans.base.hdfs}/${hibench.kmeans.dir.name.input} -hibench.workload.output ${hibench.kmeans.base.hdfs}/${hibench.kmeans.dir.name.output} diff --git a/workloads/kmeans/conf/10-kmeans-userdefine.conf b/workloads/kmeans/conf/10-kmeans-userdefine.conf deleted file mode 100644 index 815352aef..000000000 --- a/workloads/kmeans/conf/10-kmeans-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations here - diff --git a/workloads/kmeans/mapreduce/hadoop.conf b/workloads/kmeans/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/kmeans/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/kmeans/spark/java/bin/run.sh b/workloads/kmeans/spark/java/bin/run.sh deleted file mode 100755 index 1696c6b64..000000000 --- a/workloads/kmeans/spark/java/bin/run.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkKmeans ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` - -run-spark-job org.apache.spark.examples.mllib.JavaKMeans $INPUT_HDFS/samples $K $MAX_ITERATION -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - - - -# run bench -#run-spark-job org.apache.spark.examples.mllib.JavaKMeans $INPUT_HDFS $K $MAX_ITERATION || exit 1 -#$SPARK_HOME/bin/spark-submit --class org.apache.spark.examples.mllib.JavaKMeans --master ${SPARK_MASTER} ${SPARK_EXAMPLES_JAR} $INPUT_HDFS $K $MAX_ITERATION - diff --git a/workloads/kmeans/spark/java/java.conf b/workloads/kmeans/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/kmeans/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/kmeans/spark/python/bin/run.sh b/workloads/kmeans/spark/python/bin/run.sh deleted file mode 100755 index 9f1793730..000000000 --- a/workloads/kmeans/spark/python/bin/run.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkKmeans ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` - -run-spark-job ${HIBENCH_PYTHON_PATH}/kmeans.py $INPUT_HDFS/samples $K $MAX_ITERATION -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - - -# run bench -#run-spark-job ${SPARKBENCH_HOME}/common/src/main/python/kmeans.py $INPUT_HDFS $K $MAX_ITERATION || exit 1 -#$SPARK_HOME/bin/spark-submit --master ${SPARK_MASTER} ${DIR}/kmeans.py $INPUT_HDFS $K $MAX_ITERATION - diff --git a/workloads/kmeans/spark/python/python.conf b/workloads/kmeans/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/kmeans/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/kmeans/spark/scala/bin/run.sh b/workloads/kmeans/spark/scala/bin/run.sh deleted file mode 100755 index b9460e435..000000000 --- a/workloads/kmeans/spark/scala/bin/run.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench ScalaSparkKmeans ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` - -run-spark-job org.apache.spark.examples.mllib.DenseKMeans -k $K --numIterations $MAX_ITERATION $INPUT_HDFS/samples -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - -# run bench -#run-spark-job org.apache.spark.examples.mllib.DenseKMeans -k $K --numIterations $MAX_ITERATION $INPUT_HDFS || exit 1 -#$SPARK_HOME/bin/spark-submit --class org.apache.spark.examples.mllib.DenseKMeans --master ${SPARK_MASTER} ${SPARK_EXAMPLES_JAR} -k $K --numIterations $MAX_ITERATION $INPUT_HDFS - diff --git a/workloads/kmeans/spark/scala/scala.conf b/workloads/kmeans/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/kmeans/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/nutchindexing/conf/00-nutchindexing-default.conf b/workloads/nutchindexing/conf/00-nutchindexing-default.conf deleted file mode 100644 index 37dfd0f1e..000000000 --- a/workloads/nutchindexing/conf/00-nutchindexing-default.conf +++ /dev/null @@ -1,9 +0,0 @@ - -# override configurations here -hibench.nutch.pages ${hibench.nutch.${hibench.scale.profile}.pages} -hibench.nutch.base.hdfs ${hibench.hdfs.data.dir}/Nutchindexing - -# export for shell script -hibench.workload.input ${hibench.nutch.base.hdfs}/${hibench.nutch.dir.name.input} -hibench.workload.output ${hibench.nutch.base.hdfs}/${hibench.nutch.dir.name.output} -hibench.workload.pages ${hibench.nutch.pages} \ No newline at end of file diff --git a/workloads/nutchindexing/conf/10-nutchindexing-userdefine.conf b/workloads/nutchindexing/conf/10-nutchindexing-userdefine.conf deleted file mode 100644 index 815352aef..000000000 --- a/workloads/nutchindexing/conf/10-nutchindexing-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations here - diff --git a/workloads/nutchindexing/mapreduce/hadoop.conf b/workloads/nutchindexing/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/nutchindexing/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/nutchindexing/spark/java/bin/run.sh b/workloads/nutchindexing/spark/java/bin/run.sh deleted file mode 100755 index 71e738fa0..000000000 --- a/workloads/nutchindexing/spark/java/bin/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkNutchindexing ${workload_root} ${workload_folder} -show_bannar start -echo -e "${On_Blue}Spark nutch indexing not implemented yet, nothing to do.${Color_Off}" -show_bannar finish -leave_bench - diff --git a/workloads/nutchindexing/spark/java/java.conf b/workloads/nutchindexing/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/nutchindexing/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/nutchindexing/spark/python/bin/run.sh b/workloads/nutchindexing/spark/python/bin/run.sh deleted file mode 100755 index 15d2bd00b..000000000 --- a/workloads/nutchindexing/spark/python/bin/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkNutchindexing ${workload_root} ${workload_folder} -show_bannar start -echo -e "${On_Blue}Spark nutch indexing not implemented yet, nothing to do.${Color_Off}" -show_bannar finish -leave_bench - diff --git a/workloads/nutchindexing/spark/python/python.conf b/workloads/nutchindexing/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/nutchindexing/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/nutchindexing/spark/scala/bin/run.sh b/workloads/nutchindexing/spark/scala/bin/run.sh deleted file mode 100755 index 34f596be6..000000000 --- a/workloads/nutchindexing/spark/scala/bin/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench ScalaSparkNutchindexing ${workload_root} ${workload_folder} -show_bannar start -echo -e "${On_Blue}Spark nutch indexing not implemented yet, nothing to do.${Color_Off}" -show_bannar finish -leave_bench - diff --git a/workloads/nutchindexing/spark/scala/scala.conf b/workloads/nutchindexing/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/nutchindexing/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/nweight/conf/00-nweight-default.conf b/workloads/nweight/conf/00-nweight-default.conf deleted file mode 100644 index e9ab4ab35..000000000 --- a/workloads/nweight/conf/00-nweight-default.conf +++ /dev/null @@ -1,15 +0,0 @@ - -# override configurations here -hibench.nweight.edges ${hibench.nweight.${hibench.scale.profile}.edges} -hibench.nweight.base.hdfs ${hibench.hdfs.data.dir}/NWeight -hibench.nweight.degree ${hibench.nweight.${hibench.scale.profile}.degree} -hibench.nweight.max_out_edges ${hibench.nweight.${hibench.scale.profile}.max_out_edges} -hibench.nweight.partitions ${hibench.default.map.parallelism} -hibench.nweight.storage_level 7 -hibench.nweight.disable_kryo false -hibench.nweight.model graphx - -# export for shell script -hibench.workload.input ${hibench.nweight.base.hdfs}/${hibench.workload.dir.name.input} -hibench.workload.output ${hibench.nweight.base.hdfs}/${hibench.workload.dir.name.output} -hibench.workload.edges ${hibench.nweight.edges} diff --git a/workloads/nweight/conf/10-nweight-userdefine.conf b/workloads/nweight/conf/10-nweight-userdefine.conf deleted file mode 100644 index ff08f3f11..000000000 --- a/workloads/nweight/conf/10-nweight-userdefine.conf +++ /dev/null @@ -1,8 +0,0 @@ - -# override configurations here -hibench.nweight.partitions ${hibench.default.map.parallelism} -# storageLevel for the RDDs 0: off-heap 1: disk_only 3: memory_only 5: memory_ser 7: memory_and_disk 9: memory_and_disk_ser -hibench.nweight.storage_level 3 -hibench.nweight.disable_kryo false -# run nweight in graphx or pregel -hibench.nweight.model graphx diff --git a/workloads/nweight/spark/scala/scala.conf b/workloads/nweight/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/nweight/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/pagerank/conf/00-pagerank-default.conf b/workloads/pagerank/conf/00-pagerank-default.conf deleted file mode 100644 index c7f061abe..000000000 --- a/workloads/pagerank/conf/00-pagerank-default.conf +++ /dev/null @@ -1,12 +0,0 @@ - -# override configurations here -hibench.pagerank.pages ${hibench.pagerank.${hibench.scale.profile}.pages} -hibench.pagerank.num_iterations ${hibench.pagerank.${hibench.scale.profile}.num_iterations} -hibench.pagerank.block ${hibench.pagerank.${hibench.scale.profile}.block} -hibench.pagerank.block_width ${hibench.pagerank.${hibench.scale.profile}.block_width} -hibench.pagerank.base.hdfs ${hibench.hdfs.data.dir}/Pagerank - -# export for shell script -hibench.workload.input ${hibench.pagerank.base.hdfs}/${hibench.pagerank.dir.name.input} -hibench.workload.output ${hibench.pagerank.base.hdfs}/${hibench.pagerank.dir.name.output} -hibench.workload.pages ${hibench.pagerank.pages} \ No newline at end of file diff --git a/workloads/pagerank/conf/10-pagerank-userdefine.conf b/workloads/pagerank/conf/10-pagerank-userdefine.conf deleted file mode 100644 index 815352aef..000000000 --- a/workloads/pagerank/conf/10-pagerank-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations here - diff --git a/workloads/pagerank/conf/properties.conf b/workloads/pagerank/conf/properties.conf deleted file mode 100644 index 7821a609c..000000000 --- a/workloads/pagerank/conf/properties.conf +++ /dev/null @@ -1,2 +0,0 @@ -#spark.serializer org.apache.spark.serializer.KryoSerializer -#spark.default.parallelism 128 diff --git a/workloads/pagerank/mapreduce/hadoop.conf b/workloads/pagerank/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/pagerank/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/pagerank/spark/java/java.conf b/workloads/pagerank/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/pagerank/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/pagerank/spark/python/python.conf b/workloads/pagerank/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/pagerank/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/pagerank/spark/scala/scala.conf b/workloads/pagerank/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/pagerank/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/scan/conf/00-scan-default.conf b/workloads/scan/conf/00-scan-default.conf deleted file mode 100644 index 98e31199c..000000000 --- a/workloads/scan/conf/00-scan-default.conf +++ /dev/null @@ -1,14 +0,0 @@ - -# default configurations here - -hibench.scan.uservisits ${hibench.scan.${hibench.scale.profile}.uservisits} -hibench.scan.pages ${hibench.scan.${hibench.scale.profile}.pages} -hibench.scan.base_hdfs ${hibench.hdfs.data.dir}/Scan - -# export for shell script -hibench.hive.base.hdfs ${hibench.scan.base_hdfs} -hibench.workload.input ${hibench.scan.base_hdfs}/${hibench.hive.dir.name.input} -hibench.workload.output ${hibench.scan.base_hdfs}/${hibench.hive.dir.name.ouput} -hibench.workload.uservisits ${hibench.scan.uservisits} -hibench.workload.pages ${hibench.scan.pages} - diff --git a/workloads/scan/conf/10-scan-userdefine.conf b/workloads/scan/conf/10-scan-userdefine.conf deleted file mode 100644 index 720c6568e..000000000 --- a/workloads/scan/conf/10-scan-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations for aggregation workload here - diff --git a/workloads/scan/mapreduce/hadoop.conf b/workloads/scan/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/scan/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/scan/spark/java/bin/run.sh b/workloads/scan/spark/java/bin/run.sh deleted file mode 100755 index cef0724f2..000000000 --- a/workloads/scan/spark/java/bin/run.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkScan ${workload_root} ${workload_folder} -show_bannar start - -# prepare SQL -HIVEBENCH_SQL_FILE=${WORKLOAD_RESULT_FOLDER}/rankings_uservisits_scan.hive -prepare-sql-scan ${HIVEBENCH_SQL_FILE} - -START_TIME=`timestamp` -rmr-hdfs $OUTPUT_HDFS -run-spark-job com.intel.sparkbench.sql.JavaSparkSQLBench JavaScan ${HIVEBENCH_SQL_FILE} -END_TIME=`timestamp` - -sleep 5 -SIZE=`dir_size $OUTPUT_HDFS` -gen_report ${START_TIME} ${END_TIME} ${SIZE:-0} -show_bannar finish -leave_bench diff --git a/workloads/scan/spark/java/java.conf b/workloads/scan/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/scan/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/scan/spark/python/bin/run.sh b/workloads/scan/spark/python/bin/run.sh deleted file mode 100755 index cbb839159..000000000 --- a/workloads/scan/spark/python/bin/run.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkScan ${workload_root} ${workload_folder} -show_bannar start - -# prepare SQL -HIVEBENCH_SQL_FILE=${WORKLOAD_RESULT_FOLDER}/rankings_uservisits_scan.hive -prepare-sql-scan ${HIVEBENCH_SQL_FILE} - -START_TIME=`timestamp` -rmr-hdfs $OUTPUT_HDFS -run-spark-job ${HIBENCH_PYTHON_PATH}/python_spark_sql_bench.py PythonScan ${HIVEBENCH_SQL_FILE} -END_TIME=`timestamp` - -sleep 5 -SIZE=`dir_size $OUTPUT_HDFS` -gen_report ${START_TIME} ${END_TIME} ${SIZE:0} -show_bannar finish -leave_bench - diff --git a/workloads/scan/spark/python/python.conf b/workloads/scan/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/scan/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/scan/spark/scala/scala.conf b/workloads/scan/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/scan/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/sleep/conf/00-sleep-default.conf b/workloads/sleep/conf/00-sleep-default.conf deleted file mode 100644 index b74bd8ed0..000000000 --- a/workloads/sleep/conf/00-sleep-default.conf +++ /dev/null @@ -1,8 +0,0 @@ - -# override configurations here - -hibench.sleep.mapper.seconds ${hibench.sleep.${hibench.scale.profile}.mapper.seconds} -hibench.sleep.reducer.seconds ${hibench.sleep.${hibench.scale.profile}.reducer.seconds} - -hibench.workload.input dummy -hibench.workload.output dummy \ No newline at end of file diff --git a/workloads/sleep/conf/10-sleep-userdefine.conf b/workloads/sleep/conf/10-sleep-userdefine.conf deleted file mode 100644 index c63e4a76c..000000000 --- a/workloads/sleep/conf/10-sleep-userdefine.conf +++ /dev/null @@ -1,9 +0,0 @@ - -# override configurations for sleep workload here - -#hibench.default.map.parallelism 270 -#hibench.default.shuffle.parallelism 270 - -##YARN resource configuration -#hibench.yarn.executor.num 90 -#hibench.yarn.executor.cores 3 diff --git a/workloads/sleep/mapreduce/hadoop.conf b/workloads/sleep/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/sleep/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/sleep/spark/java/bin/run.sh b/workloads/sleep/spark/java/bin/run.sh deleted file mode 100755 index 5614832c7..000000000 --- a/workloads/sleep/spark/java/bin/run.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkSleep ${workload_root} ${workload_folder} -show_bannar start - -START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.sleep.JavaSleep $MAP_SLEEP_TIME -END_TIME=`timestamp` -SIZE="0" - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench \ No newline at end of file diff --git a/workloads/sleep/spark/java/java.conf b/workloads/sleep/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/sleep/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/sleep/spark/python/python.conf b/workloads/sleep/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/sleep/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/sleep/spark/scala/scala.conf b/workloads/sleep/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/sleep/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/sort/conf/00-sort-default.conf b/workloads/sort/conf/00-sort-default.conf deleted file mode 100644 index 45b0bbf9c..000000000 --- a/workloads/sort/conf/00-sort-default.conf +++ /dev/null @@ -1,9 +0,0 @@ - -# override configurations here -hibench.sort.datasize ${hibench.sort.${hibench.scale.profile}.datasize} -hibench.sort.base_hdfs ${hibench.hdfs.data.dir}/Sort - -# export for shell script -hibench.workload.input ${hibench.sort.base_hdfs}/${hibench.workload.dir.name.input} -hibench.workload.output ${hibench.sort.base_hdfs}/${hibench.workload.dir.name.output} -hibench.workload.datasize ${hibench.sort.datasize} \ No newline at end of file diff --git a/workloads/sort/conf/10-sort-userdefine.conf b/workloads/sort/conf/10-sort-userdefine.conf deleted file mode 100644 index 815352aef..000000000 --- a/workloads/sort/conf/10-sort-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations here - diff --git a/workloads/sort/mapreduce/bin/run.sh b/workloads/sort/mapreduce/bin/run.sh deleted file mode 100755 index b4acd8f15..000000000 --- a/workloads/sort/mapreduce/bin/run.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench HadoopSort ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-hadoop-job ${HADOOP_EXAMPLES_JAR} sort ${COMPRESS_OPT} -outKey org.apache.hadoop.io.Text -outValue org.apache.hadoop.io.Text -r ${NUM_REDS} ${INPUT_HDFS} ${OUTPUT_HDFS} -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - - - diff --git a/workloads/sort/mapreduce/hadoop.conf b/workloads/sort/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/sort/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/sort/spark/java/bin/run.sh b/workloads/sort/spark/java/bin/run.sh deleted file mode 100755 index c3dc4a571..000000000 --- a/workloads/sort/spark/java/bin/run.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkSort ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.sort.JavaSort $INPUT_HDFS $OUTPUT_HDFS -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench diff --git a/workloads/sort/spark/java/java.conf b/workloads/sort/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/sort/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/sort/spark/python/bin/run.sh b/workloads/sort/spark/python/bin/run.sh deleted file mode 100755 index ecbe70369..000000000 --- a/workloads/sort/spark/python/bin/run.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkSort ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-spark-job ${HIBENCH_PYTHON_PATH}/sort.py $INPUT_HDFS $OUTPUT_HDFS -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench diff --git a/workloads/sort/spark/python/python.conf b/workloads/sort/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/sort/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/sort/spark/scala/scala.conf b/workloads/sort/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/sort/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/streamingbench/conf/00-streamingbench.conf b/workloads/streamingbench/conf/00-streamingbench.conf deleted file mode 100644 index cba732dce..000000000 --- a/workloads/streamingbench/conf/00-streamingbench.conf +++ /dev/null @@ -1,35 +0,0 @@ -# default configurations here - -# export for shell script -# dummy input/output path -hibench.workload.input -hibench.workload.output - -# default scale factor -hibench.streamingbench.datagen.scale_factor 1 - -# default path setting for genearate data1 & data2 -hibench.streamingbench.datagen.data1.name Seed -hibench.streamingbench.datagen.data1.dir ${hibench.streamingbench.datagen.dir}/${hibench.streamingbench.datagen.data1.name} - -# Length limitation suggestion: 60 ~ 180 -hibench.streamingbench.datagen.data1.length 60 - -hibench.streamingbench.datagen.data2_cluster.dir ${hibench.streamingbench.datagen.dir}/Kmeans/Cluster -hibench.streamingbench.datagen.data2_samples.dir ${hibench.streamingbench.datagen.dir}/Kmeans/Samples - -# default data scale of streaming data -hibench.streamingbench.scale.profile large - -# data scale for data1 -hibench.workload.uservisits ${hibench.aggregation.${hibench.streamingbench.scale.profile}.uservisits} -hibench.workload.pages ${hibench.aggregation.${hibench.streamingbench.scale.profile}.pages} - -# data scale for data2 -hibench.kmeans.num_of_clusters ${hibench.kmeans.${hibench.streamingbench.scale.profile}.num_of_clusters} -hibench.kmeans.dimensions ${hibench.kmeans.${hibench.streamingbench.scale.profile}.dimensions} -hibench.kmeans.num_of_samples ${hibench.kmeans.${hibench.streamingbench.scale.profile}.num_of_samples} -hibench.kmeans.samples_per_inputfile ${hibench.kmeans.${hibench.streamingbench.scale.profile}.samples_per_inputfile} -hibench.kmeans.max_iteration ${hibench.kmeans.${hibench.streamingbench.scale.profile}.max_iteration} -hibench.kmeans.k ${hibench.kmeans.${hibench.streamingbench.scale.profile}.k} -hibench.kmeans.convergedist ${hibench.kmeans.${hibench.streamingbench.scale.profile}.convergedist} diff --git a/workloads/streamingbench/conf/10-streamingbench-userdefine.conf b/workloads/streamingbench/conf/10-streamingbench-userdefine.conf deleted file mode 100644 index 56d7242e5..000000000 --- a/workloads/streamingbench/conf/10-streamingbench-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations for streaming releated workload here - diff --git a/workloads/streamingbench/prepare/gendata.sh b/workloads/streamingbench/prepare/gendata.sh deleted file mode 100755 index 5294ff968..000000000 --- a/workloads/streamingbench/prepare/gendata.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench StreamingBenchPrepare ${workload_root} ${workload_folder} -show_bannar start - -DATA_GEN_DIR=${workload_root}/../../src/streambench/datagen -DATA_FILE1=${STREAMING_DATA1_DIR}/uservisits -DATA_FILE2=${STREAMING_DATA2_SAMPLE_DIR} - -#echo "=========begin gen stream data=========" -#echo "Topic:$topicName dataset:$app records:$records kafkaBrokers:$brokerList mode:$mode data_dir:$data_dir" - - -JVM_OPTS="-Xmx256M -server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=bin/../logs -cp ${DATA_GEN_DIR}/lib/kafka-clients-0.8.1.jar:${DATA_GEN_JAR}" - -printFullLog - -if [ "$STREAMING_DATAGEN_MODE" == "push" ]; then - CMD="$JAVA_BIN $JVM_OPTS com.intel.hibench.streambench.StartNew $SPARKBENCH_PROPERTIES_FILES $DATA_FILE1 0 $DATA_FILE2 0" - echo -e "${BGreen}Sending streaming data to kafka, concurrently: ${Green}$CMD${Color_Off}" - execute_withlog $CMD -else - CMD="$JAVA_BIN $JVM_OPTS com.intel.hibench.streambench.StartPeriodic $SPARKBENCH_PROPERTIES_FILES $DATA_FILE1 0 $DATA_FILE2 0" - echo -e "${BGreen}Sending streaming data to kafka, periodically: ${Green}$CMD${Color_Off}" - execute_withlog $CMD -fi - -show_bannar finish diff --git a/workloads/streamingbench/prepare/initTopic.sh b/workloads/streamingbench/prepare/initTopic.sh deleted file mode 100755 index 8e06432ad..000000000 --- a/workloads/streamingbench/prepare/initTopic.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench StreamingBenchInitTopic ${workload_root} ${workload_folder} - -KAFKA_TOPIC_BIN="$STREAMING_KAFKA_HOME/bin/kafka-topics.sh --zookeeper $STREAMING_ZKADDR" - -show_bannar start - -# delete all topics -topics=`$KAFKA_TOPIC_BIN --list` -if [ ! -z "${topics//[[:blank:]]/}" ] ; then - echo "Warning, this scipt will delete all topics in kafka listed as below:" - echo "$topics" - read -r -p "Please comfirm:[y/N] " response - case $response in - [yY]) - for topic in `$KAFKA_TOPIC_BIN --list`; do - echo "Delete topic $topic ..." - $KAFKA_TOPIC_BIN --delete --topic $topic - done - echo "Sleep 5 seconds ..." - sleep 5 - ;; - *) - echo "Will not delete any topics" - ;; - esac -fi - -topics=`$KAFKA_TOPIC_BIN --list` -if [ ! -z "${topics//[[:blank:]]/}" ]; then - echo "Warning, topics remain exist:" - echo "$topics" - echo - echo "Please wait a few more minutes or clean & restart kafka, zookeeper, then retry $0." - exit 1 -fi - -# create internal topics for samza -$KAFKA_TOPIC_BIN --create --topic "$STREAMING_SAMZA_WORDCOUNT_INTERNAL_TOPIC" --partitions ${SAMZA_PARTITIONS} --replication-factor 1 -$KAFKA_TOPIC_BIN --create --topic "$STREAMING_SAMZA_STATISTICS_INTERNAL_TOPIC" --partitions 1 --replication-factor 1 -$KAFKA_TOPIC_BIN --create --topic "$STREAMING_SAMZA_DISTINCOUNT_INTERNAL_TOPIC" --partitions ${SAMZA_PARTITIONS} --replication-factor 1 - -# create topic for bench -$KAFKA_TOPIC_BIN --create --topic "$STREAMING_TOPIC_NAME" --partitions ${SAMZA_PARTITIONS} --replication-factor ${SAMZA_REPLICATION_FACTOR} - -show_bannar finish \ No newline at end of file diff --git a/workloads/streamingbench/prepare/zkUtils.sh b/workloads/streamingbench/prepare/zkUtils.sh deleted file mode 100755 index 307e806fe..000000000 --- a/workloads/streamingbench/prepare/zkUtils.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench StreamingBenchZkUtils ${workload_root} ${workload_folder} -show_bannar start -printFullLog - -# operation type -op=${1:-ls} - -# number of partitions -partitions=${STREAMING_PARTITIONS} - -# zkHost address:port -zkHost=$STREAMING_ZKADDR - -# topic -topic=$STREAMING_TOPIC_NAME - -# spark consumer name -consumer=$STREAMING_CONSUMER_GROUP - -path=/consumers/$consumer/offsets/$topic - -CMD="$JAVA_BIN -cp $STREAMING_ZKHELPER_JAR com.intel.hibench.streambench.zkHelper.ZKUtil $op $zkHost $path $partitions" -echo -e "${BGreen}Query ZooKeeper for topic offsets, params: ${BCyan}operation:${Cyan}$op ${BCyan}partitions:${Cyan}$partitions ${BCyan}zkHost:${Cyan}$zkHost ${BCyan}topic:${Cyan}$topic ${BCyan}consumer:${Cyan}$consumer ${BCyan}path:${Cyan}$path${Color_Off}" -echo -e "${BGreen}Run:${Green}$CMD${Color_Off}" -execute_withlog $CMD - -show_bannar finish \ No newline at end of file diff --git a/workloads/streamingbench/samza/bin/run-one-workload.sh b/workloads/streamingbench/samza/bin/run-one-workload.sh deleted file mode 100755 index 5be79a2e0..000000000 --- a/workloads/streamingbench/samza/bin/run-one-workload.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - - -workload_basename=`basename ${workload_folder}` -workload_dirname=`dirname ${workload_folder}` -workload_name=$1 -enter_bench SamzaStreaming-$workload_name ${workload_root} ${workload_dirname}_$1/${workload_basename} hibench.streamingbench.benchname=$workload_name -show_bannar start - -SRC_DIR=${workload_root}/../../src/streambench/samzabench - -printFullLog - -# prepare samza environment - -if [ ! -d $SRC_DIR/target ]; then - echo "Please run 'bin/build-all.sh' first." - exit 1 -fi - -SAMZA_PLAYGROUND=${WORKLOAD_RESULT_FOLDER}/samza - -mkdir -p $SAMZA_PLAYGROUND 2> /dev/null -tar zxf $SRC_DIR/target/*.tar.gz -C ${SAMZA_PLAYGROUND} - -configFactory=org.apache.samza.config.factories.PropertiesConfigFactory - -# remove samza prefix and change "name value" to "name=value" style in ${SAMZA_PROP_CONF} -cat ${SAMZA_PROP_CONF} | sed -r 's/samza\.//' | sed -r 's/\t+/=/' > ${SAMZA_PROP_CONF}.converted - -# Upload samza package to HDFS -upload-to-hdfs $STREAMING_SAMZA_PACKAGE_LOCAL_PATH $STREAMING_SAMZA_PACKAGE_HDFS_PATH - -$HADOOP_EXECUTABLE --config $HADOOP_CONF_DIR fs -put $STREAMING_SAMZA_PACKAGE_LOCAL_PATH $STREAMING_SAMZA_PACKAGE_HDFS_PATH - -function samza-submit() { - workload_name=$1 - -} - -START_TIME=`timestamp` -CMD="$SAMZA_PLAYGROUND/bin/run-job.sh --config-factory=${configFactory} --config-path=file://${SAMZA_PROP_CONF}.converted" -echo -e "${BGreen}Submit Samza Job: ${Green}$CMD${Color_Off}" -execute_withlog $CMD -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} 0 # FIXME, size should be throughput -show_bannar finish diff --git a/workloads/streamingbench/samza/bin/run.sh b/workloads/streamingbench/samza/bin/run.sh deleted file mode 100755 index e9f822665..000000000 --- a/workloads/streamingbench/samza/bin/run.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench SamzaStreamingBench ${workload_root} ${workload_folder} -show_bannar start - -SRC_DIR=${workload_root}/../../src/streambench/samzabench - -printFullLog - -function samza-submit() { - workload_name=$1 - $workload_folder/run-one-workload.sh $workload_name -} - -START_TIME=`timestamp` -. $SRC_DIR/scripts/$STREAMING_BENCHNAME.sh -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} 0 # FIXME, size should be throughput -show_bannar finish diff --git a/workloads/streamingbench/storm/bin/run.sh b/workloads/streamingbench/storm/bin/run.sh deleted file mode 100755 index 3ebb1a1cb..000000000 --- a/workloads/streamingbench/storm/bin/run.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -echo $workload_root -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench StormStreamingBench ${workload_root} ${workload_folder} -show_bannar start - -cd ${workload_folder} - -printFullLog - -START_TIME=`timestamp` -run-storm-job com.intel.hibench.streambench.storm.RunBench ${SPARKBENCH_PROPERTIES_FILES} storm -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} 0 # FIXME, size should be throughput -show_bannar finish1 \ No newline at end of file diff --git a/workloads/streamingbench/storm/bin/stop.sh b/workloads/streamingbench/storm/bin/stop.sh deleted file mode 100755 index f0db7f41d..000000000 --- a/workloads/streamingbench/storm/bin/stop.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -echo $workload_root -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench StormStreamingBenchOperator ${workload_root} ${workload_folder} -echo "=========stop storm benchmark $STREAMING_BENCHNAME=========" - -${STORM_BIN_HOME}/storm kill $STREAMING_BENCHNAME -echo "Wait 30 seconds... and need double confirm!" -sleep 30 -echo "Double confirm the bench has been killed:" -${STORM_BIN_HOME}/storm kill $STREAMING_BENCHNAME -echo 'If got NotAliveException, the "$STREAMING_BENCHNAME" has been killed successfully.' diff --git a/workloads/streamingbench/trident/bin/run.sh b/workloads/streamingbench/trident/bin/run.sh deleted file mode 100755 index 1a9704369..000000000 --- a/workloads/streamingbench/trident/bin/run.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -echo $workload_root -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench StormTridentStreamingBench ${workload_root} ${workload_folder} -show_bannar start - -cd ${workload_folder} - -printFullLog - -START_TIME=`timestamp` -run-storm-job com.intel.hibench.streambench.storm.RunBench ${SPARKBENCH_PROPERTIES_FILES} trident -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} 0 # FIXME, size should be throughput -show_bannar finish diff --git a/workloads/streamingbench/trident/bin/stop.sh b/workloads/streamingbench/trident/bin/stop.sh deleted file mode 100755 index a1d48eec2..000000000 --- a/workloads/streamingbench/trident/bin/stop.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -echo $workload_root -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench StormStreamingBenchOperator ${workload_root} ${workload_folder} -echo "=========stop trident benchmark $STREAMING_BENCHNAME=========" - -${STORM_BIN_HOME}/storm kill $STREAMING_BENCHNAME -echo "Wait 30 seconds... and need double confirm!" -sleep 30 -echo "Double confirm the bench has been killed:" -${STORM_BIN_HOME}/storm kill $STREAMING_BENCHNAME -echo 'If got NotAliveException, the "$STREAMING_BENCHNAME" has been killed successfully.' diff --git a/workloads/terasort/conf/00-terasort-default.conf b/workloads/terasort/conf/00-terasort-default.conf deleted file mode 100644 index cd8f2ed73..000000000 --- a/workloads/terasort/conf/00-terasort-default.conf +++ /dev/null @@ -1,12 +0,0 @@ - -# override configurations here -hibench.terasort.datasize ${hibench.terasort.${hibench.scale.profile}.datasize} -hibench.terasort.base_hdfs ${hibench.hdfs.data.dir}/Terasort - -# export for shell script -hibench.workload.input ${hibench.terasort.base_hdfs}/${hibench.workload.dir.name.input} -hibench.workload.output ${hibench.terasort.base_hdfs}/${hibench.workload.dir.name.output} -hibench.workload.datasize ${hibench.terasort.datasize} - -# Overrride default dfs replication -spark.hadoop.dfs.replication 1 \ No newline at end of file diff --git a/workloads/terasort/conf/10-terasort-userdefine.conf b/workloads/terasort/conf/10-terasort-userdefine.conf deleted file mode 100644 index da8cdfa31..000000000 --- a/workloads/terasort/conf/10-terasort-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations here -hibench.default.shuffle.parallelism ${hibench.default.map.parallelism} diff --git a/workloads/terasort/mapreduce/bin/run.sh b/workloads/terasort/mapreduce/bin/run.sh deleted file mode 100755 index 08cf9eead..000000000 --- a/workloads/terasort/mapreduce/bin/run.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench HadoopTerasort ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-hadoop-job ${HADOOP_EXAMPLES_JAR} terasort -D${REDUCER_CONFIG_NAME}=${NUM_REDS} ${INPUT_HDFS} ${OUTPUT_HDFS} -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - -# run bench -#$HADOOP_EXECUTABLE jar $HADOOP_EXAMPLES_JAR terasort -D $CONFIG_REDUCER_NUMBER=$NUM_REDS $INPUT_HDFS $OUTPUT_HDFS diff --git a/workloads/terasort/mapreduce/hadoop.conf b/workloads/terasort/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/terasort/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/terasort/spark/java/java.conf b/workloads/terasort/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/terasort/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/terasort/spark/python/bin/run.sh b/workloads/terasort/spark/python/bin/run.sh deleted file mode 100755 index e84c50086..000000000 --- a/workloads/terasort/spark/python/bin/run.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench PythonSparkTerasort ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-spark-job ${HIBENCH_PYTHON_PATH}/terasort.py $INPUT_HDFS $OUTPUT_HDFS -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - diff --git a/workloads/terasort/spark/python/python.conf b/workloads/terasort/spark/python/python.conf deleted file mode 100644 index f1fe33445..000000000 --- a/workloads/terasort/spark/python/python.conf +++ /dev/null @@ -1,6 +0,0 @@ - -# override for python related workload confs -#spark.executor.memory 12G -#spark.driver.memory 8G -#hibench.yarn.executor.num 50 -#hibench.yarn.executor.cores 3 diff --git a/workloads/terasort/spark/scala/scala.conf b/workloads/terasort/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/terasort/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs diff --git a/workloads/wordcount/conf/00-wordcount-default.conf b/workloads/wordcount/conf/00-wordcount-default.conf deleted file mode 100644 index bb0427250..000000000 --- a/workloads/wordcount/conf/00-wordcount-default.conf +++ /dev/null @@ -1,9 +0,0 @@ - -# override configurations here -hibench.wordcount.datasize ${hibench.wordcount.${hibench.scale.profile}.datasize} -hibench.wordcount.base_hdfs ${hibench.hdfs.data.dir}/Wordcount - -# export for shell script -hibench.workload.input ${hibench.wordcount.base_hdfs}/${hibench.workload.dir.name.input} -hibench.workload.output ${hibench.wordcount.base_hdfs}/${hibench.workload.dir.name.output} -hibench.workload.datasize ${hibench.wordcount.datasize} \ No newline at end of file diff --git a/workloads/wordcount/conf/10-wordcount-userdefine.conf b/workloads/wordcount/conf/10-wordcount-userdefine.conf deleted file mode 100644 index 86329eb1e..000000000 --- a/workloads/wordcount/conf/10-wordcount-userdefine.conf +++ /dev/null @@ -1,3 +0,0 @@ - -# override configurations here -#hibench.yarn.executor.cores 5 diff --git a/workloads/wordcount/mapreduce/hadoop.conf b/workloads/wordcount/mapreduce/hadoop.conf deleted file mode 100644 index 8fcab103c..000000000 --- a/workloads/wordcount/mapreduce/hadoop.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for hadoop related workload confs diff --git a/workloads/wordcount/spark/java/bin/run.sh b/workloads/wordcount/spark/java/bin/run.sh deleted file mode 100755 index 53a13e3e8..000000000 --- a/workloads/wordcount/spark/java/bin/run.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench JavaSparkWordcount ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-spark-job org.apache.spark.examples.JavaWordCount $INPUT_HDFS $OUTPUT_HDFS -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - - -#run-spark-job org.apache.spark.examples.JavaWordCount $INPUT_HDFS $OUTPUT_HDFS|| exit 1 -#$SPARK_HOME/bin/spark-submit --class org.apache.spark.examples.JavaWordCount --master ${SPARK_MASTER} ${SPARK_EXAMPLES_JAR} $INPUT_HDFS > /dev/null diff --git a/workloads/wordcount/spark/java/java.conf b/workloads/wordcount/spark/java/java.conf deleted file mode 100644 index 681341d50..000000000 --- a/workloads/wordcount/spark/java/java.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for java related workload confs diff --git a/workloads/wordcount/spark/python/python.conf b/workloads/wordcount/spark/python/python.conf deleted file mode 100644 index 22716f1ff..000000000 --- a/workloads/wordcount/spark/python/python.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for python related workload confs diff --git a/workloads/wordcount/spark/scala/bin/run.sh b/workloads/wordcount/spark/scala/bin/run.sh deleted file mode 100755 index bf55bcf04..000000000 --- a/workloads/wordcount/spark/scala/bin/run.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workload_folder=`dirname "$0"` -workload_folder=`cd "$workload_folder"; pwd` -workload_root=${workload_folder}/../../.. -. "${workload_root}/../../bin/functions/load-bench-config.sh" - -enter_bench ScalaSparkWordcount ${workload_root} ${workload_folder} -show_bannar start - -rmr-hdfs $OUTPUT_HDFS || true - -SIZE=`dir_size $INPUT_HDFS` -START_TIME=`timestamp` -run-spark-job com.intel.sparkbench.wordcount.ScalaWordCount $INPUT_HDFS $OUTPUT_HDFS -END_TIME=`timestamp` - -gen_report ${START_TIME} ${END_TIME} ${SIZE} -show_bannar finish -leave_bench - diff --git a/workloads/wordcount/spark/scala/scala.conf b/workloads/wordcount/spark/scala/scala.conf deleted file mode 100644 index a23864b73..000000000 --- a/workloads/wordcount/spark/scala/scala.conf +++ /dev/null @@ -1,2 +0,0 @@ - -# override for scala related workload confs