#二进制安装 #hadoop #hadoop原生 #手动安装
1. 下载安装包
Hadoop官网
进入官网选择需要的版本。
进行下载传到linux系统中
使用tar命令进行解压
# 创建两个文件夹用于储存文件
mkdir -p /export/data
mkdir -p /export/server
# 将文件解压在server中
tar -xvf hadoop-2.7.5.tar.gz /export/server
2. 一些基础环境配置
1. host文件
添加host文件内容使后续配置方便
# host文件配置
vim /etc/hosts
# 添加
192.168.7.31 hdp-32
192.168.7.32 hdp-33
192.168.7.33 hdp-34
192.168.7.34 hdp-35
192.168.7.35 hdp-36
192.168.7.36 hdp-37
^9b4cb8
2. 时间同步
使用ntp进行时间同步
# 选择服务器进行同步
ntpdate time.nist.gov
如果没有ntp 则进行安装
yum install -y ntpdate
时区可能不对
#查看时间状态
timedatectl status
# 设置时区为上海
timedatectl set-timezone "Asia/Shanghai"
# 同步硬件时间
hwclock -w
3. 免密登录
配置主节点到各个节点的免密登录
# 生成秘钥,连续按三次回车
ssh-keygen
# 拷贝秘钥到各个节点
ssh-copy-id hdp-32
...
ssh-copy-id hdp-37
4. 配置jdk
进行java_home配置
vim /etc/profile
# 注意此处要写自己的jdk安装路径
export JAVA_HOME=/usr/local/lib/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3. hadoop配置
# 进入hadoop安装目录
cd /export/server/hadoop-2.7.5/etc/hadoop
1. hadoop-env.sh
配置java_home
export JAVA_HOME=/usr/local/lib/jdk1.8.0_144
2. core-site.xml
核心全局变量
<configuration>
<!--
用于设置Hadoop的文件系统,由URI指定
默认协议file:///属于本地路径,由于之后要用HDFS,因此需要修改为hdfs://主机名(ip):端口(内部的一个通讯)
设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统
-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-37:9000</value>
</property>
<!-- 配置Hadoop存储数据目录,默认/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/export/data/hadoop-2.7.5</value>
</property>
<!-- 缓冲区大小,实际工作中根据服务器性能动态调整 -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
</configuration>
3. mapred-site.xml
默认文件中只有模板 mapred-site.xml.template 需要复制一份
cp mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上,表示MapReduce使用yarn框架 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 开启MapReduce小任务模式 -->
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<!-- 设置历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hdp-37:10020</value>
</property>
<!-- 设置网页访问历史任务的主机和端口 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hdp-37:19888</value>
</property>
</configuration>
4. hdfs-site.xml
hdfs配置文件
<configuration>
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-36:9868</value>
</property>
<!-- namenode存储hdfs名字的空间的元数据文件目录 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/export/data/hadoop-2.7.5/dfs/name</value>
</property>
<!-- datanode上的一个数据块的物理的存储位置文件 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/export/data/hadoop-2.7.5/dfs/data</value>
</property>
<!-- 指定HDFS保存数据副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 设置一个block的大小:128M-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<!-- 定义namenode界面的访问地址 -->
<property>
<name>dfs.http.address</name>
<value>hdp-37:9870</value>
</property>
<!-- 定义secondarynamenode的通信地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-36:50071</value>
</property>
<!-- 设置HDFS的文件权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 指定DataNode的节点配置文件 -->
<property>
<name>dfs.hosts</name>
<value>/export/server/hadoop-2.7.5/etc/hadoop/slaves</value>
</property>
</configuration>
5. yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- NodeManager获取数据的方式shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp-37</value>
</property>
<!-- yarn的web访问地址 -->
<property>
<description>
The http address of the RM web application.
If only a host is provided as the value,
the webapp will be served on a random port.
</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>
The https address of the RM web application.
If only a host is provided as the value,
the webapp will be served on a random port.
</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<!-- 开启日志聚合功能,方便我们查看任务执行完成之后的日志记录 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置聚合日志在hdfs上的保存时间 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
6. HADOOP_HOME
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 重新装载环境变量
source /etc/profile
7. slaves
此处标注所有集群节点
vim $HADOOP_HOME/etc/hadoop/slaves
#删除localhost,添加节点地址
node1
node2
node3
8. 向各个节点进行分发
在各个节点都创建目录
# 每个节点都创建
mkdir -p /export/data
mkdir -p /export/server
进行分发
scp -r /export/server/ hdp-32:/export/server/
...
scp -r /export/server/ hdp-37:/export/server/
4. 启动
首次启动
首次启动需要进行初始化
# 主节点
hdfs namenode -format
集群启动
# 用于启动hadoop集群,包括hdfs以及yarn的启动
start.all.sh
检查各个节点
在节点中执行jps命令查看启动的内容