比赛环境搭建
一.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