环境
hadoop-3.1.3、jdk1.8.0_261
注2.x版本的hadoop和3.x版本的有区别,比如:TaskTracker(2.x)在3.x为NodeManager,JobTracker(2.x)在3.x为ResourceManager,配置文件:conf(2.x)和etc(3.x),配置工作服务器:workers(3.x)和slaves(2.x)。
服务器集群
192.168.233.68 om-ds-1.novalocal
192.168.233.76 om-ds-2.novalocal
192.168.233.27 om-ds-3.novalocal
192.168.233.80 om-ds-4.novalocal
192.168.233.248 om-ds-5.novalocal
hadoop组成
hadoop分布式文件系统(HDFS)
hadoop common 其他hadoop所需的java模块和实用程序
hadoop mapreduce 基于yarn大型数据集并行处理系统
hadoop yarn 作业调度和集群资源管理框架
hadoop重要进程
1.Namenode
2.Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。
3.SecondaryNamenode并不能被用作Namenode它的主要作用是定期的将Namespace镜像与操作日志文件(edit log)合并,以防止操作日志文件(edit log)变得过大
4.在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序
5.nodemanager是ResourceManager在每台机器上的代理,负责容器管理,并监控它们的资源使用情况,以及向ResourceManager/Scheduler提供资源使用报告
一、服务器无密码登录设置:
1.创建不同用户名hadoop(各个集群用户名要一致):useradd hadoop
2.配置host映射:vim /etc/hosts
192.168.233.68 om-ds-1.novalocal
192.168.233.76 om-ds-2.novalocal
192.168.233.27 om-ds-3.novalocal
192.168.233.80 om-ds-4.novalocal
192.168.233.248 om-ds-5.novalocal
配置hostname映射:vim /etc/hostname
om-ds-1.novalocal
3.在普通用户下执行:
(1.生成公钥:ssh-keygen -t rsa
(2.将公钥传给其他服务器:ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.233.76
主机还需要传给自己公钥cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3.登录其他服务器:ssh hadoop@192.168.233.76
或者ssh 192.168.233.76
注:(2可以执行以下二步:
在主机上:
scp ~/.ssh/id_rsa.pub hadoop@192.168.233.76:~/.ssh/id_rsa.pub.master
在从机上:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果希望ssh公钥生效需满足至少下面两个条件:
- .ssh目录的权限必须是700,如用
chmod 700 .ssh
- .ssh/authorized_keys文件权限必须是600
二、hadoop和java安装
1.在usr/目录下用(xshell)rz
传入hadoop-3.1.3.tar和jdk-8u261-linux-i586.tar压缩包
2.解压,如tar -xvzf hadoop-3.1.3.tar.gz jdk-8u261-linux-i586.tar.gz
3.ll
看看hadoop用户是否有读写权限,则要用root用户将用户和组改为chown -R hadoop:hadoop *
4.传给其他服务器,scp -r /usr/hadoop hadoop@192.168.233.76:/usr/
或者先cd /usr/
再scp -r hadoop 192.168.233.76:$PWD
5.配置环境变量(每台服务器):vim /etc/profile
#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_261/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# set hadoop path
export HADOOP_HOME=/usr/hadoop
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
<