17、安装jdk
1.三台虚拟机查看自带openjdk,命令如下:
rpm -qa | grep java
2. 三台虚拟机卸载系统自带的openjdk:
rpm -e --nodeps tzdata-java-2016j-1.el6.noarch
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
注意需要与前面搜索出来的版本一致才能删除。
3. 三台虚拟机上传jdk并解压然后配置环境变量
- 三台虚拟机在/(根目录)新建两个路径(通过交互窗口执行):
所有软件的安装路径
mkdir -p /export/servers
所有软件压缩包的存放路径
mkdir -p /export/softwares
- 三台虚拟机通过命令行安装一个lrzsz软件(用于通过命令行上传文件)(可能要执行两次)
yum -y install lrzsz
执行第一次的效果与执行第二次的效果是不一样的
三台虚拟机分别输入命令行, 然后选中需要上传的linux版本的jdk(最后把jdk放在window桌面):
rz -E
这时候,可能上传的文件在主目录,需要把他剪切到/export/softwares/目录:
三台虚拟机同时执行
mv jdk-8u141-linux-x64.tar.gz /export/softwares/
在hadoop101虚拟机上,把/export/softwares路径下的jdk解压到/export/servers/目录去:
cd /export/softwares/
tar -zxvf jdk-8u141-linux-x64.tar.gz -C …/servers/
执行完后能在能在/export/servers/目录看到解压后的jdk
- scp命令拷贝jdk到hadoop102和hadoop103虚拟机(在hadoop101虚拟机上执行):
scp -r /export/servers/jdk1.8.0_141/ hadoop102:/export/servers/
scp -r /export/servers/jdk1.8.0_141/ hadoop103:/export/servers/
在hadoop102和hadoop103的/export/servers/目录都能看到拷贝后的jdk:
- 三台虚拟机都需要配置jdk环境变量和关闭邮箱提醒功能(以hadoop101为例):
配置环境变量命令:
vim /etc/profile
去到最后输入:
export JAVA_HOME=/export/servers/jdk1.8.0_141
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:{JRE_HOME}/libexport PATH=PATH
修改完成之后记得执行: source /etc/profile让环境变量配置生效,并检验jdk配置是否生效:
java -version
可以关闭邮箱提醒功能(输入命令行回车,没有回应,就是最后的结果):
vim /etc/profile
输入这样一句:
unset MAILCHECK
修改完成之后记得 source /etc/profile让配置生效生效,以后就不会有以下多余的提示;
- 三台虚拟机拍摄快照:
18、配置hadoop集群
集群部署规划:
虚拟机
hadoop101
hadoop102
hadoop103
虚拟机的名字
hadoop101
hadoop102
hadoop103
HDFS
NameNode
SecondaryNameNode
DataNode
DataNode
DataNode
YARN
ResourceManager
NodeManager
NodeManager
NodeManager
以下操作先在hadoop101上进行。
1. 上传并解压
- 上传压缩包到/export/software目录:
cd /export/softwares
- 通过命令行上传:
rz -E
- 选择需要上传的hadoop安装包(最好把安装包放在window的桌面):
- 解压安装:
tar -xzvf hadoop-3.1.2.tar.gz -C …/servers
2. 修改配置文件
配置文件的位置在 /export/servers/hadoop-3.1.2/etc/hadoop
- 安装notepad++并安装notepad++插件
将NppFTP文件夹拷贝到notepad++的安装目录下面的plugins文件夹下面,然后重新启动notepad++即可
Notepad++中,先打开菜单“插件”——“Plugins Admin…”
勾上NppFTP,并点击Install按钮。
Notepad++将暂时退出,安装成功后会重启Notepad++。
重启后显示通过菜单“插件”——NppFTP——Show NppFTP Window。显示右边的窗口。
- 连接Linux机器。
点击齿轮按钮——选择Profile settings
- 修改配置文件,先在nodepad++打开这6个配置文件(都在/export/server/hadoop-3.1.2/etc/hadoop目录下):
core-site.xml
hadoop-env.sh
hdfs-site.xml
mapred-site.xml
yarn-site.xml
workers
1. core-site.xml修改如下:
fs.defaultFS
hdfs://hadoop101:8020
hadoop.tmp.dir
/export/servers/hadoop-3.1.2/datas/tmp
io.file.buffer.size
8192
fs.trash.interval
10080
2. hadoop-env.sh配置文件最后添加如下内容
export JAVA_HOME=/export/servers/jdk1.8.0_141/
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”
3. hdfs-site.xml修改如下:
dfs.namenode.name.dir
file:///export/servers/hadoop-3.1.2/datas/namenode/namenodedatas
dfs.blocksize
134217728
dfs.namenode.handler.count
10
dfs.datanode.data.dir
file:///export/servers/hadoop-3.1.2/datas/datanode/datanodeDatas
dfs.namenode.http-address
hadoop101:50070
dfs.replication
3
dfs.permissions.enabled
false
dfs.webhdfs.enabled
true
dfs.namenode.checkpoint.edits.dir
file:///export/servers/hadoop-3.1.2/datas/dfs/nn/snn/edits
dfs.namenode.secondary.http-address
hadoop101.hadoop.com:50090
dfs.namenode.edits.dir
file:///export/servers/hadoop-3.1.2/datas/dfs/nn/edits
dfs.namenode.checkpoint.dir
file:///export/servers/hadoop-3.1.2/datas/dfs/snn/name
4. mapred-site.xml修改如下:
mapreduce.framework.name
yarn
mapreduce.map.memory.mb
1024
mapreduce.map.java.opts
-Xmx512M
mapreduce.reduce.memory.mb
1024
mapreduce.reduce.java.opts
-Xmx512M
mapreduce.task.io.sort.mb
256
mapreduce.task.io.sort.factor
100
mapreduce.reduce.shuffle.parallelcopies
25
mapreduce.jobhistory.address
hadoop101.hadoop.com:10020
mapreduce.jobhistory.webapp.address
hadoop101.hadoop.com:19888
mapreduce.jobhistory.intermediate-done-dir
/export/servers/hadoop-3.1.2/datas/jobhsitory/intermediateDoneDatas
mapreduce.jobhistory.done-dir
/export/servers/hadoop-3.1.2/datas/jobhsitory/DoneDatas
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/export/servers/hadoop-3.1.2
mapreduce.map.env
HADOOP_MAPRED_HOME=/export/servers/hadoop-3.1.2/
mapreduce.reduce.env
HADOOP_MAPRED_HOME=/export/servers/hadoop-3.1.2
5. yarn-site.xml修改如下:
dfs.namenode.handler.count
100
yarn.log-aggregation-enable
true
yarn.resourcemanager.address
hadoop101:8032
yarn.resourcemanager.scheduler.address
hadoop101:8030
yarn.resourcemanager.resource-tracker.address
hadoop101:8031
yarn.resourcemanager.admin.address
hadoop101:8033
yarn.resourcemanager.webapp.address
hadoop101:8088
yarn.resourcemanager.hostname
hadoop101
yarn.scheduler.minimum-allocation-mb
1024
yarn.scheduler.maximum-allocation-mb
2048
yarn.nodemanager.vmem-pmem-ratio
2.1
yarn.nodemanager.vmem-check-enabled
false
yarn.nodemanager.resource.memory-mb
1024
yarn.nodemanager.resource.detect-hardware-capabilities
true
yarn.nodemanager.local-dirs
file:///export/servers/hadoop-3.1.2/datas/nodemanager/nodemanagerDatas
yarn.nodemanager.log-dirs
file:///export/servers/hadoop-3.1.2/datas/nodemanager/nodemanagerLogs
yarn.nodemanager.log.retain-seconds
10800
yarn.nodemanager.remote-app-log-dir
/export/servers/hadoop-3.1.2/datas/remoteAppLog/remoteAppLogs
yarn.nodemanager.remote-app-log-dir-suffix
logs
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.log-aggregation.retain-seconds
18144000
yarn.log-aggregation.retain-check-interval-seconds
86400
yarn.app.mapreduce.am.resource.mb
1024
6.workers修改如下(把localhost删掉):
hadoop101
hadoop102
hadoop103
3. 在第一台机器创建数据和临时文件夹
执行如下指令:
mkdir -p /export/servers/hadoop-3.1.2/datas/tmp
mkdir -p /export/servers/hadoop-3.1.2/datas/dfs/nn/snn/edits
mkdir -p /export/servers/hadoop-3.1.2/datas/namenode/namenodedatas
mkdir -p /export/servers/hadoop-3.1.2/datas/datanode/datanodeDatas
mkdir -p /export/servers/hadoop-3.1.2/datas/dfs/nn/edits
mkdir -p /export/servers/hadoop-3.1.2/datas/dfs/snn/name
mkdir -p /export/servers/hadoop-3.1.2/datas/jobhsitory/intermediateDoneDatas
mkdir -p /export/servers/hadoop-3.1.2/datas/jobhsitory/DoneDatas
mkdir -p /export/servers/hadoop-3.1.2/datas/nodemanager/nodemanagerDatas
mkdir -p /export/servers/hadoop-3.1.2/datas/nodemanager/nodemanagerLogs
mkdir -p /export/servers/hadoop-3.1.2/datas/remoteAppLog/remoteAppLogs
mkdir -p /export/servers/hadoop-3.1.2/logs
4. 分发安装包
把hadoop101虚拟机的配置好的hadoop软件拷贝到hadoop102和hadoop103虚拟机,执行如下指令:
cd /export/servers
scp -r hadoop-3.1.2/ hadoop102:$PWD
scp -r hadoop-3.1.2/ hadoop103:$PWD
5. 在每台虚拟机都要配置hadoop环境变量:
执行以下指令:
vim /etc/profile
进入编辑模式:i
在最后面输入:
export HADOOP_HOME=/export/servers/hadoop-3.1.2/
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=“-Djava.library.path=HADOOP_COMMON_LIB_NATIVE_DIR”export PATH=:HADOOP_HOME/sbin:$PATH
保存退出::wq
让配置文件生效:
source /etc/profile
6. 格式化HDFS(在hadoop101虚拟机执行即可)
为什么要格式化HDFS?
因为HDFS(hadoop里面的重要组件)需要一个格式化的过程来创建存放元数据(image, editlog)的目录。
- 先要进入hadoop的主目录,执行以下命令:
cd /export/servers/hadoop-3.1.2/# 需要先进入这个目录再执行format
- 执行格式化命令:
bin/hdfs namenode -format
并输入y命令
注意:在非第一次格式化时,要先确保Hadoop进程已经关掉(stop-dfs),再删掉datas文件夹和logs文件夹,然后再格式化
7. 启动集群
执行以下指令:
/export/servers/hadoop-3.1.2/sbin/start-dfs.sh
# 这里可以通过jps查看是否有namenode和datanode
可以在三台机器上分别执行jps命令,看是否找到datanode
如果找不到datanode,可参考后面的解决方法。
此时便可以通过如下URL访问Hadoop了
HDFS分布式文件系统访问地址: http://192.168.110.101:50070/dfshealth.html#tab-overview
需要确保Live Nodes为3说明有3个节点是活的。
启动yarn
/export/servers/hadoop-3.1.2/sbin/start-yarn.sh
可以在三台机器上分别执行jps命令,看是否找到datanode
此时便可以通过如下URL访问Hadoop了
Yarn 分布式计算系统访问地址: http://192.168.110.101:8088/cluster
启动mapred
mapred --daemon start historyserver
三台虚拟机拍摄快照:
关闭所有服务,指令如下:
/export/servers/hadoop-3.1.2/sbin/stop-all.sh
mapred --daemon stop historyserver