之前的都是在root用户下配置的,这个也可以在普通用户下配置,但需要给普通用户权限,否则有很多文件没有修改的权限,所以今天还是在root用户下配置,以后会待博主学习了会给同志们出一篇普通用户的。
接上一篇hadoop伪分布(上一篇博客一开始没注意安装成了最小版本的,要配置hadoop的不要安装最小版本)(8条消息) hadoop的伪分布环境搭建(hadoop-2.7.5)_qq_45672631的博客-CSDN博客
先说一下,hadoop其实在解压后(配置环境变量后)就可以使用,称为单机模式。如果不配置core-site.xml文件,则每次重启后数据都会丢失。分布式集群则是在配一台机子后通过克隆,然后修改主机名ip,实现集群(3个机子)。
在原有的基础上,许多简单的就不在赘述。
分布式集群的搭建,需要配置8个文件,其实5个文件也行,有3个是声明环境变量的。
将分为三个步骤:配置、克隆、测试一下wordcount,以及计算pi。
一、配置需要配置的8个文件:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-env.sh
、yarn-site.xml、yarn-env.sh、vim slaves、mapred-site.xml(这个文件是没有的需要通知们将mapred-site.xml.template,复制一个并改名)。
1.编辑hadoop-env.sh(按i键进入编辑模式,移动方向键下移,到第25行修改,细心的同志,可以在xshell连接root户配置,可以在下面看到行列提示)vim hadoop -env.sh
2.编辑core-site.xml(这里和伪分布一样,后面克隆完后,以这台机子作为namenode的机子,后面克隆就不用改这里,而是需要修改主机名,与ip。)vim core-site.xml
3.编辑hdfs-site.xml文件(这里就要开始修改了)vim hdfs-site.xml
第一个因为有三个机子所以至少有3个副本,第二个所讲的是指将冷备份namenode放在那台机子上,端口也不是9000或8020.fsimage这个如果感兴趣的通知可以去中国慕课搜索大数据林子雨老师的纯干货。最后一个,和注释说的意思差不多,总之感兴趣的小伙伴,可以去了解一下。
4.编辑mapred-env.sh文件(按i进入编辑模式,移动方向键下移到第16行修改。)vim mapred-env.sh
5.编辑yarn-site.xml文件(第一个我也不太清楚,第二个是将yarn的放在wnd-1的机制上,相当于说,启动yarn时,需要跑到wnd-1上去)vim yarn-site.xml
6.编辑yarn-env.sh(按i即进入编辑模式,方向键下移到23行修改)vim yarn-env.sh
7.编辑 salves 文件(添加集群的机子主机名)vim salves
8.编辑 mapred-site.xml文件这里是没有这个文件的,是将mapred-site.xml.template,复制改名的。
命令:cp mapred-site.xml.template mapred-site.xml
是在同一目录下,第一个是选中母体,后空格,将母体复制在当前目录下并命名为mapred-site.xml。
vim mapred-site.xml
这里大家注意要修改是主机名,(其余不变)或者你用本机ip也行,2、3个是将端地址放在lcy-1机子上。端口号不变,照着 *** 作。
到这里,一定要仔细检查配置是否有问题,在确定没有问题的情况下,开始克隆。(注意,因为这是,在一台机器上,配置,而另外两台还没有,同志们不要惊慌,在克隆完后。大家需要修改ip,主机名)。
二、克隆在克隆前,需要先关闭虚拟机,克隆需要将克隆的与本体放在同一级目录下,放在一个盘的同一个目录下,比如在D盘,那就将新建的文件夹建在D盘。
在除C盘的其他盘上新建两个文件夹
关闭虚拟机后点击虚拟机->管理->克隆
会出现下图一样的界面(点击下一步)
选择虚拟机当前的状态(点击下一步)
选择完整克隆(这里不要选择链接克隆,因为我们要的是一个独立的机子,而不是像别人把自己的东西通过网址链接发给你一样,点击下一步)
接下来就和之前设置虚拟机名称,以及安装位置一样。选择自己之前新建文件夹的位置
克隆完成后,打开克隆的两台机子,将其主机名、主机名-ip映射修改后,修改ip只修改ip地址就行,其余的网关,子网掩码等不用修改,然后重启。害怕错的小伙伴可以参考上一篇博客
(8条消息) hadoop的伪分布环境搭建(hadoop-2.7.5)_qq_45672631的博客-CSDN博客
vim /etc/hostname(修改主机名,与之前的 salves文件里的要对应,ip可以随便)
vim /etc/hosts (修改主机名-ip映射)
在修改完后,趁着重启的时间,在windows上加上,三台机子的主机-ip映射。
C盘:windows->System32->drivers->etc->hosts
C:WindowsSystem32driversetc
这一切做好后,需要给三台机子配置免密登录,因为之前写报告时,伪分布需要测试是否配置成功,所以启动过hadoop所以就有.ssh文件夹。如果没有.ssh文件夹的同志,先启动hadoop,输入密码后,在配置三台机子的免密登录。
和伪分布配置免密登录一样,只是后面需要在三台机子上分别告诉三台机子密钥。
回到~目录下,打开.ssh文件夹。(打命令时一定要注意一些空格)
cd(回到~目录下)
cd .ssh(打开.ssh 文件夹)
删除里面的东西
rm -rf *(删除所有)
又回到~目录下
输入命令:
ssh-keygen -t rsa
ssh-copy-id 主机名(三台机子都要)
这时通过ssh登录另外两台机子
ssh 主机名(或ip)
确定三台机子都能互相登录。
注意看下面一句话Now try logging into the machine,with: "ssh 'wnd'"
现在尝试用ssh wnd 登录进入机子
在主机上启动hadoop(本体wnd)start-dfs.sh,在wnd-1上启动yarn start-yarn.sh(可以通过ssh wnd-1进入)为什么要在wnd-1上启动yarn,因为之前配置yarn-site.xml 文件时,是放在wnd-1的机子上的,jps查看每台机子上的节点是否和下图一样,如果缺少namenode ,secondary namenode ,datanode,去检查core-site.xml,hdfs-site.xml,如果是NodeManger缺少,则要去检查yarn-site.xml文件。
通过windows访问两个端口(一定要关闭防火墙)
hadoop通过主机wnd访问
wnd:50070
yarn通过从机wnd-1访问
wnd-1:8088
三、测试一下wordcount,以及计算pi1.怎么运行wordcount,以及计算pi是利用hadoop里的一个java包(hadoop-mapreduce-examples-2.7.5.jar)注意记住下面的路径(等下命令要用到)
/usr/local/hadoop/share/hadoop/mapreduce->hadoop-mapreduce-examples-2.7.5.jar
通过命令在HDFS上创建连个文件夹(input、output(这个可以不用创如果只是测试的话,如果以后使用还是创一个整整齐齐的放文件))
大家看下面的命令是不是也发现了,其实和shell命令差不多,需要加前缀告诉系统这是hadoop w文件系统的命令。
hadoop fs -mkdir /input
hadoop fs -mkdir /output
可以通过命令查看,也可以在namenode (50070的端口查看)
hadoop fs -ls /
这里还没有交怎么查看那么namenode 的 (点击Utillities->Browse the file system)
可以自己创建一个文本文件(txt),也可以用里面带的,这里用命令创一个test.txt的文件
在tmp文件夹下vim test.txt(建议在/usr/local/tmp(没有的创一个,mkdir tmp))
按i进入编辑模式,ESC退出编辑模式,:wq保存
通过命令
cat test.txt
通过命令将test.txt上传到hdfs配合namenode(50070端口)使用
hadoop fs -put test.txt /input
通过命令运行wordcount
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /input/test.txt /output/wordcount
hadoop jar 前缀名,后面紧跟examples.jar包的路径,这里可以活用TAB补齐,jar 后面跟wordcount 输入文件路径 输出文件路径(wordcount是输出的文件的文件夹名)
一定要注意空格,如果命令没有,去看是什么错,然后去相应的配置文件中修改,格式化,再试,namenode 中查看output中是否有文件。
通过命令查看part-r-00000
hadoop fs -cat /output/wordcount/part-r-00000
2.计算pi则是只用命令就行
hadoop jar /usr/local/hadoop/share/hadoop/mareduce/hadooop-mapreduce-examples-2.7.5.jar pi 1000 1000
只要命令没错,等待就行
这时使用了hadoop后,hadoop会在HDFS中会创建两个文件夹(tmp、user)
其实在运算pi可以测试hadoop配置是否成功,运行wordcount则是测试网络是否有问题。
其实如果是学习的话只用配置成伪分布式就行。但学习这个东西,活到老,学到老。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)