大学生创业服务网站建设方案项目书,国外有什么优秀的网站推荐,成都游戏网站开发,网站建设都用哪些软件Hadoop集群搭建#xff0c;基于3.3.4hadoop和centos8【小白图文教程-从零开始搭建Hadoop集群】#xff0c;常见问题解决Hadoop集群搭建#xff0c;基于3.3.4hadoop1.虚拟机的创建1.1 第一台虚拟机的创建1.2 第一台虚拟机的安装1.3 第一台虚拟机的网络配置1.3.1 主机名和IP映…
Hadoop集群搭建基于3.3.4hadoop和centos8【小白图文教程-从零开始搭建Hadoop集群】常见问题解决Hadoop集群搭建基于3.3.4hadoop1.虚拟机的创建1.1 第一台虚拟机的创建1.2 第一台虚拟机的安装1.3 第一台虚拟机的网络配置1.3.1 主机名和IP映射配置1.3.2 网络参数配置1.4 第一台虚拟机的Java,Hadoop环境搭建1.4.1 Java环境搭建1.4.2 Hadoop环境搭建1、修改core-site.xml2、修改hdfs-site.xml添加以下内容3、修改mapred-site.xml4、修改yarn-site.xml,添加以下内容5、修改 slaves文件2、克隆另外两台虚拟机及网络配置2.1 克隆虚拟机2.2 克隆虚拟机网络配置3、设置node-01到其余两台虚拟机的SSH免密登录3、格式化NameNode5、启动hadoop6、启动和关闭Hadoop集群6、通过UI查看Hadoop运行状态遇到的问题Hadoop集群搭建基于3.3.4hadoop
Hadoop集群搭建我这里采用的是Hadoop3.3.4Jdk1.8centos8,vmware16版本的。
1.虚拟机的创建
首先我们需要创建三台虚拟机,先创建第一台虚拟机然后对第一台虚拟机进行配置网络配置免密配置jdk,hadoop环境的安装然后进行克隆将第一台虚拟机克隆两个虚拟机出来最后开始搭建集群。
一些目录说明
/export/data/ :存放数据类的文件
/export/servers/ :存放服务类软件
/export/software/ :存放安装包文件1.1 第一台虚拟机的创建
打开VMware进行第一台虚拟机的创建点击新建虚拟机 选择典型下一步 我这里因为提前已经准备好了centos8的镜像资源所以直接将光盘驱动文件选择了然后点击下一步 然后自定义虚拟机名称已经安装的位置我这里使用node-01主虚拟机作为第一台虚拟机的名称然后点击下一步 磁盘空间默认20GB即可下一步 点击自定义硬件对虚拟机的内存和cpu进行一定的配置 这里我只将虚拟机的内存进行了更改由默认的1GB改到了2GB,然后点击关闭 点击完成 1.2 第一台虚拟机的安装
然后进入到虚拟机安装的环节通过上下键切换选择Install Centos stream 8-stream 选择语言中文然后点击继续 选择root密码对root账户的密码进行初始化设定 点击完成 接着我们再对网络进行配置选择网络和主机名 将网络开启然后设定主机名并且应用然后点击完成 然后选择时区将时区设为ASia/Shanghai 点击完成 然后选择分区默认分区也可以 然后进行软件的选择 因为我是小白所以还是选择了带GUI图形界面的然后选择网络服务器传统的UNIX兼容性和基本的开发工具即可
然后开始安装即可大概几分钟左右 点击重启系统即可 重新启动后它会让你确认是否接受服务选择接受即可然后创建用户这项根据个人需求我就暂时不创建了。 初始界面如下第一台虚拟机搭建完毕 1.3 第一台虚拟机的网络配置
我们可以使用XShell来进行远程登录使用Xftp来进行文件的传输和下载我这里就不过多赘述在我的另外一篇文章中都有详细的介绍。
(1条消息) Xshell和Xftp的下载和在linux虚拟机中的使用_xshell和xftp下载_杀死一只知更鸟debug的博客-CSDN博客
1.3.1 主机名和IP映射配置
配置主机名
vi /etc/sysconfig/network将虚拟机主机名称设为 node-01,node-02,node-03 配置IP映射
vi /etc/hosts将IP地址与主机名进行关联,对/etc/hosts文件进行下面的添加
192.168.197.133 node-01
192.168.197.134 node-02
192.168.197.135 node-031.3.2 网络参数配置
修改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33 默认配置如下图 将BOOTPROTO的值改为static静态路由协议保持IP的固定
BOOTPROTOstaticIPADDR192.168.197.133
GATEWAY192.168.197.2
NETMASK255.255.255.0
DNS18.8.8.8重启网络配置使其生效
service network restart然后可以使用 ifconfig指令查看网络是否配置成功。
1.4 第一台虚拟机的Java,Hadoop环境搭建
1.4.1 Java环境搭建
去到Java的官网然后下载对应的Linux版本的Jdk 创建一个目录用于存放java的环境,上面已经说过了要将软件包存放到/export/software文件夹中
mkdir -p /export/data/ # 存放数据类的文件
mkdir -p /export/servers/ # 存放服务类软件
mkdir -p /export/software/ #存放安装包文件将Jdk通过Xftp传入到Linux虚拟机上刚刚创建的目录下然后进行解压安装及环境配置 接着切换到java目录下对压缩包进行解压
cd /export/software # 切换目录
tar -zxvf jdk-8u141-linux-x64.tar.gz -C/export/servers # 解压配置Java的环境变量用vi 打开/etc/profile 文件进行配置
vi /etc/profile将下面的配置信息写入到 /etc/profile目录中注意你安装的Java版本及解压的名称。
export JAVA_HOME/export/servers/jdk1.8.0_141
export PATH$JAVA_HOME/bin:$PATH
export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar然后保存退出 Esc : wq
接着重新加载配置文件
source /etc/profile然后输入
java -version此时就可以看到Java环境安装好啦 1.4.2 Hadoop环境搭建
同样安装Linux中的Hadoop环境先需要去其官网下载对应的Hadoop版本 Apache Hadoop 找到压缩包后将其传输到Linux虚拟机中的 /export/software 目录下我这里使用的是最新的hadoop3.3.4
Apache Downloads 然后解压该压缩包到 /export/servers 目录下
cd /export/software
#如果不存在 modules目录则进行创建 mkdir modules
tar -zxvf hadoop-3.3.4.tar.gz -C /export/servers接着开始对 /etc/profile 开始配置hadoop系统环境
vi /etc/profile将下面的内容插入到 /etc/profile 的底部
export HADOOP_HOME/export/servers/hadoop-3.3.4
export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop然后保存退出 Esc : wq
同样需要重新加载一下配置文件使其生效
source /etc/profile输入hadoop -version查看其输出可见此时hadoop已经安装完毕 配置环境变量
hadoop所有配置文件都存在安装目录下的/etc/hadoop目录中我这里是**/export/servers/hadoop-3.3.4/etc/hadoop**在该目录下的hadoop-env.sh、mapred-env.sh、yarn-env.sh中添加JAVA_HOME环境变量
export JAVA_HOME/export/servers/jdk1.8.0_141如下图
进入到其安装目录下的/etc/hadoop的目录中然后对hadoop-env.sh、mapred-env.sh、yarn-env.sh中添加JAVA_HOME环境变量 1. 修改hadoop-env.sh
vi hadoop-env.sh找到 export JAVA_HOME 然后添加/export/servers/javajdk1.8.0_141jdk目录位置 然后保存退出 Esc :wq
yarn-env.sh
vi yarn-env.sh保存退出
1、修改core-site.xml
Hadoop的核心配置文件其目的是配置HdFS地址端口号以及临时文件目录
vi core-site.xml # 使用vi对其xml进行配置添加以下内容
property!-- 配置Hadoop 的临时目录 --namehadoop.tmp.dir/namevaluefile:/export/servers/hadoop-3.3.4/tmp/value
/property
property!-- 配置Hadoop的文件系统由URI指定 --namefs.defaultFS/name!-- 这里我之前配置过主机名和IP映射所以写成主机名即可没配置过的话写完整的IP地址即可 192.168.197.133--valuehdfs://node-01:9000/value
/property参数说明
fs.defaultFS默认文件系统HDFS的客户端访问HDFS需要此参数hadoop.tmp.dir指定Hadoop数据存储的临时目录其它目录会基于此路径, 建议设置到一个足够空间的地方而不是默认的/tmp下 2、修改hdfs-site.xml添加以下内容
vi hdfs-site.xml hdfs-site.xml 用于设置HDFS的NameNode和DataNode两大进程
!-- 指定hdfs副本的数量 --
propertynamedfs.replication/namevalue2/value
/property
!-- secondary 所在的主机IP和端口号 --
propertynamedfs.namenode.secondary.http-address/namevaluenode-02:50090/value
/property参数说明
dfs.replication数据块副本数 - dfs.name.dir指定namenode节点的文件存储目录dfs.data.dir指定datanode节点的文件存储目录 3、修改mapred-site.xml
mapred-site.xml是MapReduce的核心配置文件用于指定MapReduce运行时框架。
vi marped-site.xml添加以下内容
property!-- 指定MapReduce运行时框架指定yarn默认是local --namemapreduce.framework.name/namevalueyarn/value
/property4、修改yarn-site.xml,添加以下内容
yarn-site.xml是YARN框架的核心配置文件需要指定YARN集群的管理者。
vi yarn-site.xml添加如下配置 propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property!-- 指定YARN集群的管理者Resoucemanage的地址--propertynameyarn.resourcemanager.hostname/namevaluenode-01/value/property参数说明
- yarn.nodemanager.aux-servicesNodeManager上运行的附属服务需配置成mapreduce_shuffle才可以运行Mapreduce程序。yarn提供了该配置用于在nodemanager上扩展自定已服务MapReduce的Shuffle功能正式一种扩展服务。 5、修改 slaves文件
slaves文件用于记录Hadoop集群的所有从节点HDFSde DataNode 和 YARN 的 NodeManager所在主机的主机名用来配合一键启动脚本集群从节点保证配置了SSH免密登录。打开该配置文件先删除里面的默认内容localhost然后配置如下内容
vi slaves# 添加如下内容
node-01
node-02
node-032、克隆另外两台虚拟机及网络配置
2.1 克隆虚拟机
右键选择管理然后点击克隆
流程如下 选择完整克隆点击下一步 虚拟机名称和位置自定义 此时第二台虚拟机已经克隆完毕接着我们再以相同的方式克隆第三台虚拟机node-03
2.2 克隆虚拟机网络配置
配置主机名
vi /etc/sysconfig/network
# 或者使用
hostnamectl set-hostname 主机名主机名配置后使用reboot指令进行重启才会生效
将新克隆的虚拟机主机名称分别设为 node-02,node-03
修改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33 修改IPADDR即可
node-02 对应 192.168.197.134
node-03 对应 192.168.197.135 3、设置node-01到其余两台虚拟机的SSH免密登录
1、在各个节点中生成密钥文件
$ cd ~/.ssh/ # 若没有该目录执行ssh localhsot
$ ssh-keygen -t rsa # 生成密钥文件提示输出加密信息一直回车即可tip:如果提示说不存在ssh目录直接执行 ssh-keygen -t rsa 即可
2、分别在三个节点中心以下命令将公钥信息复制并追加到对方节点的授权文件authorized.key中
$ ssh-copy-id node-01
$ ssh-copy-id node-02
$ ssh-copy-id node-03这里记得将每个虚拟机开启然后在远程登录软件中进行免密配置 3、修改授权文件权限
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys4、测试无密钥登陆
ssh node-02
exit
ssh node-03
exit3、格式化NameNode
在主节点进行格式化即可node-01启动Hadoop之前需要格式化NameNode格式化NameNode可以初始化HDFS文件系统的一些目录和文件在node-01上执行:
# 必须在NameNode节点上进行format操作
$ hadoop namenode -format5、启动hadoop
# 启动hadoop
$ start-all.sh # 停止hadoop
$ stop-all.sh # 查看节点角色
$ jps启动 Hadoop 服务时权限异常strat-all .sh
Starting namenodes on [node-01]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [node-02]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.如果出现没有定义HDFS_NAMENODE_USER
则在环境变量中在添加
1.进入环境变量
vi ~/.bash_profile2.添加
export HDFS_NAMENODE_USERroot
export HDFS_DATANODE_USERroot
export HDFS_JOURNALNODE_USERroot
export HDFS_SECONDARYNAMENODE_USERroot
export YARN_RESOURCEMANAGER_USERroot
export YARN_NODEMANAGER_USERroot3.环境变量生效
source ~/.bash_profile6、启动和关闭Hadoop集群
1.单节点逐个启动和关闭
主节点启动HDFS NameNode节点
hadoop-daemon.sh start namenode从节点启动HDFS DataNode节点
hadoop-daemon.sh start datanode主节点启动YARNResourceManager进程
yarn-daemon.sh start resourcemanager从节点上启动YARN nodemanager进程
yarn-daemon.sh start nodemanager规划节点node-02启动SecondaryNameNode进程
hadoop-daemon.sh start secondarynamenode停止则使用stop替换掉start即可
2.脚本一键启动和关闭
start-dfs.sh
start-yarn.sh这个需要在配置了slaves文件和SSH免密登录双向的免密登录即从节点的虚拟机也需要进行SSH免密配置
6、通过UI查看Hadoop运行状态
在windows下的C:\Windows\System32\drivers\etc中的hosts文件添加集群服务的IP映射
192.168.197.133 node-01
192.168.197.134 node-02
192.168.197.135 node-03注意先关闭防火墙然后再进行测试查看运行状态
一下指令需要对主从节点都进行更改
systemctl stop firewalldsystemctl status firewalldsystemctl disable firewalldsystemctl enable firewalld此时我们可以从windows的窗口进行查看了 http://node-01:50090(集群服务IP端口号)和htpp://node-01:8088 查看YARN和HFDS的集群状态。 遇到的问题
以下纯属个人问题已在文章中改了正确的配置
这里我报错了
log4j:WARN No appenders could be found for logger (org.apache.hadoop.conf.Configuration).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread Thread-2 java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Unexpected close tag /property; expected /configuration.at [row,col,system-id]: [25,10,file:/export/servers/hadoop-3.3.4/etc/hadoop/mapred-site.xml]at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3092)at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:3036)at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2914)at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2896)at org.apache.hadoop.conf.Configuration.get(Configuration.java:1246)at org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1863)at org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1840)at org.apache.hadoop.util.ShutdownHookManager.getShutdownTimeout(ShutdownHookManager.java:183)at org.apache.hadoop.util.ShutdownHookManager.shutdownExecutor(ShutdownHookManager.java:145)at org.apache.hadoop.util.ShutdownHookManager.access$300(ShutdownHookManager.java:65)at org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:102)
Caused by: com.ctc.wstx.exc.WstxParsingException: Unexpected close tag /property; expected /configuration.at [row,col,system-id]: [25,10,file:/export/servers/hadoop-3.3.4/etc/hadoop/mapred-site.xml]at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:634)at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:504)at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:488)at com.ctc.wstx.sr.BasicStreamReader.reportWrongEndElem(BasicStreamReader.java:3352)at com.ctc.wstx.sr.BasicStreamReader.readEndElem(BasicStreamReader.java:3279)at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2900)at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1121)at org.apache.hadoop.conf.Configuration$Parser.parseNext(Configuration.java:3396)at org.apache.hadoop.conf.Configuration$Parser.parse(Configuration.java:3182)at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3075)... 10 more提示我说
/export/servers/hadoop-3.3.4/etc/hadoop/mapred-site.xml 这里配置有问题去看看多了一个poperty结束标记。。。
第二个问题 namenode格式化失败java.lang.IllegalArgumentException: URI has an authority component
java.lang.IllegalArgumentException: URI has an authority componentat java.io.File.init(File.java:423)at org.apache.hadoop.hdfs.server.namenode.NNStorage.getStorageDirectory(NNStorage.java:353)at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java:293)at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:264)at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1257)at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1726)at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1834)
2023-03-06 20:47:32,697 INFO util.ExitUtil: Exiting with status 1: java.lang.IllegalArgumentException: URI has an authority component
解决方案是core-site.xml中的一个配置好像不太一样3.x和2.x不太一样
cd /export/servers/hadoop-3.3.4/etc/hadoop/
vi core-site.xml我的配置是
configuration
property!-- 配置Hadoop 的临时目录 --namehadoop.tmp.dir/namevaluefile:/export/servers/hadoop-3.3.4/tmp/value
/property
property!-- 配置Hadoop的文件系统由URI指定 --namefs.defaultFS/name!-- 这里我之前配置过主机名和IP映射所以写成主机名即可没配置过的话写完整的IP地址即可 192.168.197.133--valuehdfs://node-01:9000/value
/property
/configuration正确的配置应为
configuration
property!-- 配置Hadoop 的临时目录 --namehadoop.tmp.dir/namevalue/export/servers/hadoop-3.3.4/tmp/value
/property
property!-- 配置Hadoop的文件系统由URI指定 --namefs.defaultFS/name!-- 这里我之前配置过主机名和IP映射所以写成主机名即可没配置过的话写完整的IP地址即可 192.168.197.133--valuehdfs://node-01:9000/value
/property
/configuration