郑州大数据入门培训教程之Hadoop集群搭建
时间如白驹过隙,转眼间已经是我们进行大数据培训学习的第二个月。这周,在老师的带领下,顺利地用三台虚拟机2成功地搭建了hadoop集群。但是,由于本人笔记本配置吃紧,无奈之下,只好尝试用云服务器搭建hadoop集群。下面,我来分享一下在云服务器中搭建集群碰到过的问题。
首先,千万别用虚拟机和云服务器混合的方式搭建集群,一定不会成功的,因为服务器的根本无法ping通你的虚拟机,切记!
经过一整天的失败尝试,我终于放弃了上述方法,改租了三台云服务器来搭建集群,这是我成功搭建后的集群。(hadoop和jdk安装就不再赘述了)
首先,使用ssh工具连接上三台远程服务器,并且设置好免密登录,不然,上传文件到hdfs时,会让你反复输入密码,非常麻烦。接着,配置好配置文件,分别是core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml以及在同名的以env.sh结尾的文件中配置JAVA_HOME地址,其中,在core-site.xml中配置启动namenode的地址,在hdfs-site.xml中配置启动secondarynamenode的地址,在yarn-site.xml中配置启动resourcemanager的地址。这之后,输入 /usr/local/hadoop-2.7.2/bin/hdfs namenode -format 来格式化namenode。然后,通过start-dfs.sh来启动HDFS,使用start-yarn.sh来启动YARN(启动YAEN时,最好在ResourceManager的机器上启动,不然,会导致resourcemanager无法启动,不可避免的手动重启,浪费时间。)
接下来,就是我在千锋郑州大数据培训班学习碰到的第一个问题,namenode无法启动, 查看日志,发现以下错误:
图片只是截取,我简单说明,一共有两个错误:分别是Cannot assign requested address和Port in use: hadoop104:50090。根据字面意思理解,分别是不能分配要求的地址和端口50090被占用。
前者比较难理解,也无法着手操作。因此,我们需要先上手解决后者,使用 ps -ef|grep 50090 命令,结果发现除了执行搜索命令的端口外,根本没有别的端口,换个方式继续用ps -ef|grep hadoop 来查阅,会发现有一处,用kill -9 删除,结果发现,删除的是datanode的端口(/手动捂脸)。经过试验,最后不得不承认,端口没有被占用。这种情况下只好上网查询,得到的解释是一般不是占用端口的问题,而是你无法分配地址到这个端口上,可能是配置文件有问题。
因此,我打开/etc/hosts查看ip有没有写错,木有错误,又去vi /usr/local/hadoop-2.7.2/etc/hadoop/core-site.xml下查看,也木有错误,我不死心,又采纳另一种意见,将/etc/hosts下的127.0.0.1 和::1屏蔽,重启服务,结果还是打不开;关机,重启服务,失败 ;
在core-site.xml中的hadoop104改成ip地址,重启服务,失败;失败;一直显示失败的状态。最后在阿里云的一个论坛上,发现有位大神说,公网ip好像不能绑定端口号,于是,我怀揣着侥幸的心里,将/etc/hosts 中的hadoop104的IP地址从他给予的gongwangip改成ifconfig中写的私网ip,重启服务,成功了
接着重新start-dfs.sh,然后使用jps查看,启动成功,master机上的datanode和namenode启动成功,接着又去slave机上jps,datanode没启动!老规矩,查看日志:
FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool(Datanode Uuid unassigned) service to master/192.168.200.199:9000. Exiting.
2018-09-14 16:11:06,822 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid dfs.datanode.data.dir /usr/local/hadoop/dfs/data
java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/dfs/data: namenode clusterID = CID-c1bf781c-d589-46d7-a246-7f64a6f24bc1; datanode clusterID = CID-b1ee6a5b-aa39-4e9e-b849-ee7c4650989b.
因为datanode的clusterid没有识别,不知道datanode的clusterid在那,经过上网查,发现 在/usr/local/hadoop-2.7.2/data/tmp/dfs/data/current/VERSION并且需要令三台机器的datanodeuuid一样于是vi进去,修改clusterid,重启服务,jps成功。这之后,start-yarn.sh,也成功启动,我怀着激动的心情,在浏览器中输入http:/xxx.xxx.xxx.xxx:50070/dfshealth.html#tab-datanode,点进去了!!发现只部署了一个datanode节点!又再度开始寻找问题源头。 原来三台datanode节点中的datanodeuuid和storageid必须不一致,不然,namenode智能识别出一台datanode。再度修改重启服务,jps,打开50070,成功!打开8088,成功!上传文件,成功!!
hadoop集群成功搭建!
激动的心情无以言表,哪怕此刻编辑这篇文章回想当时的心情也是万分兴奋。学习是一个理论+实践的过程,计算机大数据更是如此。对于每一个程序员而言,最重要的就是在敲码中寻找问题,找到问题,最终想办法解决问题,这也是我在千锋郑州大数据培训班学到一个真理,当一个问题摆在面前,较真的去钻研,最终得以解决,很明显这次的过程和经历将比纸上学来和课堂总结的更加记忆深刻。所以,凭借构建Hadoop集群的这个经历来告诉大家何为真才实学。真才实学就是从老师那里得来的知识成功的应用在自己的工作中,并学会举一反三,最终游刃有余的适用日后的实践之中。望这章文章对屏幕前的你有所帮助。
学习大数据开发,可以参考千锋提供的大数据学习路线,该学习路线提供完整的大数据开发知识体系,内容包含Linux&&Hadoop生态体系、大数据计算框架体系、云计算体系、机器学习&&深度学习。根据千锋提供的大数据学习路线图可以让你对学习大数据需要掌握的知识有个清晰的了解,并快速入门大数据开发。
相关推荐HOT
更多>>大数据培训学习什么,你了解多少
大数据培训学习什么?你了解多少?随着互联网技术的不断发展,大数据技术开始走进人们的视野,并成为现阶段吃香的技术能力之一。那么熟练掌握大...详情>>
2023-03-16 15:16:01云计算培训怎么样?可靠吗
云计算培训怎么样?可靠吗?靠不靠谱要看你什么要求了,因人而异。但如果你是想通过培训机构快速掌握好技能,然后进入行业,这个一般都没有问题...详情>>
2023-03-07 14:51:00java编程工资多少?主要学哪些内容
java编程工资多少?主要学哪些内容?java程序员的月收入在6000-20000不等,在一线城市有工作经验的java程序员的薪资收入会高一些,在二三线城市...详情>>
2023-02-24 14:56:07it工程培训机构,云计算难学吗
下面给小伙伴们列举一个学习大纲参考: 第一阶段: 零基础入门 1、计算机基础 2、Raid设置与网络服务基础 3、网络基础 第...详情>>
2022-12-01 17:48:04