如何用阿里云搭建Hadoop集群

先假设已经有 3 台可用的阿里云服务器,且位于同一个区域
步骤:
关闭防火墙
上传 jdk ,Hadoop 安装包到服务器
配置环境变量
设置服务器免密码互连
配置 Hadoop
验证,启动 Hadoop 服务

阿里云服务器中搭建 Hadoop 与虚拟机中步骤类似,只需要配置服务器的网络规则即可。
服务器的操作系统为:CentOS 7.4 x64, Hadoop 版本: jdk版本:
先把 3 台服务器简单规划一下,一台作为主节点 master ,其他两台作为从节点 slave1、slave2。

#公网IP
47.51.121.210master
47.51.121.211slave1
47.51.121.212slave2

#私网IP
172.31.152.10master
172.31.152.11slave1
172.31.152.12slave2

1、设置对应服务器的主机名。把服务器默认的主机名设置成上文中规划的主机名,方便识别以及使用。如下所示,文中命令适用于 CentOS 7,其他版本需注意其中差别
用公网IP登陆服务器:
ssh-p22root@47.51.121.210
password:
[root@fa1233sdfeiojh~]#

按照规划,IP 47.51.121.210 的服务器对应的主机名应该改成 master,而默认的主机名是 fa1233sdfeiojh 。修改如下:
[root@fa1233sdfeiojh~]#hostnamectlset-hostnamemaster
[root@fa1233sdfeiojh~]#hostname
master
修改成功,退出连接后重新再连接[root@fa1233sdfeiojh ~]# 会变成[root@master ~]#
其他两台服务器按照一样的步骤修改。

2、软件准备。把准备好的 jdk、Hadoop 安装包分别上传到服务器中,放到 /opt 目录下。或者从 Hadoop 官网中找到对应版本的下载链接,在服务器中下载。ps: 香港地区的服务器下载速度超快,或者内地的服务器用镜像下载地址也很快。Hadoop 安装包镜像资源页面:http://mirror.bit.edu.cn/apache/hadoop/common/

点击资源下载,或者复制下载链接到服务器中用wget 下载地址下载安装包。
安装包上传成功后,在 /opt 目录下新建一个 modules 目录。把软件解压到改目录下:
tar-zxvfhadoop-2.7.6.tar.gz-Cmodules/
tar-zxvfjdk-8u171-linux-x64.tar.gz-Cmodules/
三台服务器进行相同的操作,解压完成后,软件准备即完成。

3、服务器环境变量设置。把解压好的 jdk、Hadoop 目录添加到系统环境配置中,编辑 /etc/profile 文件,把下述内容添加到文件末尾,保存退出
exportJAVA_HOME=/opt/modules/jdk1.8.0_171
exportPATH=$PATH:$JAVA_HOME/bin
exportHADOOP_HOME=/opt/modules/hadoop-2.7.6
exportPATH=$PATH:$HADOOP_HOME/bin
刷新环境变量 source /etc/profile 后验证,任意一个目录输入java 或 javac 或 hadoop version 命令后,如果有输出相关信息,则表示环境变量配置成功。如果提示命令无效,则说明环境配置失败。
如果配置失败,检查软件的实际目录是否与 /etc/profile 添加的内容一致。

4、设置服务器免密码登陆。在三台服务器中依次输入ssh-keygen -t rsa ,生成 SSH 公钥。命令输入后,按几次 Enter 键即可
当三台服务器的 SSH 公钥生成后,再把它们的公钥相互拷贝,存入对方的机器中,即可实现免密码登陆。使用命令 ssh-copy-id 主机名,每台机器中都需要使用三次
ssh-copy-idmaster
ssh-copy-idslave1
ssh-copy-idslave2
依次执行后,再使用ssh 主机名 命令就无需使用密码了。

5、配置 Hadoop,Hadoop 的配置主要在 Hadoop 的根目录下的 etc/hadoop 中的 hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-env.sh、mapred-site.xml、slaves、yarn-env.sh、yarn-site.xml 这几个配置文件。
其中 hadoop-env.sh、mapred-env.sh、yarn-env.sh 主要是添加 java 环境变量,配置 jdk 路径。将文件中的 export JAVA_HOME=xxx 统一修改成
exportJAVA_HOME=/opt/modules/jdk1.8.0_171
core-site.xml
configuration
!--指定HDFS中NameNode的地址--
property
namefs.defaultFS/name
valuehdfs://hadoop102:9000/value
/property
!--指定hadoop运行时产生文件的存储目录--
property
namehadoop.tmp.dir/name
value/opt/modules/hadoop-2.6.0-cdh5.10.1/tmp/value
/property
/configuration
hdfs-site.xml
configuration
property
namedfs.replication/name
value3/value
/property
/configuration
mapred-site.xml
configuration

!--指定mr运行在yarn上--
property
namemapreduce.framework.name/name
valueyarn/value/property/configuration slaves
slave1
slave2
yarn-site.xml
configuration
!--reducer获取数据的方式--
property
nameyarn.nodemanager.aux-services/name
valuemapreduce_shuffle/value
/property
!--指定YARN的ResourceManager的地址--
property
nameyarn.resourcemanager.hostname/name
valuemaster/valu/property/configuration

6、格式化,配置好 Hadoop 后。在 master 节点中的服务器中 Hadoop 跟目录下运行格式化命令bin/hdfs namenode -format,注意查看日志,如果打印中的信息有 successful 等字样即表示格式化成功。
7、启动 Hadoop。格式化之后命令之后,同样的机器下可执行sbin/start-all.sh,启动 Hadoop 所有服务。若无异常,则表示 Hadoop 启动成功。
8、常用命令,Hadoop 启动后可以用hdfs 的一些命令验证,上传文件到 hdfs中,如果可以正常上传则表示 Hadoop 配置通过。
HDFSConsole操作页面:http://xxx.xxx.xxx.xxx:50070
YARNConsole操作页面:http://xxx.xxx.xxx.xxx:8088

hdfs的命令许多与Linux命令类似,只是在Linux基本命令
前添加了hdfsdfs。
hdfsdfs-ls/#查看hdfs根目录
hdfsdfs-mkdir/input#创建input文件夹
hdfsdfs-putxxx/input#上传xxx到hdfs中的input文件夹
更多的命令可以去看相关文档,或者直接上网查找。至此,Hadoop 集群的安装便结束。