Spark實時項目第五天-需求分析|HBase和Phoenix配置|SQuirreL得簡單使用|表得創建

需求分析:按地區(用戶性別、用戶年齡段)統計當日新增付費用戶首單平均消費

  1. 每筆訂單都要判斷是否是該用戶的首單。
  2. 無論是地區名稱、用戶性別、用戶年齡,訂單表中都沒有這些字段。但是可以通過外鍵的形式關聯其他表得到這些值。

處理判斷首單業務的策略

判斷是否首單的要點,在於該用戶之前是否參與過消費(下單)。那麼如何知道用戶之前是否參與過消費,如果臨時從所有消費記錄中查詢,是非常不現實的。那麼只有將“用戶是否消費過”這個狀態進行保存並長期維護起來。在有需要的時候通過用戶id進行關聯查詢。
在實際生產中,這種用戶狀態是非常常見的比如“用戶是否退過單”、“用戶是否投過訴”、“用戶是否是高淨值用戶”等等。
那麼現在問題就變爲,如何保存並長期維護這種狀態。考慮到
1、 這是一個保存週期較長的數據。
2、 必須可修改狀態值。
3、 查詢模式基本上是k-v模式的查詢。
所以綜上這三點比較適合保存在Hbase中。

數據流程圖

在這裏插入圖片描述

HBase回顧配置

  1. hbase-env.sh修改內容
export JAVA_HOME=/opt/module/jdk1.6.0_144
export HBASE_MANAGES_ZK=false
  1. hbase-site.xml修改內容
<configuration>
	<property>
		<name>hbase.rootdir</name>
		<value>hdfs://hadoop102:9000/HBase</value>
	</property>

	<property>
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>

   <!-- 0.98後的新變動,之前版本沒有.port,默認端口爲60000 -->
	<property>
		<name>hbase.master.port</name>
		<value>16000</value>
	</property>

	<property>   
		<name>hbase.zookeeper.quorum</name>
	     <value>hadoop102,hadoop103,hadoop104</value>
	</property>

	<property>   
		<name>hbase.zookeeper.property.dataDir</name>
	     <value>/opt/module/zookeeper-3.4.10/zkData</value>
	</property>
</configuration>
  1. regionservers
hadoop102
hadoop103
hadoop104
  1. 軟連接hadoop配置文件到HBase
[atguigu@hadoop102 module]$ ln -s /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
[atguigu@hadoop102 module]$ ln -s /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
  1. 分發
  2. 啓動方式
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver

bin/start-hbase.sh
bin/stop-hbase.sh
  1. 端口號
http://hadoop102:16010
  1. shell
bin/hbase shell

help
list

Phoenix部署

  1. 複製jar包
// 三臺節點得Hbase中都要有
cp phoenix-4.14.2-HBase-1.3-server.jar /opt/module/hbase-1.3.1/lib/
cp phoenix-4.14.2-HBase-1.3-client.jar /opt/module/hbase-1.3.1/lib/
  1. 配置環境
#phoenix
export PHOENIX_HOME=/opt/module/phoenix
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
  1. 啓動
/opt/module/phoenix/bin/sqlline.py hadoop102,hadoop103,hadoop104:2181
  1. shell操作
// 顯示所有表
!table 或 !tables
退出
!quit

啓動進程

在這裏插入圖片描述

使用工具

在這裏插入圖片描述

添加Driver

在這裏插入圖片描述
在這裏插入圖片描述

添加連接

在這裏插入圖片描述
在這裏插入圖片描述

連接

在這裏插入圖片描述

創建表

create table user_state( user_id varchar primary key ,state.if_consumed varchar ) SALT_BUCKETS = 3

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章