32 lines
		
	
	
		
			884 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			884 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ hadoop, pkgs }:
 | 
						|
let
 | 
						|
  propertyXml = name: value: ''
 | 
						|
    <property>
 | 
						|
      <name>${name}</name>
 | 
						|
      <value>${builtins.toString value}</value>
 | 
						|
    </property>
 | 
						|
  '';
 | 
						|
  siteXml = fileName: properties: pkgs.writeTextDir fileName ''
 | 
						|
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
						|
    <!-- generated by NixOS -->
 | 
						|
    <configuration>
 | 
						|
      ${builtins.concatStringsSep "\n" (pkgs.lib.mapAttrsToList propertyXml properties)}
 | 
						|
    </configuration>
 | 
						|
  '';
 | 
						|
  userFunctions = ''
 | 
						|
    hadoop_verify_logdir() {
 | 
						|
      echo Skipping verification of log directory
 | 
						|
    }
 | 
						|
  '';
 | 
						|
in
 | 
						|
pkgs.buildEnv {
 | 
						|
  name = "hadoop-conf";
 | 
						|
  paths = [
 | 
						|
    (siteXml "core-site.xml" hadoop.coreSite)
 | 
						|
    (siteXml "hdfs-site.xml" hadoop.hdfsSite)
 | 
						|
    (siteXml "mapred-site.xml" hadoop.mapredSite)
 | 
						|
    (siteXml "yarn-site.xml" hadoop.yarnSite)
 | 
						|
    (pkgs.writeTextDir "hadoop-user-functions.sh" userFunctions)
 | 
						|
  ];
 | 
						|
}
 |