0. 安装说明
0.1 部署准备
linux(centos7+jdk1.8+ssh免密登入+关闭防火墙)+hadoop-2.9.2.tar.gz
0.2 安装模式
1.单机模式:不能使用HDFS,只能使用MapReduce,所以单机模式最主要的目的是在本机调试mapreduce代码
2.伪分布式模式:用多个线程模拟多台真实机器,即模拟真实的分布式环境
3.完全分布式模式:用多台机器(或启动多个虚拟机)来完成部署集群
0.3 安装包目录说明
bin目录:命令脚本
etc/hadoop:存放hadoop的配置文件
lib目录:hadoop运行的依赖jar包
sbin目录:启动和关闭hadoop等命令都在这里
libexec目录:存放的也是hadoop命令,但一般不常用
share目录:存放的用户指南、部署手册,建议多看(官方部署手册路径:hadoop-3.1.3\share\doc\hadoop\index.html)
0.4 节点部署配置
1. hadoop安装包下载
apache下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/
下载注意:下载是记得要现在稳定版本
2. 准备安装环境
2.1 支撑平台(linux-centos7)
2.2 环境设置
1.配置免密登入 #可以去看这里
2.关闭防火墙 #可以去看这里
2.3 所需软件
2.4.1 安装jdk
1.版本兼容性 请查看:https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions
2.解压jdk+配置环境变量 #可以去看这里
2.4.2 安装ssh、pdsh
$ sudo apt-get install ssh
$ sudo apt-get install pdsh
3.上传、解压hadoop安装包
tar -xvf hadoop-2.9.2.tar.gz
4.修改相关配置文件
4.1 配置 etc/hadoop/hadoop-env.sh
#指定jdk路径
export JAVA_HOME=/home/software/jdk1.8
source /etc/hadoop/hadoop-env.sh
4.2 配置 etc/hadoop/core-site.xml
<configuration> <!-- 配置文件说明:配置数据上传和下载所用的端口,rpc协议+指定namenode所在主机和端口 --> <property> <name>fs.defaultFS</name> <value>hdfs://app2:9000</value> </property> <!-- 指定临时目录:默认为/tmp/hadoop-${user.name},风险是机器重启或关机后会清空 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-2.9</value> </property> </configuration>
4.3 配置 etc/hadoop/hdfs-site.xml
<!--指定hdfs保存数据副本的数量,默认为3,伪分布式模式设置为1--> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
6.格式化namenode
$ bin/hdfs namenode -format
7.启动hdfs
7.1启动命令
$ sbin/start-dfs.sh
7.2如果启动失败时报错(but there is no HDFS_NAMENOD_USER defined...)
1.需要在start-dfs.sh和stop-dfs.sh文件中添加下列参数:
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
7.3 测试hdfs命令
1.创建目录
bin/hdfs dfs -mkdir /user
2.上传文件
bin/hdfs dfs -put 文件名称 /user
7.4 登入Namenode管理界面
默认地址与端口:http:// localhost:9870 / (确保防火墙关闭或端口开放)
7.5 查看hdfs相关进程
8.停止hdfs
$ sbin/stop-dfs.sh
9.开启yarn(如果不开启,mr在本地运行)
9.1 配置 etc/hadoop/mapred-site.xml
<!--指定mr运行在yarn上 --> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value> </property> </configuration>
9.2 配置 etc/hadoop/yarn-site.xml
<!--NodeManager获取数据的方式 --> <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration>
9.3 启动yarn
$ sbin/start-yarn.sh
9.4 启动报错(but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation)
#对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
9.5 登入yarn管理界面
默认地址 ResourceManager - http://localhost:8088/ (确保防火墙关闭或端口开放)
9.6 查看yarn相关进程