Hadoop(1)

Hadoop

Hadoop是什么

Hadoop是一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储

Hadoop核心构成

  • 分布式文件系统HDFS
  • 资源管理系统YARN
  • 分布式计算框架MapReduce

Hadoop生态系统图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RMotBzh1-1599788912535)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907121119637.png)]

下载hadoop

  • 下载cdh 网址:http://archive.cloudera.com/cdh5/cdh/5/
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OfQpNF98-1599788912536)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907121920814.png)]
  • hadoop依赖于jdk1.7
    • 所以需要下载jdk1.7

HDFS架构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDdBvIo6-1599788912537)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907164655935.png)]

HDFS 核心组件
image-20200907165337371

HDFS环境搭建

SSH配置
1、创建haoop用户
#创建用户
[root@localhost ~]# useradd hadoop183
#修改密码
[root@localhost ~]# passwd hadoop183
2、给刚创建的用户进行授权 或者使用visudo

/etc/sudoers

[root@192 ~]# chmod 777 /etc/sudoers
[root@192 ~]# vim /etc/sudoers

修改/etc/sudoers 文件,找到root一行,在root下面添加一行,如下所示:

root  ALL=(ALL)  ALL
# hadoop ALL=(ALL)  ALL
hadoop ALL=(ALL)   NOPASSWD:ALL

修改完毕后,hadoop,然后用sudo su - ,即可获得root权限。

记得撤销授权,否则会报错。

[root@192 ~]# chmod 640 /etc/sudoers

修改完后重启 reboot

3、ssh免密登录
  • 切换到hadoop183用户生成密钥

    • image-20200907220216409
    • 把hadoop183用户的公钥发送给root用户

      注意:哪个用户希望免密登录别的用户,就需要把自己的公钥通过ssh发送给对方

      • ssh-copy-id -i ./.ssh/id_rsa.pub root@hadoop000
      • image-20200907221518584
      • 这样的话hadoop183用户就可以免密登录root用户了
        • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7l7prOY4-1599788912539)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907221617605.png)]
Linux机器参数配置
  • Linux网卡配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33

    TYPE=Ethernet #网络类型
    PROXY_METHOD=none 
    BROWSER_ONLY=no
    BOOTPROTO=static #IP获取方式 dhcp自动获取 static静态IP
    DEFROUTE=yes 
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33 #网络名称
    UUID=434b9ae0-3870-4f91-98b3-bf8102b38b7c
    DEVICE=ens33 #驱动名称
    ONBOOT=yes #设置开机启动
    
    DNS1=114.114.114.114 #域名解析器
    IPADDR=192.168.1.112 #设置静态IP地址
    NETMASK=255.255.255.0 #子网掩码
    GATEWAY=192.168.1.10 #网关
    
  • 设置IP和hostname的映射关系 vim /etc/hosts

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJSNoqAY-1599788912541)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907221054118.png)]

HDFS配置文件参数配置
  • 解压hadoop

    [hadoop@hadoop000 software]$ tar zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ../app
    
    • 进入解压后的hadoop目录
      • cd …/app/hadoop-2.6.0-cdh5.7.0
    • 删除etc/hadoop的以.cmd结尾的文件
      • cd etc/hadoop
      • rm -rf *.cmd
  • 配置文件etc/hadoop/hadoop-env.sh

  • vim hadoop-env.sh

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dRa8jo56-1599788912543)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907231228724.png)]

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l3ZmW4KO-1599788912543)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907230915793.png)]

  • 配置文件etc/hadoop/core-site.xml

    • vim core-site.xml

      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7BKZ8Z8y-1599788912544)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907231810195.png)]

      • <configuration>
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://localhost:9000</value>
            </property>
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop/app/tmp</value>
            </property>
        </configuration>
        
  • 配置文件etc/hadoop/hdfs-site.xml

    • vim hdfs-site.xml

      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0oA9Wwab-1599788912545)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907231920757.png)]

      • <configuration>
            <property>
                <name>dfs.replication</name>
                <value>1</value>
            </property>
        </configuration>
        
  • 将hadoop的目录配置到环境变量中

    • vim ~/.bash_profile

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jKPAwP7U-1599788912545)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907232533249.png)]

    • source ~/.bash_profile

  • 测试

    • echo $HADOOP_HOME
    配置YARN Map Reduce
  • mapred-site.xml配置文件

    • 进入目录 cd home/hadoop183/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j18vkfR3-1599788912546)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908182354799.png)]

    • 将mapred-site.xml.template复制为mapred-site.xml

      • cp mapred-site.xml.template mapred-site.xml
    • 修改

      • vim mapred-site.xml

      • image-20200908182436307
      • <configuration>
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
        </configuration>
        
  • yarn-site.xml配置文件

    • 修改

      • vim yarn-site.xml

      • image-20200908182607852
      • <configuration>
            <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
            </property>
        </configuration>
        
