hadoop完全分布式、伪分布、单机

  • Post author:
  • Post category:其他




比赛环境搭建



一.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



版权声明:本文为qq_40608132原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。