深圳网站设计深圳设计公司,公司网站优势,西安专业手机网站建设价格,sem和seo都包括什么目录 前言环境准备一、创建虚拟机二、虚拟机网络配置三、克隆虚拟机四、Linux系统配置五、Hadoop的部署配置六、Hadoop集群的启动 前言
大数据课程需要搭建Hadoop分布式集群#xff0c;在这里记录一下搭建过程
环境准备
搭建Haoop分布式集群所需环境#xff1a;
VMware在这里记录一下搭建过程
环境准备
搭建Haoop分布式集群所需环境
VMwareVMware-workstation-full-17.0.2-21581411CentOSCentOS-7-x86_64-DVD-2003Hadoophadoop-3.1.3.tarJDKjdk-8u212-linux-x64.tar.gz
一、创建虚拟机
新建虚拟机 设置用户 命名虚拟机 自定义硬件完成虚拟机创建 开始启动虚拟机并安装CentOS
二、虚拟机网络配置
NAT网络模式
宿主机可以看做一个路由器虚拟机通过宿主机的网络来访问 Internet可以安装多台虚拟机组成一个小型局域网例如搭建 hadoop 集群、分布式服务。
VMnet8 设置静态 IP Centos 网络设配器为 NAT 模式 VMware 虚拟网络设置 验证结果
因为网络这里一块老早之前就配置过了如果觉得不详细可以参看以下文章https://blog.csdn.net/ruiqu1650914788/article/details/124973841
三、克隆虚拟机
集群搭建需要至少三台服务器这里我们再克隆两台虚拟机克HadoopSlave1与HadoopSlave2 直接无脑下一步记得修改名称
四、Linux系统配置
1、配置时钟同步 三台虚拟机都需要配置
yum install ntpdate
ntpdate ntp5.aliyun.com
2、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
3、配置主机名
三台虚拟机都需要配置 以root用户身份登录HadoopMaster节点直接使用vim编辑器打开network网络配置文件命令如下
vim /etc/sysconfig/network打开network文件配置信息如下将HadoopMaster节点的主机名修改为master即下面第二行代码所示
NETWORKINGyes #启动网络HOSTNAMEmaster #主机名两个子节点分别为
NETWORKINGyes #启动网络HOSTNAMEslave1 #主机名NETWORKINGyes #启动网络HOSTNAMEslave2 #主机名测试 4、 配置Hosts列表
主机列表的作用是让集群中的每台服务器彼此之间都知道对方的主机名和IP地址。因为在Hadoop分布式集群中各服务器之间会频繁通信做数据的同步和负载均衡。
以root用户身份登录三个节点将下面3行代码添加到主机列表/etc/hosts 文件中。
192.168.17.130 master192.168.17.131 slave1192.168.17.132 slave2ip地址可以使用命令ip addr查看
验证主机hosts是否配置成功
ping masterping slave1ping slave25、关闭selinux
vim /etc/selinux/config
修改为 SELINUXdisabled6、免密钥登录配置 免密钥登录是指从一台节点通过SSH方式登录另外一台节点时不用输入该节点的用户名和密码就可以直接登录进去对其中的文件内容直接进行操作。没有任何校验和拦截。 从root用户切换到hadoop用户输入su hadoop在终端生成密钥输入以下命令
ssh-keygen –t rsa一直回车即可
复制公钥文件到authorized_keys文件中命令如下
cat /home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/authorized_keys修改authorized_keys文件的权限只有当前用户hadoop有权限操作authorized_keys文件命令如下
chmod 600 /home/hadoop/.ssh/authorized_keys将HadoopMaster主节点生成的authorized_keys公钥文件复制到HadoopSlave1和HadoopSlave2从节点命令如下
scp /home/hadoop/.ssh/authorized_keys hadoopslave1:/home/hadoop/.ssh/scp /home/hadoop/.ssh/authorized_keys hadoopslave2:/home/hadoop/.ssh/如果出现提示则输入yes并按回车键输入密码
以hadoop用户身份登录HadoopSlave1、HadoopSlave2节点进入到/home/hadoop/.ssh目录修改authorized_keys文件的权限为当前用户可读可写输入以下命令
chmod 600 /home/hadoop/.ssh/authorized_keys在HadoopMaster节点的Terminal终端上输入以下命令验证免密钥登录 ssh slave1 五、Hadoop的部署配置
1、安装JDK 三台虚拟机都需要配置 卸载现有JDK
rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps将JDK文件复制到新建的/usr/java 目录下解压修改用户的系统环境变量文件/etc/profile
tar –zxvf xxxvi /etc/profile写入以下配置
export JAVA_HOME/usr/java/jdk1.8.0_212export JRE_HOME/usr/java/jdk1.8.0_212/jreexport CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libexport PATH$JRE_HOME/bin:$JAVA_HOME/bin:$PATH
使配置生效
source /etc/profile测试
java -version2、安装Hadoop 将Hadoop安装文件通过SSH工具上传到HadoopMaster节点hadoop用户的主目录下。进入hadoop用户主目录输入以下命令进行解压
tar –zxvf hadoop-3.1.3.tar.gz3、配置环境变量hadoop-env.sh
vim /home/hadoop/hadoop-3.1.3/etc/hadoop/hadoop-env.sh在文件靠前的部分找到以下代码(没有就自己添加)
export JAVA_HOME${JAVA_HOME}将这行代码修改为
export JAVA_HOME/usr/java/jdk1.8.0_212保存文件此时Hadoop具备了运行时的环境。
4、配置环境变量yarn-env.sh YARN主要负责管理Hadoop集群的资源。这个模块也是用Java语言开发出来的所以也要配置其运行时的环境变量JDK。
打开Hadoop的YARN模块的环境变量文件yarn-env.sh只需要配置JDK的路径。 vim /home/hadoop/hadoop-3.1.3/etc/hadoop/yarn-env.sh#export JAVA_HOME将这行代码修改为
export JAVA_HOME/usr/java/jdk1.8.0_2125、配置核心组件core-site.xml
Hadoop集群的核心配置是关于集群中分布式文件系统的入口地址和分布式文件系统中数据落地到服务器本地磁盘位置的配置。
分布式文件系统Hadoop Distributed FileSystemHDFS是集群中分布式存储文件的核心系统将在后面章节详细介绍其入口地址决定了Hadoop集群架构的主节点其值为hdfs://master:9000协议为hdfs主机为master即HadoopMaster节点端口号为9000。
vim /home/hadoop/hadoop-3.1.3/etc/hadoop/core-site.xml在!-- Put site-specific property overrides in this file. --下方输入
configurationpropertynamefs.defaultFS/namevaluehdfs://master:9000/value/propertypropertynamehadoop.tmp.dir/namevalue/home/hadoop/hadoopdata/value/property/configurationHDFS文件系统数据落地到本地磁盘的路径信息/home/hadoop/hadoopdata该目录需要单独创建。
在三个虚拟机上的目录/home/hadoop下创建目录hadoopdata
mkdir hadoopdata6、 配置文件系统hdfs-site.xml
在分布式的文件系统中由于集群规模很大所以集群中会频繁出现节点宕机的问题。分布式的文件系统中可通过数据块副本冗余的方式来保证数据的安全性即对于同一块数据会在HadoopSlave1和HadoopSlave2节点上各保存一份。这样即使HadoopSlave1节点宕机导致数据块副本丢失HadoopSlave2节点上的数据块副本还在就不会造成数据的丢失。
配置文件hdfs-site.xml有一个属性就是用来配置数据块副本个数的。在生产环境中配置数是3也就是同一份数据会在分布式文件系统中保存3份即它的冗余度为3。也就是说至少需要3台从节点来存储这3份数据块副本。在Hadoop集群中主节点是不存储数据副本的数据的副本都存储在从节点上由于现在集群的规模是3台服务器其中从节点只有两台所以这里只能配置成1或者2。
vim /home/hadoop/hadoop-3.1.3/etc/hadoop/hdfs-site.xml在!-- Put site-specific property overrides in this file. -- 下方输入
configurationproperty!--配置数据块的副因子即副本数为2--namedfs.replication/namevalue2/value/property/configuration7、 配置YARN资源系统yarn-site.xml
YARN的全称是Yet Another Resource Negotiator即另一种资源协调者运行在主节点上的守护进程是ResourceManager负责整个集群资源的管理协调运行在从节点上的守护进程是NodeManager负责从节点本地的资源管理协调。
YARN的基本工作原理每隔3秒NodeManager就会把它自己管理的本地服务器上的资源使用情况以数据包的形式发送给主节点上的守护进程ResourceManager这样ResourceManager就可以随时知道所有从节点上的资源使用情况这个机制叫“心跳”。当“心跳”回来的时候ResourceManager就会根据各个从节点资源的使用情况把相应的任务分配下去。“心跳”回来时携带了ResourceManager分配给各个从节点的任务信息从节点NodeManager就会处理主节点ResourceManager分配下来的任务。客户端向整个集群发起具体的计算任务ResourceManager是接受和处理客户端请求的入口。
vim /home/hadoop/hadoop-3.1.3/etc/hadoop/yarn-site.xml在!-- Site specific YARN configuration properties --下方输入
propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/propertypropertynameyarn.resourcemanager.address/namevaluemaster:18040/value/propertypropertynameyarn.resourcemanager.scheduler.address/namevaluemaster:18030/value/propertypropertynameyarn.resourcemanager.resource-tracker.address/namevaluemaster:18025/value/propertypropertynameyarn.resourcemanager.admin.address/namevaluemaster:18141/value/propertypropertynameyarn.resourcemanager.webapp.address/namevaluemaster:18088/value
/property8、 配置计算框架mapred-site.xml YARN主要负责分布式集群的资源管理将Hadoop MapReduce分布式并行计算框架在运行中所需要的内存、CPU等资源交给YARN来协调和分配通过对mapred-site.xml配置文件的修改来完成这个配置。
vim /home/hadoop/hadoop-3.1.3/etc/hadoop/mapred-site.xml在!-- Put site-specific property overrides in this file. --下方输入
configuration!—MapReduce计算框架的资源交给YARN来管理--propertynamemapreduce.framework.name/namevalueyarn/value/property/configuration在这里可能出现以下Bug 处理方式 先运行shell命令hadoop classpath 在mapred-site.xml添加以下配置
propertynameyarn.application.classpath/namevaluehadoop classpath返回的信息/value
/property
9、复制hadoop到从节点
主节点的角色HadoopMaster已在配置HDFS分布式文件系统的入口地址时进行了配置说明从节点的角色也需要配置此时workers文件就是用来配置Hadoop集群中各个从节点角色。
打开workers配置文件。
vim /home/hadoop/hadoop-3.1.3/etc/hadoop/workers用下面的内容替换workers文件中的内容
slave1slave2在Hadoop集群中每个节点上的配置和安装的应用都是一样的这是分布式集群的特性所以此时已经在HadoopMaster节点上安装了Hadoop-3.1.3的应用只需要将此应用复制到各个从节点即HadoopSlave1节点和HadoopSlave2节点即可将主节点的hadoop复制到从节点上。
scp –r /home/hadoop/hadoop-3.1.3 hadoopslave1:~/scp –r /home/hadoop/hadoop-3.1.3 hadoopslave2:~/10、配置Hadoop启动的系统环境变量 和JDK的配置环境变量一样也要配置一个Hadoop集群的启动环境变量PATH。 此配置需要同时在三台虚拟机上进行操作操作命令如下
vi /etc/profile将下面的代码追加到文件的末尾
#Hadoop Path configurationexport HADOOP_HOME/home/hadoop/hadoop-2.5.2export PATH$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH输入:wq保存退出并执行生效命令
source /etc/profile登录HadoopSlave1和HadoopSlave2节点依照上述配置方法配置Hadoop启动环境变量。
这里存在一个问题CentOS 7 每次进入要重新加载环境变量 解决方式 进入系统配置文件
vim ~/.bashrc末尾添加如下代码
source /etc/profile保存即可
六、Hadoop集群的启动
启动集群时首先要做的就是在HadoopMaster节点上格式化分布式文件系统HDFS
hadoop namenode -format启动Hadoop
cd /home/hadoop/hadoop-3.1.3
sbin/start-all.sh查看进程是否启动 在HadoopMaster的Terminal终端执行jps命令在打印结果中会看到4个进程分别是ResourceManager、Jps、NameNode和SecondaryNameNode。 在HadoopSlave的终端执行jps命令在打印结果中会看到3个进程分别是NodeManager、DataNode和Jps。 注意jps是JDK的命令如果没有该命令请检查JDK是否配置正确
如果子节点不存在DataNode参考以下文章https://blog.csdn.net/m0_61232019/article/details/129324464 也可以删除hadoopdata目录里面的内容重新启动Hadoop来解决
检查NameNode和DataNode是否正常 检查YARN是否正常 运行PI实例检查集群是否启动成功