Hadoop总结

一、linux简介
01.Linux简介
    linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹
    在1991年10月5日首次发布。,在加上用户空间的应用程序之后,成为Linux操作系统。

    应用:长时间的运行编写的程序代码,可以安装在各种计算机硬件设备中,如:
          手机、平板电脑、路由器等 安卓最底层运行在linux。

02.Linux的分类
    各种版本
    1->Linux根据市场的需求不同,基本分两个方向:
        1)图形化界面版:注重用户体验,目前成熟度不够(图形渲染、性能稍低)
        ubuntu(python)

        2)服务器版:没有好看的界面,控制台窗口输入命令操作系统(性能高)
        centOS(支持图形化)
        redhat(支持图形化)

    2->Linux根据原生程度(后期二次开发)
        1)内核版本:在linus领导下的小组开发维护的系统(原版)
        2)发行版本:一些组织或者公司在内核版本的基础上进行的二次开发之后发行的版本(盗版)

03.linux常用版本
    centOS
    ubuntu
    redhat

04.Linux的目录结构
    bin:存放二进制的可执行文件
    sbin:存放二进制的可执行文件,只有root才能访问
    etc:存放系统配置文件
    usr:用于存放共享的系统资源
    home:存放用户文件的根目录
    root:超级用户的目录
    dev:用于存放设备文件
    lib:存放根本文件系统中的程序运行所需要的共享库和内核模块
    mnt:系统管理员安装临时系统的安装点
    boot:存放于系统引导时使用的文件
    tmp:用于存放各种临时文件
    var:用于存放运行时需要改变数据的文件

05.Linux常用命令行
    ll/ls:查看当前目录下的所有文件
    cd / :进入根目录
    cd /usr/local : 进入子路径
    cd .. : 返回到上一层目录
    pwd:当前所在的路径
    cd -:切换上一个所在的目录

06.防火墙相关命令
    firewall-cmd --state 显示centOS7防火墙状态
    systemctl stop firewalld 关闭防火墙
    systemctl disable firewalld 禁止防火墙开机自启动

二、linux进阶
1.配置静态IP
    修改配置文件:
    vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
    注掉 #BOOTPROTO="dhcp"
    添加 IPADDR=192.168.80.11
         NETMASK=255.255.255.0
         GATEWAY=192.168.80.1
         DNS1=192.168.124.1 四行
    重启网卡使修改生效  service network restart 

2.常用基本命令
    ll/ls:查看当前目录下的所有文件
    cd / :进入根目录
    cd /usr/games : 进入子路径
    cd .. : 退出到上一层目录
    pwd:当前所在的路径
    cd -:切换上一个所在的目录

3.文件夹的增删改
    mkdir 文件夹: 创建文件夹
    mv oldname newname:修改文件夹名称
    rm 文件:删除文件
    rm -f 文件:强制删除文件
    rm -r 文件夹:递归删除文件夹
    rm -rf 文件夹:强制递归删除
    cp 文件 路径:复制文件
    cp -r 文件夹 路径:复制文件夹

4.文件的操作命令
    touch 文件名:创建文件
    cat 文件名:查看文件
    more 文件名:查看文件,显示百分比,回车下一行,空格向下一页,q退出
    less 文件名:查看文件,可以使用键盘右下角的上下方向键翻页,q退出
    tail -10 文件名:查看文件的最后10行
    tail -f 监控文件:监控文件变化,例如日志文件
    vi 文件名:按i:插入内容
               按esc:退出编辑模式
               按wq:保存退出
               按q:不保存退出
    rm -rf 文件名:删除文件

5.压缩和解压命令
    解压:tar -zxvf 压缩包
        z:调用gzip压缩命令进行压缩
        x:解压文件
        v:显示运行过程
        f:指定文件名
    压缩:tar -zcvf 打包后的文件名 打包文件
        c:打包文件
        例如:tar -zcvf test.tar.gz a.txt b.txt

6.其他常用命令
    pwd:显示当前所在位置
    search / -name "a.txt":在根目录下查找名称为a.txt的文件
    whereis date:查找date命令所在位置
    ps -ef:查看进程
    ps -ef | grep 进程名
    | 含义:管道符  上一条命令的输出是下一条命令的输入
    yum search 软件:yum软件包管理器
    yum install tools
    chmod u+x 文件名:权限操作

