kerberos+ladp+hadoop-ha 安全认证部署配置
随着hadoop集群里的数据量越来越大,各业务数据都集中了里面,自然要为各业务都要提供数据支持,又希望各业务数据是相对独立安全的,这最时候就需要做安全认证了
hadoop ha 测试集群部署规划
hadoop ha 各服务器角色如下:
 192.168.36.135 hadoopnn135.hadoop.com
192.168.36.137 hadoopsn137.hadoop.com
192.168.36.134 dn01134.hadoop.com
192.168.36.136 dn02136.hadoop.com
说明: 相关测试是在centos 6.3操作系统上完成的,hadoop 集群安装用的cdh5.2版本的源
 hadoopnn135.hadoop.com server端部署 krb5-server krb5-libs krb5-auth-dialog krb5-workstation
 hadoopsn137.hadoop.com,dn01134.hadoop.com,dn02136.hadoop.com client部署krb5-devel krb5-workstation
kerberos server 和 client端安装
server端安装
yum install krb5-server krb5-libs krb5-auth-dialog krb5-workstation   -y
client端安装
yum install krb5-devel krb5-workstation -y
hadoop ha和 kerberos ladp 配置整合
修改配置前,需先停止运行的hadoop ha集群里的相关服务
for i in /etc/init.d/hadoop-*; do $i stop; done
for i in /etc/init.d/impala*; do $i stop; done
for i in /etc/init.d/zookeeper-*; do $i stop; done
for i in /etc/init.d/hive-*; do $i stop; done
/root/cmd.sh "/etc/init.d/hadoop-hdfs-datanode stop"
/root/cmd.sh "/etc/init.d/hadoop-hdfs-zkfc stop"
/root/cmd.sh "/etc/init.d/hadoop-hdfs-journalnode stop"
/root/cmd.sh "/etc/init.d/zookeeper-server stop"
/root/cmd.sh "/etc/init.d/impala-server stop"
/root/cmd.sh "/etc/init.d/hadoop-yarn-resourcemanager stop"
/root/cmd.sh "/etc/init.d/hadoop-yarn-nodemanager stop"
在集群中所有节点的 core-site.xml 文件中添加下面的配置:
<property>
  <name>hadoop.security.authentication</name>
  <value>kerberos</value>
</property>
<property>
  <name>hadoop.security.authorization</name>
  <value>true</value>
</property>
在集群中所有节点的 hdfs-site.xml 文件中添加下面的配置:
<property>
  <name>dfs.block.access.token.enable</name>
  <value>true</value>
</property>
<property>
  <name>dfs.datanode.data.dir.perm</name>
  <value>700</value>
</property>
<property>
  <name>dfs.namenode.keytab.file</name>
  <value>/etc/hadoop/conf/hdfs.keytab</value>
</property>
<property>
  <name>dfs.namenode.kerberos.principal</name>
  <value>hdfs/_HOST@JAVACHEN.COM</value>
</property>
<property>
  <name>dfs.namenode.kerberos.https.principal</name>
  <value>HTTP/_HOST@JAVACHEN.COM</value>
</property>
<property>
  <name>dfs.datanode.address</name>
  <value>0.0.0.0:1004</value>
</property>
<property>
  <name>dfs.datanode.http.address</name>
  <value>0.0.0.0:1006</value>
</property>
<property>
  <name>dfs.datanode.keytab.file</name>
  <value>/etc/hadoop/conf/hdfs.keytab</value>
</property>
<property>
  <name>dfs.datanode.kerberos.principal</name>
  <value>hdfs/_HOST@JAVACHEN.COM</value>
</property>
<property>
  <name>dfs.datanode.kerberos.https.principal</name>
  <value>HTTP/_HOST@JAVACHEN.COM</value>
</property>
如果你像开启 SSL,请添加:
<property>
  <name>dfs.http.policy</name>
  <value>HTTPS_ONLY</value>
</property>
HDFS 配置了 QJM HA,则需要添加(另外,你还要在 zookeeper 上配置 kerberos):
<property>
  <name>dfs.journalnode.keytab.file</name>
  <value>/etc/hadoop/conf/hdfs.keytab</value>
</property>
<property>
  <name>dfs.journalnode.kerberos.principal</name>
  <value>hdfs/_HOST@JAVACHEN.COM</value>
</property>
<property>
  <name>dfs.journalnode.kerberos.internal.spnego.principal</name>
  <value>HTTP/_HOST@JAVACHEN.COM</value>
</property>
如果想配置 WebHDFS 启用授权验证,则添加:
<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>
<property>
  <name>dfs.web.authentication.kerberos.principal</name>
  <value>HTTP/_HOST@JAVACHEN.COM</value>
</property>
<property>
  <name>dfs.web.authentication.kerberos.keytab</name>
  <value>/etc/hadoop/conf/hdfs.keytab</value>
