2.7.7(官网自找)
完全分布式安装
三台虚拟机:内存 1G 两个主节点性能略高 1.5G (8G运存分配方式,可自行调节)
注:namenode secondarynamenode 不能在同一节点上
安装结构 | hadoop01 | hadoop01 | hadoop03 |
---|---|---|---|
hdfs | namenode | ||
datanode | datanode | datanode | |
secondarynamenode | |||
mapreduce | |||
yarn | resourcemanager | ||
nodemanager | nodemanager | nodemanager |
1.hdfs (hadoop distributed file system) : hadoop的分布式文件系统
namenode : 管理每个结点上存储数据的编号,对应关系
datanode:负责真正数据存储
secondarynamenode:备份namenode的数据,帮助namenode减压
2.mapreduce : hadoop的分布式计算服务(安装完成,没有对应进程)
3.yarn:hadoop的分布式资源调度框架resourcemanagr : 决定哪一个计算任务需要多少资源 在哪一个节点分配资源的
nodemanager:提供资源运行任务的
进程 jps进行检测
namenode
datanode
secondarynamenode
esourcemanager
nodemanager
ifconfig 查看ip
hostname 查看主机名;vim /etc/sysconfig/network 修改主机名
vim /etc/hosts 修改主机映射
service iptables stop 关闭防火墙
vim /etc/sysconfig/selinux 关闭linux的高级权限管理 disabled
vim /etc/sudoers
root用户为普通用户授权之后,所有操作切换为普通用户进行!!
ssh-keygen 生成秘钥;ssh-copy-id 主机名;
sudo ntpdate ntp1.aliyun.com
上传hadoop安装包,在crt中Alt+p,拖入;
解压到指定目录 (apps)
配置全局环境变量
- sudo vim /etc/profile
- export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 重新加载环境变量:source /etc/profile
- 测试hadoop的环境变量:hadoop version
hadoop的安装目录的etc目录下:
配置文件格式如下:
<configuration> 核心配置文件标签
<property> 一个配置项
<name>key</name>
<value>value</value>
</property>
</configuration>
公共配置:
①hdfs的主节点访问入口
②hdfs存储数据的目录(注意有权访问)
<property>
<!-- hdfs的主节点 namenode 的访问入口 hdfs://hdp01:9000 -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!-- hdfs存储数据的目录 配置家目录下某一个目录 -->
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
hdfs相关信息:
①hdfs下namenode、datanode的存储目录
②hdfs数据块副本个数
③secondarynamenode 运行节点的信息
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>namenode相关数据的存储目录</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>datanode相关数据的存储目录</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>hdfs的数据块的副本存储个数</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
配置mapreduce的计算任务的资源调度框架
hadoop配置文件中没有此项,需要创建一份
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<property>
<!--配置mapreduce的计算任务的资源调度框架-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
①yarn主节点
②yarn上允许运行的计算任务mapreduce_shuffle(内置)
<property>
<!--配置yarn的主节点-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop03</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
hadoop底层使用java代码实现,因此需修改java环境变量,加载过程:
/etc/profile —> 启动hadoop —> hadoop-env.sh
原先:export JAVA_HOME=${JAVA_HOME}
改后:export JAVA_HOME=/opt/jdk1.8.0_73 jdk路径
此处配置从节点信息(因为剩下datanode与nodemanager节点没有配置)
hadoop01 打开后原先有一行信息删除即可
hadoop02
hadoop03 一行一个主机名,不要多余空格或换行
发送之前需在对应节点创建相应目录:apps
scp -r /home/hadoop/apps/hadoop-2.7.7 hadoop02:/home/hadoop/apps/
sudo scp /etc/profile hadoop02:/etc/
记得重新加载配置文件:source/etc/profile
启动之前需要格式化namenode,必须在其相应节点上(hadoop01)
hadoop namenode -format
格式化成功标志:INFO common.Storage: ... /name has been successfully formatted.
若错则按报错更改,格式化成功再启动,并且成功的格式化只有一次!!
启动 hdfs(任意节点,启动一次):start-dfs.sh
jps查看进程
web页面访问: namenode所在节点主机名或ip:50070
启动yarn(resourcemanager节点执行):start-yarn.sh
jps查看进程
web页面访问: resourcemanager所在节点主机名或ip:8088
注:若某节点启动不成功,重启。