HDFS格式化及启停
格式化文件系统
  • 查看hadoop版本
    • image-20200908183236872
  • 修改core-site.xml文件
    • vim core-site.xml
      • image-20200908202840561
  • 进行格式化
    • 切换到hadoop安装目录
      • cd /home/hadoop183/app/hadoop-2.6.0-cdh5.7.0
    • 运行格式化命令
      • bin/hdfs namenode -format
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Abqgvnu-1599788912546)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908204243012.png)]
      • app目录中显示出tmp目录代表格式化成功
  • 安装tree软件
    • yum install -y tree
      • 使用tree查看tmp的目录结构 tree …/tmp
      • image-20200908204540931
启动
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UfL1SaCk-1599788912546)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908210133933.png)]
    • 启动成功
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wagiANOk-1599788912547)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908210225601.png)]
      • 访问http://192.168.1.112:50070出现如下页面代表启动成功
        • image-20200908210326482
HDFS简单测试
shell指令
#创建一个data目录
[hadoop183@hadoop000 bin]$ hadoop fs -mkdir /data
#创建迭代目录
[hadoop183@hadoop000 bin]$ hadoop fs -mkdir -p  /data/a/b/c
#上传本地文件到hdfs
[hadoop183@hadoop000 bin]$ hadoop fs -put /home/hadoop183/data/hello_dfs.txt /data 
#上传本地文件到hdfs
[hadoop183@hadoop000 bin]$ hadoop fs -copyFromLocal /home/hadoop183/data/hello_dfs_get.txt /data

#查看目录
[hadoop183@hadoop000 bin]$ hadoop fs -ls /data
#查看文本内容
[hadoop183@hadoop000 bin]$ hadoop fs -cat /data/hello_dfs.txt
#或
[hadoop183@hadoop000 bin]$ hadoop fs -text /data/hello_dfs.txt
#查看hadoop fs的帮助信息
hadoop fs
#从hdfs下载文件到本地
[hadoop183@hadoop000 bin]$ hadoop fs -get /data/hello_dfs.txt /home/hadoop183/data/hello_dfs_get.txt 
#从hdfs下载文件到本地
[hadoop183@hadoop000 bin]$ hadoop fs -copyToLocal /data/hello_dfs_get.txt /home/hadoop183/data/copyToLocal_hello.txt
#删除
[hadoop183@hadoop000 bin]$ hadoop fs -rm -r /data
#启动文件系统
[hadoop183@hadoop000 hadoop-2.6.0-cdh5.7.0]$ start-dfs.sh
#停止文件系统
[hadoop183@hadoop000 hadoop-2.6.0-cdh5.7.0]$ stop-dfs.sh

#启动全部服务 包括dfs文件系统和yarn 相当于执行了start-dfs.sh和start-yarn.sh
[hadoop183@hadoop000 ~]$ start-all.sh

start-dfs.sh:
62073 NameNode
62393 SecondaryNameNode
62184 DataNode

start-yarn.sh:
62639 NodeManager
62542 ResourceManager

Java API操作

MapReduce

image-20200909174417057

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMlc451A-1599788912548)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200909174659192.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-luItypIx-1599788912548)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910110231483.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7YNguLBw-1599788912548)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910111256005.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57kYUIft-1599788912550)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910114618714.png)]

http://hadoop000:8088/ 可以查看集群运行时的详细信息

[hadoop183@hadoop000 ~]$ hadoop jar data/lib/wc.jar cn.kgc.hadoop.WordCount /data/wordcount.txt /output

分布式列式数据库HBase

