本文绝对是自己搭建完成之后写的,测试什么的都没问题之后,才放出来的,包括遇到的问题也会一一列举。
首先声明我用的hadoop-2.9.0的版本的
1.准备三台虚拟机,我分别定义为hadoop102,hadoop103,hadoop104
然后第一步是java的安装,这个相对来说简单些,略过,不过我提一个命令查找java的安装路径,包裹其他的也一样,$JAVA_HOME,回车你就可以看到你的java的安装路径了。
然后是hosts文件的修改,放个图吧
这是我的配置
2.之后是下载hadoop.tar.gz文件,解压,tar -zxvf hadoop-2.9.0.tar.gz 等待。。。。
3.
这是我们解压之后的文件,data是我自己创建的,后面说
之后我们开始修改配置文件。
第一个:/hadoop-2.9.0/etc/hadoop/hadoop-env.sh
配置java的安装路径
第二个:/hadoop-2.9.0/etc/hadoop/core-site.xml
<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定 hadoop 运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop-2.9.0/data/tmp</value>
</property>
3.hdfs-site.xml
指定secondary在哪台机器上
上面那个是三个节点
4.mapred-site.xml 这个首先把simple修改为mapred-site.xml
5.slaves
默认是localhost
还有就是把hadoop的环境变量也配置下:
source /etc/profile 直接生效
这样的话基本上算是配置完了
下面开始配置免密码登录
102登录103,104.103登录102,104 104登录102,103
免密码登录: $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 首先在第一台机器上执行第一条命令,生成公钥和私钥,然后执行第二条命令,生成authorized_keys 然后在第二台机器上同样的执行相同的两条命令,然后把第一台机器上的公钥拷贝到第二台机器上。 scp id_rsa.pub admin@192.168.6.129:/opt 追加到authorized_keys 里面,cat id_rsa.pub >> ~/.ssh/authorized_keys 然后从第一台机器上ssh 就可以登录到第二台机器上了,但是首先保证第二台机器防火墙关闭 |
这是我笔记上锁记录的,按照这个配置就行
然后这个完事之后,把102机器上的hadoop-2.9.0的文件拷贝到103,104上
scp /opt/software/hadoop-2.9.0 root@192.168.6.103/104:/opt/software
之后分别创建data文件夹,cd进入data文件夹,在创建一个tmp文件夹,这个操作也在103,104上操作
完事之后,下一步就是启动了
首先格式化,进入bin目录
hdfs namenode -format
之后退出,进入sbin目录,我是把namenode放在了102机器上,所以在102上启动hdfs,在sbin目录,./start.dfs.sh
我把secondrynamenode放在了104上,所以打印的是104log,之前不知道为什么一直是0.0.0.0,又删了重新配置搭建,这次启动没问题了,然后还可以通过192.168.6.122:50070访问下,能正常访问的话,表示hdfs搭建没问题。
然后是在103去启动resourceManager 还是在sbin目录下,./start-yarn.sh
resourceManager在哪台机器上就在哪儿启动,否则会出错
如果namenode和resourceManager在同一台机器上,还可以通过./start-all.sh启动
还有就是需要注意的是,如果需要重新序列化,需要先把data和logs删除掉,在格式化。