正式生产环境下hadoop集群的DNS+NFS+ssh免password登陆配置
博客地址:http://www.loveweir.com/
环境虚拟机centos6.5
主机名h1 IP 192.168.137.11 作为DNS FNS的server
主机名h2 IP 192.168.137.12
主机名h3 IP 192.168.137.13
建立DNS(为了代替集群改动hosts带来的大量反复工作)
1.安装DNS在h1上面
检查命令:
rpm –q bind
rpm -q bind-chroot
安装命令:
yum -y install bind bind-chroot
2. 改动/etc/named.conf
主要改动这两个地方注意红色改动的部分
listen-on port 53 { any;};
allow-query { any; };
文件全内容:
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISCBIND named(8) DNS
// server as a caching only nameserver (as a localhostDNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example namedconfiguration files.
//
options {
listen-onport 53 { any; };
listen-on-v6port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursionyes;
dnssec-enableyes;
dnssec-validationyes;
dnssec-lookasideauto;
/* Path toISC DLV key */
bindkeys-file"/etc/named.iscdlv.key";
managed-keys-directory"/var/named/dynamic";
};
logging {
channeldefault_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file"named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
3. 改动/etc/named.rfc1912.zones
正反配置红色部分
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zonesrecommended by
// RFC 1912 section 4.1 : localhost TLDs and addresszones
// andhttp://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example namedconfiguration files.
//
zone "localhost.localdomain" IN {
type master;
file"named.localhost";
allow-update{ none; };
};
zone "localhost" IN {
type master;
file"named.localhost";
allow-update{ none; };
};
zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {
type master;
file"named.loopback";
allow-update{ none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file"named.loopback";
allow-update{ none; };
};
zone "0.in-addr.arpa" IN {
type master;
file"named.empty";
allow-update{ none; };
};
zone "weir.com" IN {
type master;
file "weir.com.zone";
allow-update { none; };
};
zone "137.168.192.in-addr.arpa" IN {
type master;
file"137.168.192.in-addr.zone";
allow-update{ none; };
};
4.在/var/named文件夹下创建weir.com.zone和137.168.192.in-addr.zon文件(这里非常重要每一个地方都要看清楚怎么设置)
这里是将named.localhost 拷贝之后做的改动
cp -p named.localhost weir.com.zone
cp -p named.localhost 137.168.192.in-addr.zone
weir.com.zone文件内容:
$TTL 86400
@ IN SOA h1.weir.com. chizk.www.weir.com. (
0 ; serial (d.adams)
1D ; refresh
1H ; retry
1W ; expiry
3H ) ; minimum
@ IN NS h1.weir.com.
h1.weir.com. IN A 192.168.137.11
h2.weir.com. IN A 192.168.137.12
h3.weir.com. IN A 192.168.137.13
h4.weir.com. IN A 192.168.137.14
h5.weir.com. IN A 192.168.137.15
h6.weir.com. IN A 192.168.137.16
137.168.192.in-addr.zone文件内容:
$TTL 86400
@ IN SOA h1.weir.com. chizk.www.weir.com. (
0 ; serial (d.adams)
1D ; refresh
1H ; retry
1W ; expiry
3H ) ; minimum
@ IN NS h1.weir.com.
11 IN PTR h1.weir.com.
12 IN PTR h2.weir.com.
13 IN PTR h3.weir.com.
14 IN PTR h4.weir.com.
15 IN PTR h5.weir.com.
16 IN PTR h6.weir.com.
改动正向文件和反向文件属组
[root@h1 named]# chgrp named weir.com.rev
[root@h1 named]# chgrp named weir.com.zone
5. 加入DNS域名serverip(这里注意改动/etc/resolv.conf是无用的,重新启动电脑就失效了)
先说h1电脑,由于是DNSserver所以我没有配置这一项 。这里可能与我的网络连接有关系
以下说其它节点都例如以下配置:
这里须要找到/etc/sysconfig/network-scripts/ifcfg-eth0
主要是增加DNS1=192.168.137.11
完整内容:
DEVICE=eth0
TYPE=Ethernet
UUID=5a32d5ab-af65-44bc-9d21-c757fb44add3
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.137.12
PREFIX=16
GATEWAY=192.168.137.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=08:00:27:17:25:7F
LAST_CONNECT=1402057925
DNS1=192.168.137.11
6.启动DNS(防火墙关闭)
service named start
自己主动开启:
查看:chkconfig –listnamed
设置启动级别:chkconfig --level 123456 named on
7.測试:
nslookup h1.weir.com
nslookup 192.168.137.12
host h1.weir.com
host 192.168.137.12
至此DNS配置完毕。
配置NFS
rw |
同意NFS卷上的读和写请求,默认是不同意不论什么请求,还能够使用ro选项 |
sync |
仅在改动被提交到稳定的存储器后响应请求,在这个版本号及将来的版本号中,sync是默认的,假设须要async的话必须明白地指出。为了帮助系统管理员察觉到这个改变,假设既没有指定sync也没有指定async的话,“exportfs”将会给出一个警告信息 |
no_wdelay |
假设设置了async这个选项就不起作用。正常情况下,假设NFSserver怀疑有还有一个相关的写请求正在处理或立即就要达到。NFSserver将略微延迟提交写请求到磁盘,这就同意使用一个操作提交多个写请求到磁盘。这样能够改善性能。假设NFSserver接收到的主要是些独立的小请求。这个行为的确会减少性能。因此可将no_wdelay关闭。默认能够是使用wdelay选项进行明白地请求 |
no_root_squash |
从uid/gid 0到匿名的uid/gid的root_squash映射请求,no_root_squash关闭了root squashing |
insecure |
insecure选项同意NFSclient不使用NFS保留的port |
no_subtree_check |
这个选项启用了subtree检查,这样就再加入了一层安全系数,可是在某些环境下不可靠。 假设文件系统的子文件夹被导出了,可是整个文件系统是不行的,server不但必须检查訪问的是适当的文件系统中的文件(非常easy)并且还要检查导出树中的文件(比較困难),这个检查就叫做subtree_check。 为了运行这个检查,server必须提供一些关于文件位置的信息。在訪问的文件被重命名且被一个client打开时可能引起问题。(在很多简单的实例中它仍然能够工作) 假设文件系统导出时使用了no_root_squash选项(參考以下的内容)。subtree检查还可用于确保文件夹内的文件仅仅有root有权訪问,即使文件本身同意很多其它的人訪问。 |
1. 安装NFS
检查:
rpm -qa | grep nfs
rpm -qa | grep rpcbind
没有安装:
yum install nfs-utils rpcbind
2. 启动NFS
检查:
service nfs status
servicerpcbind status
启动:
service nfs start
开机自启动:
chkconfig --level 123456 nfs on
chkconfig --level 123456 rpcbindon
3. 设置共享文件夹
这里任意。比如:/home/gx
在/etc/exports 里面加入:
/home/gx *(insecure,sync,rw,no_root_squash)
重新启动rpcbind和nfs
service rpcbind restart
service nfs restart
查看一下:
showmount -elocalhost
4.其它节点(client)
建立挂载点。比方在根文件夹下mkdir/nfs_share
命令:mount -t nfs 192.168.137.11:/home/gx /nfs_share/
測试:在h1上的文件夹下创建文件在其它节点是否看得到
5开机自己主动挂载nfs共享文件夹
改动/etc/fstab文件
在最后增加:
192.168.137.11:/home/gx /nfs_share nfs defaults 1 1
#
# /etc/fstab
# Created by anaconda on Tue May 27 12:29:32 2014
#
# Accessible filesystems, by reference, are maintainedunder '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/orblkid(8) for more info
#
/dev/mapper/vg_weir-lv_root / ext4 defaults 1 1
UUID=4ea6963a-f2cd-4391-8808-d6bd76ee1125 /boot ext4 defaults 1 2
/dev/mapper/vg_weir-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
192.168.137.11:/home/gx /nfs_share nfs defaults 1 1
至此NFS配置完毕。
6.实现nfs共享ssh密钥
这里须要了解ssh免password登陆的原理。
我大致简单说一下:
ssh-keygen -t rsa 产生私钥和公钥。id_rsa(私钥)和id_rsa.pub(公钥)
比方:h1电脑须要免password登陆到h2电脑,须要在h1上面的~/.ssh/里面产生私钥和公钥 将公钥复制到h2的~/.ssh/里面而且改动名字为authorized_keys。
这样就能够用ssh 192.168.137.12 登录到h2电脑里面 第一次会提示输入password。之后就不会了。
假设想实现相互免password登陆那就是在h2上面产生公钥私钥 ,把公钥复制到h1上面
假设想实现h1到h1的免password登陆就直接拷贝公钥在自己的~/.ssh/下并取名为authorized_keys。
那么我们怎么实现nfs共享文件夹的办法来实现ssh免password登陆呢?
事实上就是把各自的公钥放在共享文件夹里面,然后让不同的机器节点来共享文件夹
里面拿公钥到自己的~/.ssh/文件夹以下就能够做到了。这样能够省去一些反复的操作。
这里有一种方式叫做链接文件命令:ln 有软连接和硬链接之分
这里最方便的做法是在h1的共享文件夹里面建立authorized_keys文件把全部节点的公钥信息都放在这里。不断累加。仅仅要有一台电脑连进来就添加这个公钥文件和新电脑的软连接设置。其它节点都不须要去配置为能够实现全部节点的ssh免password登陆。
我想分析到这里大家已经能够自己完毕了。
须要做的是:
1.软连接建立
2.把新加电脑产生的公钥追加给共享文件夹的authorized_keys文件里就可以
眼下问题点:
软连接ssh免password登陆不成功,仍然要求输入password,不知道是我配置问题。还是什么问题。我的做法是:
将h2,h3上面的公钥加到h1de的~/.ssh/authorized_keys上面
ssh h2.weir.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh h3.weir.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
内容为:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwkLRj4s+OXY7y8W9/3MOaMGMxE3M37/ySm28gwSpxs4AibAPjZY9rXvld5fJWl99iVeLMTRn39cryXknqf7gqy32EZ6kledh5Au7kv96XX3Cbwr5YIWoTggo9q9tG8E7J268QpV/2Zi1lOM6EEnLPUfpU6UWW2l8Ay4a2AyrWoIs2s6ffqPc/5xOnOnvAAmc285P75UmG0Cr/BVapdMi7z5WUUioPb3qGdXmirNy4EFUPtFMyXO3SwZIea61UpPLN6hcPDliluU+SwyVjkpicPUZcN/wweXkhQN/rexsbvNJ1qlD1DC1qT9eryj5b/i8RCWHGhxhlxvqlTxxmUpGMQ==
root@h1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAufPOnaaBhOgLepshNFTsUROGv0BZFCyqOK3rl+nr02YC5bk/I0K4kfnrJcTMgtE7CPYnjzPzpQLTKDYpu9Qv2XQkxadKe3FsWoihnRz4+ZLaL5QdlKwM8CNNDvYXnULwUh7ZyyEAxT+50WkIzVL+aVz4nbynOw6oJHyg492tU/lkytRPSTn0ogAH10QGqOGzKMLoFSiE5ce6acNrck79ya4R13k6y6XiJYjlfkfU+QbKw9vtZcVWN9LpygfYeQWZOv6vYA/XRk2ZZspwYs+lGQq7vdJTIxLW/SbS9qV5nJUYzVMDeG34rYJpZaM6FQ7TPxrQt00oPXBOL45Lf5fadQ==
root@h2
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtND3Kbx2fVg3dZfwQFxBdC1xmVX+gv9mfbUW5C2g+NYwxYR+yGSQQo43AjWcCz+HR2IyP4zijPpuY6x/9EObi5GUjQ5GvZiO/dWMUajMv2TbV92Y0/utgEaT301hQY2/UjlY9pheATZSBDk3X66pXq/kf0aYu7Wf2JULpBdilq711KHHgCRuHwNfduCwxhmw0mqx8i2SbCvbgHaEEmD8liqOQB0VOD2RWvUCSqaT4pnBhH0XWULUkO+VepzL4bup0LlCl88T2LF3Rso+g7k6rRBwoVoHGG8KQtVXPy33pcM7BIXxqFsQVrn7QYe09uBZS/BZj0e7bzCos1nBAb0+Gw==
root@weir
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtZN3yCKaxw7ysWqU5KjgjVfn+YqA4rP80rWwc5d2GLPBA7Kj2JuxUIuRBVTEAO4sir2TU4tDNrX5EVu7WZPmv3Z5w2hj4nnJhusHZo477qAwufE9G9cqJkc2Wuci+tiMp7beal1fDvE8guqy8IJCJuLInGWbvSuVToDcZiCazYg4vlMaB5J8xuNhcNpt7w665+YA2f7Bms9qylbQJnsmU95CSqnRKZag9OioOWrgPn/WjS93n/qMBIz3jWJeOiCi9jeg5zsYTxljfMQF+05NTg8tNZGGxweuR5dVFm7yHNfp4Gosj4Jhz7ZlFASRQe/q4cGc5EEQUzire4Qy7XQoGQ==
root@h3
同一时候将h2,h3上面的公钥加到h1de的共享文件夹/home/gx/.ssh/authorized_keys上面
ssh h2.weir.com cat ~/.ssh/id_rsa.pub >> /home/gx/.ssh/authorized_keys
ssh h3.weir.com cat ~/.ssh/id_rsa.pub >> /home/gx/.ssh/authorized_keys
内容当面是一样的。
接下来操作h2,h3
软连接h2,h3(首先先删除~/.ssh/authorized_keys)
ln -s /nfs_share/.ssh/authorized_keys ~/.ssh/authorized_keys
到此就完毕了。
測试结果是 能够免password从h2,h3登录到h1
而不能 从h1免password登录到h2,h3
这让人不解
正式生产环境下hadoop集群的DNS+NFS+ssh免password登陆配置的更多相关文章
- Linux Hadoop集群搭建第二步:--------SSH免密登陆
内容和Linux 搭建 Hadoop集群--Jdk配置相关联 三台虚拟机的操作 Linux SSH免密登陆: 参考网址:http://www.cnblogs.com/999-/p/6884861.ht ...
- Linux环境下Hadoop集群搭建
Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...
- Hadoop集群搭建过程中ssh免密码登录(二)
一.为什么设置ssh免密码登录 在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作.例如,某个脚本能够终止并重启集群中的所有守护进程.所以,需要安装SSH,但是,SSH远程登陆的时候,需 ...
- 生产环境MySQL数据库集群MHA上线实施方案
生产环境MySQL数据库集群MHA上线实施方案 一.不停库操作 1.在所有节点安装MHAnode所需的perl模块(需要有安装epel源) yum install perl-DBD-MySQL -y ...
- 环境搭建-Hadoop集群搭建
环境搭建-Hadoop集群搭建 写在前面,前面我们快速搭建好了centos的集群环境,接下来,我们就来开始hadoop的集群的搭建工作 实验环境 Hadoop版本:CDH 5.7.0 这里,我想说一下 ...
- Linux环境下HDFS集群环境搭建关键步骤
Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...
- Centos7环境下etcd集群的搭建
Centos7环境下etcd集群的搭建 一.简介 "A highly-available key value store for shared configuration and servi ...
- Linux环境下SolrCloud集群环境搭建关键步骤
Linux环境下SolrCloud集群环境搭建关键步骤. 前提条件:已经完成ZooKeeper集群环境搭建. 一.下载介质 官网下载地址:http://www.apache.org/dyn/close ...
- Linux环境下ZooKeeper集群环境搭建关键步骤
ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...
随机推荐
- Node中npm 安装问题
首先,我们的npm包无所谓安全性,所以不要使用性能和效率更慢的https,转而使用http,相关命令如下: 1.关闭npm的https npm config set strict-ssl fals ...
- C读txt到二维数组
#include<stdio.h> #include<stdlib.h> #define maxn 200 void main() { FILE *fp; int s[maxn ...
- 关于select
select 1与select * 的区别:“selelct 常量 from 表名” 对应所有行,返回的永远只有一个值,即常量 ,所以一般只用来判断是否有表记录:而“select * from 表名” ...
- 类加载器与methodinterceptor接口
类加载器: JVM将类加载过程分为三个步骤: 装载(Load):加载二进制文件 链接(Link)进行了验证:验证文件准确性 准备:将静态变量进行分配内存,初始化其默认值. 解析:符号引用转换为直接引用 ...
- SQL Server中的临时表和表变量
SQL Server中的临时表和表变量 作者:DrillChina出处:blog2008-07-08 10:05 在SQL Server的性能调优中,有一个不可比拟的问题:那就是如何在一段需要长时间的 ...
- Android使用Google推荐的联网框架Volley,让连接网络更加简单
大家好.随着技术的进步.科技的发达,非常少有应用是单机的了,大部分都须要联网訪问server,曾经我们都用 httpclient和httpurlconnection,感觉是不是非常麻烦,而Google ...
- 基于Mesos运行Spark
背景介绍 Spark有多种集群运行模式,例如:Standalone,Yarn,Mesos. 下面就说一下如何在Mesos上运行Spark,这也是官方推荐的一种运行方式. 在运行Sp ...
- ARC、MRC混编
Xcode5之后,新建iOS工程,默认都是ARC模式,但是有时候我们的项目中需要用到一些第三方框架,我们下载下来却发现是非ARC的,这时候我们需要进行ARC和MRC混编. 第一种方式: Edit-&g ...
- juce AsyncUpdaterMessage 分析
这个类同样是基于 CallbackMessage, 主要目的是为了在主线程中进行回调,只不过在收到消息的时候进行检测,检测消息发送对象是否已经删除,如果消息发送对象已经没了.消息回调最终调用了调用者的 ...
- C# C++ Java接口类型转换
最近这几天做了一个兼职 ,主要是把C语言以及C#语言封装的dll,经过C++中转为Java语言支持的,主要其中的问题就是类型转换,在此列出常用类型的转换过程. #include "stdaf ...