7.用户操作
    useradd 用户名:添加用户
    passwd 用户名:修改该用户的密码
    su 用户名:切换用户
    vi /etc/sudoers:可以给普通用户赋予root权限
    root  ALL=(ALL)   ALL
    test  ALL=(ALL)   ALL

三、HDFS分布式集群安装
1.准备工作
    虚拟机(电脑8G内存 磁盘500GB)
    3台 linux系统(1台namenode 2台datanode)

    (1)关闭防火墙
        firewall-cmd --state 查看防火墙状态
        systemctl stop firewalld.service 关闭防火墙
        systemctl disable firewalld.service 禁止开机启动

    (2)远程连接(CRT)

    (3)永久设置主机名
        vi /etc/hostname
        注意:要reboot重启生效

    (4)配置映射文件
        vi /etc/hosts

        #127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
        #::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
        192.168.146.132 hd09-1
        192.168.146.133 hd09-2
        192.168.146.134 hd09-3

2.安装jdk
    (1)上传tar包
        SecureCRT  中  按alt + p进入sftp模式,拖拽上传文件

    (2)解压tar包
        tar -zxvf jdk-8u144-linux-x64.tar.gz

    (3)配置环境变量
        vi /etc/profile 

        export JAVA_HOME=/root/hd/jdk1.8.0_144
        export PATH=$PATH:$JAVA_HOME/bin

        source /etc/profile  加载环境变量

    (4)发送到其它机器
        scp -r hd/jdk1.8.0_144/ hd09-2:hd/jdk1.8.0_144
        scp -r hd/jdk1.8.0_144/ hd09-3:hd/jdk1.8.0_144
        scp -r /etc/profile hd09-2:/etc
        scp -r /etc/profile hd09-3:/etc

        注意:加载环境变量 source /etc/profile

3.配置ssh免密登录
        ssh-keygen  生成密钥对
        ssh-copy-id hd09-1
        ssh-copy-id hd09-2
        ssh-copy-id hd09-3

4.安装HDFS集群
    (1)解压tar包
        tar -zxvf hadoop-2.8.4.tar.gz

    (2)修改hadoop-env.sh
        export JAVA_HOME=/root/hd/jdk1.8.0_144

    (3)修改core-site.xml
        <configuration>
            //配置hdfs
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://hd09-1:9000</value>
            </property>
        </configuration>

    (4)修改hdfs-site.xml
        <configuration>
            //配置元数据存储位置
            <property>
                <name>dfs.namenode.name.dir</name>
                <value>/root/hd/dfs/name</value>
            </property>
            //配置数据存储位置
            <property>
                <name>dfs.datanode.data.dir</name>
                <value>/root/hd/dfs/data</value>
            </property>
        </configuration>

    (5)配置hadoop环境变量
        vi /etc/profile

        export JAVA_HOME=/root/hd/jdk1.8.0_144
        export HADOOP_HOME=/root/hd/hadoop-2.8.4
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

        source /etc/profile  加载环境变量

    (6)格式化namenode
        hadoop namenode -format

    (7)分发hadoop到其他服务器
        scp -r ~/hd/hadoop-2.8.4/ hd09-2:/root/hd/
        scp -r ~/hd/hadoop-2.8.4/ hd09-3:/root/hd/

    (8)分发hadoop环境变量
        scp -r /etc/profile hd09-2:/etc
        scp -r /etc/profile hd09-3:/etc

        注意:加载环境变量 source /etc/profile

    (9)启动namenode
        hadoop-daemon.sh start namenode

    (10)启动datanode
        hadoop-daemon.sh start datanode

    (11)访问namenode提供的web端口:50070
        hd09-1:50070

    (12)访问hd09-1出错需要修改 windows电脑的 C:\Windows\System32\drivers\etc\hosts 文件
        在下面加上
        192.168.146.132 hd09-1
        192.168.146.133 hd09-2
        192.168.146.134 hd09-3
        即可

5.自动批量的启动脚本
    (1)修改配置文件slaves 加入
        hd09-2
        hd09-3

    (2)执行启动命令
        start-dfs.sh

