ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hadoop基础配置及伪分布实现

2021-10-26 22:59:29  阅读:140  来源: 互联网

标签:hdfs -- 配置 hadoop 分布 3.2 user ubuntu


hadoop基础配置及伪分布实现

目录

文章目录

一、基础环境准备

  1. 操作系统准备

    • 安装ubuntu虚拟机

      镜像地址:https://mirrors.nju.edu.cn/ubuntu-releases/18.04/ubuntu-18.04.6-desktop-amd64.iso

    • 如果使用docker

      docker pull ubuntu:18.04

  2. 换源

    • 备份起始源列表

      • sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
        
    • 打开源列表 (gedit命令是打开ubuntu的编辑器,如果是docker的话,需要换成vi命令)

      • sudo gedit /etc/apt/sources.list
        
    • 在文件最前面添加以下内容

      • #  阿里源
        deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
        deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
        deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
        
    • 刷新列表

      • sudo apt-get update
        sudo apt-get upgrade
        sudo apt-get install build-essential
        
  3. 安装java

    • 直接下载openJdk

      • sudo apt-get update
        sudo apt-get install openjdk-8-jdk
        
    • 验证java

      • java -version
        
  4. 安装其他软件

    • 安装ssh

      • sudo apt-get install ssh
        
      • 生成ssh密钥

        ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
        

        获取本机ssh访问权限

        ssh-copy-id localhost
        

        按下回车后会有确认是否加入hostList的询问,输入 “yes” 再按回车

        然后需要你输入本机密码

      • 测试ssh访问

        ssh localhost
        

        安装rsync

      • sudo apt-get install rsync
        

二、单机hadoop安装与配置

  1. hadoop的安装

    • 下载hadoop压缩包

      • cd ~
        wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
        
    • 解压到这里

      • hadoop@ubuntu:~$ tar –zxvf hadoop-3.2.2.tar.gz
        
    • 检查是否解压成功

      • hadoop@ubuntu:~$ ls
        Desktop    Downloads         hadoop-3.2.2         Music     Public     Videos
        Documents  examples.desktop  hadoop-3.2.2.tar.gz  Pictures  Templates
        
      • 是否有hadoop-3.2.2的文件夹?

    • 配置JAVA_HOME环境变量

      • gedit ~/hadoop-3.2.2/etc/hadoop/hadoop-env.sh
        
      • 在编辑器中找到 “# export JAVA_HOME=”

      在这里插入图片描述

      把这一行改为 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64,保存退出即可

      • PS:上面这个地址的获得方法是输入以下命令,然后看输出

        update-alternatives --config java
        
  2. hadoop配置 – 单机伪分布式

    首先先说一点,这里的配置,往往一空格,一个标点符号或者大小写的错误都会导致最终运行失败,所以输入之前一定要检查!!

    • core-site.xml

      • 打开编辑器

        gedit ~/hadoop-3.2.2/etc/hadoop/core-site.xml
        
      • 插入配置,注释内容不用加

        <configuration>   # 配置
        	<property>      # 某个属性
        		<name>fs.defaultFS</name>  # 属性的名字是这个
        		<value>hdfs://localhost:9000</value>	# 属性的值是这个,这个值是hdfs的路径
        	</property>   # 属性的闭合标签,一定要有,斜线不要忘
        </configuration>
        

        在这里插入图片描述

    • hdfs-site.xml

      • gedit ~/hadoop-3.2.2/etc/hadoop/hdfs-site.xml
        

        写入如下内容

        <configuration>
        	<property>
        		<name>dfs.replication</name>   # 数据的备份个数
        		<value>1</value>			# 备份数为一个
        	</property>
        </configuration>
        

