大数据部署预备工作

102

大数据部署预备工作

本文档基于Ubuntu 18.04.6 LTS版本部署 三台域名我暂定机器名为bigdata1 bigdata2 bigdata3

bigdata1 内网地址 192.168.123.120

bigdata2 内网地址 192.168.123.180

bigdata3 内网地址 192.168.123.190

需要根据实际情况自行修改地址!!!以及机器名称,然后更改服务器的host文件即可

关闭防火墙

systemctl disable ufw.service
systemctl stop ufw.service

开启系统ssh的root账号

sudo vim /etc/ssh/sshd_config
追加
PermitRootLogin yes
PasswordAuthentication yes
重启
sudo systemctl restart ssh.service

集群分发脚本

#! /bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
    echo No Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in bigdata2 bigdata3
do
    echo ====================    $host    ====================
    #3. 递归遍历所有目录
    for file in $@
    do
        #4 判断文件是否存在
        if [ -e $file ]
        then
            #5. 获取全路径
            pdir=$(cd -P $(dirname $file); pwd)
            echo pdir=$pdir
            
            #6. 获取当前文件的名称
            fname=$(basename $file)
            echo fname=$fname
            
            #7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
            ssh $host "source /etc/profile;mkdir -p $pdir"
            
            #8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
            rsync -av $pdir/$fname $USER@$host:$pdir
        else
            echo $file Does Not Exists!
        fi
    done
done

将分发脚本放置于/usr/bin下,命名为xsync,并且授予权限chmod 777 /usr/bin/xsync

注意: 需要根据实际情况更改被分发的host名称!!!

SSH无密码登录配置

无密码登录是分发脚本的前置工作,否则每次执行分发脚本都需要输入密码,比较繁琐

  1. 进入bigdata1的ssh

  2. 生成公钥和私钥,执行成功后敲三次回车

    ssh-keygen -t rsa
    
  3. 分发给bigdata1 bigdata2 bigdata3 (需要分别输入三台密码)

    ssh-copy-id bigdata1
    ssh-copy-id bigdata2
    ssh-copy-id bigdata3
    
  4. 进入bigdata2的ssh

  5. 生成公钥和私钥,执行成功后敲三次回车

    ssh-keygen -t rsa
    
  6. 分发给bigdata1 bigdata2 bigdata3(需要分别输入三台密码)

    ssh-copy-id bigdata1
    ssh-copy-id bigdata2
    ssh-copy-id bigdata3
    
  7. 进入bigdata3的ssh

  8. 生成公钥和私钥,执行成功后敲三次回车

    ssh-keygen -t rsa
    
  9. 分发给bigdata1 bigdata2 bigdata3(需要分别输入三台密码)

    ssh-copy-id bigdata1
    ssh-copy-id bigdata2
    ssh-copy-id bigdata3
    

修改系统文件最大打开数量

vim /etc/sysctl.conf
// 追加
fs.file-max = 6553560
vm.max_map_count=2000000
// 执行生效
sysctl -p
vim /etc/security/limits.conf
追加
root  soft  nofile  65536
root  hard  nofile  65536
root  soft  nproc  65536
root  hard  nproc  65536
*  soft  nofile  65536
*  hard  nofile  65536
*  soft  nproc  65536
*  hard  nproc  65536

重启后生效
执行
ulimit -n 命令查看是否生效
vim /etc/sysctl.conf

集群规划

bigdata1 bigdata2 bigdata3
HDFS NameNode(active) NameNode(stand by)
DataNode DataNode DataNode
ZKFC ZKFC
JournalNode JournalNode JournalNode
HdfsClient HdfsClient HdfsClient
YARN ResourceManager(active) ResourceManager(stand by)
NodeManager NodeManager NodeManager
HistoryServer
YarnClient YarnClient YarnClient
ZOOKEEPER ZkServer ZkServer ZkServer
HIVE HiveServer2
HiveMetaStore
HiveClient HiveClient HiveClient
dolphinscheduler master-server
api-server
worker-server worker-server
alert-server
doris fe
be be be

解决ubuntu没有/etc/rc.d/init.d/文件夹以及chkconfig 命令问题

  1. 放置/etc/init.d/文件夹下
  2. 使用sysv-rc-conf替代chkconfig
cp /opt/datasophon/datasophon-worker/script/datasophon-worker /etc/init.d/
chmod 777 /etc/init.d/datasophon-worker
vim /etc/apt/sources.list
尾部追加
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
sudo apt-get update
sudo apt-get install sysv-rc-conf
cd /etc/init.d
sysv-rc-conf datasophon-worker on
reboot // 重启生效
service datasophon-worker restart

解决ubuntu默认shell执行环境是dash问题,直接改为bash

ls -al /bin/sh
// 结果是dash
sudo dpkg-reconfigure dash
// 出现界面之后选择no
ls -al /bin/sh
// 结果变为bash

解决hive没有hadoop数据权限问题

su hdfs
$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod -R 777 /

解决hive部分脚本bash执行错误问题

ln -s /bin/bash /usr/bin/bash