二、完全分布式的安装步骤
1.集群规划
主机名 | IP | HDFS | yarn |
hadoop01 | 192.168.220.141 | namenode datanode |
nodeManager |
hadoop02 | 192.168.220.142 | secondarynamenode datanode |
nodeManager |
hadoop03 | 192.168.220.143 | datanode | resourceManager nodeManager |
2.修改hostname 及 hosts
$ vim /etc/hostname $ vim /etc/hosts
所有的主机hosts文件均配置
配置完成后重启
$ reboot
3.设置 SSH key
$ ssh-keygen -t rsa
一直按回车即可
4.将公钥信息保存至授权认证中
将公钥信息保存至授权认证中 authorized_keys,以后可以进行免登录处理
$ cd .ssh $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5.登录测试
$ ssh root@hadoop02
使用hadoop01分别登录hadoop02和hadoop03测试,是否能免密登录。然后通过hadoop02登录hadoop01和hadoop03,是否也能免密登录,以此类推。
6.文件配置
一共需要配置主要的6个文件:
hadoop-x.x.x/etc/hadoop/hadoop-env.sh
hadoop-x.x.x/etc/hadoop/yarn-env.sh
hadoop-x.x.x/etc/hadoop/core-site.xml
hadoop-x.x.x/etc/hadoop/yarn-site.xml 相关的job处理
hadoop-x.x.x/etc/hadoop/hdfs-site.xml 可以确定文件的备份个数及数据文件夹的路径
hadoop-x.x.x/etc/hadoop/mapred-site.xml
1)配置 core-site.xml
添加tmp目录
[root@hadoopm ~]# mkdir hadoop_tmp
<configuration> <!-- 指定namenode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop01:9000</value> </property> <!-- 用来指定使用hadoop时产生文件的存放目录 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop</value> </property> </configuration
fs.defaultFS:HDFS的URI,文件系统://namenode标识:端口号
hadoop.tmp.dir:namenode上本地的hadoop临时文件夹
注:hadoop.tmp.dir 如果路径配置为 hadoop-x.x.x/tmp ,一但重新启动,所以的信息hadoop环境全部失效
2)配置 hdfs-site.xml
[root@hadoopm tmp]# mkdir dfs dfs/name dfs/data
如果hadoop出现问题,这些文件需要彻底清除掉,并重新配置
<configuration> <!-- 指定hdfs保存数据的副本数量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <!-- 指定hdfs中namenode的存储位置 --> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/name</value> </property> <!--指定hdfs中datanode的存储位置--> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/data</value> </property> <property> <name>dfs.secondary.http.address</name> <value>hadoop02:50070</value> </property> </configuration>
3)配置yarn-site.xml
<configuration> <!-- nomenodeManager获取数据的方式是shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定Yarn的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.address</name> <value>hadoop03:50090</value> </property> </configuration>
4)配置mapred-site.xml
<configuration> <!-- 告诉hadoop以后MR(Map/Reduce)运行在YARN上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
5)配置slaves
hadoop01
hadoop02
hadoop03
远程发送或者每一个节点都配置一次
创建目录
/home/hadoop/data
/home/hadoop/name
7.集群配置
1)在/usr/local/hadoop-2.7.7/etc/hadoop 目录下创建一个masters文件,配置主机名称,即内容为hadoopm
$ cd /usr/local/hadoop-2.7.7/etc/hadoop/ $ echo hadoopm > masters
$ echo hadoopm > slaves
8.格式化文件系统
$ hdfs namenode -format
出现如下信息表示格式化成功
9.启动hadoop
1)启动hdfs,在任意节点上启动均可
$ start-dfs.sh
2)启动yarn,在yarn的主节点上启动
$ start-yarn.sh
10.查看进程
$ jps
11.测试HDSF是否能正常使用
三、安装过程中可能遇到的问题
$ cd /usr/local/hadoop-2.7.7/ $ cd /sbin $ hadoop-daemon.sh start namenode $ hadoop-daemon.sh start datanode $ yarn-daemon.sh start nodemanager $ yarn-daemon.sh start resourcemanager
重新格式化datanode启动不了
如果想要重新格式化,则需要先删除data目录。
$ rm -rf /home/hadoop/data $ hadoop namenode -format