Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)

Hadoop有三种操作模式,分别为单机模式,伪分布模式和全分布模式。

本文简单介绍和区分三种操作模式,并参考网上的文章,记录自己搭建伪分布模式集群的过程。

最后使用hadoop提供的example程序尝试运行。

文章目录

      • 1. Hadoop的三种模式
      • 2. 环境
      • 3. JDK安装
      • 4. 安装hadoop
      • 5. 配置hadoop
      • 6. 启动Hadoop
      • 7.HDFS集群作业提交
      • Reference

1. Hadoop的三种模式

单机模式

  • Hadoop的默认操作模式,该模式主要用于开发调试MapReduce程序的应用逻辑,而不会和守护进程交互
  • 使用本地文件而不是HDFS
  • 不会启动NameNodeDataNode等守护进程,MapTask和ReduceTask作为同一进程的不同部分来执行

伪分布模式

  • 操作是指在“单节点集群”上运行Hadoop,即一台主机模拟多台主机,NameNodeDataNode守护进程都运行在同一台机器上,是相互独立的Java进程

  • 该模式在单机模式操作之上多了代码调试功能,可以查阅内存的使用情况、HDFS的输入输出以及守护进程之间的交互

全分布模式

  • 实际意义上的Hadoop集群,守护进程运行在多台主机搭建的集群上
  • 需要在所有主机安装JDK和Hadoop,组成相互连通的网络
  • 在主机间设置SSH免密码登陆,把各个从节点(slave node) 生成的公钥添加到主节点的信任列表

2. 环境

  • 系统:ubuntu16.04

  • JDK版本:jdk1.8.0_201

  • hadoop版本:hadoop-2.6.5

3. JDK安装

  1. 下载JDK1.8,打开链接JDK 1.8,选择Linux x64,下载得到jdk-8u201-linux-x64.tar.gz
  2. 使用tar命令解压,并放在/opt/jdk1.8.0_201,若对/opt没有权限,可以使用chown命令修改拥有者
tar -xf jdk-8u201-linux-x64.tar.gz #解压
(chown [用户名] /opt)				#修改拥有者
mv jdk1.8.0_201 /opt/              #移动到opt目录下
  1. 配置JDK的环境变量,即在/etc/profile文件中加入对应语句
vim /etc/profile #打开配置文件
#添加两行代码
export JAVA_HOME=/opt/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
  1. 激活环境变量
source /etc/profile
java -version #检查是否安装成功
  1. 这样每次启动terminal时都得激活一次环境变量,我的处理方式是修改用户目录下的.bashrc文件,使得每次启动时自动执行激活环境变量的操作,如下:
vim ~/.bashrc
#在文件最后增加一句
source /etc/profile

4. 安装hadoop

  1. 在hadoop各个版本下载hadoop-2.6.5,下载得到hadoop-2.6.5.tar.gz
  2. 使用tar命令解压,并放在/opt/hadoop-2.6.5
tar -xf hadoop-2.6.5.tar.gz  
mv hadoop-2.6.5 /opt/
  1. 到/opt/目录中,创建软链接再配置环境变量,之后若使用不同版本就只需重新创建软链接,不用重新配置
ln -snf hadoop-2.6.5 hadoop #创建软链接
vim /etc/profile
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 激活环境变量
source /etc/profile
hadoop version #检查是否安装成功

5. 配置hadoop

修改过程需要把#后的内容去掉,此处仅为个人理解而添加

  1. 配置文件存放在/opt/hadoop/etc/hadoop
cd /opt/hadoop/etc/hadoop
  1. 修改hadoop-env.sh第25行JAVA_HOME,设置为与上述JDK配置时一致
