hbase

基本架构
百度网盘链接

一、实验

这里的实验素材是参照 本地数据集上传到数据仓库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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 摘要:大数据门槛较高,仅仅环境的搭建可能就要耗费我们大量的精力,本文总结了作者是如何搭建大数据环境的(单机版和集群...
    杨赟快跑阅读 15,209评论 3 65
  • 本文对HBase常用的数据导入工具进行介绍,并结合云HBase常见的导入场景,给出建议的迁移工具和参考资料。 HB...
    编程小世界阅读 1,841评论 0 0
  • 枕头旁边放着唐史,金粉世家,笑傲江湖和杀手界,从图书馆借的,又过期了。一本也没看完,想想每次从书架挑书的功夫好像都...
    皈浔阅读 315评论 0 0
  • 1 “我要结婚了。”收到小黑这条消息,吃早餐的我震惊的差点把手上的面包扔出去。 小黑是我哥哥的铁哥们,一米九的壮汉...
    chanson小姐阅读 1,530评论 9 22
  • 在2019年的日历上标注着“立春”日子的那天,在北国依然飘雪、每个人都把自己裹得像个笨笨熊一样的时候,我刚好在一个...
    毛球球是大坏蛋阅读 537评论 0 3

友情链接更多精彩内容