开源大数据集群部署(十六)Hadoop集群部署(一)

作者:櫰木
按照上文中hadoop集群规划进行安装。

1 HADOOP集群安装

在hd1.dtstack.com主机root权限下安装hadoop集群

  • 解压
[root@hd1.dtstack.com software]# tar -zvxf hadoop-3.2.4.tar.gz -C /opt/
[root@hd1.dtstack.com software]# chown -R hdfs:hadoop /opt/hadoop-3.2.4
[root@hd1.dtstack.com software]# ln -s /opt/hadoop-3.2.4 /opt/hadoop

2 HADOOP Kerberos主体

服务所在主机主体格式(Principal)keytab文件
NameNodehd1.dtstack.com、hd2.dtstack.comhdfs/_HOST@DTSTACK.COM/etc/security/keytab/hdfs…keytab
DataNodehd3.dtstack.com、hadoop04、hadoop05hdfs/_HOST@DTSTACK.COM/etc/security/keytab/hdfs…keytab
JournalNodehd1.dtstack.com、hd2.dtstack.com、hd3.dtstack.comhdfs/_HOST@DTSTACK.COM/etc/security/keytab/hdfs.keytab
Web UIhd1.dtstack.com、hd2.dtstack.com、hd3.dtstack.comHTTP/_HOST@DTSTACK.COM
/etc/security/keytab/hdfs.keytab
JobHistory Serverhd1.dtstack.com、hd2.dtstack.comyarn/_HOST@DTSTACK.COM/etc/security/keytab/yarn…keytab
ResourceManagerhd1.dtstack.com、hd2.dtstack.comyarn/_HOST@DTSTACK.COM/etc/security/keytab/yarn.service.keytab
NodeManagerhd3.dtstack.comyarn/_HOST@DTSTACK.COM/etc/security/keytab/yarn…keytab

说明:

  • 创建主体命令见上面kerberos票据创建
  • _HOST表示配置文件变量,在实际使用过程会自动替换成主机名,如hd1.dtstack.com
  • Keytab文件名每台主机文件名一样,但文件内容不一样,主要区别是主机名
  • Keytab文件创建完成后分发到对应主机,且权限修改成600,权限修改命令如下:
chown -R root:hadoop /etc/security/keytab/chmod 660 /etc/security/keytab/*

按照kerberos票据创建进行票据主体创建和keytab文件创建以及分发到对应主机目录上

生成keytab文件

bash /root/bigdata/getkeytabs.sh /etc/security/keytab/hdfs.keytab  hdfs
由于页面需要http的principal,给hdfs的keytab添加httpprincipal
bash /root/bigdata/getkeytabs.sh /etc/security/keytab/hdfs.keytab  HTTP
bash /root/bigdata/getkeytabs.sh /etc/security/keytab/yarn.keytab  yarn
bash /root/bigdata/getkeytabs.sh /etc/security/keytab/yarn.keytab  HTTP

3、 HDFS使用HTTPS安全传输协议配置

在hd1.dtstack.com主机root权限下执行

  • 添加生成脚本
[root@hd1.dtstack.com hadoop]# cd /opt/hadoop/
[root@hd1.dtstack.com hadoop]# cd bin/ && vi on.sh
#!/bin/bashpath1=/opt/hadoop/bin
hosts="hd1.dtstack.com hd3.dtstack.com hd2.dtstack.com"
echo "===========begine install ca ==========="
sh $path1/ca_install.sh
echo "===========finish install ca ==========="echo "===========begine install https ==========="
for host in $hosts
dossh -t $host "$path1/keystore.sh"done
echo "===========finish install https ==========="添加ca脚本
vi ca_install.sh
#! /bin/bashpath=/data/kerberos/hdfs_ca
#集群中安装https
hostnamess="hd1.dtstack.com hd3.dtstack.com hd2.dtstack.com"
passwords=abc123
hostname1=`hostname`
#ca证书创建,只需要在一个节点上创建
function make_CA(){hostnames=$hostnamesspassword=$passwordsecho 'make_CA begin ...'cd $path#删除之前可能产生的过期CA证书rm -rf $path/hdfs_ca*#其中一台上生成CA,密码全部为abc123/usr/bin/expect <<-EOFset timeout 10spawn openssl req -new -x509 -keyout hdfs_ca_key -out hdfs_ca_cert -days 9999 -subj /C=CN/ST=zhejiang/L=hangzhou/O=dtstack/OU=dtstack/CN=$hostname1expect {"*phrase*" {send "$password\r"; exp_continue}"*phrase*" { send "$password\r"; exp_continue}}
EOF#将生成的CA证书hdfs_ca_key、hdfs_ca_cert分发到其他节点上for host in $hostnames;doecho "copy hadoop CA to $host:$path"ssh root@$host "mkdir -p /data/kerberos/hdfs_ca"scp hdfs_ca_* $host:$pathdone#rm -rf hdfs_ca*echo 'make_CA end ...'
}make_CA
添加keystore脚本
vi keystore.sh
#! /bin/bash
path=/data/kerberos/hdfs_ca
#集群中安装https keystore
hostnamess="hadoop01.dtstack.com hadoop03.dtstack.com hadoop02.dtstack.com"
passwords=abc123
current_hostnames="`hostname`"
export.UTF-8
function make_certificate(){current_hostname=$current_hostnamespassword=$passwordscd $path#keytool需要使用java环境source /etc/profile#生成keystore#name="CN=$current_hostname, OU=dtstack, O=dtstack, L=hangzhou, ST=zhejiang, C=CN"/usr/bin/expect <<-EOFspawn keytool -keystore keystore -alias localhost -validity 9999 -genkey -keyalg RSA -keysize 2048 -dname "CN=$current_hostname, OU=dtstack, O=dtstack, L=hangzhou, ST=zhejiang, C=CN"expect {"*password*" {send "$password\r"; exp_continue}"*password*" {send "$password\r"; exp_continue}"*password*" {send "$password\r"; exp_continue}"*password*" {send "$password\r"; exp_continue}}
EOF#添加CA到truststore/usr/bin/expect <<-EOFspawn keytool -keystore truststore -alias CARoot -import -file hdfs_ca_certexpect {"*password*" {send "$password\r"; exp_continue}"*password*" {send "$password\r"; exp_continue}"*certificate*" {send "yes\r"; exp_continue}}
EOF#从keystore中导出cert/usr/bin/expect <<-EOFspawn keytool -certreq -alias localhost -keystore keystore -file certexpect {"*password*" {send "$password\r"; exp_continue}}
EOF#用CA对cert签名/usr/bin/expect <<-EOFspawn openssl x509 -req -CA hdfs_ca_cert -CAkey hdfs_ca_key -in cert -out cert_signed -days 9999 -CAcreateserialexpect {"*phrase*" {send "$password\r"; exp_continue}}
EOF#将CA的cert和用CA签名之后的cert导入keystore/usr/bin/expect <<-EOFspawn keytool -keystore keystore -alias CARoot -import -file hdfs_ca_certexpect {"*password*" {send "$password\r"; exp_continue}"*certificate*" {send "yes\r"; exp_continue}}
EOF/usr/bin/expect <<-EOFspawn keytool -keystore keystore -alias localhost -import -file cert_signedexpect {"*password*" {send "$password\r"; exp_continue}}
EOF#将最终keystore,trustores放入合适的目录,并加上后缀jks#rm -rf /etc/security/https && mkdir -p /etc/security/https#chmod 755 /etc/security/httpsecho "install keystore、truststore to /data/kerberos/hdfs_ca/..."cp $path/keystore $path/keystore.jkscp $path/truststore $path/truststore.jks
}echo "[+] execute hlk_each_host_install_https.sh begin ..."echo "hostnames:$hostnames"echo "current_hostname:$current_hostname"#每个节点获取CA证书签照make_certificateecho "[+] execute hlk_each_host_install_https.sh end ..."

将脚本分发到每个节点的/opt/hadoop/bin/目录下,同时修改脚本权限

4、生成对应https证书(只需要在一个节点执行即可)

mkdir -p /data/kerberos/hdfs_ca
cd /opt/hadoop/bin/
bash on.sh

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/748451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于伪逆的三点法测距,MATLAB源代码(MATLAB函数)

程序介绍 这是一个函数&#xff0c;输入距离和已知点位置&#xff0c;输出未知点的位置。 已知点三个&#xff0c;未知点一个&#xff0c;已知点和未知点的距离也是有三个。 完整源代码 function [p_out] triposition(R_calcu,baseP) % p [5,5;10,9;15,12;20,22;25,3]; %r…

rust学习笔记(1-7)

原文 8万字带你入门Rust 1.包管理工具Cargo 新建项目 1&#xff09;打开 cmd 输入命令查看 cargo 版本 cargo --version2&#xff09; 使用 cargo new 项目名 在文件夹&#xff0c;按 shift 鼠标右键 &#xff0c;打开命令行&#xff0c;运行如下命令&#xff0c;即可创建…

python-1星-可变参数

可变参数是指在函数调用时&#xff0c;可以传入任意数量的参数。 在Python中&#xff0c;可用*args表示可变参数&#xff0c;args是一个元组类型&#xff0c;存储了传入的所有参数。 1、1个星&#xff08;*&#xff09;说明&#xff1a; 1&#xff09;单星号 2&#xff09;…

基于springboot的七彩云南文化旅游网站的设计与实现(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装七彩云南文化旅游网站软件来发挥其高效地信息处理的作用&am…

5.82 BCC工具之tcpdrop.py解读

一,工具简介 tcpdrop工具打印被内核丢弃的 TCP 数据包或段的详细信息,包括导致丢弃的内核堆栈跟踪。 当网络出现拥堵、资源不足或其他原因导致数据包被内核丢弃时,tcpdrop可以帮助开发者和网络管理员识别并定位问题。 该工具通过钩住内核中处理TCP数据包的相关函数,捕获…

【使用postman测试python接口】

打开python服务 设置postman如下&#xff0c;并发送&#xff1a; postman新建请求设置请求方式为post设置地址、raw、json方式、内容如下 结果&#xff1a; python如下&#xff1a; from flask import Flask, request, jsonifyapp Flask(__name__) # 实例化对象app.route…

你为什么是你,而不是别人?认识人格的力量

你为什么是你&#xff0c;而不是别人&#xff1f;让你做自我介绍&#xff0c;你会怎么描述自己呢&#xff1f; 人格心理学是心理学的一门重要分支学科。探求、描述和揭示个体思想、情绪及行为的独特模式&#xff0c;综合个人与环境诸多影响因素&#xff0c;对现实社会中的个人作…

Vite为什么比Webpack快

一、引言 主流的前端构建工具包括以下几种&#xff1a; Webpack&#xff1a;当下最热门的前端资源模块化管理和打包工具。它能够将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。同时&#xff0c;Webpack还支持代码分割&#xff0c;可以按需加载模块&#…

Redis底层数据结构之String

文章目录 1. 前提回顾2. RedisObject三大数据类型简介3. SDS字符串4. SDS字符串源码分析5. 总结 1. 前提回顾 前面我们说到redis的String数据结构在底层有多种编码方式。例如我们执行下面两条语句 set k1 v1 set age 17我们查看类型&#xff0c;发现这类型都是String类型 我们…

docker desktop 启动失败

docker desktop 启动失败 1.如果直接启动报错&#xff0c;设置 2.如果启动报 Failed to set version to docker-desktop: exit code: -1的解决方法. netsh winsock reset

vue3+Ts项目按需引入Echarts,并封装成hooks

记录 vue3Ts 项目中&#xff0c;按需引入echarts并进行二次封装使用。 1、安装&#xff1a;npm i echarts 2、新增按需引入配置文件&#xff1a;echartsConfig.ts // 引入 echarts 核心模块&#xff0c;核心模块提供了 echarts 使用必须要的接口。 import * as echarts from …

3.Windows下安装MongoDB和Compass教程

Windows下安装MongoDB 总体体验下来&#xff0c;&#xff0c;要比MySQL的安装简单了许多&#xff0c;没有过多的配置&#xff0c;直接就上手了&#xff01; 1、下载 进入官方的下载页面https://www.mongodb.com/try/download/community&#xff0c;如下选择&#xff0c;我选…

第七节:使用SMB发布Web前端程序

一、概述 一直以来&#xff0c;多数人都使用Apache、IIS、Tomcat等开源或商业Web服务器来运行Web程序&#xff0c;各种参数太多&#xff0c;与我们简单易用逻辑相左。所以在架构设计的时候&#xff0c;我们也在考虑&#xff0c;我们公司的Web程序是否能运行在SMB中&#xff0c;…

52 硬中断的实现

前言 呵呵 中断机制 也是内核中很常见的机制了 中断机制是现代计算机系统中的基本机制之一&#xff0c;它在系统中起着通信网络的作用&#xff0c;以协调系统对各种外部事件的响应和处理&#xff0c;中断是实现多道程序设计的必要条件&#xff0c;中断是CPU 对系统发生的某个…

2024.2.21校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 顺丰科技2024届春季校园招聘正式启动&#xff08;内推&#xff09; 校招 | 顺丰科技2024届春季校园招聘正式启动&#xff08;内推&#xff09; 2、面经 | OPPO 23届秋招 - 算法…

idea Springboot 在线考试管理系统开发mysql数据库web结构java编程计算机网页

一、源码特点 springboot 在线考试管理系统是一套完善的完整信息系统&#xff0c;结合mvc框架和bootstrap完成本系统springboot spring mybatis &#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有…

关于-机器人学导论

机器人学导论&#xff0c;经典的基础教材&#xff0c;原书叫introduction to robotics mechanics and control &#xff0c;在网上看到这个下载&#xff0c;这个好像不像有些书已经免费了&#xff0c;但是太经典拿它当教材的很多&#xff0c;最好看清晰的纸质版&#xff0c;特别…

java-ssm-jsp基于java的信访管理系统的设计与实现

java-ssm-jsp基于java的信访管理系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全 获取源码——》公主号&#xff1a;计算机专业毕设大全

pip/huggingface/conda常用命令笔记

conda命令&#xff1a; conda创建环境&#xff1a; #conda create -n 环境名称 python版本号 conda create -n ppt python3.10 pip命令&#xff1a; 使用国内镜像源下载&#xff1a; #清华镜像 # pip install 依赖包 -i 镜像源 pip install torch -i https://pypi.tuna.tsi…

经典排序算法的性能分析

文章目录 前言时间复杂度空间复杂度稳定性 前言 通过前面的学习&#xff0c;我们了解到了七大经典的排序算法&#xff1a;直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序. 那么下面就这其中算法的时间复杂、空间复杂度和稳定性进行分析。 时间复杂…