四、HDFS集群修改SecondaryNameNode位置及hdfs命令行操作
1.HDFS集群修改SecondaryNameNode位置到hd09-2
    (1)修改hdfs-site.xml
        <configuration>
            //配置元数据存储位置
            <property>
                <name>dfs.namenode.name.dir</name>
                <value>/root/hd/dfs/name</value>
            </property>
            //配置数据存储位置
            <property>
                <name>dfs.datanode.data.dir</name>
                <value>/root/hd/dfs/data</value>
            </property>

            <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hd09-2:50090</value>
            </property>
        </configuration>

        注意上面的第三个<property>不是
            <property>
                <name>dfs.namenode.secondary.https-address</name>
                <value>hd09-2:50090</value>
            </property>    

    (2)分发hdfs-site.xml到其他服务器
        cd /root/hd/hadoop-2.8.4/etc/hadoop

        scp hdfs-site.xml hd09-2:$PWD
        scp hdfs-site.xml hd09-3:$PWD

    (3)hdfs启动命令
        start-dfs.sh

    (4)hdfs停止命令
        stop-dfs.sh

2.HDFS集群修改replication(副本数)
        修改hdfs-site.xml 在<configuration>中加入
            <property>
                <name>dfs.replication</name>
                <value>3</value>
            </property>
        其中<value>中的值就是副本数

3.HDFS集群修改blocksize(块大小)
        修改hdfs-site.xml 在<configuration>中加入
            <property>
                <name>dfs.blocksize</name>
                <value>134217728</value>
            </property>
        其中<value>中的值就是块大小,单位是字节(byte)

4.hdfs命令行
    (1)查看帮助
        hdfs dfs -help 

    (2)查看当前目录信息
        hdfs dfs -ls /

    (3)上传文件
        hdfs dfs -put /本地路径 /hdfs路径

    (4)剪切文件
        hdfs dfs -moveFromLocal a.txt /aa.txt

    (5)下载文件到本地
        hdfs dfs -get /hdfs路径 /本地路径

    (6)合并下载
        hdfs dfs -getmerge /hdfs路径文件夹 /合并后的文件

    (7)创建文件夹
        hdfs dfs -mkdir /hello

    (8)创建多级文件夹
        hdfs dfs -mkdir -p /hello/world

    (9)移动hdfs文件
        hdfs dfs -mv /hdfs路径 /hdfs路径

    (10)复制hdfs文件
        hdfs dfs -cp /hdfs路径 /hdfs路径

    (11)删除hdfs文件
        hdfs dfs -rm /aa.txt

    (12)删除hdfs文件夹
        hdfs dfs -rm -r /hello

    (13)查看hdfs中的文件
        hdfs dfs -cat /文件
        hdfs dfs -tail -f /文件

    (14)查看文件夹中有多少个文件
        hdfs dfs -count /文件夹

    (15)查看hdfs的总空间
        hdfs dfs -df /
        hdfs dfs -df -h /

    (16)修改副本数
        hdfs dfs -setrep 1 /a.txt

五、MapReduce分布式编程框架及yarn集群搭建
1.大数据解决的问题?
    海量数据的存储:hadoop->分布式文件系统HDFS
    海量数据的计算:hadoop->分布式计算框架MapReduce

2.什么是MapReduce?
    分布式程序的编程框架,java-->ssh ssm,目的:简化开发!
    是基于hadoop的数据分析应用的核心框架。
    mapreduce的功能:将用户编写的业务逻辑代码和自带默认组件整合成一个完整的
    分布式运算程序,并发的运行在hadoop集群上。

3.MapReduce的优缺点
    优点:
    (1)易于编程
    (2)良好的拓展性
    (3)高容错性
    (4)适合处理PB级别以上的离线处理

    缺点:
    (1)不擅长做实时计算
    (2)不擅长做流式计算(mr的数据源是静态的)
    (3)不支持DAG(有向图)计算(spark)

4.自动化调度平台yarn(MapReduce程序的运行平台)
    MapReduce程序应该在多台机器上运行启动,而且要先执行maptask,等待每个maptask都处理完成后
    还要启动很多个reducetask,这个过程要用户手动调用任务不太现实,
    需要一个自动化的任务调度平台-->hadoop当中2.x中提供了一个分布式调度平台-YARN

