【Hadoop入门学习系列之一】Ubuntu下安装Hadoop(完全分布模式)

来源:互联网 发布:实体店结算软件 编辑:程序博客网 时间:2024/06/06 12:24

一.前言

hadoop的安装模式主要有三种:单机模式,伪分布模式和集群模式。单机模式和伪分布模式的安装配置请参考上文【Hadoop入门学习系列之一】Ubuntu下安装Hadoop(单机模式+伪分布模式),真正使用时使用的是hadoop的集群模式。
本文主要讲解在Linux环境下hadoop集群模式的安装和配置。


二.安装步骤

1.在虚拟机中安装三个Linux虚拟机

主机名分别为Master,Slaver1.Slaver2,即一个主节点,两个从节点。上网方式均选择NAT方式。三者对应的IP地址分别为
【Master 192.168.209.128】,【Slaver1 192.168.209.129】,【Slaver2 192.168.209.130】。

2.为三个主机安装SSH服务,配置SSH免密码登录。【SSH是三个节点间通信的协议】

3.安装JDK并配置环境变量

4.更改主机名和IP映射信息,编辑/etc/hoatname和/etc/hosts

5.安装hadoop并配置环境变量

6.修改hadoop的配置文件

7.运行实例并测试


三.开始安装和配置

1.安装SSH,配置SSH免密码登录(以Master为例)

hadoop@Master:~$ sudo apt-get install openssh-server     # 安装SSHhadoop@Master:~$ ssh localhost                           # 用SSH登录本机测试hadoop@Master:~$ exit                                    # 退出刚才的 ssh localhosthadoop@Master:~$ cd ~/.ssh/                              # 若没有该目录,请先执行一次ssh localhosthadoop@Master:~$ ssh-keygen -t rsa                       # 生成公钥和私钥文件。会有提示,都按回车就可以hadoop@Master:~$ cat ./id_rsa.pub >> ./authorized_keys   # 将公钥文件追加到授权文件中,获得免密功能。

2.安装JDK,配置环境变量。

hadoop@Master:~$ sudo apt-get install openjdk-8-jdk       #默认安装路径为/usr/lib/jvm/java-8-openjdk-amd64hadoop@Master:~$ vim ~/.bashrc                            # 加入export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64hadoop@Master:~$ source ~/.bashrc                         # 使环境变量设置生效hadoop@Master:~$ java -version                            #检查环境配置

3.更改主机名和IP映射信息

hadoop@Master:~$ sudo vim /etc/hostname                   # hostname修改为Masterhadoop@Master:~$ sudo vim /etc/hosts                      # hosts中修改为192.168.209.128 Master 192.168.209.129 Slave1 192.168.209.130 Slave2hadoop@Master:~$ ping Master -c 3                         # ping连接测试

4.安装hadoop并配置环境变量

hadoop@Master:~$ vim ~/.bashrc                            #加入export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbinhadoop@Master:~$ source ~/.bashrc

5.修改hadoop的配置文件/etc/hadoop

  • slaves

文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。

本教程让 Master 节点仅作为 NameNode 使用,因此将文件中原来的 localhost 删除,添加两行内容:Slave1 Slaver2。

  • core-site.xml
<configuration>        <property>                <name>fs.defaultFS</name>                <value>hdfs://Master:9000</value>        </property>        <property>                <name>hadoop.tmp.dir</name>                <value>file:/usr/local/hadoop/tmp</value>                <description>Abase for other temporary directories.</description>        </property></configuration>
  • hdfs-site.xml

dfs.replication 一般设为 3,我们有个数据节点,所以dfs.replication 的值还是设为2:

<configuration>        <property>                <name>dfs.namenode.secondary.http-address</name>                <value>Master:50090</value>        </property>        <property>                <name>dfs.replication</name>                <value>1</value>        </property>        <property>                <name>dfs.namenode.name.dir</name>                <value>file:/usr/local/hadoop/tmp/dfs/name</value>        </property>        <property>                <name>dfs.datanode.data.dir</name>                <value>file:/usr/local/hadoop/tmp/dfs/data</value>        </property></configuration>
  • mapred-site.xml

可能需要先重命名,默认文件名为 mapred-site.xml.template

<configuration>        <property>                <name>mapreduce.framework.name</name>                <value>yarn</value>        </property>        <property>                <name>mapreduce.jobhistory.address</name>                <value>Master:10020</value>        </property>        <property>                <name>mapreduce.jobhistory.webapp.address</name>                <value>Master:19888</value>        </property></configuration>
  • yarn-site.xml
<configuration>        <property>                <name>yarn.resourcemanager.hostname</name>                <value>Master</value>        </property>        <property>                <name>yarn.nodemanager.aux-services</name>                <value>mapreduce_shuffle</value>        </property></configuration>

6.在Master节点启动hadoop

hadoop@Master:~$ start-dfs.shhadoop@Master:~$ start-yarn.shhadoop@Master:~$ mr-jobhistory-daemon.sh start historyserverhadoop@Master:~$ jps

最终结果:

1.HDFS的守护进程

主节点:Namenode、SecondaryNamenode

从节点:Datanode

2.YARN的守护进程

主节点:ResourceManager

从节点:NodeManager

1 0