安装hadoop总体分三步
本人经常遗忘su所以每个看这篇文章的童鞋帮我记一下
1.安装三台机器(基本环境配置)
1.1修改主机名(三台机器均执行)
1.2下载相关工具( net-tools,ntp)
1.3关闭防火墙(三台机器)
1.4时间同步(验证一下就可以)
1.5修改 ntp 配置文件。(master 上执行)
1.6 配置 ssh 免密
2.安装jdk(配置环境)
3.安装hadoop(配置环境,启动代码,50070端口检查)
core-site.xml有关配置:[https://blog.csdn.net/qq_44172732/article/details/104433117]
hdfs-site.xml有关配置:https://blog.csdn.net/qq_44172732/article/details/104433372
安装好centos7(推荐最小安装 直接输入代码的那种 进入系统之后你的账号是root密码是你自己设置的)
,如下图编写
hostnamectl set-hostname master
最小安装的话直接输入ifconfig即可
(桌面右键打开terminal——输入ifconfig——查看ens33的ip——记住)
(如果不能用这个命令就先下载ntp和net-tools,下面图片有详细的)
使用ifconfig命令发现ens33 的ip地址没有显示的解决方法点击这里
看一下我! 如果yum install ntp 它报错安装不上或者network不能启动,你快点点我点我点我
然后打开xftp6(本操作进行你的windows和虚拟机的文件互传,把下载好的文件传入虚拟机中)
点击新建
把食材多选,右键传输即可,内网传输速度不快不慢
如上图所示很完美了
后文进行了优化(说白了就是分开文件夹解压了 jdk解压到自己建立的jdk文件夹)
tar -zxvf hadoop-3.1.2.tar.gz
重新装了centos7 解压的时候分文件夹了 jdk解压到jdk文件夹 hadoop解压到hadoop文件夹
这个是vi /etc/sysconfig/network
里面需要写的内容
如下图利用ifconfig
命令查看结点ip
打开xshell 新建(这个纯属为了方便操作 有复制粘贴什么的)
输入你的主机ip 在用户身份验证上写上用户名和密码(记住用root登录不管你账户名是啥)
时区一致。要保证设置主机时间准确,每台机器时区必须一致。实验中我们需要同步网
络时间,因此要首先选择一样的时区。先确保时区一样,否则同步以后时间也是有时区差。
可以使用 date 命令查看自己的机器时间.
选择时区:tzselect
当其状态是 dead 时,即防火墙关闭。
关闭防火墙:systemctl stop firewalld
永久关闭防火墙 : systemctl disable firewalld
查看状态:systemctl status firewalld
*如下图输入各节点的ip*
(master 上执行)
vi /etc/ntp.conf
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #stratum 设置为其它值也是可以的,其范围为 0~15
重启 ntp 服务。
/bin/systemctl restart ntpd.service
其他机器同步(slave1,slave2)
等待大概五分钟,再到其他机上同步该 master 服务器时间。
ntpdate master
如果配置平台式没有外网连接可以将三台机器设为统一时间,输入命令:
date -s 10:00(时间)
终于走到正题???
别慌快了
(1)每个结点分别产生公私密钥:
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa(三台机器)
秘钥产生目录在用户主目录下的.ssh 目录中,进入相应目录查看:
cd .ssh/
(2)Id_dsa.pub 为公钥,id_dsa 为私钥,紧接着将公钥文件复制成 authorized_keys 文 件:(仅 master)
cat id_dsa.pub >> authorized_keys(注意在.ssh/路径下操作)
在主机上连接自己,也叫做 ssh 内回环。
ssh master
(3)让主结点 master 能通过 SSH 免密码登录两个子结点 slave。(slave 中操作)
为了实现这个功能,两个 slave 结点的公钥文件中必须要包含主结点的公钥信息,这样
当 master 就可以顺利安全地访问这两个 slave 结点了。
slave1 结点通过 scp 命令远程登录 master 结点,并复制 master 的公钥文件到当前的目录
下,且重命名为 master_das.pub,这一过程需要密码验证。
scp master:~/.ssh/id_dsa.pub ./master_das.pub(注意在.ssh/路径下操作)!!!!!
将 master 结点的公钥文件追加至 authorized_keys 文件:
cat master_das.pub >> authorized_keys(注意在.ssh/路径下操作)!!!!
这时,master 就可以连接 slave1 了。(一步ssh 必须有一步exit!!!)
slave1 结点首次连接时需要,“yes”确认连接,这意味着 master 结点连接 slave1 结点时需要人工询问,无法自动连接,输入 yes 后成功接入,紧接着注销退出至 master 结点。
同理 slave2 中也是这么操作
jdk之前已经安装好了,所以我们直接来配环境,就和windows的时候配环境变量一个道理(三台)
安装jdk1.8时出现没有/lib/ld-linux.so.2:这个文件的原因分析点击这里
> 修改环境变量:vi /etc/profile
> 添加内容如下:
> export JAVA_HOME=/usr/java/jdk1.8.0_241
> export CLASSPATH=$JAVA_HOME/lib/export
> export PATH=$PATH:$JAVA_HOME/bin
> export PATH JAVA_HOME CLASSPATH
生效环境变量:source /etc/profile
scp /etc/profile slave1:/etc/profile ##这样就可以传给slave1 和slave2了
终于到hadoop了??? 恭喜宁!
vi/etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop-3.1.2
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin
我经常忘的一步大声告诉我是什么!
使用以下命令使profile生效:
source /etc/profile
温馨提示 下面就是配置文件的内容了 本文暂时不做讲解内容但是我已经给大家准备好标准的配置文件了
hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_241
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"
在这个文件里面会有好多注释的语句,找到你要配置的模板把井号删除完善即可 耐心找一下
然后我偷懒的地方就要到了!!!!!
我上传了几个配置文件 我们复制到这个文件夹中即可 系统提示是否覆盖时候就输入y即可
core-site.xml yarn-site.xml hdfs-site.xml mapred-site.xml
还需要写一下workers文件 加上slave1 slave2如下图(vi workers)
(hadoop3之后的版本文件名叫做workers,hadoop2是slaves)
还有master文件 (vi master)
(9)
:
scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/
master中格式化hadoop
hadoop namenode -format
然后在到图片路径下输入 sbin/start-all.sh
(下面这个问题是hadoop3特有的)
这个时候大部分人会有一个问题这里给出解决方案no HDFS_NAMENODE_USER
主节点应有的进程 SecondaryNameNode ResourceManager NameNode
从节点
在你的浏览器上输入http://192.168.111.147:50070/ 我的主机ip和你的不一样啊!
可以说成功了吧!
(完结 四级没过很难受