1 准备
- vmware 虚拟三台centos系统的节点
- 三台机器安装好jdk环境
- 关闭防火墙(端口太多,需要的自行去开关端口)
- hadoop压缩包解压至三台服务器
可在一台节点上配置完成后克隆为三台节点
2 host修改
vi /etc/hosts
在每个节点上添加三台机器的ip 域名解析
192.168.10.16 node1
192.168.10.17 node2
192.168.10.18 node3
后续hdfs注册时会自动像主节点注册且必须要dns域名
3 配置文件修改
配置文件位于hadoop解压目录下的
hadoop-3.3.2/etc/hadoop
3.1 core-site.xml修改
<!-- 配置 HDFS 主机地址与端口号 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 配置 Hadoop 缓冲区-->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 在Web Ul访问HDFS使用的用户名。->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
3.2 hdfs-site.xml修改
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>700</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/nn</value>
</property>
<property>
<name>dfs.namenode.hosts</name>
<value>192.168.10.16,192.168.10.17,192.168.10.18</value>
</property>
3.3 mapred-site.xml修改
<property>
<name>mapreduce.framework.name</name>
<value>yarns</value>
</property>
<!-- MR App Master环境变量。-->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask环境变量。-->
<property>
<name>mapreduce.map.eny</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property>
<name>mapreduce.reduce.eny</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
3.4 yarn-site.xml 修改
<!-- yarn集群主角色RM运行机器。-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shutie,才可运行MR程序。-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率-->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
</property>
<property>
<name>yarn.nodemanager.resource-priority.enabled</name>
<value>true</value>
</property>
3.5环境变量配置
vi /etc/profile
根据自己的安装目录修改
EXPORT JAVA_HOME=/root/jdk1.8
EXPORT JAVA_PATH=$JAVA_HOME/bin
EXPORT PATH=$JAVA_PATH:$PATH
EXPORT HADOOP_HOME=/hadoop-3.3.2/hadoop-3.3.2
EXPORT HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
EXPORT HADOOP_LOG_DIR=$HADOOP_HOME/logs
EXPORT PATH=$PATH:$HADOOP_HOME/sbin
EXPORT PATH=$PATH:$HADOOP_HOME/bin
#hadoop启动用户
EXPORT HDFS_NAMENODE_USER=ROOT
EXPORT HDFS_DATANODE_USER=ROOT
EXPORT HDFS_SECONDARYNAMENODE_USER=ROOT
source /etc/profile
上述配置可以在一台机器上修改完成后在vmware上克隆为其他节点。使用docker可直接打包为镜像启动三个容器即可。
4.启动hdfs机器
命令目录,可自行加到环境变量里面
/root/hadoop-3.3.2/bin
4.1 node1 主节点启动
hdfs namenode初始化
./hadoop namenode -format
启动名称节点
hdfs --daemon start namenode
启动数据节点
hdfs --daemon start datanode
启动yarn 资源管理器
yarn --daemon start resourcemanager
启动yarn节点管理器
yarn --daemon start nodemanager
4.2启动node2
启动二次名称节点
hdfs --daemon start secondarynamenode
启动数据节点
hdfs --daemon start datanode
启动yarn节点管理器
yarn --daemon start nodemanager
4.3 启动node3
启动数据节点
hdfs --daemon start datanode
启动yarn节点管理器
yarn --daemon start nodemanager
启动日志查看
cd /root/hadoop-3.3.2/logs
对应的datanode、namenode、nodemanager、resourcemanager等,使用jps查看各个几点是否有服务未启动,并通过日志排查。
启动至此已完成
一键启动
一键启动需配置服务器之间免密登录,然后在/root/hadoop-3.3.2/etc/hadoop
/wokers配置服务器ip/域名
192.168.10.16
192.168.10.17
192.168.10.18
启动命令目录
cd /root/hadoop-3.3.2/sbin
- start-dfs.sh 自动启动所有节点 hdfs对应的 datanode|namenode|secondarynamenode
- start-yarn.sh 启动所有节点的yarn 对应的 resourcemanager|nodemanager
- start-all.sh 启动上述两者
hdfs 的ui
http://192.168.10.16:9870/
点击 live Nodes 可看到数据节点
yarn的ui
http://192.168.10.16:8088
上诉显示即搭建成功