比赛环境搭建
   
    
    
    一.Hadoop(完全分布式)搭建
   
    
    
    1.解压jdk到/usr/java目录下
   
tar -zxvf /chinaskills/jdk-8u162-linux-x64.tar.gz /usr/java
    
    
    2.添加环境变量
   
# vim /root/profile
export JAVA_HOME=/usr/java/jdk1.8.0_162
export PATH=$PATH:$JAVA_HOME/bin
source /root/profile
    
    
    3.设置hosts
   
    修改主机名为master:
    
    #sudo hostnamectl set-hostname master
    
    #bash
    
    修改主机名为slave1:
    
    #hostnamectl set-hostname slave1
    
    #bash
    
    修改主机名为slave2:
    
    #hostnamectl set-hostname slave2
    
    #bash
   
vi /etc/hosts
# 配置局域网ip
192.168.3.73 master
192.168.3.66 slave1
192.168.3.61 slave2
# 重启网卡生效
service network restart
    
    
    4.设置免密登入
   
    
     免密之前要把三台的hosts文件映射写了
    
   
可以使用ssh客户端工具的MultiExec来做(确保每台机器都在~家目录)
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave1
    注意:使用ssh-copy-id把本地主机的公钥复制到远程主机时出现下面提示时:
    
    Are you sure you want to continue connecting (yes/no)?
    
    要按yes
   
    
    
    3.分发jdk和/root/profile
   
scp -r /usr/java/jdk1.8.0_162/ slave1:/usr/java/jdk1.8.0_162/ 
scp -r /usr/java/jdk1.8.0_162/ slave2:/usr/java/jdk1.8.0_162/
scp -r /root/profile slave:/root/profile
scp -r /root/profile slave2:/root/profile
source /root/profile
    
    
    4.解压Hadoop并设置环境变量
   
 tar -zxvf hadoop-2.7.7.tar.gz -C /opt/
 vi /root/profile
export HADOOP_HOME=/opt/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    
    
    5.为Hadoop提供JAVA解释器路径信息,为Yarn任务、资源管理器提供Java运行环境
   
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_162
vi yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_162
    
    
    6.配置HDFS主节点信息、持久化和数据文件的主目录
   
    vi core-site.xml
<!-- 配置hadoop文件系统-->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://master:9000</value>
</property>
<!-- 配置hadoop临时目录-->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/hadoop-2.7.7/tmp</value>
</property>
    
    
    7.配置HDFS默认的数据存放策略
   
    vi hdfs-site.xml
<!-- 配置文件副本数 没说要求就写2-->    
<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>
<!-- 配置SecondaryNameNode服务器的主机ip和端口 |yarn地址-->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
</property>
<!-- 下面为新增要求-->
<!-- namenode 的 web 端访问端口配置为 15887-->
<property>
        <name>dfs.namenode.http-address</name>
        <value>master:15887</value>
</property>
    
    
    8.配置mapreduce任务调度策略
   
    cp mapred-site.xml.template mapred-site.xml
    vi mapred-site.xml	
<!-- 配置mapreduce计算框架-->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
    
    
    9.配置Yarn资源管理角色的信息
   
    vi yarn-site.xml
<!-- 指定Reducer获取数据的方式  -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<!-- yarn主节点rm的位置-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>master</value>
</property>
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认
是 true -->
<property>
 <name>yarn.nodemanager.pmem-check-enabled</name>
 <value>false</value>
</property>
    <!-- nm虚拟内存检查,默认为true,会导致任务被kill,设置为false 关闭-->
 <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>
    
    
    10.配置datanode节点信息
   
 vim /opt/hadoop-2.7.7/etc/hadoop/slaves
master
slave1
slave2
    
    
    11.分发hadoop
   
    scp -r /opt/hadoop-2.7.7/ slave1:/opt/
    
    scp -r /opt/hadoop-2.7.7/ slave2:/opt/
   
    
    
    12.在master主节点上格式化hadoop
   
/opt/hadoop-2.7.7/bin/hdfs  namenode -format
    
    
    13.在master主节点启动集群
   
# /opt/hadoop-2.7.7/sbin/start-dfs.sh
# /opt/hadoop-2.7.7/sbin/start-yarn.sh
    在master主节点显示五个进程
    
    [root@master hadoop-2.7.7]# jps
    
    3200 NameNode
    
    3331 DataNode
    
    3668 ResourceManager
    
    3782 NodeManager
    
    3495 SecondaryNameNode
    
    4379 Jps
   
在slave节点运行命令
# jps
    从节点slave显示三个进程
    
    DataNode
    
    NodeManager
    
    Jps
   
    
    
    2、伪分布式搭建
   
和完全分布式不同的就是:
1.涉及到其他机器的拷贝,分发都不用
2.slaves 文件不需要设置其他从节点,比如slave1,slave2,只需要把自己的主机名加进去
3.启动进程后的进程有:
[root@master hadoop-2.7.7]# jps
3200 NameNode
3668 ResourceManager
4379 Jps
3331 DataNode
3495 SecondaryNameNode
3782 NodeManager
 
