Ansible 部署 Hadoop Cluster

Ansible 部署 Hadoop Cluster,第1张

/etc/ansible/hosts 文件如下:

将hosts文件下发到各服务器

将配置文件分发到各节点的 /etc/profile.d/ 目录下。

java.sh

hadoop.sh

hdfs.sh

分发

用ansible 创建 组、用户

NameNode

or

DataNode

or

配置文件 见 附件1

在active namenode上,以 hdfs 执行

在5台salve上,以 hdfs 执行

如猛宏果不提前创棚睁建/tmp目录,并配置权限,后面其他链知岁组件的运行会有问题。以 hdfs 执行:

给MapRed创建的staging directory。以 hdfs 执行:

在YARN上,以 yarn 执行

在5台salve上,以 hdfs 执行

在启动hdfs集群后启动

配置文件目录 /root/hadoop/conf

chrony.conf

core-site.xml

core-site-mapred.xml

core-site-oozie.xml

hdfs-site-master.xml

hdfs-site-slave.xml

yarn-site.xml

mapred-site.xml

hadoop-env.sh

yarn-env.sh

mapred-env.sh

添加如下:

在namenode节点上

在yarn resourcemanager节点上

首先,在亏肆灶脚本中添加echo $JAVA_HOME ,which java ,echo $(whoami),然后用ansible远程执行,发现为root用户但输出为空和找不到java其次,在~/.bash_profile中添加环境变量,用ansible远程执行脚本,发现依然输出为空和找不到java环境变雹乎量最后,考虑ansible执行的环境变量与登录时使用的环境变量不同,所以将JAVA_HOME写在/etc/bashrc中,用ansible远程执行脚本,发销扮现执行正常; 至此,确定ansible执行过程中并未调用/etc/profile和~/.bash_profile

ansible远程执行的是non-login shell 并不会加载/etc/profile和~/.bash_profile下的环境变量,只加载~/.bashrc和/etc/bashrc 如果需要在ansible中执行需要特定环境变量的命令,将环境变量写在~/.bashrc ,然后source一下~/.bash_profile。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12290363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存