首先,最新的Apache Hadoop已经3.0了,为了跟上时代我还是配3.0的吧。然后,因为所给的教程是2.*,网上的基本也是1.*和2.*,所以配置的的时候可以说是山路十八弯,这里把过程详细写写。
1.下载,解压,配置环境变量,不用多说
2.配置相关文件(Hadoop3.0版本)
进入解压目录
执行如下命令,创建一些数据缓存的文件夹:
mkdir hdfs
mkdir tmp
mkdir /hdfs/name
mkdir /hdfs/data
进入etc/hadoop文件下编辑相关文件
①首先深呼吸,保证等会不要抄错代码(自己手打一遍)
② 修改yarn-env.sh 以及 mapred-env.sh,指定 JAVA_HOME
③ 打开slaves,添加分节点主机名 打开wokers,添加分节点主机名
④ 打开core-site.xml编辑,配置hdfs地址和端口
Master是主机名,~/tmp 是我们开始创建的文件夹目录
⑤ 打开hdfs-site.xml,配置副本的个数及数据的存放路径
~/name,~/data同理,别照教程直抄上去。
⑥ 打开mapred-site.xml,重点配置
这是第一步,与之前版本无异,配置使用yarn框架执行map-reduce处理程序,然后不同的是,在格式化HDFS文件系统后,我们还得配置第二步。
新加了两段话。如果不加的话,后面测试样例会让人怀疑人生。
报错如下:NoClassDefFoundError:org/apache/hadoop/mapreduce/v2/app/MRAppMaster
⑦ 打开yarn-site.xml,配置resourcemanager,nodemanager通信端口
⑧ scp 命令将Master中的hadoop文件夹复制到2个分节点上(说白了就是让三个节点的hadoop一模一样,别忘了jdk)
3.启动集群
①启动hadoop集群
格式化文件系统,在主节点上执行命令:hadoop namenode–format
进入sbin文件夹,启动hdfs,执行:./start-dfs.sh
检查
每个节点执行:jps 在主节点启动了NameNode和SecondaryNameNode,分节点均启动了DataNode则启动成功
②启动yarn集群
在sbin文件夹下,主节点执行命令:./start-yarn.sh
主节点启动了ResourceManager,分节点上启动了NodeManager则启动成功
至此大功告成。
问题1:未知的莫名其妙的错误
解决方法:首先检查文件配置有没错误的单词字母
问题2:第二天起床namenode启动不了
解决方法:很有可能是格式化文件系统后,又格式化了一次。尝试吧 tmp 和 hdsf/name 、hdfs/data 以及 log 中的文件全部删除,再格式化后启动试试
笔记:
1.kill 命令可以结束进程
2.每次启动集群需要去到hadoop中sbin的文件夹下执行命令,有点不方便,可以在etc的profile文件中export一个HADOOP_HOME,然后在PATH中添加:$HADOOP_HOME/sbin即可,注意添加的格式和标点。
3.格式化文件系统一次就够了,之后只需start相关内容
4.可以提前把sublime text3这款软件装好
二.使用Hadoop MapReduce V2样例代码快速测试系统
进入如下目录,测试的jar文件在这里。
执行如下代码
最终我们想要的结果大概就是这样的。
问题1:报错“ xx of xx virtual memory used.....Killing container..".查阅资料后,应该是虚拟内存超了的问题
解决方法:在yarn-site.xml文件中加入如下的话让他不检查虚拟内存
问题2:“ssh client refused....”
解决方案:每台虚拟机都依次跑两个命令再试试
问题3:第二天起床可能会发生如下问题,安全模式开启了
解决方法:那我们就关掉它,执行命令hadoop dfsadmin -safemod leave
笔记:
1.这个目录下的jar文件储存了hadoop里的很多测试样例,比如还有wordcount,具体的网上搜。我们的pi命令就是计算Pi,π(为什么等于3.8... ..)后面2个数字参数的含义:第1个2指的是要运行2次map任务,第2个数字10指的是每个map任务,要执行多少次
2.操作一定要规范,操作一定要规范,操作一定要规范,任何的失误都可能浪费巨多的时间,像我重装Hadoop几次都装出内伤了。
3.学会看Log,真的学会看Log,很多玄学问题的解决方案都是可以从Log中看出端倪的,不然查解决方案都没有头绪。
网友评论