HBase概述
安装Hbase
  • 上传压缩包并解压

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2tjBfzYH-1599788912550)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910212632671.png)]
    • 解压
      • tar -zxvf hbase-1.2.0-cdh5.7.0.tar.gz -C …/app/
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BBoD5l9J-1599788912550)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910212934526.png)]
  • 修改配置文件 hbase-env.sh

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HXqxG9aa-1599788912551)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910213252937.png)]
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJTvm0AX-1599788912551)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910213323145.png)]
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uVMuK4ig-1599788912552)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910213346158.png)]
  • 修改配置文件hbase-site.xml

    • image-20200910213728280
  • 配置regionservers

    • vim regionservers
    • image-20200910213909357
  • 配置环境变量

    • vim ~/.bash_profile

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z1iZjBq8-1599788912552)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910214026513.png)]

  • 启动HBase

    • 启动hadoop

      start-all.sh
      
    • 启动zookeeper

      zkServer.sh start
      
    • 启动Hbase

      start-hbase.sh
      
  • 测试

    • 访问http://192.168.1.112:60030/
    • 显示以下页面代表启动成功
      • image-20200910220359545
    • 或访问hadoop000:50070[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V05VN2HE-1599788912552)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910220454432.png)]
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-93lkg1K2-1599788912553)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910220503499.png)]

安装Zookeeper

  • 上传并解压

    • image-20200910210652273
    • 将zookeeper压缩包解压到app目录下 tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C …/app/
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FW288Ugh-1599788912553)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910210844759.png)]
      • 为了方便起见我们可以将zookeeper下面bin目录下面以cmd结尾的文件删除
  • 进行配置

    • 创建目录
  • mkdir /home/hadoop/app/tmp/zookeeper

  • 在conf目录下创建配置文件zoo.cfg

    • cp zoo_sample.cfg zoo.cfg

    • 进行修改 vim zoo.cfg

    • 将配置文件修改为以下信息

      #zoo.cfg配置文件解释
      #Zookeeper使用的基本时间单位(毫秒)。它用于做心跳,并且最小会话超时是tickTime的两倍
      tickTime=2000
      #初始化连接数
      initLimit=10
      #同时连接数
      syncLimit=5
      # 存储内存数据库快照的位置 
      dataDir=/home/hadoop/app/tmp/zookeeper
      # 用于监听客户端连接的端口 
      clientPort=2181
      
    
    
  • 配置环境变量

    [hadoop@hadoop000 conf]$ vim ~/.bash_profile
    
    image-20200910211844298
  • 启动ZK

    • [hadoop@hadoop000 conf]$ zkServer.sh start
  • 停止ZK

    • [hadoop@hadoop000 conf]$ zkServer.sh stop

安装JDK

#切换到root用户
su root
#先卸载之前的jdk
rpm -e --nodeps $(rpm -qa| grep jdk)
#切换到hadoop183用户
ssh hadoop183@hadoop000
#创建文件夹
mkdir software app data source
#切换到software文件夹
cd software

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3NsjZyzD-1599788912554)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907223449824.png)]

  • 使用xftp进行文件上传<传入JDK与hadoop包>

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-foACRaXW-1599788912554)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907223902204.png)]

    • 解压jdk

    • sudo tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local

    • 配置jdk环境变量

      • vim ~/.bash_profile

      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsCLVoPs-1599788912555)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907225006197.png)]

      • PATH= P A T H : PATH: PATH:HOME/.local/bin: H O M E / b i n J A V A H O M E = / u s r / l o c a l / j d k 1.7. 0 8 0 e x p o r t P A T H = HOME/bin JAVA_HOME=/usr/local/jdk1.7.0_80 export PATH= HOME/binJAVAHOME=/usr/local/jdk1.7.080exportPATH=PATH:$JAVA_HOME/bin

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GdSOtYXB-1599788912556)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907225059302.png)]

  • 至此jdk安装成功

zD-1599788912554)]

  • 使用xftp进行文件上传<传入JDK与hadoop包>

    • [外链图片转存中…(img-foACRaXW-1599788912554)]

    • 解压jdk

    • sudo tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local

    • 配置jdk环境变量

      • vim ~/.bash_profile

      • [外链图片转存中…(img-RsCLVoPs-1599788912555)]

      • PATH= P A T H : PATH: PATH:HOME/.local/bin: H O M E / b i n J A V A H O M E = / u s r / l o c a l / j d k 1.7. 0 8 0 e x p o r t P A T H = HOME/bin JAVA_HOME=/usr/local/jdk1.7.0_80 export PATH= HOME/binJAVAHOME=/usr/local/jdk1.7.080exportPATH=PATH:$JAVA_HOME/bin

  • [外链图片转存中…(img-GdSOtYXB-1599788912556)]

  • 至此jdk安装成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值