| ip | 主机名称 |
|---|---|
| 192.168.43.204 | hadoop204 |
| 192.168.43.205 | hadoop205 |
| 192.168.43.206 | hadoop206 |
3台机器都要提前安装好JDK
主机名,IP 地址映射,防火墙,ssh等配置 修改主机名称#修改主机名(如,删掉原有内容,命名为 hadoop) vi /etc/hostname #重启网卡 systemctl restart network #ping 通证明成功 ping hadoop免密码 ssh 设置
ssh-keygen -t rsa #然后一路回车即可 ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器的ip #复制到公共密钥中 ssh localhost #测试
可参考我写的ssh免密登陆文章: ssh免密登陆配置
关闭防火墙#查看防火墙状态 firewall-cmd --state #停止防火墙 systemctl stop firewalld.service #禁止防火墙开机启动 systemctl disable firewalld.service
配置hosts信息
vim /etc/hosts #写入信息 192.168.43.204 hadoop204 192.168.43.205 hadoop205 192.168.43.206 hadoop206安装hadoop
将比较耗费性能的组件分开部署,均摊压力
| 192.168.43.204 | 192.168.43.205 | 192.168.43.206 | |
|---|---|---|---|
| HDFS | DataNode NameNode | DataNode | DataNode SecondaryNameNode |
| YARN | NodeManager | NodeManager ResourceManager | NodeManager |
官网下载:hadoop
#将压缩文件拷贝到3台服务器后解压 tar -zxf hadoop-3.2.2.tar.gz -C /app/hadoop/hadoop-3.2.2 # 查看 Hadoop 版本信息 cd /app/hadoop/hadoop-3.2.2 ./bin/hadoop version配置环境变量
#新建脚本 vim /etc/profile.d/hadoop.sh #写入如下配置 export HADOOP_HOME=/app/hadoop/hadoop-3.2.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin #使配置生效 source /etc/profile #查看是否生效,有输出版本就生效了 hadoop version配置相关配置文件
建立目录
# 在 /app/hadoop/ 目录下,建立 tmp、hdfs/name、hdfs/data 目录 mkdir /app/hadoop/hadoop-3.2.2/data mkdir /app/hadoop/hadoop-3.2.2/hdfs mkdir /app/hadoop/hadoop-3.2.2/hdfs/data mkdir /app/hadoop/hadoop-3.2.2/hdfs/name
修改以下 5 个文件的配置
etc/hadoop/hadoop-env.sh etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml etc/hadoop/mapred-site.xml etc/hadoop/yarn-site.xml
hadoop-env.sh
# java_home若已配过,这里可以直接引用,否则应配置完整jdk路径 export JAVA_HOME=/app/jdk/jdk1.8.0_161 # 安装用的是root用户,所以这里都设置为root export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
core-site.xml
fs.defaultFS hdfs://192.168.43.204:8020 hadoop.tmp.dir /app/hadoop/hadoop-3.2.2/data
hdfs-site.xml
dfs.namenode.http-address 192.168.43.204:9870 dfs.namenode.secondary.http-address 192.168.43.206:9868
yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname 192.168.43.205 JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
mapred-site.xml
mapreduce.framework.name yarn yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.map.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.reduce.env HADOOP_MAPRED_HOME=${HADOOP_HOME}
修改 workers 文件
vim etchadoopworkers #写入如下配置 192.168.43.204 192.168.43.205 192.168.43.206启动Hadoop 启动NameNode
在204服务器上执行
如果集群第一次启动,需要在NameNode(192.168.43.204)机器上格式化NameNode
格式化NameNude会生成新的集群id,导致NameNode和dataNode的集群id不一致,集群找不到以前的数据,如果集群在运行中报错需要重新格式化NameNode的话,一定要停止namenode和datanode进程,并且要删除所有机器的data和logs和/tmp目录内的文件,然后重新进行格式化
hdfs namenode -format #执行完成后会生成 data/dfs/name/current 目录
初始化完成后就可以启动了
./sbin/start-dfs.sh
如图表示启动成功,可以访问web管理页面: http://192.168.43.204:9870
启动Yarn在205服务器上执行!
./sbin/start-yarn.sh
如图表示启动成功,可以访问web管理页面: http://192.168.43.205:8088/
hadoop集群搭建成功!
觉得文章不错的话还麻烦点点赞给个关注



