aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/services/cluster/hadoop/default.nix')
-rw-r--r--nixpkgs/nixos/modules/services/cluster/hadoop/default.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix b/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
new file mode 100644
index 00000000000..f0f5a6ecbfc
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
@@ -0,0 +1,60 @@
+{ config, lib, pkgs, ...}:
+
+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.users ||
+ builtins.hasAttr "hdfs" config.users.users) {
+ users.groups.hadoop = {
+ gid = config.ids.gids.hadoop;
+ };
+ })
+
+ ];
+}