hadoop集群搭建--单节点(本地节点)

此文章并不是单纯的搭建单节点 想要只搭建单节点只需要上传解压jdk 和hadoop 并修改环境变量 和配置env.sh。多出的东西是为搭建伪分布和完全分布用

目录

一、hadoop单节点

二、准备工作

操作系统

软件要求 

三、配置详情

1.安装虚拟机和配置网络

2. 上传jdk和hadoop

   安装 VMware tools

    设置共享文件夹

 3. 安装jdk和hadoop

解压jdk和hadoop 

创建软链接

 4. 配置环境变量

配置hadoop配置文件

 5.小案例

 小知识点


一、hadoop单节点

hadoop本地节点(Standalone/local)即安装在单节点(一台主机)的本地模式,也叫独立模式。所有程序都在单个JVM上执行。使用本地文件系统,而不是分布式文件系统。无需运行任何守护进程,hadoop不会启动NameNode、DataNode等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。

二、准备工作

操作系统

  • w10+vmware

软件要求 

  • jdk-8u172-linux-x64.tar   连接 https://pan.baidu.com/s/1yfkTu0p2y7sNee4qfq8e6A 密码:b9cr
  • hadoop-2.7.3.tar  链接:https://pan.baidu.com/s/1FAmed6G_JfrOfWjckaHbXg  提取码:h9zh 
  • linux6.8

三、配置详情

1.安装虚拟机和配置网络

实际上单节点是不需要配置网络的。因为要从w10上将jdk和hadoop安装包上传至虚拟机。并且我这台机器需要继续配置伪分布以及完全分布。所以我需要配置网络环境。配置网络其实很简单。不需要的朋友也可以试着配置一下。linux还是很有意思的

 我的虚拟机是由一个空白的安装了linux6.8桌面版复制而来。因此 我需要修改虚拟机的mac地址。如果你的虚拟机是创建而来,那么可以跳过修改mac地址的步骤。网络使用nat模式。

  1. sudo vim /etc/udev/rules.d/70-persistent-net.rules                   ----查看网卡信息以及记忆mac地址 
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:90:ab:e6", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


----------将此处配置注释或删除 



# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b2:e7:66", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


----------记住网卡mac地址 即00:0c:29:b2:e7:66  并将网卡名改为 eth0  

2.sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0              -----修改网卡配置文件

DEVICE=eth0
HWADDR=00:0C:29:B2:E7:66  ------将mac地址修改为刚才的mac地址
TYPE=Ethernet
UUID=c74cd800-bd98-4b84-9b67-821f3f8c14a1
ONBOOT=yes                -------将no改为yes 设置开机自动读取网络配置
NM_CONTROLLED=yes
BOOTPROTO=static          -------将dhcp改为static 设置为nat模式
IPADDR=192.168.61.70      -------添加ipaddr ip为vm8网卡同网段 查看方式vmware 编辑-虚拟网络编辑    
                                 器-vm8网卡-nat设置。 或者直接在window下ipconfig 查看vm8的ip
NETMASK=255.255.255.0     ------- 添加netmask 子网掩码 默认为255.255.255.0   
GATEWAY=192.168.61.2      -------添加gateway 默认网关 值为ip最后一位改为2
DNS1=192.168.61.2         -------添加 dns1  默认值何网关相同

3.修改主机名 和域名映射(因为我之后要搭建一个三个节点的完全分布集群 所以我的映射里面添加了三个从节点的ip) 

        sudo vim /etc/sysconfig/network       -------修改主机名

NETWORKING=yes
HOSTNAME=Ms2   --------------将此处改为主机名

          sudo vim /etc/hosts                         ---------修改主机映射

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.61.70 Ms2          --------------ip 主机名   可以忽略下面三条
192.168.61.71 sv1
192.168.61.72 sv2
192.168.61.72 sv3

注 以上配置生效最好重启 

2. 上传jdk和hadoop

   安装 VMware tools

虚拟机->安装 VMware tools工具->解压缩压缩包到桌面->开启终端->切换root用户->执行可执行文件
    ->一路回车

    设置共享文件夹

点击虚拟主机->设置->选项->共享文件夹-->启动-->选择window系统上要共享的文件夹  (设置共享文件夹时需要重启)

 3. 安装jdk和hadoop

    首先验证网络配置 即

[ms@Ms2 桌面]$ ping baidu.com
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=26.2 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=25.7 ms
64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=26.7 ms
64 bytes from 123.125.114.144: icmp_seq=4 ttl=128 time=25.8 ms
如果有数据传输 即成功

解压jdk和hadoop 

  1. mkdir ~/apps                                                                                      -------在用户主目录下创建apps目录
  2.  cp /mnt/hgfs/1707/jdk-8u172-linux-x64.tar.gz ~/apps/                      --------将共享文件夹中的jdk复制到 apps               
  3. cp /mnt/hgfs/1707/hadoop-2.7.3.tar.gz ~/apps/                                 --------将共享文件夹中的hadoop复制到 apps 
  4.  tar -zvxf ~/apps/jdk-8u172-linux-x64.tar.gz                                      ---------解压jdk
  5. tar -zvxf ~/apps/hadoop-2.7.3.tar.gz                                                 ---------解压hadoop

创建软链接

