在阿里云上搭建Hadoop集群
在阿里云上搭建Hadoop集群并实现外网访问
阿里云机器配置
-
本测试集群采用的机器为阿里云 单核4G 40G云盘 的共享型机器,搭载的系统镜像为Centos7.5,通过内网IP连接,并使用外网来访问集群的Web页面。
-
JDK为:jdk-8u212-linux-x64.tar.gz Hadoop为:hadoop-3.1.3.tar.gz
集群规划
-
使用三台机器进行Hadoop集群的搭建
-
主要为HDFS中NameNode,SecondaryNameNode,Yarn中ResourceManager,NodeManager节点分配,另外需要历史服务器和日志聚集功能的配置
-
Hadoop001: NameNode,DataNode,HistoryServer,NodeManager
Hadoop002: ResourceManager, DataNode, NodeManager
Hadoop003: SecondaryNameNode, DataNode, NodeManager
网络设置
-
在阿里云的控制台开放相应的端口,如NameNode上9870端口和Yarn上8088端口,另外,设置了三台机器在内网的随意访问
-
关闭虚拟机防火墙
systemctl stop firewall systemctl disable firewall
-
hostname和hosts的设置
- hostname分别为Hadoop001,Hadoop002,Hadoop003
- hosts映射,如下。注意,不要修改红线处的名称,如果修改可能会出现connection refused错误
-
免SSH登陆设置
-
密钥的生成
#-t 后为加密方式 ssh-keygen -t rsa
-
公钥的拷贝
#hadoop002处为目标IP地址 ssh-copy-id hadoop002
-
需要注意的是此操作需要在三台机器上都执行,从而使机器间免密登陆
-
JDK和Hadoop的安装
-
可以使用yum直接安装,也可以使用sftp上传
-
本人的目录结构如下
且权限归xingcang用户,以便后续使用xingcang作为实际操作用户
-
环境变量的设置
-
在/etc/profile中,可以发现其会加载/etc/profile.d目录下的文件,因此可以在此目录下建立特有的环境变量配置信息
-
在/etc/profile.d目录下新建my_env.sh文件,并添加java和hadoop的环境变量信息
-
使配置文件生效
source /etc/profile
-
检查jdk和hadoop安装是否正常
-
Hadoop搭建
一些工具命令及脚本
-
安装一些便捷实用的命令
yum install -y epel-release yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
-
配置用户的root权限
vim /etc/sudoers
-
分发脚本xsync
此脚本在rsync的基础上编写,需要设置免密登陆
#scp的使用 scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname #rsync的使用 rsync -av $pdir/$fname $user@hadoop$host:$pdir/$fname
#!/bin/bash # number of args if [ $# -lt 1 ] then echo NOT Enough Arguement! exit; fi #loop for hosts for host in hadoop001 hadoop002 hadoop003 do echo =============$host============= # send file one by one for file in $@ do #file exists or not if [ -e $file ] then #get parent dir pdir=$(cd -P $(dirname $file); pwd) # get file name fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exists! fi done done
-
注意点:
将此脚本在home/bin和/root/bin目录下,可以使用xingcang来分发xingcang权限的文件,使用root分发root权限的文件
核心文件的配置
-
搭建集群时需要配置4个核心文件,皆在$HADOOP_HOME/etc/hadoop目录下
-
core.site.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop001:9820</value> </property
-