一、安装jdk (jdk1.8.0_144)

 卸载现有jdk
(1)查询是否安装java软件:

rpm -qa|grep java

(2)如果安装的版本低于1.7,卸载该jdk:

rpm -e 软件包名字

 在/opt目录下创建两个子文件

mkdir /opt/module /opt/software

 解压jdk到/opt/module目录下

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

 配置jdk环境变量
vi /etc/profile

export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

使配置的环境变量生效:source /etc/profile  测试jdk安装成功

java -version
java version "1.8.0_144"

二、SSH无密码登录

 生成公钥和私钥:ssh-keygen -t rsa然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
 将公钥拷贝到要免密登录的目标机器上

ssh-copy-id 主机名1
ssh-copy-id 主机名2
ssh-copy-id 主机名3

注:在另外两台机器上分别执行,共执行9遍
 .ssh文件夹下的文件功能解释
(1)~/.ssh/known_hosts :记录ssh访问过计算机的公钥(public key)
(2)id_rsa :生成的私钥
(3)id_rsa.pub :生成的公钥
(4)authorized_keys :存放授权过得无秘登录服务器公钥

三、配置集群

1)集群部署规划:

bigdata111

bigdata112

bigdata113

HDFS

NameNode

SecondaryNameNode

DataNode

DataNode

DataNode

YARN

ResourceManager

NodeManager

NodeManager

NodeManager

2)配置文件:

文件

配置

core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
 <property>
         <name>fs.defaultFS</name>
         <value>hdfs://主机名1:9000</value>
 </property>
 <!-- 指定hadoop运行时产生文件的存储目录 -->
 <property>
         <name>hadoop.tmp.dir</name>
         <value>/opt/module/hadoop-2.X.X/data/tmpv/value>
 </property>

hdfs-site.xml

<!--数据冗余数-->
 <property>
         <name>dfs.replication</name>
         <value>3</value>
 </property>
 <!--secondary的地址-->
 <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>主机名1:50090</value>
 </property>
 <!--关闭权限-->
 <property>
         <name>dfs.permissions</name>
         <value>false</value>
 </property>

yarn-site.xml

<!-- 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

<!-- 指定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-env.sh、yarn-env.sh、mapred-env.sh(分别在这些的文件中添加下面的路径)

export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径)

slaves

bigdata111、bigdata112、bigdata113(自己设置的主机名)

四:格式化Namenode

hdfs namenode -format

五、启动集群得命令

Namenode的主节点:sbin/start-dfs.sh Yarn的主节点:sbin/stop-yarn.sh

注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

六、scp文件传输

实现两台远程机器之间的文件传输(bigdata112主机文件拷贝到bigdata113主机上)
scp -r [文件] 用户@主机名:绝对路径

注:伪分布式是一台、完全分布是三台

七、完全分布式

步骤:
1)克隆2台客户机(关闭防火墙、静态ip、主机名称)
2)安装jdk
3)配置环境变量
4)安装hadoop
5)配置环境变量
6)安装ssh
7)配置集群
8)启动测试集群

注:此配置直接使用虚拟机克隆伪分布式两台即可

八、Hadoop启动和停止命令:

以下命令都在$HADOOP_HOME/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