| 
									
										
										
										
											2019-12-16 21:43:19 +01:00
										 |  |  | import ../make-test-python.nix ({...}: { | 
					
						
							| 
									
										
										
										
											2018-05-20 21:09:31 -04:00
										 |  |  |   nodes = { | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     namenode = {pkgs, ...}: { | 
					
						
							| 
									
										
										
										
											2018-05-20 21:09:31 -04:00
										 |  |  |       services.hadoop = { | 
					
						
							|  |  |  |         package = pkgs.hadoop_3_1; | 
					
						
							|  |  |  |         hdfs.namenode.enabled = true; | 
					
						
							|  |  |  |         coreSite = { | 
					
						
							|  |  |  |           "fs.defaultFS" = "hdfs://namenode:8020"; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |         hdfsSite = { | 
					
						
							|  |  |  |           "dfs.replication" = 1; | 
					
						
							|  |  |  |           "dfs.namenode.rpc-bind-host" = "0.0.0.0"; | 
					
						
							|  |  |  |           "dfs.namenode.http-bind-host" = "0.0.0.0"; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |       networking.firewall.allowedTCPPorts = [ | 
					
						
							|  |  |  |         9870 # namenode.http-address | 
					
						
							|  |  |  |         8020 # namenode.rpc-address | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     datanode = {pkgs, ...}: { | 
					
						
							| 
									
										
										
										
											2018-05-20 21:09:31 -04:00
										 |  |  |       services.hadoop = { | 
					
						
							|  |  |  |         package = pkgs.hadoop_3_1; | 
					
						
							|  |  |  |         hdfs.datanode.enabled = true; | 
					
						
							|  |  |  |         coreSite = { | 
					
						
							|  |  |  |           "fs.defaultFS" = "hdfs://namenode:8020"; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |       networking.firewall.allowedTCPPorts = [ | 
					
						
							|  |  |  |         9864 # datanode.http.address | 
					
						
							|  |  |  |         9866 # datanode.address | 
					
						
							|  |  |  |         9867 # datanode.ipc.address | 
					
						
							|  |  |  |       ]; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							| 
									
										
										
										
											2019-12-16 21:43:19 +01:00
										 |  |  |     start_all() | 
					
						
							| 
									
										
										
										
											2018-05-20 21:09:31 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-16 21:43:19 +01:00
										 |  |  |     namenode.wait_for_unit("hdfs-namenode") | 
					
						
							|  |  |  |     namenode.wait_for_unit("network.target") | 
					
						
							|  |  |  |     namenode.wait_for_open_port(8020) | 
					
						
							|  |  |  |     namenode.wait_for_open_port(9870) | 
					
						
							| 
									
										
										
										
											2018-05-20 21:09:31 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-16 21:43:19 +01:00
										 |  |  |     datanode.wait_for_unit("hdfs-datanode") | 
					
						
							|  |  |  |     datanode.wait_for_unit("network.target") | 
					
						
							|  |  |  |     datanode.wait_for_open_port(9864) | 
					
						
							|  |  |  |     datanode.wait_for_open_port(9866) | 
					
						
							|  |  |  |     datanode.wait_for_open_port(9867) | 
					
						
							| 
									
										
										
										
											2018-05-20 21:09:31 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-16 10:01:10 -07:00
										 |  |  |     namenode.succeed("curl -f http://namenode:9870") | 
					
						
							|  |  |  |     datanode.succeed("curl -f http://datanode:9864") | 
					
						
							| 
									
										
										
										
											2018-05-20 21:09:31 -04:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |