hbase

作者: 朽木1313 | 来源:发表于2019-06-02 01:31 被阅读0次

    基本架构
    百度网盘链接

    一、实验

    这里的实验素材是参照 本地数据集上传到数据仓库Hive

    1.上传实验数据到 hdfs

    因为 spark、hbase、hive 和 hadoop 都可以很好的集成,因此传到 hdfs 上对于后续的引用会很方便。
    源数据在 点击这里下载data_format.zip数据集。位于百度网盘(下载速度超恶心, 100kb每秒),而我的服务器在海外,国际带宽又比较慢,下载文件解压出来接近3g大小, 所以我这里采用了两种方法。

    unzip data_format.zip
    head -n 1000000 user_log.csv > ~/ user_log_2.csv
    scp ~/user_log_2.csv hadoop@server_ip:~/tmp_data
    
    • 一些实验,不需要所有数据,所以用 head 截取前 100 万行。
    • 另一种方式是通过国内上传到阿里云青岛地区的 oss 上,然后在境外下载这个外链,速度可以到 10M/s, 貌似有专线。
    • 如何绕过百度网盘限速 (todo)

    传至 hdfs

    hdfs dfs -mkdir -p /dbtaobao/big_data/user_log  # 创建 user_log 目录,用于映射表
    hdfs dfs -put ~/tmp_data/user_log.csv  /dbtaobao/big_data/user_log  # 上传本地文件到 hdfs
    
    2.创建 HBASE 表 schema 并导入数据

    user_log.csv 字段说明

    1. user_id | 买家id
    2. item_id | 商品id
    3. cat_id | 商品类别id
    4. merchant_id | 卖家id
    5. brand_id | 品牌id
    6. month | 交易时间:月
    7. day | 交易事件:日
    8. action | 行为,取值范围{0,1,2,3},0表示点击,1表示加入购物车,2表示购买,3表示关注商品
    9. age_range | 买家年龄分段:1表示年龄<18,2表示年龄在[18,24],3表示年龄在[25,29],4表示年龄在[30,34],5表示年龄在[35,39],6表示年龄在[40,49],7和8表示年龄>=50,0和NULL则表示未知
    10. gender | 性别:0表示女性,1表示男性,2和NULL表示未知
    11. province| 收获地址省份
    

    启动 hbase

    $HADOOP_HOME/sbin/start_all.sh  # 启动 hadoop 各 daemon 服务
    start_hbase.sh  # 启动 hbase
    hbase shell  #  打开 shell 与 hbase 交互
    

    导入数据

    hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns='HBASE_ROW_KEY,log:item_id,log:cat_id,log:merchant_id,log:brand_id,log:month,log:day,log:action,log:age_range,log:gender,log:province' user_log /dbtaobao/big_data/user_log/user_log.csv
    
    # 出现以下错误
    Caused by: java.lang.ClassNotFoundException: org.apache.htrace.SamplerBuilder
    
    # 原因是只有 htrace-core-3.2.0-incubating.jar 含有该类文件
    cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar $HBASE_HOME/lib/
    若 lib 下没有 3.X 版本,则需从 maven 仓库下
    cd $HBASE_HOME/lib && wget http://central.maven.org/maven2/org/apache/htrace/htrace-core/3.2.0-incubating/htrace-core-3.2.0-incubating.jar
    

    3.hadoop生态常用端口
    https://kontext.tech/docs/DataAndBusinessIntelligence/p/default-ports-used-by-hadoop-services-hdfs-mapreduce-yarn

    spark-submit --repositories http://repo.hortonworks.com/content/groups/public/ --jars ~/jars/shc-core-1.1.1-2.1-s_2.11.jar --class=io.jiquan.example.spark.Main ./target/scala-2.11/spark-read-from-hdfs-and-write-to-hbase_2.11-1.1.jar

    相关文章

      网友评论

          本文标题:hbase

          本文链接:https://www.haomeiwen.com/subject/xdahtctx.html