summary refs log tree commit diff
path: root/nixos/modules/services/cluster/hadoop/default.nix
diff options
context:
space:
mode:
authorAllan Espinosa <allan.espinosa@outlook.com>2018-05-20 21:09:31 -0400
committerAllan Espinosa <allan.espinosa@outlook.com>2018-06-29 23:14:02 -0400
commit0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662 (patch)
treeef0f30b3a0b9e1f6a6f29c5f3913f904f8f58a66 /nixos/modules/services/cluster/hadoop/default.nix
parent978397d358ba94791bef736f19d3171a13bc03dc (diff)
downloadnixpkgs-0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662.tar
nixpkgs-0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662.tar.gz
nixpkgs-0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662.tar.bz2
nixpkgs-0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662.tar.lz
nixpkgs-0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662.tar.xz
nixpkgs-0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662.tar.zst
nixpkgs-0c10b2baa6bf61c8ddaed7cdb6c2f2dbaab42662.zip
nixos/hadoop: add hadoop module (hdfs, yarn)
Diffstat (limited to 'nixos/modules/services/cluster/hadoop/default.nix')
-rw-r--r--nixos/modules/services/cluster/hadoop/default.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/nixos/modules/services/cluster/hadoop/default.nix b/nixos/modules/services/cluster/hadoop/default.nix
new file mode 100644
index 00000000000..53c13fd0603
--- /dev/null
+++ b/nixos/modules/services/cluster/hadoop/default.nix
@@ -0,0 +1,63 @@
+{ config, lib, pkgs, ...}:
+let 
+  cfg = config.services.hadoop;
+  hadoopConf = import ./conf.nix { hadoop = cfg; pkgs = pkgs; };
+in
+with lib;
+{
+  imports = [ ./yarn.nix ./hdfs.nix ];
+
+  options.services.hadoop = {
+    coreSite = mkOption {
+      default = {};
+      example = {
+        "fs.defaultFS" = "hdfs://localhost";
+      };
+      description = "Hadoop core-site.xml definition";
+    };
+
+    hdfsSite = mkOption {
+      default = {};
+      example = {
+        "dfs.nameservices" = "namenode1";
+      };
+      description = "Hadoop hdfs-site.xml definition";
+    };
+
+    mapredSite = mkOption {
+      default = {};
+      example = {
+        "mapreduce.map.cpu.vcores" = "1";
+      };
+      description = "Hadoop mapred-site.xml definition";
+    };
+
+    yarnSite = mkOption {
+      default = {};
+      example = {
+        "yarn.resourcemanager.ha.id" = "resourcemanager1";
+      };
+      description = "Hadoop yarn-site.xml definition";
+    };
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.hadoop;
+      defaultText = "pkgs.hadoop";
+      example = literalExample "pkgs.hadoop";
+      description = ''
+      '';
+    };
+  };
+
+
+  config = mkMerge [
+    (mkIf (builtins.hasAttr "yarn" config.users.extraUsers ||
+           builtins.hasAttr "hdfs" config.users.extraUsers ) {
+      users.extraGroups.hadoop = {
+        gid = config.ids.gids.hadoop;
+      };
+    })
+
+  ];
+}