创建软链接 是为了更换软件时不需要修改环境变量

  1. [ms@Ms2 apps]$ ln -s ~/apps/hadoop-2.7.3 hadoop                         -------创建hadoop的链接
  2. [ms@Ms2 apps]$ ln -s ~/apps/jdk1.8.0_172 jdk                                 -------创建jdk的软链接

 4. 配置环境变量

  1. [ms@Ms2 apps]$ vim ~/.bash_profile                                -------打开环境配置文件
  2. specific environment and startup programs
    PATH=$PATH:$HOME/bin
    JAVA_HOME=/home/ms/apps/jdk                                      -------jdk主目录
    PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin    -------配置执行文件指向jdk
    HADOOP_HOME=/home/ms/apps/hadoop                       -------hadoop主目录
    PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin    -------------配置执行文件指向hadoop
    export PATH JAVA_HOME HADOOP_HOME                    -------设置自动加载
     

  3. source ~/.bash_profile                                                       --------------读取配置文件

  4. java                                                                                    ----------------测试jdk

    用法: java [-options] class [args...]
               (执行类)
       或  java [-options] -jar jarfile [args...]
               (执行 jar 文件)
    其中选项包括:
        -d32      使用 32 位数据模型 (如果可用)
        -d64      使用 64 位数据模型 (如果可用)
        -server      选择 "server" VM
                      默认 VM 是 server.

        -cp <目录和 zip/jar 文件的类搜索路径>
        -classpath <目录和 zip/jar 文件的类搜索路径>
                      用 : 分隔的目录, JAR 档案
                      和 ZIP 档案列表, 用于搜索类文件。
        -D<名称>=<值>
                      设置系统属性
        -verbose:[class|gc|jni]
                      启用详细输出
        -version      输出产品版本并退出
        -version:<值>
                      需要指定的版本才能运行
        -showversion  输出产品版本并继续
        -jre-restrict-search | -no-jre-restrict-search
                      在版本搜索中包括/排除用户专用 JRE
        -? -help      输出此帮助消息
        -X            输出非标准选项的帮助
        -ea[:...|:]
        -enableassertions[:...|:]
                      按指定的粒度启用断言
        -da[:...|:]
        -disableassertions[:...|:]
                      禁用具有指定粒度的断言
        -esa | -enablesystemassertions
                      启用系统断言
        -dsa | -disablesystemassertions
                      禁用系统断言
        -agentlib:[=<选项>]
                      加载本机代理库 , 例如 -agentlib:hprof
                      另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
        -agentpath:[=<选项>]
                      按完整路径名加载本机代理库
        -javaagent:[=<选项>]
                      加载 Java 编程语言代理, 请参阅 java.lang.instrument
        -splash:
                      使用指定的图像显示启动屏幕
    有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
     

  5. hadoop                                                                                ------------------测试hadoop

    Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
      CLASSNAME            run the class named CLASSNAME
     or
      where COMMAND is one of:
      fs                   run a generic filesystem user client
      version              print the version
      jar            run a jar file
                           note: please use "yarn jar" to launch
                                 YARN applications, not this command.
      checknative [-a|-h]  check native hadoop and compression libraries availability
      distcp copy file or directories recursively
      archive -archiveName NAME -p * create a hadoop archive
      classpath            prints the class path needed to get the
      credential           interact with credential providers
                           Hadoop jar and the required libraries
      daemonlog            get/set the log level for each daemon
      trace                view and modify Hadoop tracing settings

    Most commands print help when invoked w/o parameters

配置hadoop配置文件

  1.  [ms@Ms2 ~]$ vim ~/apps/hadoop/etc/hadoop/hadoop-env.sh
  2. export JAVA_HOME=/home/ms/apps/jdk                           ----------将此处修改为jdk路径

 5.小案例

  1. mkdir ~/apps/input                                                                ---------创建input目录
  2. cp ~/apps/hadoop/etc/hadoop/*.xml ~/apps/input/               ----------将一些文件复制到input下
  3. [ms@Ms2 ~]$ hadoop jar ~/apps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep ~/apps/input ~/apps/output 'dfs[a-z.]+'                      ----------执行jar包 将符合正则表达式的文件导入新创建的output下
  4. [ms@Ms2 ~]$ cat ~/apps/output/*                                                      ----------查看output
  5. 1    dfsadmin                                                               搭建成功

 小知识点

sudo命令的使用 sudo命令的作用是使普通用户暂时在本条命令上拥有root用户权限 用法 sudo [命令] ...  防止使用root用户后未换回普通用户导致系统出问题

使用条件 需要修改/etc/sudoers 但是此文件对root用户是只读文件 但是root用户拥有所有文件的所有权限 我们可以将其修改为可修改文件 详细操作如下

  1.  chmod 600 /etc/sudoers                                     -----修改权限为可读可写
  2. vim /etc/sudoers                                                  -----打开此文件

  3. ## Next comes the main part: which users can run what software on 
    ## which machines (the sudoers file can be shared between multiple
    ## systems).
    ## Syntax:
    #
    ##      user    MACHINE=COMMANDS
    ##
    ## The COMMANDS section may have other options added to it.
    ##
    ## Allow root to run any commands anywhere 
    root    ALL=(ALL)       ALL
    ms  ALL=(ALL)  ALL                                             ------在此处添加 用户名  ALL=(ALL) ALL
     A## Allows members of the 'sys' group to run networking, software, 
    ## service management apps and more.
    # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
  4. : x                                                                          ------退出vim 编辑器 
  5. chmod 400 /etc/sudoers                                       ------将权限改回只读
  6. 完成  之后可以使用sudo,命令啦 

你可能感兴趣的:(hadoop集群搭建--单节点(本地节点))