开源大数据集群部署(二)集群基础环境实施准备

这篇具有很好参考价值的文章主要介绍了开源大数据集群部署(二)集群基础环境实施准备。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:櫰木

环境准备

本次使用到的二进制软件包目录为:系统初始化前提是操作系统已完成安装、各个主机之间网络互通,系统常用命令已安装,本默认这些前提条件已具备,不在阐述。

1 主机环境初始化

安装centos系统完成后需要对主机进行初始化配置和验证工作,在所有主机上(hd1.dtstack.com-hd3)均要进行操作,并按照对应hosts修改主机名:
(主机名必须为xxx.xxx.com 匹配freeipa安装需求)
(1) 主机配置映射(操作权限root)

$ cat>>/etc/hosts <<EOF
172.16.104.226 hd1.dtstack.com
172.16.106.252 hd2.dtstack.com
172.16.107.127 hd3.dtstack.com
172.16.106.165 hd.dtstack.com
EOF

(2)关闭防火墙&selinux(操作权限root)

$ systemctl stop firewalld
$ systemctl disable firewalld
$ setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

(3) 创建集群系统用户(操作权限root)

系统用户 属组 用途
hadoop hadoop hadoop集群用户
mysql hadoop mysql数据库用户
hdfs hadoop hadoop集群用户
trino hadoop presto集群用户
prometheus prometheus 监控平台用户
grafana grafana 监控平台用户
zookeeper zookeeper zk集群用户
hive hadoop hive组件用户
yarn hadoop hadoop集群用户

创建hadoop集群所需用的的用户和用户组
创建示例如下:

[root@hd1.dtstack.com ~]$ remote_op.sh "groupadd hadoo p"
[root@hd1.dtstack.com ~]$ remote_op.sh "useradd hive -G hadoop"
[root@hd1.dtstack.com ~]$ remote_op.sh "echo hive | passwd --stdin hive"

(4)安装java环境(操作权限root)
本次中java软件包安装目录在/root/bigdata

$ cd /opt/bigdata
$ tar -zvxf zulu11.60.19-ca-jdk11.0.17-linux_x64.tar.gz -C /opt
tar -zxvf jdk-8u281-linux-x64.tar.gz
ln -s  /opt/jdk1.8.0_281  /opt/java

2 配置ssh互信

ssh互信配置(操作权限hadoop)
在集群系统 hd1.dtstack.com-hd3.dtstack.com共3台设备上执行如下命令:

$ cd $HOME  #在hadoop当前目录下创建ssh互信
$ ssh-keygen -t rsa   #一路回车,不需要输入任何信息

将hd1.dtstack.com公钥添加到认证文件中,在hd1.dtstack.com主机root用户当前家目录下执行如下命令:
生产各自的keytab文件

ssh-keygen -t rsa

用ssh-copy-id 把公钥复制到远程主机上,命令也要(以下命令ip需要填写所有节点ip并在每个节点均执行)

ssh-copy-id -i  .ssh/id_rsa.pub root@xxx.xxx.xxx

以上命令在三个阶段均要执行

ssh互信验证
hd1.dtstack.com-hd3.dtstack.com主机上互相执行ssh登录命令验证,如下:

[hadoop@hd1.dtstack.com ~]$ ssh hd2.dtstack.com

验证截图如下:
开源大数据集群部署(二)集群基础环境实施准备
ssh命令执行过去,无报错表示ssh互信配置成功。
root和hdfs以及yarn权限ssh互信
同理操作,配置主机root权限和hdfs以及yarn权限全主机互信。

3 统一环境变量配置

环境变量分两个文件:/etc/profile和各用户下.bashrc(bash),建议/etc/profile根据规划好的目录结构,统一设置环境变量。本次设置将hadoop,zookeeper,hive,java环境变量整体设置完成

