Details
Description
Hadoop compiles flawlessly on Linux whereas, one has to hack around to compile it on Windows. The reason is obvious, there's a very large proportion of C/C++ codebase that's written in a platform specific manner that's amenable to Linux.
Thus, compiling Hadoop on Windows involves using the MinGW or the Cygwin toolchains. This third party dependency might be seen as a risk for those who want to deploy Hadoop on Windows nodes in production. The primary reason for this is that the MinGW/Cygwin runtimes on Windows don't produce core dumps. Whereas the Visual C++ runtime is able to do so, which greatly enables debugging.
Another reason to use the Visual C++ compiler for compiling Hadoop on Windows is that Visual C++ is native to Windows and one will have access to a large collection of tools that can be used for instrumentation, telemetry and fine-tuning the settings of Hadoop to run better on Windows.
Modern C++ has a plethora of APIs that one can use to write safe, cross-platform code, which can be leveraged to refactor the existing Linux specific code, thereby enabling compilation on Windows using the native Visual C++ compiler.
Attachments
Issue Links
- blocks
-
HADOOP-18133 Add Dockerfile for Windows 10
- Resolved
- is a parent of
-
HDFS-16300 Use libcrypto in Windows for libhdfspp
- Resolved
-
HDFS-16665 Fix duplicate sources for hdfspp_test_shim_static
- Resolved
-
HADOOP-17196 Fix C/C++ standard warnings
- Resolved
-
HADOOP-18357 Retarget solution file to VS2019
- Resolved
-
HADOOP-18428 Parameterize platform toolset version
- Resolved
-
HDFS-16178 Make recursive rmdir in libhdfs++ cross platform
- Resolved
-
HDFS-16205 Make hdfs_allowSnapshot tool cross platform
- Resolved
-
HDFS-16564 Use uint32_t for hdfs_find
- Resolved
-
HDFS-16654 Link OpenSSL lib for CMake deps check
- Resolved
-
HDFS-16667 Use malloc for buffer allocation in uriparser2
- Resolved
-
HDFS-16680 Skip libhdfspp Valgrind tests on Windows
- Resolved
-
HDFS-16681 Do not pass GCC flags for MSVC in libhdfspp
- Resolved
-
HDFS-15385 Upgrade boost library to 1.72
- Resolved
-
HDFS-15740 Make basename cross-platform
- Resolved
-
HDFS-15843 [libhdfs++] Make write cross platform
- Resolved
-
HDFS-15909 Make fnmatch cross platform
- Resolved
-
HDFS-15955 Make explicit_bzero cross platform
- Resolved
-
HDFS-15962 Make strcasecmp cross platform
- Resolved
-
HDFS-15971 Make mkstemp cross platform
- Resolved
-
HDFS-15976 Make mkdtemp cross platform
- Resolved
-
HDFS-16251 Make hdfs_cat tool cross platform
- Resolved
-
HDFS-16260 Make hdfs_deleteSnapshot tool cross platform
- Resolved
-
HDFS-16267 Make hdfs_df tool cross platform
- Resolved
-
HDFS-16278 Make HDFS snapshot tools cross platform
- Resolved
-
HDFS-16285 Make HDFS ownership tools cross platform
- Resolved
-
HDFS-16407 Make hdfs_du tool cross platform
- Resolved
-
HDFS-16419 Make HDFS data transfer tools cross platform
- Resolved
-
HDFS-16445 Make HDFS count, mkdir, rm cross platform
- Resolved
-
HDFS-16462 Make HDFS get tool cross platform
- Resolved
-
HDFS-16463 Make dirent cross platform compatible
- Resolved
-
HDFS-16464 Create only libhdfspp static libraries for Windows
- Resolved
-
HDFS-16465 Remove redundant strings.h inclusions
- Resolved
-
HDFS-16466 Implement Linux permission flags on Windows
- Resolved
-
HDFS-16467 Ensure Protobuf generated headers are included first
- Resolved
-
HDFS-16468 Define ssize_t for Windows
- Resolved
-
HDFS-16469 Locate protoc-gen-hrpc across platforms
- Resolved
-
HDFS-16470 Make HDFS find tool cross platform
- Resolved
-
HDFS-16471 Make HDFS ls tool cross platform
- Resolved
-
HDFS-16472 Make HDFS setrep tool cross platform
- Resolved
-
HDFS-16473 Make HDFS stat tool cross platform
- Resolved
-
HDFS-16474 Make HDFS tail tool cross platform
- Resolved
-
HDFS-16666 Pass CMake args for Windows in pom.xml
- Resolved
-
YARN-11078 Set env vars in a cross platform compatible way
- Resolved
-
HDFS-15903 Refactor X-Platform library
- Resolved
- is blocked by
-
HADOOP-18729 Fix mvnsite on Windows 10
- Resolved
-
HADOOP-17399 lz4 sources missing for native Visual Studio project
- Resolved
- relates to
-
HADOOP-13223 winutils.exe is a bug nexus and should be killed with an axe.
- Open
-
HDFS-15712 Upgrade googletest to 1.10.0
- Resolved