安装 hadoop-3.3.0

Apache大数据组件下载路径

https://archive.apache.org/dist/

集群规划

server1:NN,RM

agent1:SNN,DN,NM

agent2:DN,NM

agent3:DN,NM

路径

服务器基础环境准备

安装包目录结构

配置文件的修改

- 第一类 1个 hadoop-env.sh

- 第二类 4个 core|hdfs|mapred|yarn-site.xml

- site表示的是用户定义的配置,会覆盖default中的默认配置。

- core-site.xml 核心模块配置

- hdfs-site.xml hdfs文件系统模块配置

- mapred-site.xml MapReduce模块配置

- yarn-site.xml yarn模块配置

- 第三类 1个 workers

scp安装包到其他机器

Hadoop环境变量配置

hadoop namenode format

Hadoop集群启动

Hadoop初体验

实现

服务器基础环境准备

ip、主机名

hosts映射 别忘了windows也配置

防火墙关闭

时间同步

免密登录

JDK安装

安装包目录结构

#上传安装包到 /usr/local/ 解压

cd /usr/local/

tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

bin #hadoop核心脚本 最基础最底层脚本

etc #配置目录

include

lib

libexec

LICENSE.txt

NOTICE.txt

README.txt

sbin #服务启动 关闭 维护相关的脚本

share #官方自带实例 hadoop相关依赖jar

建立软链接

ln -s /usr/local/hadoop-3.3.0 hadoop

存储目录规划

#Hadoop本地保存数据路径

hadoop.tmp.dir

mkdir -p /home/hadoop/tmp (3个agent节点)

#节点数据(namenode)的存放位置

dfs.namenode.name.dir

mkdir -p /home/hadoop/namenode (1个server节点)

#节点数据(datanode)的存放位置

dfs.datanode.data.dir

mkdir -p /home/hadoop/datanode (3个agent节点)

#节点数据(nodemanager)的存放位置

yarn.nodemanager.local-dirs

mkdir -p /home/hadoop/nodemanager/local (3个agent节点)

yarn.nodemanager.log-dirs

mkdir -p /home/hadoop/nodemanager/log (3个agent节点)

配置文件的修改

cd /usr/local/hadoop/etc/hadoop

hadoop-env.sh

#指定jdk安装位置

export JAVA_HOME=/usr/local/jdk

#文件最后添加

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

core-site.xml

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->

<property>

<!--指定 namenode 的 hdfs 协议文件系统的通信地址-->

<name>fs.defaultFS</name>

<value>hdfs://server1:8020</value>

</property>

<!-- 设置Hadoop本地保存数据路径 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/tmp</value>

</property>

<!-- 设置HDFS web UI用户身份 -->

<property>

<name>hadoop.http.staticuser.user</name>

<value>root</value>

</property>

<!-- 整合hive 用户代理设置 -->

<property>

<name>hadoop.proxyuser.root.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.root.groups</name>

<value>*</value>

</property>

hdfs-site.xml

<!-- 设置SNN进程运行机器位置信息 -->

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>agent1:9868</value>

</property>

<!--指定HDFS的副本数量-->

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<!--namenode 节点数据(即元数据)的存放位置,可以指定多个目录实现容错,多个目录用逗号分隔-->

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoop/namenode</value>

</property>

<!--datanode 节点数据(即数据块)的存放位置,可以指定多个目录,用逗号分隔-->

<property>

<name>dfs.datanode.data.dir</name>

<value>/home/hadoop/datanode</value>

</property>

mapred-site.xml

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<!-- MR程序历史服务器端地址 -->

<property>

<name>mapreduce.jobhistory.address</name>

<value>server1:10020</value>

</property>

 

<!-- 历史服务器web端地址 -->

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>server1:19888</value>

</property>

<property>

<name>yarn.app.mapreduce.am.env</name>

<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>

<property>

<name>mapreduce.map.env</name>

<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>

<property>

<name>mapreduce.reduce.env</name>

<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>

yarn-site.xml

<!-- nodemanager在本地磁盘存储yarn工作目录 -->

<property>

<name>yarn.nodemanager.local-dirs</name>

<value>/home/hadoop/nodemanager/local</value>

</property>

<!-- nodemanager在本地磁盘存储yarn工作目录 -->

<property>

<name>yarn.nodemanager.log-dirs</name>

<value>/home/hadoop/nodemanager/log</value>

</property>

<!-- 设置YARN集群主角色运行机器位置 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>server1</value>

</property>

<!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!-- 是否将对容器实施物理内存限制 -->

<property>

<name>yarn.nodemanager.pmem-check-enabled</name>

<value>false</value>

</property>

<!-- 是否将对容器实施虚拟内存限制。 -->

<property>

<name>yarn.nodemanager.vmem-check-enabled</name>

<value>false</value>

</property>

<!-- 开启日志聚集 -->

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<!-- 设置yarn历史服务器地址 -->

<property>

<name>yarn.log.server.url</name>

<value>http://server1:19888/jobhistory/logs</value>

</property>

<!-- 保存的时间7天 -->

<property>

<name>yarn.log-aggregation.retain-seconds</name>

<value>604800</value>

</property>

workers

agent1

agent2

agent3

scp安装包到其他机器

cd /usr/local

scp -r hadoop root@agent1:`pwd`

scp -r hadoop root@agent2:`pwd`

scp -r hadoop root@agent3:`pwd`

Hadoop环境变量配置

在server1节点上

vim /etc/profile

# set hadoop env

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

scp /etc/profile agent1:/etc/

scp /etc/profile agent2:/etc/

scp /etc/profile agent3:/etc/

4个节点分别执行

source /etc/profile

hadoop namenode format

(首次启动)格式化namenode

hdfs namenode -format

在windows配置 ip地址映射

C:\Windows\System32\drivers\etc\hosts 文件

192.168.163.10 server1

192.168.163.11 agent1

192.168.163.12 agent2

192.168.163.13 agent3

Hadoop集群启动

/usr/local/hadoop/sbin/start-all.sh

/usr/local/hadoop/bin/mapred --daemon start historyserver

启动成功后,各个节点有如下进程:

Hadoop集群关闭

/usr/local/hadoop/bin/mapred --daemon stop historyserver

/usr/local/hadoop/sbin/stop-all.sh

Hadoop初体验

HDFS集群:http://server1:9870/

YARN集群:http://server1:8088/

historyserver:http://server1:19888/

linux关机命令

shutdown -h now