集群搭建及软件安装—Ⅱ.Hadoop安装
一、jdk安装
1、下载jdk的jar包
下载链接:https://download.csdn.net/download/qq_36203774/12270448
2、上传jdk的jar包到节点1
创建目录
mkdir -p /opt/software # 该目录用于保存上传的安装包文件
mkdir -p /opt/app #该目录用于保存解压安装后的软件
mkdir -p /opt/data #该目录用于保存HDFS数据
上传文件
此处使用的远程连接工具是MobaXterm,下载链接:https://download.csdn.net/download/qq_36203774/12270063
3、解压压缩包,并发送到其余节点相同目录
# 解压jdk包到指定文件目录/opt/app
tar -zxvf /opt/software/jdk1.8_linux.tar.gz -C /opt/app/
# 发送到其余节点
scp /opt/app/* node2:/opt/app/
4、配置环境变量
# 将java的路径写入系统环境变量文件
vi /etc/profile
# 在文件最后加入以下代码
export JAVA_HOME=/opt/app/jdk1.8.0_171
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# 刷新配置文件,使配置文件生效
source /etc/profile
# 发送到其余节点
scp /etc/profile node2:/etc/profile
5、测试是否安装正确
[root@node1 ~]# java -version
# 出现以下信息表示配置成功
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
二、Hadoop安装
1、下载hadoop安装包
下载地址:https://download.csdn.net/download/qq_36203774/12272069
2、上传安装包到集群
详见上栏目2
3、解压安装包
# 解压安装包到指定目录
tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/app/
# 查看是否解压成功
[root@node1 hadoop]# ls /opt/app/hadoop-3.1.3/
# 出现以下信息说明解压成功
bin etc include lib libexec LICENSE.txt NOTICE.txt README.txt sbin share
4、配置环境变量
vi /etc/profile
# 在文件末尾加入以下信息
export HADOOP_HOME=/opt/app/hadoop-3.1.3
export export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 保存退出后重新加载环境变量配置文件
source /etc/profile
# 发送到其他节点
scp /etc/profile node2:/etc/profile
source /etc/profile # 在其他节点执行
5、配置hadoop配置文件
一共需要配置以下几个文件:
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
配置hadoop-env.sh文件
vi /opt/app/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
# 在文件中找到如下位置并添加jdk目录
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/opt/app/jdk1.8.0_171
配置yarn-env.sh文件
vi /opt/app/hadoop-3.1.3/etc/hadoop/yarn-env.sh
# 在文件末尾添加如下配置
export JAVA_HOME=/opt/app/jdk1.8.0_171
配置core-site.xml文件
vi /opt/app/hadoop-3.1.3/etc/hadoop/core-site.xml
# 在文件中加入如下配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
<description>指定hadoop默认主节点</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>该配置设置缓存大小,大的缓存能提高传输效率,但是占用更多内存和资源,131072KB即为默认的64M</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/data/temp</value>
<descriptio>临时文件存储目录,需要自己建此目录</description>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
# 保存退出后创建临时数据目录
mkdir -p /opt/data/tmp
配置hdfs-site.xml文件
vi /opt/app/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
# 在文件中加入如下配置
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:9001</value>
<description>指定HDFS主节点</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/data/dfs/name</value>
<description>需要自己创建目录</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/data/dfs/data</value>
<description>需要自己创建目录</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>数据副本数,默认3份,此处指定两份</description>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
<description>开启web访问集群功能,可在浏览器上通过端口管理集群</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>关闭身份验证</description>
</property>
<property>
<name>dfs.web.ugi</name>
<value>supergroup</value>
</property>
</configuration>
# 保存退出后创建数据目录
mkdir -p /opt/data/dfs/name
mkdir -p /opt/data/dfs/data
配置mapred-site.xml文件
vi /opt/app/hadoop-3.1.3/etc/hadoop/mapred-site.xml
# 在文件中加入如下配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node:19888</value>
</property>
</configuration>
配置yarn-site.xml文件
vi /opt/app/hadoop-3.1.3/etc/hadoop/yarn-site.xml
# 在文件中加入如下配置
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
</property>
配置workers文件
vi /opt/app/hadoop-3.1.3/etc/hadoop/workers
# 在文件中加入
node1
node2
6、将hadoop配置和创建的目录发送到其他节点
scp -r /opt/app/hadoop-3.1.3 node2:/opt
scp -r /opt/data node2:/opt
7、格式化主节点的namenode
/opt/app/hadoop-3.1.3/bin/hadoop namenode -format
# 如果出现以下错误,去把core.xml中的中文注释删掉
2020-03-26 17:10:29,900 ERROR conf.Configuration: error parsing conf core-site.xml
com.ctc.wstx.exc.WstxParsingException: Unexpected close tag </description>; expected </descriptio>.
# 看到successfully formatted.表示格式化成功了
8、启动集群
start-all.sh
# 若出现Attempting to operate on hdfs namenode as root错误
# 在hadoop的sbin目录下找到start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh四个文件中添加如下内容:
#在start-dfs.sh和stop-dfs.sh中添加
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
#在start-yarn.sh和stop-yarn.sh中添加
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root