其实高效搭建Hadoop伪分布式环境,逐步深入学习实践的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享高效搭建Hadoop伪分布式环境,逐步深入学习实践的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
安装模式
单机模式:不能使用HDFS,只能使用MapReduce,所以单机模式最主要的目的是在本机调试mapreduce代码
伪分布式模式:用多个线程模拟多台真实机器,即模拟真实的分布式环境。
完全分布式模式:用多台机器(或启动多个虚拟机)来完成部署集群。
安装步骤:
0.关闭防火墙
执行:service iptables stop 这个指令关闭完防火墙后,如果重启,防火墙会重新建立,所以,如果想重启后防火墙还关闭,
需额外执行:chkconfig iptables off
1.配置主机名
执行:vim /etc/sysconfig/network
注意:主机名里不能有下滑线,或者特殊字符 #$,不然会找不到主机导致无法启动
这种方式更改主机名需要重启才能永久生效,因为主机名属于内核参数。
如果不想重启,可以执行:hostname hadoop01。但是这种更改是临时的,重启后会恢复原主机名。
所以可以结合使用。先修改配置文件,然后执行:hostname hadoop01 。可以达到不重启或重启都是主机名都是同一个的目的
2.配置hosts文件
执行:vim /etc/hosts
3.配置免秘钥登录
在hadoop01节点执行:
执行:ssh-keygen
然后一直回车
生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下
然后把公钥发往远程机器,比如hadoop01向hadoop01发送
执行:ssh-copy-id root@hadoop01
此时,hadoop02节点就是把收到的hadoop秘钥保存在
/root/.ssh/authorized_keys 这个文件里,这个文件相当于访问白名单,凡是在此白明白存储的秘钥对应的机器,登录时都是免密码登录的。
当hadoop01再次通过ssh远程登录hadoop01时,发现不需要输入密码了。
在hadoop02节点执行上述上述步骤,让hadoop02节点连接hadoop01免密码登录
4.配置自己节点登录的免密码登录
如果是单机的伪分布式环境,节点需要登录自己节点,即hadoop01要登录hadoop01
但是此时是需要输入密码的,所以要在hadoop01节点上
执行:ssh-copy-id root@hadoop01
5.安装和配置jdk
执行: vi /etc/profile
2)在尾行添加
#set java environmentJAVA_HOME=/usr/local/src/java/jdk1.7.0_51PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOME PATH CLASSPATH
保存退出
3)source /etc/profile 使更改的配置立即生效
4)java -version 查看JDK版本信息。如显示1.7.0证明成功。
6.上传和解压hadoop安装包
执行:tar -xvf hadoop……
目录说明:
bin目录:命令脚本
etc/hadoop:存放hadoop的配置文件
lib目录:hadoop运行的依赖jar包
sbin目录:启动和关闭hadoop等命令都在这里
libexec目录:存放的也是hadoop命令,但一般不常用
最常用的就是bin和etc目录
7.配置hadoop-env.sh
这个文件里写的是hadoop的环境变量,主要修改hadoop的java_home路径
切换到 etc/hadoop目录
执行:vim hadoop-env.sh
修改java_home路径和hadoop_conf_dir 路径
然后执行:source hadoop-env.sh 让配置立即生效
8.修改core-site.xml
在etc/hadoop目录下
执行:vim core-site.xml
配置如下:
9.修改 hdfs-site .xml
配置如下:
10.修改 mapred-site.xml
这个文件初始时是没有的,有的是模板文件,mapred-site.xml.template
所以需要拷贝一份,并重命名为mapred-site.xml
执行:cp mapred-site.xml.template mapred-site.xml
配置如下:
yarn是资源协调工具,
11.修改yarn-site.xml
配置如下:
12.配置slaves文件
13.配置hadoop的环境变量
配置代码:
JAVA_HOME=/home/software/jdk1.8HADOOP_HOME=/home/software/hadoop-2.7.1CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport JAVA_HOME PATH CLASSPATH HADOOP_HOME
14.格式化namenode
为什么要格式化
执行:hadoop namenode -format
如果不好使,可以重启linux
用户评论
这太棒了!一直想搞清楚 Hadoop 的原理,但又害怕部署复杂。伪分布式是个很好的学习方式,我也有这个计划收藏下来慢慢看看,希望能够在实践中积累体验。
有18位网友表示赞同!
我也是大赞,Hadoop 真的是个技术宝库啊,自己搭建一个再研究一遍,确实能加深理解。 不过这种伪分布式是不是有点局限性呢?真实环境的数据量和复杂程度显然要高得多吧。
有13位网友表示赞同!
我刚开始学 Hadoop,感觉真是眼花缭乱!看了你的这篇文章,我觉得慢慢摸索是最好的途径,真羡慕你已经拥有了一定的实践经验啦。
有11位网友表示赞同!
收藏夹就堆满了各种技术文章,但真正有时间去深究的毕竟不多啊... 我也打算把这篇文章加入我的“いつか読む”名单中,希望自己能早日学习完 Hadoop。
有11位网友表示赞同!
说梦想是星辰大海,其实每天都在重复着柴米油盐。真想也有时间去像你一样系统性地学习这些技术啊!不过还是要佩服你的热情和毅力,好好学习吧。
有11位网友表示赞同!
这个博客写得真好,而且我最近也对 Hadoop 感兴趣,打算试试自己搭建一个伪分布式的环境,看看能不能掌握它的基本原理。
有7位网友表示赞同!
Pseudo-distributed? 虽然不是真正的集群,但对于初学者来说确实是个很好的入门方式。 你可以分享一下你搭建过程中遇到的问题和解决方案吗? 我准备开始实践,希望能从你的经验中吸取一些教训。
有20位网友表示赞同!
个人觉得真正在公司环境下运行的 Hadoop 也许更能体现它的价值和潜力吧! 建立伪分布式只是第一步,希望你以后也能尝试部署一个真正的集群系统体验一下。
有11位网友表示赞同!
我很想学习 Hadoop 并把它应用到实际项目中,但我担心我现在的知识储备还不足以应对如此复杂的挑战。 或许通过这个伪分布式的入门方案,我能积累更多经验并逐步突破学习瓶颈呢!
有19位网友表示赞同!
我也有一点兴趣去尝试Hadoop,搭建一个伪分布式环境看起来挺不错的,可以先熟悉一下它的基本架构和各种组件的功能。你文中提到的那些技术库和工具,我是不是需要提前了解一下?
有5位网友表示赞同!
这篇文章很有用,让我更加清楚地理解了Hadoop的运行机制! 我打算学习一下你的方法,构建一个伪分布式环境,希望能在实践中加深对Hadoop的可视化分析系统,以及集群管理等方面有更深入的了解。
有15位网友表示赞同!
这个方案听起来很有吸引力,但还是建议大家在动手实践之前先做好充分的准备,尤其是对Java基础和linux环境有一定的掌握较为理想。
有20位网友表示赞同!
我觉得Hadoop真的很酷炫! 能自己搭建一个伪分布式环境真是太棒了! 以后有机会我也要试试看 。
有7位网友表示赞同!
你分享的文章确实很有价值,帮助我开启了对 Hadoop 的初步探索之旅! 我打算在学习的过程中参考你的博客文章,希望能更加高效地掌握 Hadoop 的知识和技能。
有7位网友表示赞同!
个人觉得伪分布式的Hadoop环境更适合初学者入门学习,毕竟搭建真实集群需要更多的资源和技术支持。 坚持学习很重要,祝你早日成为Hadoop高手!
有8位网友表示赞同!
你的博客文章很通俗易懂,帮助我理解了Hadoop的很多核心概念,让我对Hadoop的学习更有动力了。
有19位网友表示赞同!
我一直想了解Hadoop的工作机制,这次看到你的伪分布式搭建方案,真是太好了! 我一定会按照你的步骤操作尝试一下,期待能亲身体验一下Hadoop!
有10位网友表示赞同!
Hadoop 的学习之路确实有些难度,但只要坚持不懈,就一定能够突破瓶颈。 你们的分享给了我很多灵感和动力,我相信我能克服困难并取得成功!
有18位网友表示赞同!
收藏了! 感谢你的分享,我很赞赏你将宝贵的经验和知识传授给其他人!
有13位网友表示赞同!