大数据部署预备工作
大数据部署预备工作
本文档基于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无密码登录配置
无密码登录是分发脚本的前置工作,否则每次执行分发脚本都需要输入密码,比较繁琐
-
进入bigdata1的ssh
-
生成公钥和私钥,执行成功后敲三次回车
ssh-keygen -t rsa
-
分发给bigdata1 bigdata2 bigdata3 (需要分别输入三台密码)
ssh-copy-id bigdata1 ssh-copy-id bigdata2 ssh-copy-id bigdata3
-
进入bigdata2的ssh
-
生成公钥和私钥,执行成功后敲三次回车
ssh-keygen -t rsa
-
分发给bigdata1 bigdata2 bigdata3(需要分别输入三台密码)
ssh-copy-id bigdata1 ssh-copy-id bigdata2 ssh-copy-id bigdata3
-
进入bigdata3的ssh
-
生成公钥和私钥,执行成功后敲三次回车
ssh-keygen -t rsa
-
分发给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 命令问题
- 放置/etc/init.d/文件夹下
- 使用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