├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── build_all ├── clean_all ├── deploy_all ├── geospatial ├── LICENSE ├── bin │ ├── post_install │ └── pre_remove ├── build.properties ├── build.xml ├── conf │ ├── log4cxx.properties │ └── mr4c-ld.conf ├── conf_docs │ ├── Doxyfile │ ├── doxygen_footer.html │ └── doxygen_main.tmpl ├── input │ └── thumb.png ├── makefile ├── src │ └── cpp │ │ ├── api │ │ ├── coord │ │ │ ├── BoundingBox.h │ │ │ ├── EastNorthCoord.h │ │ │ ├── EastNorthTrans.h │ │ │ ├── ImageBox.h │ │ │ ├── LatLonCoord.h │ │ │ ├── NormMercCoord.h │ │ │ ├── SimpleEastNorthTrans.h │ │ │ └── coord_api.h │ │ ├── gdal │ │ │ ├── GDALCoordTrans.h │ │ │ ├── GDALFile.h │ │ │ ├── GDALFileBase.h │ │ │ ├── GDALLocalFile.h │ │ │ ├── GDALMemoryFile.h │ │ │ ├── GDALUtils.h │ │ │ └── gdal_api.h │ │ ├── mbtiles │ │ │ ├── MBTilesDataset.h │ │ │ ├── MBTilesUtils.h │ │ │ ├── TileExtractor.h │ │ │ ├── TileKey.h │ │ │ └── mbtiles_api.h │ │ └── mr4c_geo_api.h │ │ └── impl │ │ ├── coord │ │ ├── BoundingBox.cpp │ │ ├── EastNorthCoord.cpp │ │ ├── ImageBox.cpp │ │ ├── LatLonCoord.cpp │ │ ├── NormMercCoord.cpp │ │ └── SimpleEastNorthTrans.cpp │ │ ├── gdal │ │ ├── GDALCoordTrans.cpp │ │ ├── GDALFileBase.cpp │ │ ├── GDALLocalFile.cpp │ │ ├── GDALMemoryFile.cpp │ │ └── GDALUtils.cpp │ │ └── mbtiles │ │ ├── MBTiler.cpp │ │ ├── MBTilesDataset.cpp │ │ ├── MBTilesUtils.cpp │ │ ├── TileExtractor.cpp │ │ └── TileKey.cpp ├── test │ └── cpp │ │ ├── api │ │ └── MR4CGeoTests.h │ │ ├── suites │ │ ├── Cover.cpp │ │ ├── Local.cpp │ │ └── Suite.cpp │ │ └── tests │ │ ├── MR4CGeoTests.cpp │ │ ├── coord │ │ ├── CoordTests.cpp │ │ ├── TestBoundingBox.cpp │ │ ├── TestEastNorthCoord.cpp │ │ ├── TestImageBox.cpp │ │ ├── TestLatLonCoord.cpp │ │ ├── TestNormMercCoord.cpp │ │ └── TestSimpleEastNorthTrans.cpp │ │ ├── gdal │ │ ├── GDALTests.cpp │ │ ├── TestGDALCoordTrans.cpp │ │ ├── TestGDALLocalFile.cpp │ │ ├── TestGDALMemoryFile.cpp │ │ └── TestGDALUtils.cpp │ │ └── mbtiles │ │ ├── MBTilesTests.cpp │ │ ├── TestMBTilesDataset.cpp │ │ ├── TestMBTilesUtils.cpp │ │ ├── TestTileExtractor.cpp │ │ └── TestTileKey.cpp └── tools │ ├── prep_env │ ├── run_coverage │ ├── run_tests │ └── test_local ├── java ├── LICENSE ├── bin │ ├── mr4c │ ├── mr4c_debug │ ├── mr4c_diff │ ├── mr4c_hadoop │ ├── mr4c_hadoop_remote │ ├── mr4c_test │ ├── post_install │ └── pre_remove ├── build.properties ├── build.xml ├── conf │ ├── log4cxx.properties │ ├── log4j.properties │ ├── mr4c-hadoop-site.xml │ └── site.json ├── conf_ivy │ ├── ivy_common.xml │ ├── ivy_mrv1.xml │ ├── ivy_yarn.xml │ └── ivysettings.xml ├── input │ ├── conftest │ │ ├── file1.properties │ │ ├── file2.properties │ │ ├── file3.properties │ │ ├── file4.properties │ │ ├── file5.properties │ │ └── file6.properties │ └── data │ │ ├── dataset │ │ ├── logsbuilder │ │ │ ├── log1.log │ │ │ ├── log2.log │ │ │ └── somepath │ │ │ │ └── log3.log │ │ ├── logsrc │ │ │ ├── notask │ │ │ │ └── logs │ │ │ │ │ ├── log1.log │ │ │ │ │ ├── log2.log │ │ │ │ │ └── log3.log │ │ │ └── withtask │ │ │ │ └── logs │ │ │ │ └── taskid1 │ │ │ │ ├── log1.log │ │ │ │ ├── log2.log │ │ │ │ └── log3.log │ │ ├── simple │ │ │ ├── not_simple.json │ │ │ └── simple.json │ │ ├── test1 │ │ │ ├── input_data │ │ │ │ ├── ss01_c1_2455874.21556848_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556848_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556871_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556871_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556894_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556894_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556917_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556917_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556941_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556941_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556964_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556964_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556987_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556987_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557010_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557010_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557033_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557033_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557056_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557056_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557079_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557079_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557103_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557103_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557126_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557126_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557149_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557149_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557172_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557172_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557195_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557195_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557218_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557218_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557242_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557242_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557265_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557265_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557288_MS_1.5bps.jpc │ │ │ │ └── ss01_c1_2455874.21557288_PAN_1.5bps.jpc │ │ │ ├── input_data_self │ │ │ │ ├── directory.json │ │ │ │ ├── ss01_c1_2455874.21556848_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556848_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556871_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556871_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556894_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556894_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556917_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556917_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556941_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556941_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556964_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556964_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556987_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21556987_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557010_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557010_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557033_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557033_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557056_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557056_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557079_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557079_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557103_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557103_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557126_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557126_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557149_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557149_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557172_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557172_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557195_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557195_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557218_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557218_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557242_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557242_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557265_MS_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557265_PAN_1.5bps.jpc │ │ │ │ ├── ss01_c1_2455874.21557288_MS_1.5bps.jpc │ │ │ │ └── ss01_c1_2455874.21557288_PAN_1.5bps.jpc │ │ │ ├── source.json │ │ │ └── source_self.json │ │ └── test2 │ │ │ └── map.json │ │ └── images │ │ ├── README │ │ ├── directory.json │ │ ├── ss01_c1_2455874.21556848_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556848_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556871_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556871_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556894_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556894_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556917_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556917_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556941_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556941_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556964_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556964_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556987_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21556987_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557010_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557010_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557033_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557033_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557056_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557056_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557079_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557079_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557103_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557103_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557126_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557126_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557149_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557149_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557172_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557172_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557195_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557195_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557218_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557218_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557242_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557242_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557265_MS_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557265_PAN_1.5bps.jpc │ │ ├── ss01_c1_2455874.21557288_MS_1.5bps.jpc │ │ └── ss01_c1_2455874.21557288_PAN_1.5bps.jpc ├── ivy.xml ├── src │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── mr4c │ │ │ ├── AlgoRunner.java │ │ │ ├── AlgoTestRunner.java │ │ │ ├── DiffRunner.java │ │ │ ├── algorithm │ │ │ ├── Algorithm.java │ │ │ ├── AlgorithmBase.java │ │ │ ├── AlgorithmContext.java │ │ │ ├── AlgorithmData.java │ │ │ ├── AlgorithmEnvironment.java │ │ │ ├── AlgorithmSchema.java │ │ │ ├── AlgorithmType.java │ │ │ ├── Algorithms.java │ │ │ ├── EnvironmentSet.java │ │ │ ├── JavaAlgorithm.java │ │ │ └── LogLevel.java │ │ │ ├── config │ │ │ ├── ConfigDescriptor.java │ │ │ ├── ConfigLoader.java │ │ │ ├── ConfigUtils.java │ │ │ ├── Document.java │ │ │ ├── MR4CRunnerConfig.java │ │ │ ├── algorithm │ │ │ │ ├── AlgorithmConfig.java │ │ │ │ ├── DimensionConfig.java │ │ │ │ └── algo.json │ │ │ ├── category │ │ │ │ ├── Category.java │ │ │ │ ├── CategoryBuilder.java │ │ │ │ ├── CategoryConfig.java │ │ │ │ ├── CategoryInfo.java │ │ │ │ ├── CategoryParser.java │ │ │ │ ├── CategorySystemData.java │ │ │ │ ├── CoreConfig.java │ │ │ │ ├── CustomConfig.java │ │ │ │ ├── HadoopConfig.java │ │ │ │ ├── MR4CConfig.java │ │ │ │ ├── MR4CConfigBuilder.java │ │ │ │ ├── S3Config.java │ │ │ │ └── StatsConfig.java │ │ │ ├── diff │ │ │ │ ├── DiffConfig.java │ │ │ │ └── diff.json │ │ │ ├── execution │ │ │ │ ├── DatasetConfig.java │ │ │ │ ├── DimensionConfig.java │ │ │ │ ├── DirectoryConfig.java │ │ │ │ ├── ExecutionConfig.java │ │ │ │ ├── LocationsConfig.java │ │ │ │ ├── MapConfig.java │ │ │ │ ├── PatternMapperConfig.java │ │ │ │ ├── ValueConfig.java │ │ │ │ ├── dataset.json │ │ │ │ ├── directory.json │ │ │ │ ├── exe.json │ │ │ │ └── map.json │ │ │ ├── resources │ │ │ │ ├── LimitSource.java │ │ │ │ ├── Resource.java │ │ │ │ ├── ResourceConfig.java │ │ │ │ ├── ResourceInfo.java │ │ │ │ ├── ResourceLimit.java │ │ │ │ └── ResourceRequest.java │ │ │ ├── site │ │ │ │ ├── ClusterConfig.java │ │ │ │ ├── MR4CSite.java │ │ │ │ └── SiteConfig.java │ │ │ └── test │ │ │ │ ├── AlgoTestConfig.java │ │ │ │ └── test.json │ │ │ ├── content │ │ │ ├── AbstractContentFactory.java │ │ │ ├── ContentFactories.java │ │ │ ├── ContentFactory.java │ │ │ ├── ContentTypes.java │ │ │ ├── HDFSContentFactory.java │ │ │ ├── LocalContentFactory.java │ │ │ ├── RelativeContentFactory.java │ │ │ ├── S3ContentFactory.java │ │ │ └── S3Credentials.java │ │ │ ├── dataset │ │ │ ├── DataFile.java │ │ │ ├── DataFileFinder.java │ │ │ ├── Dataset.java │ │ │ ├── DatasetContext.java │ │ │ ├── DatasetDiff.java │ │ │ ├── DatasetTransformer.java │ │ │ └── LogsDatasetBuilder.java │ │ │ ├── hadoop │ │ │ ├── Cluster.java │ │ │ ├── Clusters.java │ │ │ ├── DataKeyList.java │ │ │ ├── DataLocalizer.java │ │ │ ├── HadoopAlgoRunner.java │ │ │ ├── HadoopBinding.java │ │ │ ├── HadoopContext.java │ │ │ ├── HadoopInputFormat.java │ │ │ ├── HadoopMapper.java │ │ │ ├── HadoopOutputFormat.java │ │ │ ├── HadoopReducer.java │ │ │ ├── HadoopUtils.java │ │ │ ├── LocalHadoopAlgoRunner.java │ │ │ ├── MR4CArgumentParser.java │ │ │ ├── MR4CGenericOptions.java │ │ │ ├── MR4CGenericOptionsParser.java │ │ │ ├── MR4CInputFormat.java │ │ │ ├── MR4CInputSplit.java │ │ │ ├── MR4CMRJob.java │ │ │ ├── MR4CMapper.java │ │ │ ├── MR4COutputFormat.java │ │ │ ├── MR4CRecordReader.java │ │ │ ├── MR4CRecordWriter.java │ │ │ ├── MR4CReducer.java │ │ │ ├── RemoteAlgoRunner.java │ │ │ ├── StaticHadoopBinder.java.mrv1 │ │ │ ├── StaticHadoopBinder.java.yarn │ │ │ ├── mrv1 │ │ │ │ └── MRv1Binding.java │ │ │ └── yarn │ │ │ │ └── YarnBinding.java │ │ │ ├── keys │ │ │ ├── BasicDataKeyFilter.java │ │ │ ├── BasicElementFilter.java │ │ │ ├── CompoundDataKey.java │ │ │ ├── DataKey.java │ │ │ ├── DataKeyComparator.java │ │ │ ├── DataKeyDimension.java │ │ │ ├── DataKeyElement.java │ │ │ ├── DataKeyFactory.java │ │ │ ├── DataKeyFilter.java │ │ │ ├── DataKeyUtils.java │ │ │ ├── DimensionBasedKeyFilter.java │ │ │ ├── DimensionPartition.java │ │ │ ├── ElementFilter.java │ │ │ ├── ElementTransformer.java │ │ │ ├── HasDimensionFilter.java │ │ │ ├── IdentityDataKeyFilter.java │ │ │ ├── KeyDimensionPartitioner.java │ │ │ ├── KeyTransformer.java │ │ │ ├── Keyspace.java │ │ │ ├── KeyspaceDimension.java │ │ │ ├── KeyspacePartition.java │ │ │ ├── KeyspacePartitioner.java │ │ │ ├── NarrowingFilter.java │ │ │ └── SimpleDataKey.java │ │ │ ├── mbtiles │ │ │ ├── MBTilesFile.java │ │ │ ├── Tile.java │ │ │ ├── TileFormat.java │ │ │ └── TileKey.java │ │ │ ├── message │ │ │ ├── DefaultMessageHandler.java │ │ │ ├── HttpMessageHandler.java │ │ │ ├── Message.java │ │ │ ├── MessageHandler.java │ │ │ └── Messages.java │ │ │ ├── metadata │ │ │ ├── DefaultMetadataVisitor.java │ │ │ ├── MetadataArray.java │ │ │ ├── MetadataElement.java │ │ │ ├── MetadataElementType.java │ │ │ ├── MetadataField.java │ │ │ ├── MetadataKey.java │ │ │ ├── MetadataKeyExtractor.java │ │ │ ├── MetadataList.java │ │ │ ├── MetadataMap.java │ │ │ ├── MetadataVisitor.java │ │ │ ├── PrimitiveFactory.java │ │ │ └── PrimitiveType.java │ │ │ ├── nativec │ │ │ ├── ExternalAlgorithm.java │ │ │ ├── ExternalAlgorithmData.java │ │ │ ├── ExternalAlgorithmDataSerializer.java │ │ │ ├── ExternalAlgorithmSerializer.java │ │ │ ├── ExternalContext.java │ │ │ ├── ExternalDataFile.java │ │ │ ├── ExternalDataFileSink.java │ │ │ ├── ExternalDataFileSource.java │ │ │ ├── ExternalDataset.java │ │ │ ├── ExternalDatasetSerializer.java │ │ │ ├── ExternalEntry.java │ │ │ ├── ExternalFactory.java │ │ │ ├── ExternalRandomAccessFileSink.java │ │ │ ├── ExternalRandomAccessFileSource.java │ │ │ ├── NativeAlgorithm.java │ │ │ └── jna │ │ │ │ ├── JnaDataFileSink.java │ │ │ │ ├── JnaDataFileSource.java │ │ │ │ ├── JnaExternalAlgorithm.java │ │ │ │ ├── JnaExternalAlgorithmData.java │ │ │ │ ├── JnaExternalContext.java │ │ │ │ ├── JnaExternalDataFile.java │ │ │ │ ├── JnaExternalDataset.java │ │ │ │ ├── JnaExternalEntry.java │ │ │ │ ├── JnaExternalFactory.java │ │ │ │ ├── JnaNativeAlgorithm.java │ │ │ │ ├── JnaRandomAccessFile.java │ │ │ │ ├── JnaRandomAccessFileSink.java │ │ │ │ ├── JnaRandomAccessFileSource.java │ │ │ │ └── JnaUtils.java │ │ │ ├── serialize │ │ │ ├── AlgorithmSerializer.java │ │ │ ├── ConfigSerializer.java │ │ │ ├── DatasetSerializer.java │ │ │ ├── KeyspaceSerializer.java │ │ │ ├── PropertiesSerializer.java │ │ │ ├── Serializer.java │ │ │ ├── SerializerFactories.java │ │ │ ├── SerializerFactory.java │ │ │ ├── SerializerType.java │ │ │ ├── bean │ │ │ │ ├── AlgorithmBeanSerializer.java │ │ │ │ ├── BeanBasedAlgorithmSerializer.java │ │ │ │ ├── BeanBasedDatasetSerializer.java │ │ │ │ ├── BeanBasedKeyspaceSerializer.java │ │ │ │ ├── DatasetBeanSerializer.java │ │ │ │ ├── KeyspaceBeanSerializer.java │ │ │ │ ├── algorithm │ │ │ │ │ └── AlgorithmSchemaBean.java │ │ │ │ ├── dataset │ │ │ │ │ ├── DataFileBean.java │ │ │ │ │ ├── DatasetBean.java │ │ │ │ │ ├── DatasetFileBean.java │ │ │ │ │ └── DatasetMetadataBean.java │ │ │ │ ├── keys │ │ │ │ │ ├── DataKeyBean.java │ │ │ │ │ ├── DataKeyElementBean.java │ │ │ │ │ ├── KeyspaceBean.java │ │ │ │ │ └── KeyspaceDimensionBean.java │ │ │ │ └── metadata │ │ │ │ │ ├── MetadataArrayBean.java │ │ │ │ │ ├── MetadataBeans.java │ │ │ │ │ ├── MetadataElementBean.java │ │ │ │ │ ├── MetadataEntryBean.java │ │ │ │ │ ├── MetadataFieldBean.java │ │ │ │ │ ├── MetadataKeyBean.java │ │ │ │ │ ├── MetadataListBean.java │ │ │ │ │ └── MetadataMapBean.java │ │ │ ├── json │ │ │ │ ├── DocumentSerializer.java │ │ │ │ ├── JsonAlgorithmBeanSerializer.java │ │ │ │ ├── JsonConfigSerializer.java │ │ │ │ ├── JsonDatasetBeanSerializer.java │ │ │ │ ├── JsonKeyspaceBeanSerializer.java │ │ │ │ ├── JsonPropertiesSerializer.java │ │ │ │ └── MetadataEntryBeanDeserializer.java │ │ │ └── param │ │ │ │ └── ParameterizedConfigSerializer.java │ │ │ ├── sources │ │ │ ├── AbstractDataFileSink.java │ │ │ ├── AbstractDataFileSource.java │ │ │ ├── AbstractDatasetSource.java │ │ │ ├── AbstractFilesDatasetSource.java │ │ │ ├── AggregateFileSource.java │ │ │ ├── AlgoTestSource.java │ │ │ ├── ArchiveDatasetSource.java │ │ │ ├── ArchiveSource.java │ │ │ ├── BinaryDatasetSource.java │ │ │ ├── BytesDataFileSink.java │ │ │ ├── BytesDataFileSource.java │ │ │ ├── CompositeKeyFileMapper.java │ │ │ ├── ConfiguredAlgoTestSource.java │ │ │ ├── ConfiguredDiffSource.java │ │ │ ├── ConfiguredExecutionSource.java │ │ │ ├── CustomAlgoTestSource.java │ │ │ ├── CustomDiffSource.java │ │ │ ├── CustomExecutionSource.java │ │ │ ├── DataFileSink.java │ │ │ ├── DataFileSource.java │ │ │ ├── DataKeyFileMapper.java │ │ │ ├── DatasetSource.java │ │ │ ├── DatasetSources.java │ │ │ ├── DiffSource.java │ │ │ ├── DiskFileSource.java │ │ │ ├── ExecutionSource.java │ │ │ ├── FileSource.java │ │ │ ├── FileSources.java │ │ │ ├── FilesDatasetSource.java │ │ │ ├── FilesDatasetSourceConfig.java │ │ │ ├── HDFSFileSource.java │ │ │ ├── HadoopFileSource.java │ │ │ ├── HeterogenousFileSource.java │ │ │ ├── InMemoryArchiveSource.java │ │ │ ├── InMemoryFileSource.java │ │ │ ├── LogsDatasetSource.java │ │ │ ├── MBTilesDatasetSource.java │ │ │ ├── MapFileSource.java │ │ │ ├── MetafilesDatasetSource.java │ │ │ ├── NullDataFileSink.java │ │ │ ├── NullDatasetSource.java │ │ │ ├── PatternKeyFileMapper.java │ │ │ ├── RandomAccessFileSink.java │ │ │ ├── RandomAccessFileSource.java │ │ │ ├── RandomAccessible.java │ │ │ ├── S3FileSource.java │ │ │ ├── SimpleDatasetSource.java │ │ │ ├── SourceLocationsConfig.java │ │ │ ├── SourceUtils.java │ │ │ ├── StagedDatasetSource.java │ │ │ ├── TransformedDatasetSource.java │ │ │ ├── TransformedDatasetSourceConfig.java │ │ │ ├── URIDataFileSink.java │ │ │ └── URIDataFileSource.java │ │ │ ├── stats │ │ │ ├── MR4CStats.java │ │ │ ├── NoOpStatsClient.java │ │ │ ├── StatsClient.java │ │ │ └── StatsTimer.java │ │ │ └── util │ │ │ ├── CollectionUtils.java │ │ │ ├── CombinatoricUtils.java │ │ │ ├── CustomFormat.java │ │ │ ├── FileFinder.java │ │ │ ├── FinalMonitor.java │ │ │ ├── MR4CLogging.java │ │ │ ├── NamespacedProperties.java │ │ │ ├── Partitioner.java │ │ │ ├── PathUtils.java │ │ │ └── SetAnalysis.java │ └── resources │ │ └── mr4c-hadoop-default.xml ├── test │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── mr4c │ │ │ ├── AlgoRunnerTest.java │ │ │ ├── algorithm │ │ │ ├── AlgorithmDataTest.java │ │ │ ├── AlgorithmDataTestUtils.java │ │ │ └── AlgorithmSchemaTest.java │ │ │ ├── config │ │ │ ├── ConfigDescriptorTest.java │ │ │ ├── ConfigUtilsTest.java │ │ │ ├── algorithm │ │ │ │ ├── AlgoConfigTestUtils.java │ │ │ │ ├── AlgorithmConfigTest.java │ │ │ │ └── DimensionConfigTest.java │ │ │ ├── category │ │ │ │ ├── CategoryBuilderTest.java │ │ │ │ ├── CategoryConfigTest.java │ │ │ │ ├── CategoryParserTest.java │ │ │ │ ├── MR4CConfigBuilderTest.java │ │ │ │ ├── MR4CConfigTest.java │ │ │ │ ├── TestCategoryInfo.java │ │ │ │ └── TestCategorySystemData.java │ │ │ ├── diff │ │ │ │ ├── DiffConfigTest.java │ │ │ │ └── DiffConfigTestUtils.java │ │ │ ├── execution │ │ │ │ ├── ConfigTestUtils.java │ │ │ │ ├── DatasetConfigTest.java │ │ │ │ ├── DirectoryConfigTest.java │ │ │ │ ├── ExecutionConfigTest.java │ │ │ │ ├── LocationsConfigTest.java │ │ │ │ ├── MapConfigTest.java │ │ │ │ └── PatternMapperConfigTest.java │ │ │ ├── resources │ │ │ │ ├── LimitSourceTest.java │ │ │ │ ├── ResourceConfigTest.java │ │ │ │ ├── ResourceLimitTest.java │ │ │ │ ├── ResourceRequestTest.java │ │ │ │ └── TestResourceInfo.java │ │ │ ├── site │ │ │ │ ├── ClusterConfigTest.java │ │ │ │ ├── SiteConfigTest.java │ │ │ │ └── SiteConfigTestUtils.java │ │ │ └── test │ │ │ │ ├── AlgoTestConfigTest.java │ │ │ │ └── AlgoTestConfigTestUtils.java │ │ │ ├── content │ │ │ ├── RelativeContentFactoryTest.java │ │ │ └── S3CredentialsTest.java │ │ │ ├── dataset │ │ │ ├── DataFileTest.java │ │ │ ├── DatasetDiffTest.java │ │ │ ├── DatasetTest.java │ │ │ ├── DatasetTestUtils.java │ │ │ ├── DatasetTransformerTest.java │ │ │ └── LogsDatasetBuilderTest.java │ │ │ ├── hadoop │ │ │ ├── ClusterTest.java │ │ │ ├── DataKeyListTest.java │ │ │ ├── DataLocalizerTest.java │ │ │ ├── HadoopTestBinding.java │ │ │ ├── HadoopTestUtils.java │ │ │ ├── MR4CArgumentParserTest.java │ │ │ ├── MR4CGenericOptionsParserTest.java │ │ │ ├── MR4CGenericOptionsTest.java │ │ │ ├── MR4CInputFormatTest.java │ │ │ ├── MR4CInputSplitTest.java │ │ │ ├── MR4CMRJobTest.java │ │ │ ├── MR4CMapperTest.java │ │ │ ├── MR4CRecordWriterTest.java │ │ │ ├── MR4CReducerTest.java │ │ │ ├── StaticHadoopTestBinder.java.mrv1 │ │ │ ├── StaticHadoopTestBinder.java.yarn │ │ │ ├── mrv1 │ │ │ │ └── MRv1TestBinding.java │ │ │ └── yarn │ │ │ │ └── YarnTestBinding.java │ │ │ ├── keys │ │ │ ├── BasicDataKeyFilterTest.java │ │ │ ├── BasicElementFilterTest.java │ │ │ ├── CompoundDataKeyTest.java │ │ │ ├── DataKeyComparatorTest.java │ │ │ ├── DataKeyDimensionTest.java │ │ │ ├── DataKeyElementTest.java │ │ │ ├── DataKeyUtilsTest.java │ │ │ ├── DimensionBasedKeyFilterTest.java │ │ │ ├── ElementTransformerTest.java │ │ │ ├── KeyDimensionPartitionerTest.java │ │ │ ├── KeyTransformerTest.java │ │ │ ├── KeyspaceDimensionTest.java │ │ │ ├── KeyspacePartitionerTest.java │ │ │ ├── KeyspaceTest.java │ │ │ └── SimpleDataKeyTest.java │ │ │ ├── mbtiles │ │ │ ├── MBTilesFileTest.java │ │ │ ├── MBTilesTestUtil.java │ │ │ ├── TileFormatTest.java │ │ │ ├── TileKeyTest.java │ │ │ └── TileTest.java │ │ │ ├── message │ │ │ └── MessageTest.java │ │ │ ├── metadata │ │ │ ├── MetadataArrayTest.java │ │ │ ├── MetadataFieldTest.java │ │ │ ├── MetadataKeyExtractorTest.java │ │ │ ├── MetadataKeyTest.java │ │ │ ├── MetadataListTest.java │ │ │ └── MetadataMapTest.java │ │ │ ├── nativec │ │ │ ├── ExternalAlgorithmDataSerializerTest.java │ │ │ ├── ExternalAlgorithmSerializerTest.java │ │ │ ├── ExternalDatasetSerializerTest.java │ │ │ └── jna │ │ │ │ └── JnaExternalEntryTest.java │ │ │ ├── serialize │ │ │ ├── bean │ │ │ │ ├── BeanBasedAlgorithmSerializerTest.java │ │ │ │ ├── BeanBasedDatasetSerializerTest.java │ │ │ │ ├── BeanBasedKeyspaceSerializerTest.java │ │ │ │ ├── algorithm │ │ │ │ │ └── AlgorithmSchemaBeanTest.java │ │ │ │ ├── dataset │ │ │ │ │ ├── DataFileBeanTest.java │ │ │ │ │ └── DatasetBeanTest.java │ │ │ │ ├── keys │ │ │ │ │ ├── DataKeyBeanTest.java │ │ │ │ │ └── DataKeyElementBeanTest.java │ │ │ │ └── metadata │ │ │ │ │ ├── MetadataArrayBeanTest.java │ │ │ │ │ ├── MetadataFieldBeanTest.java │ │ │ │ │ ├── MetadataKeyBeanTest.java │ │ │ │ │ ├── MetadataListBeanTest.java │ │ │ │ │ └── MetadataMapBeanTest.java │ │ │ └── json │ │ │ │ ├── JsonAlgorithmBeanSerializerTest.java │ │ │ │ ├── JsonConfigSerializerTest.java │ │ │ │ ├── JsonDatasetBeanSerializerTest.java │ │ │ │ ├── JsonKeyspaceBeanSerializerTest.java │ │ │ │ └── JsonPropertiesSerializerTest.java │ │ │ ├── sources │ │ │ ├── ArchiveDatasetSourceTest.java │ │ │ ├── ArchiveSourceTester.java │ │ │ ├── BinaryDatasetSourceTest.java │ │ │ ├── CompositeKeyFileMapperTest.java │ │ │ ├── DiskFileSourceTest.java │ │ │ ├── FileSourceTester.java │ │ │ ├── FilesDatasetSourceTest.java │ │ │ ├── HDFSFileSourceTest.java │ │ │ ├── HeterogenousFileSourceTest.java │ │ │ ├── InMemoryArchiveSourceTest.java │ │ │ ├── InMemoryFileSourceTest.java │ │ │ ├── LogsDatasetSourceTest.java │ │ │ ├── MBTilesDatasetSourceTest.java │ │ │ ├── MapFileSourceDFSTest.java │ │ │ ├── MapFileSourceLocalTest.java │ │ │ ├── MetafilesDatasetSourceTest.java │ │ │ ├── PatternKeyFileMapperTest.java │ │ │ ├── RandomAccessFileSinkTest.java │ │ │ ├── RandomAccessFileSourceTest.java │ │ │ ├── SimpleDatasetSourceTest.java │ │ │ ├── SourceTestUtils.java │ │ │ ├── SourceUtilsTest.java │ │ │ ├── StagedDatasetSourceTest.java │ │ │ └── TransformedDatasetSourceTest.java │ │ │ ├── testing │ │ │ └── TestDataManager.java │ │ │ ├── testingv2 │ │ │ └── AlgorithmTestBase.java │ │ │ └── util │ │ │ ├── ByteBufferInputStreamTest.java │ │ │ ├── CollectionUtilsTest.java │ │ │ ├── CombinatoricUtilsTest.java │ │ │ ├── CustomFormatTest.java │ │ │ ├── MR4CLoggingTest.java │ │ │ ├── NamespacedPropertiesTest.java │ │ │ ├── PartitionerTest.java │ │ │ ├── PathUtilsTest.java │ │ │ └── SetAnalysisTest.java │ └── resources │ │ └── empty.jar ├── third_party │ ├── etsy │ │ ├── LICENSE │ │ ├── README.google │ │ └── src │ │ │ └── java │ │ │ └── com │ │ │ └── google │ │ │ └── mr4c │ │ │ └── stats │ │ │ └── StatsdClient.java │ ├── hadoop │ │ ├── LICENSE │ │ ├── README.google │ │ └── test │ │ │ └── java │ │ │ └── org │ │ │ └── apache │ │ │ └── hadoop │ │ │ └── net │ │ │ └── StaticMapping.java │ └── stack_overflow │ │ ├── LICENSE │ │ ├── README.google │ │ └── src │ │ └── java │ │ └── com │ │ └── google │ │ └── mr4c │ │ └── util │ │ └── ByteBufferInputStream.java └── tools │ ├── build_mrv1 │ └── build_yarn ├── native ├── LICENSE ├── bin │ ├── post_install │ └── pre_remove ├── build.properties ├── build.xml ├── conf │ ├── log4cxx.properties │ └── mr4c-ld.conf ├── conf_docs │ ├── Doxyfile │ ├── doxygen_footer.html │ └── doxygen_main.tmpl ├── makefile ├── src │ └── cpp │ │ ├── api │ │ ├── algo_dev_api.h │ │ ├── algorithm │ │ │ ├── Algorithm.h │ │ │ ├── AlgorithmAutoRegister.h │ │ │ ├── AlgorithmConfig.h │ │ │ ├── AlgorithmData.h │ │ │ ├── AlgorithmRegistry.h │ │ │ ├── AlgorithmRunner.h │ │ │ └── algorithm_api.h │ │ ├── catalog │ │ │ ├── DimensionCatalog.h │ │ │ ├── ImageTypes.h │ │ │ └── catalog_api.h │ │ ├── context │ │ │ ├── AlgorithmContext.h │ │ │ ├── Logger.h │ │ │ ├── Message.h │ │ │ ├── MessageConsumer.h │ │ │ ├── ProgressReporter.h │ │ │ └── context_api.h │ │ ├── dataset │ │ │ ├── DataFile.h │ │ │ ├── DataFileSink.h │ │ │ ├── DataFileSource.h │ │ │ ├── Dataset.h │ │ │ ├── DatasetContext.h │ │ │ ├── LocalDataFileSink.h │ │ │ ├── LocalDataFileSource.h │ │ │ ├── LocalTempFile.h │ │ │ ├── RandomAccessFile.h │ │ │ ├── SimpleDataFileSource.h │ │ │ ├── WritableRandomAccessFile.h │ │ │ └── dataset_api.h │ │ ├── error │ │ │ ├── Error.h │ │ │ ├── ErrorReporter.h │ │ │ ├── JsonErrorSerializer.h │ │ │ └── error_api.h │ │ ├── external │ │ │ ├── CExternalAlgorithm.h │ │ │ ├── CExternalAlgorithmData.h │ │ │ ├── CExternalContext.h │ │ │ ├── CExternalDataFile.h │ │ │ ├── CExternalDataFileSink.h │ │ │ ├── CExternalDataFileSource.h │ │ │ ├── CExternalDataset.h │ │ │ ├── CExternalEntry.h │ │ │ ├── CExternalRandomAccessFileSink.h │ │ │ ├── CExternalRandomAccessFileSource.h │ │ │ ├── ExternalAlgorithm.h │ │ │ ├── ExternalAlgorithmData.h │ │ │ ├── ExternalAlgorithmDataSerializer.h │ │ │ ├── ExternalAlgorithmSerializer.h │ │ │ ├── ExternalContext.h │ │ │ ├── ExternalDataFile.h │ │ │ ├── ExternalDataFileSink.h │ │ │ ├── ExternalDataFileSource.h │ │ │ ├── ExternalDataset.h │ │ │ ├── ExternalDatasetContext.h │ │ │ ├── ExternalDatasetSerializer.h │ │ │ ├── ExternalEntry.h │ │ │ ├── ExternalRandomAccessFile.h │ │ │ ├── ExternalRandomAccessFileSink.h │ │ │ ├── ExternalRandomAccessFileSource.h │ │ │ ├── capi │ │ │ │ ├── CExternalAlgorithmAPI.h │ │ │ │ ├── CExternalAlgorithmDataAPI.h │ │ │ │ ├── CExternalContextAPI.h │ │ │ │ ├── CExternalDataFileAPI.h │ │ │ │ ├── CExternalDataFileSinkAPI.h │ │ │ │ ├── CExternalDataFileSourceAPI.h │ │ │ │ ├── CExternalDatasetAPI.h │ │ │ │ ├── CExternalEntryAPI.h │ │ │ │ ├── CExternalRandomAccessFileAPI.h │ │ │ │ └── external_capi.h │ │ │ └── external_api.h │ │ ├── keys │ │ │ ├── DataKey.h │ │ │ ├── DataKeyBuilder.h │ │ │ ├── DataKeyDimension.h │ │ │ ├── DataKeyElement.h │ │ │ ├── Keyspace.h │ │ │ ├── KeyspaceBuilder.h │ │ │ ├── KeyspaceDimension.h │ │ │ └── keys_api.h │ │ ├── metadata │ │ │ ├── MetadataArray.h │ │ │ ├── MetadataElement.h │ │ │ ├── MetadataField.h │ │ │ ├── MetadataKey.h │ │ │ ├── MetadataList.h │ │ │ ├── MetadataMap.h │ │ │ ├── Primitive.h │ │ │ └── metadata_api.h │ │ ├── mr4c_api.h │ │ ├── serialize │ │ │ ├── AlgorithmConfigSerializer.h │ │ │ ├── AlgorithmSerializer.h │ │ │ ├── DatasetSerializer.h │ │ │ ├── KeyspaceSerializer.h │ │ │ ├── PropertiesSerializer.h │ │ │ ├── Serializer.h │ │ │ ├── SerializerFactory.h │ │ │ ├── SerializerRegistry.h │ │ │ ├── json │ │ │ │ ├── JanssonUtil.h │ │ │ │ ├── JsonAlgorithmConfigSerializer.h │ │ │ │ ├── JsonAlgorithmSerializer.h │ │ │ │ ├── JsonCommonSerializer.h │ │ │ │ ├── JsonDatasetSerializer.h │ │ │ │ ├── JsonKeyspaceSerializer.h │ │ │ │ ├── JsonPropertiesSerializer.h │ │ │ │ ├── JsonSerializerFactory.h │ │ │ │ └── json_api.h │ │ │ └── serialize_api.h │ │ └── util │ │ │ ├── ArrayUtil.h │ │ │ ├── Helpers.h │ │ │ ├── IOUtil.h │ │ │ ├── MR4CEnvironment.h │ │ │ ├── MR4CLogging.h │ │ │ ├── MR4CTempFiles.h │ │ │ ├── Properties.h │ │ │ ├── StackUtil.h │ │ │ └── util_api.h │ │ └── impl │ │ ├── algorithm │ │ ├── Algorithm.cpp │ │ ├── AlgorithmAutoRegister.cpp │ │ ├── AlgorithmConfig.cpp │ │ ├── AlgorithmData.cpp │ │ ├── AlgorithmRegistry.cpp │ │ └── AlgorithmRunner.cpp │ │ ├── catalog │ │ ├── DimensionCatalog.cpp │ │ └── ImageTypes.cpp │ │ ├── context │ │ ├── AlgorithmContext.cpp │ │ ├── Logger.cpp │ │ └── Message.cpp │ │ ├── dataset │ │ ├── DataFile.cpp │ │ ├── DataFileSource.cpp │ │ ├── Dataset.cpp │ │ ├── DatasetContext.cpp │ │ ├── LocalDataFileSink.cpp │ │ ├── LocalDataFileSource.cpp │ │ ├── LocalTempFile.cpp │ │ └── SimpleDataFileSource.cpp │ │ ├── error │ │ ├── Error.cpp │ │ ├── ErrorReporter.cpp │ │ └── JsonErrorSerializer.cpp │ │ ├── external │ │ ├── CExternalAlgorithm.cpp │ │ ├── CExternalAlgorithmData.cpp │ │ ├── CExternalContext.cpp │ │ ├── CExternalDataFile.cpp │ │ ├── CExternalDataFileSink.cpp │ │ ├── CExternalDataFileSource.cpp │ │ ├── CExternalDataset.cpp │ │ ├── CExternalEntry.cpp │ │ ├── CExternalRandomAccessFileSink.cpp │ │ ├── CExternalRandomAccessFileSource.cpp │ │ ├── ExternalAlgorithm.cpp │ │ ├── ExternalAlgorithmData.cpp │ │ ├── ExternalAlgorithmDataSerializer.cpp │ │ ├── ExternalAlgorithmSerializer.cpp │ │ ├── ExternalContext.cpp │ │ ├── ExternalDataFile.cpp │ │ ├── ExternalDataFileSink.cpp │ │ ├── ExternalDataFileSource.cpp │ │ ├── ExternalDataset.cpp │ │ ├── ExternalDatasetContext.cpp │ │ ├── ExternalDatasetSerializer.cpp │ │ ├── ExternalEntry.cpp │ │ ├── ExternalRandomAccessFile.cpp │ │ ├── ExternalRandomAccessFileSink.cpp │ │ └── ExternalRandomAccessFileSource.cpp │ │ ├── keys │ │ ├── DataKey.cpp │ │ ├── DataKeyBuilder.cpp │ │ ├── DataKeyDimension.cpp │ │ ├── DataKeyElement.cpp │ │ ├── Keyspace.cpp │ │ ├── KeyspaceBuilder.cpp │ │ └── KeyspaceDimension.cpp │ │ ├── metadata │ │ ├── MetadataArray.cpp │ │ ├── MetadataElement.cpp │ │ ├── MetadataField.cpp │ │ ├── MetadataKey.cpp │ │ ├── MetadataList.cpp │ │ ├── MetadataMap.cpp │ │ └── Primitive.cpp │ │ ├── serialize │ │ ├── SerializerRegistry.cpp │ │ └── json │ │ │ ├── JanssonUtil.cpp │ │ │ ├── JsonAlgorithmConfigSerializer.cpp │ │ │ ├── JsonAlgorithmSerializer.cpp │ │ │ ├── JsonCommonSerializer.cpp │ │ │ ├── JsonDatasetSerializer.cpp │ │ │ ├── JsonKeyspaceSerializer.cpp │ │ │ ├── JsonPropertiesSerializer.cpp │ │ │ └── JsonSerializerFactory.cpp │ │ └── util │ │ ├── IOUtil.cpp │ │ ├── MR4CEnvironment.cpp │ │ ├── MR4CLogging.cpp │ │ ├── MR4CTempFiles.cpp │ │ ├── Properties.cpp │ │ └── StackUtil.cpp ├── test │ └── cpp │ │ ├── api │ │ ├── MR4CTests.h │ │ ├── algorithm │ │ │ └── AlgorithmDataTestUtil.h │ │ ├── dataset │ │ │ └── DatasetTestUtil.h │ │ ├── keys │ │ │ └── KeyspaceTestUtil.h │ │ └── multithread │ │ │ └── SimultaneousThreadRunner.h │ │ ├── suites │ │ ├── Cover.cpp │ │ ├── Local.cpp │ │ └── Suite.cpp │ │ └── tests │ │ ├── MR4CTests.cpp │ │ ├── algorithm │ │ ├── AlgorithmDataTestUtil.cpp │ │ ├── AlgorithmTests.cpp │ │ ├── TestAlgorithmConfig.cpp │ │ └── TestAlgorithmData.cpp │ │ ├── context │ │ ├── ContextTests.cpp │ │ └── TestMessage.cpp │ │ ├── dataset │ │ ├── DatasetTestUtil.cpp │ │ ├── DatasetTests.cpp │ │ ├── TestDataFile.cpp │ │ ├── TestDataset.cpp │ │ ├── TestLocalDataFileSink.cpp │ │ ├── TestLocalDataFileSource.cpp │ │ ├── TestLocalTempFile.cpp │ │ └── TestSimpleDataFileSource.cpp │ │ ├── error │ │ ├── ErrorTests.cpp │ │ ├── TestError.cpp │ │ └── TestJsonErrorSerializer.cpp │ │ ├── external │ │ ├── ExternalTests.cpp │ │ ├── TestExternalAlgorithmDataSerializer.cpp │ │ ├── TestExternalDatasetSerializer.cpp │ │ └── TestExternalEntry.cpp │ │ ├── keys │ │ ├── KeysTests.cpp │ │ ├── KeyspaceTestUtil.cpp │ │ ├── TestDataKey.cpp │ │ ├── TestDataKeyBuilder.cpp │ │ ├── TestDataKeyDimension.cpp │ │ ├── TestDataKeyElement.cpp │ │ ├── TestKeyspace.cpp │ │ ├── TestKeyspaceBuilder.cpp │ │ └── TestKeyspaceDimension.cpp │ │ ├── metadata │ │ ├── MetadataTests.cpp │ │ ├── TestMetadataArray.cpp │ │ ├── TestMetadataField.cpp │ │ ├── TestMetadataKey.cpp │ │ ├── TestMetadataList.cpp │ │ ├── TestMetadataMap.cpp │ │ └── TestPrimitive.cpp │ │ ├── multithread │ │ ├── MultithreadTests.cpp │ │ ├── SimultaneousThreadRunner.cpp │ │ ├── TestDataFileMultithread.cpp │ │ ├── TestDatasetMultithread.cpp │ │ ├── TestExternalRandomAccessFileMultithread.cpp │ │ └── TestExternalRandomAccessFileSinkMultithread.cpp │ │ ├── serialize │ │ └── json │ │ │ ├── JsonTests.cpp │ │ │ ├── TestJsonAlgorithmConfigSerializer.cpp │ │ │ ├── TestJsonAlgorithmSerializer.cpp │ │ │ ├── TestJsonDatasetSerializer.cpp │ │ │ ├── TestJsonKeyspaceSerializer.cpp │ │ │ └── TestJsonPropertiesSerializer.cpp │ │ └── util │ │ ├── TestArrayUtil.cpp │ │ ├── TestIOUtil.cpp │ │ ├── TestMR4CEnvironment.cpp │ │ ├── TestMR4CLogging.cpp │ │ ├── TestMR4CTempFiles.cpp │ │ ├── TestProperties.cpp │ │ └── UtilTests.cpp └── tools │ ├── run_coverage │ ├── run_tests │ └── test_local ├── remove_all ├── test ├── README.md ├── bin │ ├── check_mr4cref_output │ ├── configure_mr4cref_input │ ├── run_mr4cref │ ├── test_hadoop │ └── viewlog ├── conf │ ├── algo_config.json │ ├── reduce_algo_config.json │ └── site.json ├── input │ ├── 4.j2k │ ├── 8-0-4-50-6-75.j2k │ ├── 912-white-720-others.j2k │ └── back-75-14-white.j2k ├── makefile ├── openjpeg_build.sh ├── ref │ └── avg_pixels.csv ├── src │ └── cpp │ │ ├── J2kDecoder.cpp │ │ ├── J2kDecoder.h │ │ └── hello_histo.cpp ├── test │ └── cpp │ │ ├── suites │ │ ├── Local.cpp │ │ └── Suite.cpp │ │ └── tests │ │ ├── TestHisto.cpp │ │ ├── algo.json │ │ ├── algo_config.json │ │ ├── input │ │ ├── 4.j2k │ │ ├── 8-0-4-50-6-75.j2k │ │ ├── 912-white-720-others.j2k │ │ └── back-75-14-white.j2k │ │ ├── int_conf.json │ │ ├── reduce_algo.json │ │ └── reduce_algo_config.json └── test_mr4c.sh └── tutorial ├── README.md ├── UserGuide └── README.md ├── clean_all ├── example1_HelloWorld ├── README.md ├── helloworld.json ├── helloworld.sh ├── makefile └── src │ └── helloworld.cpp ├── example2_IO ├── README.md ├── changeimage.json ├── changeimage.sh ├── input │ └── test.bin ├── makefile ├── output │ └── testOut.bin └── src │ └── changeimage.cpp ├── example3_Dimensions ├── README.md ├── dimensions.json ├── dimensions.sh ├── input │ ├── test_1.bin │ └── test_2.bin ├── makefile └── src │ └── dimensions.cpp ├── example4_ExternalLib ├── README.md ├── imageinfo.json ├── imageinfo.sh ├── input │ └── sample.tif ├── makefile └── src │ └── imageinfo.cpp ├── example5_json ├── README.md ├── input │ └── s01_20140120T161125Z_metadata.txt ├── json.json ├── json.sh ├── makefile └── src │ └── json.cpp ├── example6_ImageAlgo ├── README.md ├── content.json ├── content.sh ├── input │ ├── s00001_20140209_145912_mul_d2_0005.tif │ ├── s00001_20140213_071323_mul_d2_0005.tif │ └── s01_20140214T071847Z_ms_d2_0005.tif ├── makefile ├── output │ ├── s00001_20140209_145912_mul_d2_0005_class.tif │ ├── s00001_20140213_071323_mul_d2_0005_class.tif │ └── s01_20140214T071847Z_ms_d2_0005_class.tif └── src │ └── content.cpp ├── example7_yarn ├── README.md ├── input │ ├── s01_20140409T084855Z_ms_d1_0001.tif │ ├── s01_20140409T084855Z_ms_d1_0002.tif │ ├── s01_20140409T084855Z_ms_d1_0003.tif │ ├── s01_20140409T084855Z_ms_d1_0004.tif │ └── s01_20140409T084855Z_ms_d1_0005.tif ├── makefile ├── map.json ├── mapReduce.sh ├── reduce.json ├── site.json └── src │ ├── map.cpp │ └── reduce.cpp ├── example8_mbtiles ├── README.md ├── conf │ ├── algo.properties │ ├── exe.json │ └── runtime.properties ├── input.tif └── run └── example9_RandomAccess ├── README.md ├── RandomAccess.json ├── RandomAccess.sh ├── input ├── s01_20140409T084855Z_ms_d1_0001.tif ├── s01_20140409T084855Z_ms_d1_0002.tif ├── s01_20140409T084855Z_ms_d1_0003.tif ├── s01_20140409T084855Z_ms_d1_0004.tif └── s01_20140409T084855Z_ms_d1_0005.tif ├── makefile ├── site.json └── src └── RandomAccess.cpp /build_all: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | cd native 6 | make 7 | cd .. 8 | 9 | cd geospatial 10 | make 11 | cd .. 12 | 13 | cd java 14 | tools/build_yarn 15 | cd .. 16 | 17 | -------------------------------------------------------------------------------- /clean_all: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | cd native 6 | make clean 7 | cd .. 8 | 9 | cd geospatial 10 | make clean 11 | cd .. 12 | 13 | cd java 14 | ant clean 15 | cd .. 16 | 17 | -------------------------------------------------------------------------------- /deploy_all: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Deploys MR4C to /usr/local/mr4c 4 | 5 | set -e 6 | 7 | export MR4C_HOME=/usr/local/mr4c 8 | 9 | cd native 10 | sudo make deploy 11 | cd .. 12 | sudo /usr/local/mr4c/native/bin/post_install 13 | 14 | cd geospatial 15 | sudo make deploy 16 | cd .. 17 | sudo /usr/local/mr4c/geospatial/bin/post_install 18 | 19 | cd java 20 | sudo ant deploy 21 | cd .. 22 | sudo /usr/local/mr4c/java/bin/post_install 23 | 24 | 25 | -------------------------------------------------------------------------------- /geospatial/bin/post_install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | THIS=`readlink -f $0` 4 | BIN=`dirname $THIS` 5 | MR4C_GEO=`dirname $BIN` 6 | 7 | ln -s -f $MR4C_GEO/dist/libmr4cgeo.so /usr/local/lib/libmr4cgeo.so 8 | ln -s -f $MR4C_GEO/include /usr/include/mr4c_geospatial 9 | ln -s -f $MR4C_GEO/conf/mr4c-ld.conf /etc/ld.so.conf.d/mr4c-geo-ld.conf 10 | 11 | /sbin/ldconfig 12 | -------------------------------------------------------------------------------- /geospatial/bin/pre_remove: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm -f /usr/local/lib/libmr4cgeo.so 4 | rm -f /usr/include/mr4c_geospatial 5 | rm -f /etc/ld.so.conf.d/mr4c-geo-ld.conf 6 | -------------------------------------------------------------------------------- /geospatial/build.properties: -------------------------------------------------------------------------------- 1 | tools.dir=tools 2 | 3 | # override in build.local.properties 4 | mr4c.native.root=${basedir}/../native 5 | 6 | mr4c.native.lib.dir=${mr4c.native.root}/dist 7 | 8 | 9 | -------------------------------------------------------------------------------- /geospatial/conf/mr4c-ld.conf: -------------------------------------------------------------------------------- 1 | /usr/local/mr4c/geospatial/dist 2 | -------------------------------------------------------------------------------- /geospatial/conf_docs/doxygen_footer.html: -------------------------------------------------------------------------------- 1 | 2 |
Copyright 2014 Google Inc. All rights reserved.
9 |