Currently .proto files use java_package to specify java packages in proto files, but namespace are not specified for other languages such as cpp, this causes name collision in cpp. we can add namespace declarations to avoid this.
In Java, the package specifier is used as the Java package, unless you explicitly provide a option java_package in your .proto file. So the original java package will not be affected.
About namespace name, how about "hadoop.common"(hadoop::common in cpp) for all common sub-project proto files, and "hadoop.hdfs"(hadoop::hdfs in cpp) for all hdfs sub-project proto files?