我所安装的是hadoop-3.2.0,安装包链接在下方,可自取。
链接:https://pan.baidu.com/s/1o81ZThq7Juw7h8LglAZIfg
提取码:pgvm
首先,在安装Hadoop之前要进行的一个操作是关闭防火墙。
关闭系统防火墙:
systemctl stop firewalld
systemctl disable firewalld
修改主机名称为:master
主机文件配置地址:
vi /etc/hostname
在hosts添加 IP和主机名对应关系
vi /etc/hosts
其次,在关闭防火墙后,还需要执行一个操作,那就是设置ssh免密登录,在Linux中安装其他软件之前最好先设置ssh免密登录
1、进入root用户,执行ssh-keygen -t rsa,一路回车
执行:
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
查看/root/.ssh/文件夹中生成一系列文件
要运行Hadoop,需要由jdk环境,所有安装java jdk是必不可少的。
由于linux系统在装好时系统里面就自带了一个jdk,但是这个自带的jdk是open jdk,没有oracle jdk功能全,所以需要卸载原有的open jdk再重新安装一个jdk。
已有OpenJdk卸载
查询现有Java Jdk版本
java -version
查看已经安装版本
rpm –qa|grep java
进行卸载:
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
查看卸载情况
java -version
转到跟Hadoop所在的同一目录下(这个可随意),将安装包解压在这个目录下
cd /usr/local/soft/
解压:
tar -zxvf jdk-8u11-linux-x64.tar.gz
配置环境变量:
vim /etc/profile
输入
export JAVA_HOME=/usr/local/soft/jdk1.8.0_11 (这个是jdk所在的目录)
export PATH=.:$PATH:$JAVA_HOME/bin
保存退出
:wq
使修改立即生效(不管安装什么,在是配置完环境变量后都要执行这步操作):
source /etc/profile
验证:
java -version
在做好上面两步后,就可以开始Hadoop的配置了。
1、软件解压
cd /usr/local/soft/
tar -zxvf hadoop-3.2.0.tar.gz
2、修改Hadoop的Java配置路径:/usr/local/soft/hadoop-3.2.0/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/soft/jdk1.8.0_11
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
export HADOOP_PID_DIR=/data/hadoop/pids
export HADOOP_LOG_DIR=/data/hadoop/logs
修改系统环境变量:vi /etc/profile
export HADOOP_HOME=/usr/local/soft/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
保存系统环境变量:souce /etc/profile
3、修改配置文件
core-site.xml
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/data/hadoop/tmp
hdfs-site.xml
dfs.namenode.secondary.http-address
master:50090
dfs.replication
2
dfs.namenode.name.dir
file:/data/hadoop/hdfs/name
dfs.datanode.data.dir
file:/data/hadoop/hdfs/data
dfs.permissions.enabled
false
dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将master1规划为SecondaryNameNode服务器。
Workers.sh中添加 master
workers文件是指定HDFS上有哪些DataNode节点。
yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.localizer.address
0.0.0.0:8140
yarn.resourcemanager.hostname
master
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800
yarn.log.server.url
http://master:19888/jobhistory/logs
根据规划yarn.resourcemanager.hostname这个指定resourcemanager服务器指向master1。
yarn.log-aggregation-enable是配置是否启用日志聚集功能。
yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多长时间。
mapred-site.xml配置
mapreduce.framework.name
yarn
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/usr/local/soft/hadoop-3.2.0
mapreduce.map.env
HADOOP_MAPRED_HOME=/usr/local/soft/hadoop-3.2.0
mapreduce.reduce.env
HADOOP_MAPRED_HOME=/usr/local/soft/hadoop-3.2.0
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
mapreduce.framework.name设置mapreduce任务运行在yarn上。
mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在master1机器上。
mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号
4、格式化Hadoop系统
./bin/hdfs namenode -format
5、启动
./sbin/start-dfs.sh
停止:
./sbin/stop-dfs.sh
6、检测进程:
jps
HDFS Web页面
http://127.0.0.1:9870/
YARN Web页面
http://192.168.24.56:8088/(linux的ip地址)
常见问题:
1、如果集群正常启动,发现网页中没有子节点,有两种办法解决,但其实都是同一个原理:
第一种方法:
先关闭集群:
./sbin/stop-all.sh
查找主节点version中的集群ID,路径/data/hadoop/hdfs/name/current/
在两个从节点中找到从节点的version,路径:/data/hdfs/data/current/
clusterID从节点需要和主节点保持一致,如果从节点没有current文件夹,再自己检查配置和日志文件里面错误信息
第二种方法:
找到Hadoop目录中的一个data文件夹,里面存放的都是Hadoop的缓存文件,直接删掉就可以解决这个问题。其实一般找不到节点的话可能是因为安装了多次Hadoop,除去第一次安装生成的data文件夹,后面的安装都是在第一次生成的data文件夹上进行的,里面的一些文件什么的可能就会出现问题,所以就需要删除data文件夹再重新安装。
2、启动都成功,网页中没有从节点
检查防火墙是否关闭
3、格式化失败,报权限问题
检查hadoop文件夹所有者是否当前用户,如果不是,执行命令
chown -R root /usr/local/soft/hadoop-3.2.0
4、如果某个端口号不起作用,命令查看端口启动情况
netstat -tlpn