目录
总序
本次hadoop集群搭建的虚拟机采用的软件为VMware Workstation Pro,用的镜像文件为CentOS-7,此篇文章是为自己准备大数据比赛中的大数据平台搭建部分所写,故只针对搭建hadoop集群搭建的部分进行概述,前绪工作包括虚拟机的搭建读者可以阅读下面的文章自行进行安装。hadoop集群安装的流程本人多次实践过,从而编写出最简单、最明了的操作过程。
此次hadoop集群的搭建设置了三个节点,主节点的名称为:bigdata2021master,剩余两个子节点的名称分别为:bigdata2021slave1,bigdata2021slave2。
一、下载相关软件的压缩包
搭建hadoop集群需要配置java、hadoop环境,因此需要去官网下载相关的压缩包。注:尽量不要下载最新版本的压缩包,可能会出现不兼容等相关问题,建议下载老一点版本的。在window中下载的文件可通过qq邮箱、xshell软件等方式传送到虚拟机上去。
1、hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.1/(注:选择:hadoop-2.7.1.tar.gz 的文件下载即可)
2、jdk下载地址:https://www.oracle.com/java/technologies/downloads/#java8(注:选择:jdk-8u381-linux-x64.tar.gz文件下载即可)
二、配置虚拟机上主节点相关设置
1、修改主机用户名
首先要将你的主机用户名改为所需要的用户名,这里我改成bigdata2021master。
(1)打开终端,输入:su 后并输入密码切换成管理员模式;
(2)输入:vi etc/hostname,修改成对应的用户名(注:用vi命令编辑文件时按i进入编辑模式,编辑完成后按esc后输入wq!保存并退出);
2、进行ip地址映射
在终端中输入:vi etc/hosts 后输入(如下图)三个节点名称和ip地址(ip地址可在终端中输入ifconfig命令中可查看,剩余两个子节点的ip地址最后三位自己可随便定义);
3、配置虚拟机网络设置
(1)在终端中输入vi /etc/sysconfig/network-scripts/ifcfg-ens33 后,修改和增加相关配置,修改和增加的内容为下图1中红色框的内容。其中IPADDR表示为IP地址,NETMASK表示为子网掩码,GATEWAY为网关,以上地址可在虚拟机菜单中点击编辑-->虚拟网络编辑器-->VMnet8-->NAT设置后即可看到相关地址信息(如下图2步骤),DNS1和DNS2可用图中默认的地址;
(2)完成上述配置,要重启网络,在终端中输入:service network restart
图1:(注:可能读者在操作时有些配置和此图片不一样,读者要统一成和此图片一致,除红框中的信息要根据自己计算机的地址信息来修改)
图2:可能需要管理员权限
三、解压并配置java、hadoop环境
1、解压jdk、hadoop压缩文件
(1)切换到保存压缩包的文件夹下输入:tar -zxvf 压缩包名
(2)文件名过长时可用mv命令修改方便后续操作
2、配置jdk、hadoop环境
(1)在终端中输入:vi /etc/profile 来修改文件;
(2)在结尾加上以下内容(如下图所示):
export JAVA_HOME=解压后的jdk文件路径
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=解压后的hadoop文件路径
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
(3)保存退出后输入:source /etc/profile 让修改的配置文件生效;
(4)验证是否配置成功,输入:java -version 如果出现下图信息说明配置成功。
3、修改hadoop中的相关配置文件信息(最重要)
(1)新建几个目录用来存储修改配置文件后的相关信息,在终端中输入以下命令:
mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data
(2)切换到 etc/hadoop 下,修改一系列配置文件:
- 输入:vi core-site.xml 修改文件,在文件中的<configuration>和</configuration>添加以下内容(注:黄色部分要改成自己的主机名)
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://bigdata2021master:9000</value>
</property>
- 输入:vi hadoop-env.sh 修改文件,找到文件中的以下内容(红框的内容是文件中的原文内容,后部分要自己根据存储的jdk、hadoop文件路径进行修改),并修改成以下内容:
- 输入:vi hdfs-site.xml 修改文件,在文件中的<configuration>和</configuration>添加以下内容:
<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value> #表示副节点的个数
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property>
- 输入:mapred-site.xml 修改文件,在文件中的<configuration>和</configuration>添加以下内容(注:黄色部分要改成自己的主机名)
<property>
<name>mapred.job.tracker</name>
<value>bigdata2021master:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/root/hadoop/var</value>
</property>
<property><name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 输入:yarn-site.xml 修改文件, 在文件中的<configuration>和</configuration>添加以下内容(注:黄色部分要改成自己的主机名)
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata2021master</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>每个节点可用内存,单位MB,默认8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
- 输入:vi workers 修改文件配置,在该文件中,加上三个机器的用户名:
四、克隆两个子节点
1、克隆虚拟机
(1)选择对应左侧虚拟机的名称,右击选择管理-->克隆;
(2)接下来直接选择默认选项即可,但注意其中一步必须选择如下图的选项。
2、修改子节点机器的相关配置
因为克隆机器后的两个子节点和主机点的信息完全一致,因此要把两个子节点的用户名、ip地址根据之前修改的hosts文件改掉,方法和前面一致。
♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
特别说明:有的时候需要用scp命令将主机上的hadoop文件传输到副机上去,这里可以先新建两个虚拟机并且和前面一样配置好相关信息,再在终端中输入:scp -r 源hadoop文件路径 机器用户名:目标路径位置后,即可传输,比较麻烦,建议没有要求的情况下使用克隆虚拟机的方法。
♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
五、设置免密登录(三个节点都需要进行此操作)
1、关闭防火墙和禁止启动防火墙
(1)关闭防火墙,终端中输入:systemctl stop firewalld.service
(2)关闭开机时自动开启防火墙 :systemctl disable firewalld.service
2、生成密钥
在终端中输入:ssh-keygen -t rsa ,一直按回车键即可
3、分配密钥
(1)在终端中输入以下指令(中途根据提示输入yes、密码):
ssh-copy-id bigdata2021master
ssh-copy-id bigdata2021slave1
ssh-copy-id bigdata2021slave2
(2)验证是否能够免密成功登录,终端输入:ssh 机器名称,若能够成功登录其他机器则免密登陆设置成功
六、启动hadoop集群
1、格式化hadoop集群
(1)切换到 下载的hadoop文件中的 bin 目录下
(2)格式化hadoop集群,在终端中输入:./hadoop namenode -format ,若在 /root/hadoop/dfs/name中出现一个current目录并有一些列文件,即表示格式化成功,注意不要多次格式化会出错。
(3)修改下列启动和停止集群的配置文件(在主节点修改即可)
- 切换到下载的hadoop文件下的 /sbin目录下修改文件
- 在start-dfs.sh、stop-dfs.sh 中开头中加上内容(用vi命令操作):
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
- 在start-yarn.sh、stop-yarn.sh中开头加上以下内容(用vi命令操作):
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=root
YARN_NODEMANAGER_USER=root
2、启动hadoop集群 (在主节点启动)
(1)在终端输入:start-all.sh;
(2)三个节点分别输入jps查看进程(注意都要切换到管理员权限,并切换到hadoop文件下的bin目录下),出现下列结果(关键是看主机点的进程中是否有NameNode进程、子结点中是否有DataNode进程),则表明搭建集群成功;(注:必须都为管理员权限下进入hadoop目录下的bin路径下才能查看到启动的进程)
- 主节点:
- 子节点1:
- 子节点2:
七、说明
❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤
如果没有成功搭建,大概率是因为在配置hadoop文件时有问题,请务必在配置时仔细检查,创作不易,希望留下您的点赞哦,如果此篇文章编写有问题,欢迎批评指正。
❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