5.搭建yarn集群
    (1)修改配置文件 yarn-site.xml
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hd09-1</value>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    (2)然后复制到每台机器  $PWD 当前目录
    scp yarn-site.xml [email protected]:$PWD
    scp yarn-site.xml [email protected]:$PWD

    (3)修改slaves文件

    然后在hd09-1上,修改hadoop的slaves文件,列入要启动nodemanager的机器
    然后将hd09-1到所有机器的免密登陆配置好

    (4)脚本启动yarn集群:
    启动:
    start-yarn.sh
    停止:
    stop-yarn.sh

    (5)访问web端口
    启动完成后,可以在windows上用浏览器访问resourcemanager的web端口:
    http://hd09-1:8088

六、MapReduce编程规范
    用户编写mr程序主要分为三个部分:Mapper,Reducer,Driver
    1.Mapper阶段
        (1)用户自定义Mapper类 要继承父类Mapper
        (2)Mapper的输入数据的kv对形式(kv类型可以自定义)
        (3)Mapper的map方法的重写(加入业务逻辑)
        (4)Mapper的数据输出kv对的形式(kv类型可以自定义)
        (5)map()方法(maptask进程)对每个<k,v>调用一次

    2.Reducer阶段
        (1)用户自定义Reducer类 要继承父类Reducer
        (2)Reducer的数据输入类型对应的是Mapper阶段的输出数据类型,也是kv对
        (3)Reducer的reduce方法的重写(加入业务逻辑)
        (4)ReduceTask进程对每组的k的<k,v>组调用一次reduce方法

    3.Driver阶段
        MR程序需要一个Driver来进行任务的提交,提交的任务是一个描述了各种重要信息的job对象

    4.修改mapred-site.xml文件<configuration>中加入
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

七、常用数据序列化类型
    1. JAVA 类型                    HADOOP 类型
        int                            IntWritable
        float                        FloatWritable
        long                        LongWritable
        double                        DoubleWritable
        string                        Text
        boolean                        BooleanWritable
        byte                        ByteWritable
        map                            MapWritable
        array                        ArrayWritable

    2.为什么要序列化?
    存储“活的对象”

    3.什么是序列化?
    序列化就是把内存当中的对象,转换成字节序列以便于存储和网络传输。
    反序列化就是将受到的字节序列或者硬盘的持久化数据,转换成内存中的对象。

    java的序列化-->Serializable

    4.为什么不使用java提供的序列化接口?
    java的序列化是一个重量级的序列化框架,一个对象被序列化后会附带很多额外的信息(效验信息,header,继承体系等)。
    不便于在网络中高效传输,所以hadoop开发了一套序列化机制(Writable),精简/高效。

    5.为什么序列化在hadoop中很重要?
    hadoop通信是通过远程调用(rpc)实现的,需要进行序列化

    6.特点:
        1)紧凑
        2)快速
        3)可拓展
        4)互操作

八、排序
需求:根据用户每月使用的流量按照使用的流量多少排序

接口->WritableCompareable

    排序操作在hadoop中属于默认的行为。默认按照字典殊勋排序。

排序的分类:

    1)部分排序

    2)全排序

    3)辅助排序

    4)二次排序

Combiner 合并

    父类Reducer
    局部汇总 ,减少网络传输量 ,进而优化程序。

    注意:求平均值?

    3  5  7  2  6

    mapper: (3 + 5 + 7)/3 = 5
            (2 + 6)/2 = 4

    reducer:(5+4)/2

    只能应用在不影响最终业务逻辑的情况下

九、压缩
1、hadoop的3个阶段
    (1)分布式文件系统HDFS
    (2)分布式编程框架MapReduce
    (3)yarn框架

2、Hadoop数据压缩
    MR操作过程中进行大量数据传输。
    压缩技术能够有效的减少底层存储(HDFS)读写字节数。
    压缩提高了网络带宽和磁盘空间的效率。
    数据压缩能够有效的节省资源!
    压缩是mr程序的优化策略!
    通过压缩编码对mapper或者reducer数据传输进行数据的压缩,以减少磁盘IO。

3、压缩的基本原则
    1、运算密集型任务少用压缩
    2、IO密集型的任务,多用压缩

4、MR支持的压缩编码
    压缩格式 | hadoop是否自带? |文件拓展名 | 是否可以切分
    DEFAULT  |       是         | .deflate  |     否
    Gzip     |       是         | .gz       |     否
    bzip2    |       是         | .bz2      |     是
    LZO      |       否         | .lzo      |     是
    Snappy   |       否         | .snappy   |     否

