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并解压然后配置环境变量

  1. 三台虚拟机在/(根目录)新建两个路径(通过交互窗口执行):

所有软件的安装路径

mkdir -p /export/servers

所有软件压缩包的存放路径

mkdir -p /export/softwares

  1. 三台虚拟机通过命令行安装一个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

  1. 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:

  1. 三台虚拟机都需要配置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让配置生效生效,以后就不会有以下多余的提示;

  1. 三台虚拟机拍摄快照:

18、配置hadoop集群

集群部署规划:

虚拟机

hadoop101
hadoop102
hadoop103

虚拟机的名字

hadoop101
hadoop102
hadoop103
HDFS
NameNode
SecondaryNameNode
DataNode
DataNode
DataNode
YARN
ResourceManager
NodeManager
NodeManager
NodeManager

以下操作先在hadoop101上进行。

1. 上传并解压

  1. 上传压缩包到/export/software目录:

cd /export/softwares

  1. 通过命令行上传:

rz -E

  1. 选择需要上传的hadoop安装包(最好把安装包放在window的桌面):
  2. 解压安装:

tar -xzvf hadoop-3.1.2.tar.gz -C …/servers

2. 修改配置文件

配置文件的位置在 /export/servers/hadoop-3.1.2/etc/hadoop

  1. 安装notepad++并安装notepad++插件

将NppFTP文件夹拷贝到notepad++的安装目录下面的plugins文件夹下面,然后重新启动notepad++即可

Notepad++中,先打开菜单“插件”——“Plugins Admin…”

勾上NppFTP,并点击Install按钮。

Notepad++将暂时退出,安装成功后会重启Notepad++。

重启后显示通过菜单“插件”——NppFTP——Show NppFTP Window。显示右边的窗口。

  1. 连接Linux机器。

点击齿轮按钮——选择Profile settings

  1. 修改配置文件,先在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)的目录。

  1. 先要进入hadoop的主目录,执行以下命令:

cd /export/servers/hadoop-3.1.2/# 需要先进入这个目录再执行format

  1. 执行格式化命令:
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