三、Hadoop的运行

  1. 启动hadoop和运行任务

    • 格式化NameNode并启动

      • 格式化

        ~/hadoop-3.2.2/bin/hdfs namenode -format
        
      • 启动NameNode

        ~/hadoop-3.2.2/sbin/start-dfs.sh
        
      • 查看集群状态

        hadoop@ubuntu:~$ jps
        10960 NameNode
        11529 Jps
        11115 DataNode
        11372 SecondaryNameNode
        
      • 浏览NameNode的web接口

        直接在虚拟机的浏览器里打开 http://localhost:9870

        在这里插入图片描述

    • 执行一些hdfs操作(之后会经常用到,熟记)

      hdfs是一个文件系统,操作和电脑的文件浏览器差不多,有创建文件夹、移动文件等操作

      • 创建hdfs目录

        ~/hadoop-3.2.2/bin/hdfs dfs -mkdir /user     # -mkdir path 是创建目录
        ~/hadoop-3.2.2/bin/hdfs dfs -mkdir /user/input
        
      • 拷贝输入文件到hdfs上

        ~/hadoop-3.2.2/bin/hdfs dfs -put ~/hadoop-3.2.2/etc/hadoop/*.xml /user/input  # -put a b是将本地的a放在hdfs的b上
        

        这个操作是将-put后面的 etc/hadoop/目录下所有后缀为xml的文件复制到hdfs文件系统的/user/hadoop目录下

      • 查看一下hdfs的文件

        hadoop@ubuntu:~$ ~/hadoop-3.2.2/bin/hdfs dfs -ls /user/input   # -ls a是列出目录a下所有文件
        Found 9 items
        -rw-r--r--   1 hadoop supergroup       9213 2021-10-26 06:54 /user/hadoop/capacity-scheduler.xml
        -rw-r--r--   1 hadoop supergroup        867 2021-10-26 06:54 /user/hadoop/core-site.xml
        -rw-r--r--   1 hadoop supergroup      11392 2021-10-26 06:54 /user/hadoop/hadoop-policy.xml
        -rw-r--r--   1 hadoop supergroup        849 2021-10-26 06:54 /user/hadoop/hdfs-site.xml
        -rw-r--r--   1 hadoop supergroup        620 2021-10-26 06:54 /user/hadoop/httpfs-site.xml
        -rw-r--r--   1 hadoop supergroup       3518 2021-10-26 06:54 /user/hadoop/kms-acls.xml
        -rw-r--r--   1 hadoop supergroup        682 2021-10-26 06:54 /user/hadoop/kms-site.xml
        -rw-r--r--   1 hadoop supergroup        758 2021-10-26 06:54 /user/hadoop/mapred-site.xml
        -rw-r--r--   1 hadoop supergroup        690 2021-10-26 06:54 /user/hadoop/yarn-site.xml
        
    • 运行MapReduce

      • 运行hadoop自带的示例

        ~/hadoop-3.2.2/bin/hadoop jar ~/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar grep /user/input /user/output 'dfs[a-z.]+'
        

        分析以下其中的内容:

        • ~/hadoop-3.2.2/bin/hadoop: 调用hadoop程序
        • jar:执行这个程序的jar指令,就是告诉程序,要运行jar包
        • ~/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar:要执行的jar包的地址
        • grep:grep是这个jar包里的指令,就类似于上面的jar和hadoop的关系(在之后自己写的hadoop程序中指定了主类,可以不填这个分支指令)
        • /user/input:是输入地址
        • /user/output:是输出地址,两个地址都是hdfs上的地址,需要注意的是 /user/output目录不能事先存在
        • '‘dfs[a-z.]+’:是grep指令的参数。grep做的事情是筛选文本,这个参数就是告诉grep按这种模式筛选文本。
      • 查看运行结果:

        • 先将hdfs上的结果获取到本地

          ~/hadoop-3.2.2/bin/hdfs dfs -get /user/output ~/output
          
        • 读取结果

          cat ~/output/*    # cat是显示文本的命令
          
    • 最后关闭hadoop集群,修改配置之前要先关闭集群

      ~/hadoop-3.2.3/sbin/stop-dfs.sh
      

标签:hdfs,--,配置,hadoop,分布,3.2,user,ubuntu
来源: https://blog.csdn.net/m0_38074623/article/details/120982870

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有