[root@hd1.dtstack.com ~]# cat >>/etc/profile.d/bigdata.sh<<EOF
#!/bin/bash
export HADOOP_HOME=/opt/hadoop
export HBASE_HOME=/opt/hbase
export SPARK_HOME=/opt/spark
export SPARK_CONF_DIR=/opt/spark/conf
export HBASE_CONF_DIR=/opt/hbase/conf
export HBASE_LIB=/opt/hbase/lib
export TEZ_HOME=/opt/tez
export TEZ_CONF_DIR=/opt/tez/conf
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/*:$TEZ_HOME/lib/*
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=/opt/hive/conf
export PATH=$PATH:$HIVE_HOME/bin
export ZK_HOME=/opt/zookeeper
#export YARN_CONF_DIR=/opt/hadoop/etc/hadoop
export JAVA_HOME="/opt/java"
export PATH=$HADOOP_HOME/bin:$JAVA_HOME/bin:$ZK_HOME/bin:/opt/mysql/bin:$PATH
export HADOOP_CLASSPATH=`hadoop classpath`

EOF

4 系统调优

hd1.dtstack.com-hd3.dtstack.com所有机器上都要执行,且以root权限执行
调整swap、内存分配、网络连接参数

$ cat>>/etc/sysctl.conf <<EOF
#避免使用swap
vm.swappiness = 1
#修改内存分配策略
vm.overcommit_memory=2
vm.overcommit_ratio=90
#网络连接上限
net.core.somaxcomm=32768
EOF

增大同时打开文件描述符

$ cat>>/etc/security/limits.conf <<EOF
hadoop  soft   nofile   32768
hadoop hard nofile 65536
hadoop soft   nproc   32768
hadoop hard nproc 65536
EOF

关闭THP

$ cat>>/etc/rc.local <<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF

5 NTP服务配置

安装
在hd1.dtstack.com-hd3.dtstack.com各个主机上root权限下执行:

$ yum install -y ntp

配置时间同步服务端
在hd1.dtstack.com主机root权限下执行

ntp配置

$ cat /etc/ntp.conf|grep -v '#'|grep -v ^$
driftfile /var/lib/ntp/drift     #存放记录时间误差
restrict default nomodify notrap nopeer noquery   #默认拒绝所有来源访问
restrict 127.0.0.1  #开放本机的任何访问
restrict ::1
restrict 172.16.104.0 mask 255.255.255.0 nomodify notrap  #允许104网段机器参与ntp同步
includefile /etc/ntp/crypto/pw    
keys /etc/ntp/keys
server  172.16.104.226    #时间同步服务器
server  127.127.1.0       #当上面时间不可用时,以本地时间作为时间服务
fudge   127.0.0.1 stratum 10
disable monitor

说明:

  • server 172.16.104.226表示内网时间同步服务器,其余机器都从这台同步时间
  • server 172.16.104.226可以替换成其他时间服务中心IP(看生产环境配置)

ntp服务启动和验证
启动

service ntpd start

验证

service ntpd status

开源大数据集群部署(二)集群基础环境实施准备
Active状态为running表示服务启动成功

配置时间同步客户端
在hd2.dtstack.com主机root权限下执行

配置时间同步服务源

[root@hd2.dtstack.com ~]# cp /etc/ntp.conf /etc/ntp.conf.bak
[root@hd2.dtstack.com ~]# cat >/etc/ntp.conf<<EOF
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict ::1
server 172.16.104.226
restrict 172.16.104.226 nomodify notrap noquery
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
EOF

手动同步时间(建议第一次手动同步)

$ ntpdate -u 172.16.104.226

开源大数据集群部署(二)集群基础环境实施准备
拉起同步服务

service ntpd start

检查方法同上
同步到其他节点(hd3.dtstack.com、hd2.dtstack.com)

[root@hd2.dtstack.com ~]# scp /etc/ntp.conf root@hd2.dtstack.com:/etc/

启动其余主机(hd3.dtstack.com)上ntpd服务

[root@hd2.dtstack.com ~]# ssh hd3.dtstack.com 'service ntpd start'
[root@hd2.dtstack.com ~]# ssh hd2.dtstack.com'service ntpd start'

检查其余机器(hd3.dtstack.com)上ntpd服务启动状态

[root@hd2.dtstack.com ~]# ssh hd3.dtstack.com 'service ntpd status'
[root@hd2.dtstack.com ~]#ssh hd2.dtstack.com'service ntpd start''

检查连接情况

[root@hd2.dtstack.com ~]# ntpq -p

开源大数据集群部署(二)集群基础环境实施准备

6 自动化同步脚本

配置文件同步脚本【1】remote_scp.sh

[root@hd1.dtstack.com software]# cat /root/bin/remote_scp.sh
#!/bin/bash
for i in hd{2..3}
do
 #echo $i
 if [  -d $1  ]
then
 echo -e '\033[33m 当前主机为'$i',传输文件为'$1'\033[0m'
 scp -rp $1 $i:$2
else
 #echo "当前节点为$,传输文件为$1"
 echo -e '\033[33m 当前主机为'$i',传输文件为'$1'\033[0m'
 scp $1 $i:$2
fi
done
status=`echo $?`
if [ $status -eq 0 ]
then
 echo -e "$1文件传输完成"
else
 echo -e "请检查传入参数"
fi

使用案例:
格式:remote_scp.sh 源目录 目标目录
开源大数据集群部署(二)集群基础环境实施准备
说明:将test.log 分发到hd1.dtstack.com-hd3.dtstack.com/root目录下
配置文件同步脚本【2】remote_op.sh

[root@hd1.dtstack.com ~]# cat /root/bin/remote_op.sh
#!/bin/bash
for i in hd2.dtstack.com hd3.dtstack.com
do
  echo  -e '\033[33m 当前主机为'$i'\033[0m'
  ssh $i $1
done

使用案例:
格式:remote_op.sh “执行命令内容”
开源大数据集群部署(二)集群基础环境实施准备

7 软件包仓库

建议在安装hadoop集群前,提前将所需安装的二进制软件包,统一存放软件包仓库中。
本次使用的软件包都在主机hd1.dtstack.com上/root/bigdata下

8 keytab生成脚本

在所有节点均需执行此操作
/root/bigdata
vi getkeytabs.sh

set -x
 
CMKEYTAB="/data/kerberos/apache-user.keytab"
CMUSER="apache-user"
REALM="DTSTACK.COM"
IPASERVER="hd.dtstack.com"
 
hosts=`hostname`
DEST="$1"
FULLPRINC="$2"/${hosts}@${REALM}
USER=$2
# Passwd based kinit
#echo PASSWORD | kinit $CMUSER@$REALM
 
# Or per keytab (keytab needs to be generated before)
kinit -k -t $CMKEYTAB $CMUSER@$REALM
 
PRINC=$( echo $FULLPRINC | sed "s/\@$( echo $REALM )//" )
 
echo $PRINC

echo Retrieving keytab for $FULLPRINC for $DEST
 
echo Checking for existing service principle
if ipa service-find $FULLPRINC; then
echo Service principle found
else
echo Service principle not created, creating
ipa service-add $FULLPRINC --pac-type=NONE
fi
 
echo Ensuring service allows
ipa service-allow-create-keytab --users=$CMUSER $FULLPRINC
ipa service-allow-retrieve-keytab --users=$CMUSER $FULLPRINC
 
if ipa service-show $FULLPRINC | grep 'Keytab' | grep 'False'; then
echo Creating keytab for $FULLPRINC for $DEST
ipa-getkeytab -s $IPASERVER -p $PRINC -k $DEST -e rc4-hmac,aes256-cts,aes128-cts
else
echo Retrieving keytab for $FULLPRINC for $DEST
ipa-getkeytab -r -s $IPASERVER -p $PRINC -k $DEST
fi

chmod 644 $DEST
chown $USER:$USER $DEST
 
kdestroy
 
exit 0;

备注

上文中$ 表示系统命令解释器开始符号,且表示所有机器都要执行,如出现[hadoop@hd1.dtstack.com ~]$表示,只在hd1.dtstack.com主机hadoop用户下执行文章来源地址https://www.toymoban.com/news/detail-779912.html

到了这里,关于开源大数据集群部署(二)集群基础环境实施准备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据开源框架环境搭建(五)——Hbase完全分布式集群的安装部署

    目录 实验环境: 实验步骤: 〇、Zookeeper安装配置: 一、安装前注意事项 二、HBase安装  三、Hbase集群配置 1.配置hbase-env.sh文件,位于Hbase安装目录/conf/ 2.配置hbase-site.xml文件,位于Hbase安装目录/conf/ 3.配置regionservers 4.新建 backup-masters文件,添加备份HMaster机器名 四、将配置好

    2024年02月08日
    浏览(34)
  • 【大数据】Doris 的集群规划和环境准备

    Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求。 Linux 系统 版本 CentOS 7.1 7.1 7.1 及以上 Ubuntu 16.04 16.04 16.04 及以上 操作系统安装要求 ✅

    2024年02月03日
    浏览(37)
  • k8s集群中部署项目之数据库准备

    同理 同理 同理 同理 同理

    2024年02月07日
    浏览(40)
  • 【Linux系统基础】(5)在Linux上集群化环境前置准备及部署Zookeeper、Kafka软件详细教程

    在前面,我们所学习安装的软件,都是以单机模式运行的。 后续,我们将要学习大数据相关的软件部署,所以后续我们所安装的软件服务,大多数都是以集群化(多台服务器共同工作)模式运行的。 所以,在当前小节,我们需要完成集群化环境的前置准备,包括创建多台虚

    2024年02月03日
    浏览(32)
  • 数据分片概述、环境准备、部署MyCAT服务、全局表、分片表、ER表

    1.1 问题 把主机mysql60 配置为 MySQL59 的从服务器 把主机mysql62 配置为 MySQL61 的从服务器 把主机mycat63 配置为mycat服务器 客户端192.168.88.50访问mycat服务 1.2 方案 准备6台虚拟机,具体配置如表-1 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:把MySQL60配置为MySQL59的从服务器

    2024年01月19日
    浏览(31)
  • 开源大数据集群部署(十一)Ranger 集成Hadoop集群

    作者:櫰木 1、节点选择 部署在两个namenode节点 cd /opt/bigdata tar -xzvf ranger-2.3.0-hdfs-plugin.tar.gz -C /opt/ cd /opt/ranger-2.3.0-hdfs-plugin vim install.properties ranger hdfs初始化 初始化完成后会在/opt/hadoop/etc/hadoop目录下生成3个文件 在rangeradmin页面上进行配置 servicename必须和install.properties中的R

    2024年02月22日
    浏览(38)
  • 开源大数据集群部署(六)Keytab文件生成

    作者:櫰木 Keytab文件用于在不输入密码的情况下对主体(用户或服务)进行身份验证。以下是创建Kerberos身份验证的步骤。 除了使用明文密码登录之外,Kerberos还可以使用keytab密码文件登陆,现在为testcuser创建它的keytab文件 这样就在当前执行目录下生成了testcuser.keytab文件 通

    2024年01月24日
    浏览(29)
  • 开源大数据集群部署(十四)Ranger集成Hbase

    作者:櫰木 在hd1.dtstack.com主机上执行 在hmaster和back master上进行安装和执行 解压ranger-2.3.0-hbase-plugin 配置ranger hbase插件的install.properties 初始化ranger hbase 重启hbase服务 Ranger admin页面配置hbase 访问地址:http://hd1.dtstack.com:6080/ 用户密码:admin/rangerAdmin123 测试连通性,连接成功后保

    2024年03月21日
    浏览(31)
  • Ubuntu基础配置+Docker配置和使用+容器化centos7大数据环境准备

    环境:ubuntu 18.04 大数据技术与应用赛项平台环境 安装完Ubuntu之后,除了需要新建用户、设置密码之外,我们还要设置root密码,虽然Ubuntu默认有root超级管理员账户,但是具体的密码我们可以自行设置 1.1设置root密码: 1.启动Ubuntu 启动Ubuntu,有图形界面的,启动终端即可 2.终端

    2024年01月17日
    浏览(42)
  • 开源大数据集群部署(五)Freeipa客户端部署及配置(kerberos+ldap)

    作者:櫰木 在FreeIPA(Free Identity, Policy, and Audit)环境中,部署和配置客户端节点是连接整个系统的关键步骤。本文将介绍如何在客户端节点上安装和配置FreeIPA客户端,包括安装IPA-Client、执行ipa-client-install等关键步骤。同时,由于部署过程中可能出现一些常见的问题,我们还

    2024年01月20日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包