Hadoop入门

2018/04/27 大数据 阅读次数: hadoop

摘要:hadoop入门学习,原理介绍,重点记录在安装hadoop的过程,本文只记录正确的安装方式,没有记录在安装过程中的坑

hadoop主要分为连个层次

hadoop是一个框架,java编写

- 加工和计算层
- 存储层,hadoop分布式文件系统  
hadoop两个核心组件  
    - MapReduce
    - HDFS
hadoop框架两个模块:
    - hadoop通用:这是Java库和其他Hadoop组件所需的实用工具
    - hadoop YARN:这是作业调度和集群资源管理的框架

MapReduce  

- 是一种编程模型,可在hadoop框架上运行,分布式计算

HDFS

- 在普通硬件上运行分布式文件系统,提高吞吐量的应用数据访问 #### 基础核心:提供基础的通用的功能 #### YARN:资源分配(多个任务是排队执行还是同时执行)

HDFS构成

1) NameNode  用来存储数据的存放位置等元数据(不存放数据)

2) DataNode 只用来存储数据

3) SecondaryNameNode  辅助NameNode运行,将NameNode产生的元数据持久化到磁盘上 

辅助NameNode运行,将NameNode产生的元数据持久化到磁盘上

-数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

-数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

Hadoop安装配置

  • 需要安装java,不再讲述

  • 官网下载hadoop发行版 http://hadoop.apache.org/releases.html
  • 下载后进行解压,移动

      tar -zxvf hadoop-3.1.0.tar.gz 
      mv hadoop-3.1.0 /home/hadoop/hadoop/hadoop3
    
  • 修改 ~/.bashrc 文件

      # 我的java是放在桌面的,配置java环境路径
      export JAVA_HOME=/home/hadoop/Desktop/java/jdk1.8.0_171
      export PATH=$JAVA_HOME/bin:$PATH 
    
  • 修改 vi etc/hadoop/hadoop-env.sh 添加以下代码  

      export JAVA_HOME=/home/hadoop/Desktop/java/jdk1.8.0_171
      export HADOOP_HOME=/home/hadoop/hadoop/hadoop3 
      export PATH=$PATH:/home/hadoop/hadoop/hadoop3/bin
    
  • 修改 vi etc/hadoop/core-site.xml添加以下代码

       <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
      <description>The name of the default file system. </description>   
      </property>
      <property> 
              <name>hadoop.tmp.dir</name> 
          <value>/home/hadoop/hadoop/tmp</value>
          <description>Parent directory for other temporary directories.</description>
      </property>
        
      创建需要的文件夹
      mkdir /home/hadoop/hadoop/tmp
    
  • 修改 vi etc/hadoop/mapred-site.xml 添加以下代码

       <property> 
           <name>mapreduce.jobtracker.address</name>
               <value>localhost:9001</value>
          <description>MapReduce job tracker runs at this host and port. </description>
       </property>  
    
  • 修改 vi etc/hadoop/yarn-site.xml 添加以下代码

      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>ha01</value>
      	</property>
      	<property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      	</property>
    
  • 格式化HDFS

      bin/hdfs namenode -format
    
  • 启动 Hadoop 的单节点集群

      sbin/start-dfs.sh 
        
      sbin/start-yarn.sh
        
      查看启动jps
    
  • 启动成功如下图

  • 关闭hadoop

      sbin/stop-dfs.sh
      sbin/stop-yarn.sh
    
  • 通过WebUI查看Hadoop状态

          http://127.0.0.1:9870
          http://127.0.0.1:8088
    
  • 使用命令行界面访问HDFS

    • 从本地文件系统复制文件到 HDFS

        hduser_@ubuntu:~$ $HADOOP_HOME/bin/hdfs dfs -copyFromLocal temp.txt /   此命令将文件从本地文件系统拷贝 temp.txt 文件到 HDFS。
      
    • 我们可以通过以下命令列出一个目录下存在的文件 -ls

        hduser_@ubuntu:~$ $HADOOP_HOME/bin/hdfs dfs -ls /  
      
    • 以下命令将文件从 HDFS 拷贝到本地文件系统

        hduser_@ubuntu:~$ $HADOOP_HOME/bin/hdfs dfs -copyToLocal /temp.txt    我们可以看到 temp.txt 已经复制到本地文件系统。    
      
    • 创建目录

        bin/hdfs dfs -mkdir /mydirectory
      

Search

    Table of Contents