一 . 下载:
hadoop 2.8.4 安装包
http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.8.4/hadoop-2.8.4.tar.gz
Java8 安装包,下载最新的Java8对应的Linux版本即可
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
二 . 配置环境变量:
首先将hadoop 2.8.4 与Java8 的安装包上传到linux系统中(我是放在/opt/software这个位置),然后解压到目录下,解压命令如下:
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/software/ tar -zxvf hadoop-2.8.4.tar.gz -C /opt/software/
然后配置环境变量:
vi /etc/profile
添加如下内容:
export JAVA_HOME=/opt/software/jdk1.8.0_144 export HADOOP_HOME=/opt/software/hadoop-2.8.4 export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME\bin:$HADOOP_HOME\sbin:$PATH
然后使用命令刷新一下环境变量:
source /etc/profile
在部署hadoop前的准备工作:
1.关闭防火墙:
systemctl stop firewalld.service
2.关闭开机自启动 iptables
systemctl disable firewalled.serg
3.关闭SElinux
setenforce 0
4.关闭开机自启动SElinux
vi /etc/selinux/config SELINUX=disable
5.通过修改 /etc/hosts 文件配置本地主机名映射
在 /etc/hosts 中添加主机 本机IP 主机名
三 . 伪分布式部署hadoop
首先设置SSH无密码登录,生成公钥和私钥:
ssh-keygen -t rsa
然后敲三个回车,就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥),将公钥拷贝到需要免密登录的目标机器上
ssh-copy-id 主机名
然后进入 /opt/software/hadoop.2.8.4/etc/hadoop 目录下,首先编辑core-site.xml文件:
vi core-site.xml
在<configuration></ configuration >中添加如下配置:
<!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://主机名1:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/software/hadoop-2.8.4/data/tmp</value> </property>
编辑 hdfs-site.xml文件:
vi hdfs-site.xml
在<configuration></ configuration >中添加如下配置:
<!--数据冗余数--> <property> <name>dfs.replication</name> <value>3</value> </property> <!--secondary的地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>主机名1:50070</value> </property> <!--关闭权限--> <property> <name>dfs.permissions</name> <value>false</value> </property>
编辑 yarn-site.xml文件:
vi yarn-site.xml
在<configuration></ configuration >中添加如下配置:
<!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>主机名1</value> </property> <!-- 日志聚集功能使能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间设置7天(秒) --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
编辑 mapred-site.xml 由于目录下本身没有这个文件,只有一个 mapred-site.xml .template文件,首先备份一下这个文件
cp -pdf mapred-site.xml.template mapred-site.xml.template.bac
然后将 mapred-site.xml.template 重命名为 mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
然后编辑 mapred-site.xml 文件:
vi mapred-site.xml
在<configuration></ configuration >中添加如下配置:
<!-- 指定mr运行在yarn上--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--历史服务器的地址--> <property> <name>mapreduce.jobhistory.address</name> <value>主机名1:10020</value> </property> <!--历史服务器页面的地址--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>主机名1:19888</value> </property>
修改hadoop目录下 conf/hadoop-env.sh的环境变量,在末尾添加:
export JAVA_HOME= /opt/software/jdk1.8.0_144
配置完毕后进入 /opt/software/hadoop.2.8.4/ bin 目录下格式化Namenode:
hdfs namenode -format
接下来就可以启动集群了,例如启动全部:
start-all.sh
如果启动时出现如下错误:
[root@master sbin]# ./start-dfs.sh
Starting namenodes on [master]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [slave1]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
在/hadoop.2.8.4/sbin路径下,将start-dfs.sh、stop-dfs.sh、start-all.sh、stop-all.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
修改后重启 start-all.sh
以下提供一些常用的启动和停止命令( 以下命令都在 /opt/software/hadoop.2.8.4/sbin下 ) :
启动/停止历史服务器 | mr-jobhistory-daemon.sh start|stop historyserver |
启动/停止总资源管理器 | yarn-daemon.sh start|stop resourcemanager |
启动/停止节点管理器 | yarn-daemon.sh start|stop nodemanager |
启动/停止 NN 和 DN | start|stop-dfs.sh |
启动/停止 RN 和 NM | start|stop-yarn.sh |
启动/停止 NN、DN、RN、NM | start|stop-all.sh |
启动/停止 NN | hadoop-daemon.sh start|stop namenode |
启动/停止 DN | hadoop-daemon.sh start|stop datanode |