5、编码/解码器
    DEFAULT | org.apache.hadoop.io.compress.DefaultCodeC
    Gzip    | org.apache.hadoop.io.compress.GzipCodeC
    bzip2   | org.apache.hadoop.io.compress.BZip2CodeC
    LZO     | com.hadoop.compression.lzo.LzoCodeC
    Snappy  | org.apache.hadoop.io.compress.SnappyCodeC

6、压缩性能
    压缩算法 | 原始文件大小 | 压缩文件大小| 压缩速度 | 解压速度
    gzip     | 8.3GB        |    1.8GB     |17,5MB/s  |58MB/s
    bzip2    | 8.3GB        |    1.1GB     |2.4MB/s   |9.5MB/s
    LZO      | 8.3gb        |    2.9GB     |49.3MB/s  |74.6MB/s

7、使用方式
    (1)map端输出压缩
        //开启map端的输出压缩
        conf.setBoolean("mapreduce.map.output.compress", true);
        //设置压缩方式
        //conf.setClass("mapreduce.map.output.compress.codec", DefaultCodec.class, CompressionCodec.class);
        conf.setClass("mapreduce.map.output.compress.codec",BZip2Codec.class, CompressionCodec.class);
    (2)reduce端输出压缩
        //开启reduce端的输出压缩
        FileOutputFormat.setCompressOutput(job, true);
        //设置压缩方式
        //FileOutputFormat.setOutputCompressorClass(job, DefaultCodec.class);
        //FileOutputFormat.setOutputCompressorClass(job, BZip2Codec.class);
        FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);

十、hadoop优化
1、mr程序的效率瓶颈
    功能:分布式离线计算
    计算机性能:CPU、内存、磁盘、网络
    I/O操作优化
    (1)数据倾斜(代码优化)
    (2)map和reduce数设置不合理
    (3)map运行时间太长,导致reduce等待过久
    (4)小文件过多(combineTextInputFomrat小文件合并)
    (5)不可分块的超大文件(不断的溢写)
    (6)多个溢写小文件需要多次merge
2、mr优化方法
    六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、
    数据倾斜、参数调优
    1->数据输入
        (1)合并小文件:在执行mr任务前就进行小文件合并
        (2)采用CombineTextInputFormat来作为输入,解决输 入端大量小文件的场景
        mr并不适合处理大量小文件
    2->Map阶段
        (1)减少溢写次数(增加内存200M 80%)
        <property>
            <name>mapreduce.task.io.sort.mb</name>
            <value>100</value>
        </property>
        <property>
            <name>mapreduce.map.sort.spill.percent</name>
            <value>0.80</value>
        </property>
        (2)减少合并次数
        <property>
            <name>mapreduce.task.io.sort.factor</name>
            <value>10</value>
        </property>
        (3)在map之后,不影响业务逻辑情况下进行combiner
    3->Reduce阶段
        (1)合理设置map与reduce个数
        (2)设置map/reduce共存
        设置运行一定程度的map运行后 启动reduce减少等待时间
        <property>
            <name>mapreduce.job.reduce.slowstart.completedmaps</name>
            <value>0.05</value>
        </property>
        (3)合理设置reduce端的buffer
        <property>
            <name>mapreduce.reduce.markreset.buffer.percent</name>
            <value>0.0</value>
        </property>
    4->传输
        (1)进行数据压缩
        (2)使用sequenceFile
    5->数据倾斜
        (1)进行范围分区
        (2)自定义分区
        (3)Combine
        (4)能用mapjoin坚决不用reduce join
    6->参数调优
        设置核心数
        map核心数设置:
        <property>
            <name>mapreduce.map.cpu.vcores</name>
            <value>1</value>
        </property>
        reduce核心数设置:
        <property>
            <name>mapreduce.reduce.cpu.vcores</name>
            <value>1</value>
        </property>
        设置内存
        maptask内存设置:
        <property>
            <name>mapreduce.map.memory.mb</name>
            <value>1024</value>
        </property>
        reducetask内存设置:
        <property>
            <name>mapreduce.reduce.memory.mb</name>
            <value>1024</value>
        </property>
        reduce去map端拿数据并行度
        <property>
            <name>mapreduce.reduce.shuffle.parallelcopies</name>
            <value>5</value>
        </property>

原文地址:https://www.cnblogs.com/areyouready/p/9906485.html

