1# This only tests if YARN is able to start its services
2import ../make-test-python.nix ({...}: {
3 nodes = {
4 resourcemanager = {pkgs, ...}: {
5 services.hadoop.package = pkgs.hadoop;
6 services.hadoop.yarn.resourcemanager.enable = true;
7 services.hadoop.yarnSite = {
8 "yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler";
9 };
10 };
11 nodemanager = {pkgs, ...}: {
12 services.hadoop.package = pkgs.hadoop;
13 services.hadoop.yarn.nodemanager.enable = true;
14 services.hadoop.yarnSite = {
15 "yarn.resourcemanager.hostname" = "resourcemanager";
16 "yarn.nodemanager.log-dirs" = "/tmp/userlogs";
17 };
18 };
19
20 };
21
22 testScript = ''
23 start_all()
24
25 resourcemanager.wait_for_unit("yarn-resourcemanager")
26 resourcemanager.wait_for_unit("network.target")
27 resourcemanager.wait_for_open_port(8031)
28 resourcemanager.wait_for_open_port(8088)
29
30 nodemanager.wait_for_unit("yarn-nodemanager")
31 nodemanager.wait_for_unit("network.target")
32 nodemanager.wait_for_open_port(8042)
33
34 resourcemanager.succeed("curl -f http://localhost:8088")
35 nodemanager.succeed("curl -f http://localhost:8042")
36 '';
37})