</property>
配置中有几点要注意的:
1. dfs.datanode.address表示 data transceiver RPC server 所绑定的 hostname 或 IP 地址,如果开启 security,端口号必须小于 1024(privileged port),否则的话启动 datanode 时候会报 Cannot start secure cluster without privileged resources 错误
2. principal 中的 instance 部分可以使用 _HOST 标记,系统会自动替换它为全称域名
3. 如果开启了 security, hadoop 会对 hdfs block data(由 dfs.data.dir 指定)做 permission check,方式用户的代码不是调用hdfs api而是直接本地读block data,这样就绕过了kerberos和文件权限验证,管理员可以通过设置 dfs.datanode.data.dir.perm 来修改 datanode 文件权限,这里我们设置为700
datanode启动失败
报错如下:
 Cannot start secure DataNode without configuring either privileged resources
 解决办法 参考了http://www.tuicool.com/articles/RRbIv2
 下载jsvc安装包 wget http://www.apache.org/dist/commons/daemon/source/commons-daemon-1.0.15-src.tar.gz
 
 tar zxvf commons-daemon-1.0.15-src.tar.gz; cd
  
												
											kerberos+ladp+hadoop-ha 安全认证部署配置的更多相关文章
- hadoop HA架构安装部署(QJM HA)
		
###################HDFS High Availability Using the Quorum Journal Manager########################## ...
 - Spark 在Hadoop HA下配置HistoryServer问题
		
我的Spark机群是部署在Yarn上的,因为之前Yarn的部署只是简单的完全分布式,但是后来升级到HA模式,一个主NN,一个备NN,那么Spark HistoryServer的配置也需要相应的做修改, ...
 - hadoop3.1 ha高可用部署
		
1.资源角色规划
 - Hadoop(HA)分布式集群部署
		
Hadoop(HA)分布式集群部署和单节点namenode部署其实一样,只是配置文件的不同罢了. 这篇就讲解hadoop双namenode的部署,实现高可用. 系统环境: OS: CentOS 6.8 ...
 - zookeeper集群的搭建以及hadoop ha的相关配置
		
1.环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 master作为active主机,data1作为standby备用机,三台机器均作为数据节点,yarn资源 ...
 - hadoop HA 配置  + zookeeper 服务注册
		
环境测试 6台机器 centos6.7 x64 master ( namenode/cluster ) 10.10.100.101 namenode1 10.10.100.105 namenode2 ...
 - Hadoop分布式HA的安装部署
		
Hadoop分布式HA的安装部署 前言 单机版的Hadoop环境只有一个namenode,一般namenode出现问题,整个系统也就无法使用,所以高可用主要指的是namenode的高可用,即存在两个n ...
 - hadoop 2.x HA(QJM)安装部署规划
		
一.主机服务规划: db01 db02 ...
 - hadoop HA+kerberos HA集群搭建
		
IP.主机名规划 hadoop集群规划: hostname IP hadoop 备注 hadoop1 110.185.225.158 NameNode,ResourceManager,DFSZKFai ...
 
随机推荐
- emlog模板制作帮助手册
			
emlog基本模板文件 必须文件: main.css: CSS(样式表)文件 log_list.php: 日志列表页模板 echo_log.php: 日志页模板 page.php: 页面(page)模 ...
 - Flask Web Development —— Web表单(上)
			
Flask-WTF扩展使得处理web表单能获得更愉快的体验.该扩展是一个封装了与框架无关的WTForms包的Flask集成. Flask-WTF和它的依赖集可以通过pip来安装: (venv) $ p ...
 - javascripy的innerHTML在IE8下的异常
			
使用jQuery的datatable插件的时候发现,IE8下显示异常,仔细调查一番,发现是浏览器对innerHTML的差异导致的. 实例代码: var nTd = document.createEle ...
 - Resource is out of sync with the file system
			
Resource is out of sync with the file system解决办法: 在eclipse或mycelipse中,启动run on server时或查看项目文件时报错:Res ...
 - Android---WebView显示Html乱码问题
			
webView.loadData(result,"text/html","UTF-8"); 反正是用上面的方法无法解决乱码的问题. 使用下面的方法就能完美解决了 ...
 - Windows Phone 8.1SDK新特性预览
			
前言 Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装.本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的 ...
 - 005--VS C++ 加载位图
			
//全局变量 HDC mdc; //--------------------------------------------InitInstance() 函数--------------------- ...
 - 6.Inout双向端口信号处理方法
			
Verilog中inout端口的使用方法 (本文中所有Verilog描述仅为展示inout端口的用法,实际描述则需要更丰富的功能描述) Inout端口的使用 在芯片中为了管脚复用,很多管脚都是双向的, ...
 - 4.FPGA芯片管脚解释
			
用户I/O:不用解释了. 配置管脚: MSEL[1:0] 用于选择配置模式,比如AS.PS等. DATA0 FPGA串行数据输入,连接到配置器件的串行数据输出管脚. DCLK FPGA串行时钟输出 ...
 - Web端服务器推送技术原理分析及dwr框架简单的使用
			
1 背景 “服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语.它是继“Ajax”之后又一个倍受追捧的Web技术.“服务器推送技术”最近的流行跟“Ajax ”有着密切 ...