时间: 2024-07-31 11:30:51

Hadoop总结的相关文章

Hadoop:Windows 7 32 Bit 编译与运行

所需工具 1.Windows 7 32 Bit OS(你懂的) 2.Apache Hadoop 2.2.0-bin(hadoop-2.2.0.tar.gz) 3.Apache Hadoop 2.2.0-src(hadoop-2.2.0-src.tar.gz) 3.JDK 1.7 4.Maven 3.2.1(apache-maven-3.2.1-bin.zip) 5.Protocol Buffers 2.5.0 6.Unix command-line tool Cygwin(Setup-x86.e

编译hadoop 的native library

os:centos 6.7 x64 要解决的问题:   WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 解决的必要性 hadoop的cache和短路读(Short-Circuit Local Reads)都需要native library的支持 解决步骤 编译方法是 http://had

Hadoop Hive基础sql语法

Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据.而mapreduce开发人员可以把己写的mapper 和reducer 作为插件来支持

Hadoop快速入门

传说中的Hadoop,我终于来对着你唱"征服"了,好可爱的小象,!J 总的来说,hadoop的思路比较简单(map-reduce),就是将任务分开进行,最后汇总.但这个思路实现起来,比较复杂,但相对于几年前Intel等硬件公司提出的网格运算等方式,显得更加开放. 你难任你难,哥就是头铁! Tip:实践应用是核心,本文概念为主,有些部分可能会有些晦涩,直接跳过就好(不是特别重要). 本文代码实践在:https://github.com/wanliwang/cayman/tree/mast

Hadoop学习—浅谈hadoop

大数据这个词越来越热,本人一直想学习一下,正巧最近有时间了解一下.先从hadoop入手,在此记录学习中的点滴. 什么是hadoop? What Is Apache Hadoop? The Apache? Hadoop? project develops open-source software for reliable, scalable, distributed computing 作者:Doug Cutting 受Google三篇论文的启发(GFS.MapReduce.BigTable) 解

测试搭建成功的单机hadoop环境

1.关闭防火墙service iptables stop,(已经这是开机关闭的忽略) 2.进入hadoop目录,修改hadoop配置文件(4个) core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost.localdomain:8020</value> </property> <property

单机伪分布式Hadoop环境搭建

1.安装和配置JDK 具体操作见笔记 http://www.cnblogs.com/DreamDriver/p/6597178.html 2.创建Hadoop用户 为Hadoop创建一个专门的用户,可以在系统安装的时候就创建,也可以在系统安装好之后用如下命令创建: # groupadd hadoop-user # useradd -g hadoop-user hadoop # passwd hadoop 3.下载安装Hadoop 4.配置SSH (1)生成密钥对时,执行如下命名 # ssh-ke

Hadoop学习笔记(3) Hadoop文件系统二

1 查询文件系统 (1) 文件元数据:FileStatus,该类封装了文件系统中文件和目录的元数据,包括文件长度.块大小.备份.修改时间.所有者以及版权信息.FileSystem的getFileStatus()方法用于获取文件或目录的FileStatus对象. 例:展示文件状态信息 public class ShowFileStatusTest{ private MiniDFSCluster cluster; private FileSystem fs; @Before public void

基于OGG的Oracle与Hadoop集群准实时同步介绍

Oracle里存储的结构化数据导出到Hadoop体系做离线计算是一种常见数据处置手段.近期有场景需要做Oracle到Hadoop体系的实时导入,这里以此案例做以介绍.Oracle作为商业化的数据库解决方案,自发性的获取数据库事务日志等比较困难,故选择官方提供的同步工具OGG(Oracle GoldenGate)来解决. 安装与基本配置 环境说明 软件配置 角色 数据存储服务及版本 OGG版本 IP 源服务器 OracleRelease11.2.0.1 Oracle GoldenGate 11.2

数据采集之Web端上传文件到Hadoop HDFS

前言 最近在公司接到一个任务,是关于数据采集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志采集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好最近都有在这方面做知识储备.正所谓养兵千日,用兵一时啊.学习到的东西只有应用到真实的环境中才有意义不是么. 环境 这里只做模拟环境,而不是真实的线上环境,所以也很简单,如果要使用的话还需要优化优化. OS Debian 8.7 Hadoop 2.6.5 SpringBoot 1.5.1.RELEASE 说明一下,这