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