• 流式大数据计算实践(1)Hadoop单机模式


    一、前言

    1、从今天开始进行流式大数据计算的实践之路,需要完成一个车辆实时热力图

    2、技术选型:HBase作为数据仓库,Storm作为流式计算框架,ECharts作为热力图的展示

    3、计划使用两台虚拟机来打一个小型的分布式系统,使用Ubuntu系统

    二、HBase简介

    1、HBase是基于HDFS(Hadoop分布式文件系统)的NoSQL数据库,采用k-v的存储方式,所以查询速度相对比较快。

    2、下面画图比较HBase与传统的RDS(关系型数据库)数据库的区别

    (1)RDS,经常用的比如MySQL、SQLServer等数据库,通过指定第几行第几列就可以唯一确定找到数据

    (2)HBase

    ①首先需要指定row key(行键)来找到某一行,row key是一个可以由用户指定的字符串,保证其唯一,排序则是按照字典顺序

    ②指定column family(列族)找到某个列族,在设计时,官方建议列族设置的越少越好(保证查询速度,并且不容易出bug)

    ③指定colume(列名)找到某一列,一个列族会有多个列

    ④指定version来找到cell(单元格,单元格内存放着具体的数据),单元格的目的是为每一列设置多个版本,可以用时间戳代替

    综上可以看出,当需要查询一个数据时的表达式应是------(行键:列族:列:版本号),才能唯一确定一个值,当然版本号可以省略,当省略时,默认取最后一个版本的值返回

    三、环境搭建

    1、首先准备两台Ubuntu虚拟机,我使用的是VirtualBox虚拟机,Ubuntu系统为16.04 x64,并保证其在同一局域网

    2、我直接用su切换到root下,方便使用,但要注意不要输错命令

    3、安装ssh,用xshell登录方便使用

    apt-get install openssh-server
    

    4、集群中机器访问使用主机名访问,所以修改主机名,一台为storm1,一台为storm2,修改完成后需要重启机器生效

    vim /etc/hostname

    storm1

    reboot

    5、配置hosts文件,保证集群内的机器可以通过主机名找到其他机器

    vim /etc/hosts
    
    192.168.3.77    storm1
    192.168.3.78    storm2
    

    6、配置SSH免密登录,具体配置参见教程,确保两台机可以互相ssh登录对方

    7、安装JDK

    (1)下载jdk的tar.gz包,然后解压

    tar zxvf jdk-8u191-linux-x64.tar.gz
    

    (2)配置环境变量

    vim /etc/profile
    
    #set java env
    export JAVA_HOME=/work/soft/jdk1.8.0_191
    export JRE_HOME=${JAVA_HOME}/jre    
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
    export PATH=${JAVA_HOME}/bin:$PATH
    
    source /etc/profile

    8、安装Hadoop

    (1)搭建单机模式

    (2)下载hadoop的tar.gz包,然后解压

    (3)配置环境变量(注意默认的JAVA_HOME会报错,所以要改路径)

    vim /etc/profile
    
    #set hadoop env
    export HADOOP_HOME=/work/soft/hadoop-2.6.4
    export HADOOP_PREFIX=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    export HADOOP_INSTALL=$HADOOP_HOME
    
    export JAVA_HOME=/work/soft/jdk1.8.0_191
    
    source /etc/profile

    (3)配置hadoop-env.sh(设置jvm的使用内存和日志文件夹),要记得创建好日志文件夹

    vim /work/soft/hadoop-2.6.4/etc/hadoop/hadoop-env.sh
    
    export HADOOP_NAMENODE_OPTS=" -Xms1024m -Xmx1024m -XX:+UseParallelGC"
    export HADOOP_DATANODE_OPTS=" -Xms1024m -Xmx1024m"
    export HADOOP_LOG_DIR=/work/hadoop/logs
    

    (4)配置core-site.xml(配置Hadoop的Web属性

    vim /work/soft/hadoop-2.6.4/etc/hadoop/core-site.xml
    
    <configuration>
      <property>
        <name>fs.defaultFS</name>
    	<value>hdfs://storm1:8020</value>
      </property>
    </configuration>
    

    (5)配置hdfs-site.xml(要记得创建好对应的文件夹,所有的节点的配置文件都是一样设置)

    ①设置hdfs的数据备份数量
    ②设置namenode节点存储文件的位置
    ③设置datanode节点存储文件的位置

    vim /work/soft/hadoop-2.6.4/etc/hadoop/hdfs-site.xml
    
    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///work/hadoop/nn</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///work/hadoop/dn</value>
      </property>
    </configuration>
    

    (6)格式化namenode

    hdfs namenode -format
    

    (7)启动单机模式

    $HADOOP_PREFIX/sbin/start-dfs.sh
    

    (8)访问hadoop的控制台http://192.168.3.77:50070/

    (9)停止单机版集群

    stop-dfs.sh
    
  • 相关阅读:
    hdoj 1029
    喵哈哈村的魔法考试 Round #5 (Div.2) B
    喵哈哈村的魔法考试 Round #6 (Div.3) E
    喵哈哈村的魔法考试 Round #6 (Div.3) BC总结
    喵哈哈村的魔法考试 Round #7 (Div.2) E
    喵哈哈村的魔法考试 Round #7 (Div.2) C
    喵哈哈村的魔法考试 Round #7 (Div.2) B
    喵哈哈村的魔法考试 Round #7 (Div.2)
    Codeforces Round #402 (Div. 2) --- C. Dishonest Sellers
    Codeforces Round #402 (Div. 2)---B. Weird Rounding
  • 原文地址:https://www.cnblogs.com/orange911/p/9989120.html
Copyright © 2020-2023  润新知