#export JAVA_HOME=${JAVA_HOME}   #注释掉原来的
export JAVA_HOME=/opt/jdk1.8.0_201
  1. 修改core-site.xml最后的configuration,补充如下,192.168.1.165:9000为主机ip和端口

	
		fs.defaultFS
		hdfs://192.168.1.165:9000   
	

  1. 修改hdfs-site.xml,同样修改最后的configuration如下:

    关于这里的checkpoint,可以参考解读Secondary NameNode的功能


    
        dfs.nameservices
        hadoop-cluster
    
    
        dfs.namenode.name.dir
        file:///data/hadoop/hdfs/nn #namenode目录
    
    
        dfs.namenode.checkpoint.dir
        file:///data/hadoop/hdfs/snn 
    
    
        dfs.namenode.checkpoint.edits.dir
        file:///data/hadoop/hdfs/snn
        #edit文件目录,用于secondary namenode更新fsimage
    
    
        dfs.datanode.data.dir
        file:///data/hadoop/hdfs/dn #datanode目录
    

  1. 修改mapred-site.xml,在hadoop的相关目录中没有此文件,但是有一个mapred-site.xml.template文件,将该文件复制一份为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
 
     
         mapreduce.framework.name
         yarn #资源调度框架设置为YARN
     
     
    
        mapreduce.jobhistory.address
        localhost:10020
    

    
    
        mapreduce.jobhistory.webapp.address
        localhost:19888
    

    
    
        mapreduce.jobhistory.intermediate-done-dir
        /history/done_intermediate
    

    
    
        mapreduce.jobhistory.done-dir
        /history/done
    
 
  1. 修改yarn-site.xml

	
		
			yarn.resourcemanager.hostname #RM主机
			192.168.1.165
		
	
		
			yarn.nodemanager.aux-services  
			mapreduce_shuffle #MapReduce程序所需的Shuffle service
		
		
			yarn.nodemanager.local-dirs
			file:///data/hadoop/yarn/nm  #NM本地目录
		
		
            yarn.log-aggregation-enable
            true
        

  1. 创建上述配置中的相关目录
sudo mkdir -p /data/hadoop/hdfs/nn
sudo mkdir -p /data/hadoop/hdfs/dn
sudo mkdir -p /data/hadoop/hdfs/snn
sudo mkdir -p /data/hadoop/yarn/nm
  1. 若用当前用户启动各个守护进程,则需要用户对/opt和/data目录有读写权限
chown zyc[我的用户名] /opt
chmod -R 777 /data
  1. 格式化HDFS集群
hdfs namenode -format

6. 启动Hadoop

启动所需的sh文件都在/opt/hadoop/sbin中,前面已经将该路径加入环境变量,可直接访问。

  1. 启动HDFS集群
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
  1. 启动YARN集群
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
  1. 启动作业历史服务器
mr-jobhistory-daemon.sh start historyserver
  1. jps查看是否成功启动
Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)_第1张图片
  1. 登陆ip:50070查看HDFS的web监控页面
    Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)_第2张图片

  2. 登陆ip:8088查看YARN的web监控页面
    Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)_第3张图片

  3. 登陆localhost:19888查看jobhistory监控页面
    Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)_第4张图片

  4. 关闭命令只需将上述命令的start改为stop即可

  5. 开启时可以使用start-all.sh,关闭时可以使用stop-dfs.shstop-yarn.sh

7.HDFS集群作业提交

  1. 使用hadoop中提供的计算pi的example,提交如下:
yarn jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar pi 4 10000

Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)_第5张图片

  1. 查看yarn监控页面的记录,如下(此处运行了两遍,所以有两个):
    Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)_第6张图片

  2. 查看jobhistory的记录,如下:
    Hadoop学习——(2) 安装过程记录(Ubuntu上的伪分布模式)_第7张图片

Reference

  1. Hadoop(二)搭建伪分布式集群
  2. Hadoop] 在Ubuntu系统上一步步搭建Hadoop(单机模式)
  3. Hadoop中的jobhistory配置与启动停止
  4. 安装配置hadoop 伪分布式搭建

你可能感兴趣的:(hadoop,伪分布,ubuntu,搭建,大数据学习记录)