(实际开发大数据分析系统)网络爬虫获取数据与销售数据分析系统
大數據分析應用系統的完整開發過程分為數據采集、數據存儲、數據計算和數據分析和展示四個部分。
- 數據采集:WebCollector框架
- 數據存儲:SQL
- 數據計算:
- 數據分析和展示:Java EE
流程就是:在Windows上使用WebCollector數據采集模塊來采集數據并得到Windows下面的
一、數據采集
大數據應用的第一步是數據采集,這一步往往是最困難的一步。
這里采用WebCollector開發的數據采集模塊,在Windows上進行數據采集,這也是實際生產中的常用方式。
此次采集的是京東的銷售數據。
1.為了在本地用數據庫存儲采集下來的數據,需要在本地新建一個數據庫
(1)創建數據庫
mysql> create database jd_db; Query OK, 1 row affected (0.01 sec)(2)創建數據表
mysql> use jd_db; Database changed mysql> create table spider(-> id int(11) not null auto_increment,-> platform varchar(255) default null,-> type varchar(255) default null,-> title varchar(255) default null,-> content text default null,-> memberlevel varchar(255) default null,-> fromplatform varchar(255) default null,-> area varchar(255) default null,-> userimpression varchar(255) default null,-> color varchar(255) default null,-> price varchar(255) default null,-> productSize varchar(255) default null,-> creationTime varchar(255) default null,-> zhuqutime varchar(255) default null,-> lable varchar(255) default null,-> primary key(id)-> )engine=MyISAM auto_increment=19712 default charset=utf8; Query OK, 0 rows affected (0.04 sec)(3)查看數據表
mysql> desc spider; +----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | platform | varchar(255) | YES | | NULL | | | type | varchar(255) | YES | | NULL | | | title | varchar(255) | YES | | NULL | | | content | text | YES | | NULL | | | memberlevel | varchar(255) | YES | | NULL | | | fromplatform | varchar(255) | YES | | NULL | | | area | varchar(255) | YES | | NULL | | | userimpression | varchar(255) | YES | | NULL | | | color | varchar(255) | YES | | NULL | | | price | varchar(255) | YES | | NULL | | | productSize | varchar(255) | YES | | NULL | | | creationTime | varchar(255) | YES | | NULL | | | zhuqutime | varchar(255) | YES | | NULL | | | lable | varchar(255) | YES | | NULL | | +----------------+--------------+------+-----+---------+----------------+ 15 rows in set (0.01 sec)2.導入爬蟲程序
?
二、在HBase集群上準備數據
大數據領域從SQL向HBase表導入數據有三種方法:Sqoop方法、JavaAPI方法、Import Tsv方法。下面只介紹第一種。
1.將數據采集部分獲得的數據導入到MySQL表中
(1)和在Windows上操作一樣,創建相同的數據庫和數據表
(2)向數據庫中導入采集到的數據,即.sql文件
mysql> source /home/jun/Resources/jd_data.sql;(3)查看數據庫是否已經成功導入數據
mysql> select * from spider limit 5; +--------+----------+----------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------+------------------------+--------+------------------------------------------------------------------------+-----------+-------+-------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------+ | id | platform | xinhao | title | content | memberlevel | fromplatform | area | userimpression | color | price | productSize | creationTime | zhuaqutime | lable | +--------+----------+----------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------+------------------------+--------+------------------------------------------------------------------------+-----------+-------+-------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------+ | 275301 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 真正的愛情經得起平淡的流年 | 金牌會員 | 京東PC客戶端 | null | 比較一般 分辨率高 功能齊全 通話質量好 待機時間長 | 暗夜灰 | 1399 | 移動4G | 2016-04-22 15:36:58 | 20160422164523 | 系統流暢,性價比高,功能齊全,反應快,信號穩定,屏幕大,外觀漂亮,國民手機,分辨率高,通話質量好 | | 275302 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 不錯不錯,只是正面什么字都沒有,沒有logo,帶上套子有點山寨,呵呵 | 鉆石會員 | 京東iPhone客戶端 | 北京 | null | 落日金 | 1399 | 全網通 | 2016-04-22 15:33:37 | 20160422164523 | null | | 275303 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 好。 | 金牌會員 | 京東Android客戶端 | 江蘇 | null | 落日金 | 1399 | 全網通 | 2016-04-22 15:32:35 | 20160422164523 | null | | 275304 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 京東品質值得信賴。 | 鉆石會員 | 京東iPhone客戶端 | 上海 | null | 破曉銀 | 1399 | 移動4G | 2016-04-22 15:31:35 | 20160422164523 | null | | 275305 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 感覺還行,用的比較順手 | 金牌會員 | 京東Android客戶端 | null | null | 破曉銀 | 1399 | 移動4G | 2016-04-22 15:27:32 | 20160422164523 | null | +--------+----------+----------------------+-----------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+--------------+------------------------+--------+------------------------------------------------------------------------+-----------+-------+-------------+---------------------+----------------+--------------------------------------------------------------------------------------------------------------------------------+ 5 rows in set (0.00 sec)2.將MySQL表中的數據導入到HBase中
(1)執行start-hbase.sh腳本來啟動HBase集群,然后進入HBase安裝目錄下的bin下執行./hbase shell進入shell
[jun@master bin]$ ./hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.2.6.1, rUnknown, Sun Jun 3 23:19:26 CDT 2018hbase(main):001:0> list TABLE test1 1 row(s) in 0.1990 seconds=> ["test1"](2)創建一個HBase表(注意HBase的表明是區分大小寫的)其中f1是族名
hbase(main):002:0> create 'PINGJIA.SPIDER', 'f1' 0 row(s) in 2.4370 seconds=> Hbase::Table - PINGJIA.SPIDER(3)通過Sqoop將MySQL表spider中的數據,導入到HBase表PINGJIA.SPIDER里面。
[jun@master bin]$ cd /home/jun/sqoop-1.4.7.bin__hadoop-2.6.0/ [jun@master sqoop-1.4.7.bin__hadoop-2.6.0]$ bin/s sqoop sqoop-eval sqoop-import-all-tables sqoop-list-tables start-metastore.sh sqoop.cmd sqoop-export sqoop-import-mainframe sqoop-merge stop-metastore.sh sqoop-codegen sqoop-help sqoop-job sqoop-metastore sqoop-create-hive-table sqoop-import sqoop-list-databases sqoop-version [jun@master sqoop-1.4.7.bin__hadoop-2.6.0]$ bin/sqoop import --connect jdbc:mysql://master:3306/jd_db?useSSL=false --username root -P --table spider --hbase-table PINGJIA.SPIDER --column-family f1 --hbase-row-key id --hbase-create-table -m 1出現了一條異常,原因是因為MySQL權限不夠,需要開放權限
18/07/25 09:45:28 ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access denied for user 'root'@'master' (using password: YES)打開MySQL,執行下面的賦權限命令
mysql> use jd_db; Database changedmysql> grant all privileges on *.* to 'root'@'master' identified by 'bjtungirc';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'slave0' identified by 'bjtungirc';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'slave1' identified by 'bjtungirc';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
然后重新執行bin/sqoop命令,可以看到執行成功,一共導入了427658條數據。
18/07/25 10:06:31 INFO mapreduce.Job: map 0% reduce 0% 18/07/25 10:08:21 INFO mapreduce.Job: map 100% reduce 0% 18/07/25 10:08:22 INFO mapreduce.Job: Job job_1532481435423_0002 completed successfully 18/07/25 10:08:22 INFO mapreduce.Job: Counters: 30File System CountersFILE: Number of bytes read=0FILE: Number of bytes written=209541FILE: Number of read operations=0FILE: Number of large read operations=0FILE: Number of write operations=0HDFS: Number of bytes read=87HDFS: Number of bytes written=0HDFS: Number of read operations=1HDFS: Number of large read operations=0HDFS: Number of write operations=0Job Counters Launched map tasks=1Other local map tasks=1Total time spent by all maps in occupied slots (ms)=104793Total time spent by all reduces in occupied slots (ms)=0Total time spent by all map tasks (ms)=104793Total vcore-milliseconds taken by all map tasks=104793Total megabyte-milliseconds taken by all map tasks=107308032Map-Reduce FrameworkMap input records=427658Map output records=427658Input split bytes=87Spilled Records=0Failed Shuffles=0Merged Map outputs=0GC time elapsed (ms)=2100CPU time spent (ms)=118740Physical memory (bytes) snapshot=230121472Virtual memory (bytes) snapshot=2143203328Total committed heap usage (bytes)=105381888File Input Format Counters Bytes Read=0File Output Format Counters Bytes Written=0 18/07/25 10:08:22 INFO mapreduce.ImportJobBase: Transferred 0 bytes in 142.1074 seconds (0 bytes/sec) 18/07/25 10:08:22 INFO mapreduce.ImportJobBase: Retrieved 427658 records.查看HBase集群中導入的數據總條數
hbase(main):004:0> count 'PINGJIA.SPIDER' ... Current count: 425000, row: 700300 Current count: 426000, row: 701300 Current count: 427000, row: 702300 427658 row(s) in 53.9180 seconds=> 427658?
三、使用Phoenix作為中間件
Phoenix是構建在HBase上的一個SQL層,使得用戶可以用標準的JDBC APIs,而不是HBase客戶端APIs來創建表、插入數據和對HBase數據進行查詢。
Phoenix查詢引擎會將SQL查詢轉換為一個或多個HBase掃描,并編排執行以生成標準的JDBC結果集。
1,Phoenix的安裝
(1)http://phoenix.apache.org/download.html下載apache-phoenix-4.9.0-HBase-1.2-bin.tar.gz到指定目錄并解壓
(2)修改Linux環境變量,并source生效
#phoenix export PHOENIX_HOME=/home/jun/apache-phoenix-4.9.0-HBase-1.2-bin/ export PATH=$PHOENIX_HOME/bin:$PATH(3)復制三個依賴包到Master和Slave節點的HBase lib中
cp /home/jun/apache-phoenix-4.9.0-HBase-1.2-bin/phoenix-4.9.0-HBase-1.2-client.jar /home/jun/apache-phoenix-4.9.0-HBase-1.2-bin/phoenix-4.9.0-HBase-1.2-server.jar /home/jun/apache-phoenix-4.9.0-HBase-1.2-bin/phoenix-core-4.9.0-HBase-1.2.jar /home/jun/hbase-1.2.6.1/lib/ [jun@master apache-phoenix-4.9.0-HBase-1.2-bin]$ scp phoenix-4.9.0-HBase-1.2-client.jar phoenix-4.9.0-HBase-1.2-server.jar phoenix-core-4.9.0-HBase-1.2.jar -r jun@slave0:~/hbase-1.2.6.1/lib/ phoenix-4.9.0-HBase-1.2-client.jar 100% 82MB 82.3MB/s 00:01 phoenix-4.9.0-HBase-1.2-server.jar 100% 24MB 49.9MB/s 00:00 phoenix-core-4.9.0-HBase-1.2.jar 100% 3816KB 47.6MB/s 00:00 [jun@master apache-phoenix-4.9.0-HBase-1.2-bin]$ scp phoenix-4.9.0-HBase-1.2-client.jar phoenix-4.9.0-HBase-1.2-server.jar phoenix-core-4.9.0-HBase-1.2.jar -r jun@slave1:~/hbase-1.2.6.1/lib/ phoenix-4.9.0-HBase-1.2-client.jar 100% 82MB 82.2MB/s 00:01 phoenix-4.9.0-HBase-1.2-server.jar 100% 24MB 49.5MB/s 00:00 phoenix-core-4.9.0-HBase-1.2.jar 100% 3816KB 60.7MB/s 00:00(4)重啟HBase集群
stop-hbase.sh start-hbase.sh2.使用Phoenix Shell訪問HBase
(1)進入Phoenix Shell
[jun@master ~]$ cd /home/jun/apache-phoenix-4.9.0-HBase-1.2-bin/ [jun@master apache-phoenix-4.9.0-HBase-1.2-bin]$ bin/sqlline.py 192.168.1.100:2181 Setting property: [incremental, false] Setting property: [isolation, TRANSACTION_READ_COMMITTED] issuing: !connect jdbc:phoenix:192.168.1.100:2181 none none org.apache.phoenix.jdbc.PhoenixDriver Connecting to jdbc:phoenix:192.168.1.100:218118/07/25 10:38:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Connected to: Phoenix (version 4.9) Driver: PhoenixEmbeddedDriver (version 4.9) Autocommit status: true Transaction isolation: TRANSACTION_READ_COMMITTED Building list of tables and columns for tab-completion (set fastconnect to true to skip)... 87/87 (100%) Done Done sqlline version 1.2.0 0: jdbc:phoenix:192.168.1.100:2181> help(2)在Phoenix中創建和HBase中對應的表
0: jdbc:phoenix:192.168.1.100:2181> create table PINGJIA.SPIDER( . . . . . . . . . . . . . . . . . > id varchar primary key, . . . . . . . . . . . . . . . . . > "f1". "platform" varchar, . . . . . . . . . . . . . . . . . > "f1". "xinhao" varchar, . . . . . . . . . . . . . . . . . > "f1". "title" varchar, . . . . . . . . . . . . . . . . . > "f1". "content" varchar, . . . . . . . . . . . . . . . . . > "f1". "menberlevel" varchar, . . . . . . . . . . . . . . . . . > "f1". "fromplatform" varchar, . . . . . . . . . . . . . . . . . > "f1". "area" varchar, . . . . . . . . . . . . . . . . . > "f1". "userimpression" varchar, . . . . . . . . . . . . . . . . . > "f1". "color" varchar, . . . . . . . . . . . . . . . . . > "f1". "price" varchar, . . . . . . . . . . . . . . . . . > "f1". "productSize" varchar, . . . . . . . . . . . . . . . . . > "f1". "creationTime" varchar, . . . . . . . . . . . . . . . . . > "f1". "zhuqutime" varchar, . . . . . . . . . . . . . . . . . > "f1". "lable" varchar); 427,658 rows affected (26.362 seconds)可以看到,在新建表之后,就有427658條數據被關聯了。實際上,Phoenix本質上是一種HBase的查詢工具。在Phoenix中創建表,實際上是通過JDBC建立與HBase表的一個連接,而數據仍然是存儲在HBase表中的,但現在可以通過Phoenix操作HBase表了。因此,這就要求Phoenix中創建的表與用戶所希望操作的Hbase表存在對應關系,這種對應必須完全一致。
(3)查看所有表
0: jdbc:phoenix:192.168.1.100:2181> !tables +------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+---------------+ | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | INDEX_STATE | +------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+---------------+ | | SYSTEM | CATALOG | SYSTEM TABLE | | | | | | | | SYSTEM | FUNCTION | SYSTEM TABLE | | | | | | | | SYSTEM | SEQUENCE | SYSTEM TABLE | | | | | | | | SYSTEM | STATS | SYSTEM TABLE | | | | | | | | PINGJIA | SPIDER | TABLE | | | | | | +------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+---------------+ 0: jdbc:phoenix:192.168.1.100:2181>(4)查看表結構
0: jdbc:phoenix:192.168.1.100:2181> !describe PINGJIA.SPIDER +------------+--------------+-------------+-----------------+------------+------------+--------------+----------------+-----------------+--------+ | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | COLUMN_NAME | DATA_TYPE | TYPE_NAME | COLUMN_SIZE | BUFFER_LENGTH | DECIMAL_DIGITS | NUM_PR | +------------+--------------+-------------+-----------------+------------+------------+--------------+----------------+-----------------+--------+ | | PINGJIA | SPIDER | ID | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | platform | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | xinhao | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | title | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | content | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | memberlevel | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | fromplatform | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | area | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | userimpression | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | color | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | price | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | productSize | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | creationTime | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | zhuqutime | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | lable | 12 | VARCHAR | null | null | null | null | +------------+--------------+-------------+-----------------+------------+------------+--------------+----------------+-----------------+--------+ 0: jdbc:phoenix:192.168.1.100:2181>(3)通過Phoenix來查看HBase中的PINGJIA.SPIDER表的內容。Phoenix的查詢命令和標準SQL一致
0: jdbc:phoenix:192.168.1.100:2181> select * from PINGJIA.SPIDER limit 5; +---------+-----------+-----------+--------------------------------------------------+-------------------------------------+--------------+------+ | ID | platform | xinhao | title | content | menberlevel | from | +---------+-----------+-----------+--------------------------------------------------+-------------------------------------+--------------+------+ | 275301 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 真正的愛情經得起平淡的流年 | | 京東PC | | 275302 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 不錯不錯,只是正面什么字都沒有,沒有logo,帶上套子有點山寨,呵呵 | | 京東iP | | 275303 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 好。 | | 京東An | | 275304 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 京東品質值得信賴。 | | 京東iP | | 275305 | 京東 | 華為榮耀暢玩5X | 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 | 感覺還行,用的比較順手 | | 京東An | +---------+-----------+-----------+--------------------------------------------------+-------------------------------------+--------------+------+ 5 rows selected (0.49 seconds)? 3.使用JDBC通過Phoenix訪問HBase
實現代碼(需要將Phoenix安裝目錄下所有的jar包拷貝到lib下并add Path):
package com.jun;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;public class Phoenix {private static String driver = "org.apache.phoenix.jdbc.PhoenixDriver";public static void main(String[] args) throws SQLException {try {Class.forName(driver);} catch (ClassNotFoundException e) {e.printStackTrace();}Statement stmt = null;ResultSet rs = null;Connection con = DriverManager.getConnection("jdbc:phoenix:192.168.1.100:2181");stmt = con.createStatement();String sql = "select * from PINGJIA.SPIDER limit 5";rs = stmt.executeQuery(sql);while (rs.next()) {System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4)+" "+rs.getString(5)+" "+rs.getString(6)+" "+rs.getString(7)+" "+rs.getString(8)+" "+rs.getString(9)+" "+rs.getString(10)+" "+rs.getString(11)+" "+rs.getString(12)+" "+rs.getString(13)+" "+rs.getString(14)+" "+rs.getString(15));}stmt.close();con.close();} }輸出:
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/jun/workspace/PhoenixSQL/lib/phoenix-4.9.0-HBase-1.2-client.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/jun/workspace/PhoenixSQL/lib/phoenix-4.9.0-HBase-1.2-hive.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/jun/workspace/PhoenixSQL/lib/phoenix-4.9.0-HBase-1.2-pig.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/jun/workspace/PhoenixSQL/lib/phoenix-4.9.0-HBase-1.2-thin-client.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 275301 京東 華為榮耀暢玩5X 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 真正的愛情經得起平淡的流年 null 京東PC客戶端 null 比較一般 分辨率高 功能齊全 通話質量好 待機時間長 暗夜灰 1399 移動4G 2016-04-22 15:36:58 null 系統流暢,性價比高,功能齊全,反應快,信號穩定,屏幕大,外觀漂亮,國民手機,分辨率高,通話質量好 275302 京東 華為榮耀暢玩5X 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 不錯不錯,只是正面什么字都沒有,沒有logo,帶上套子有點山寨,呵呵 null 京東iPhone客戶端 北京 null 落日金 1399 全網通 2016-04-22 15:33:37 null null 275303 京東 華為榮耀暢玩5X 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 好。 null 京東Android客戶端 江蘇 null 落日金 1399 全網通 2016-04-22 15:32:35 null null 275304 京東 華為榮耀暢玩5X 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 京東品質值得信賴。 null 京東iPhone客戶端 上海 null 破曉銀 1399 移動4G 2016-04-22 15:31:35 null null 275305 京東 華為榮耀暢玩5X 榮耀 暢玩5X(KIW-AL10)3GB+16GB內存版 灰色 移動聯通電信4G手機 雙卡雙待 感覺還行,用的比較順手 null 京東Android客戶端 null null 破曉銀 1399 移動4G 2016-04-22 15:27:32 null null?
四、基于Web的前端展示
總結一下在前端展示之前需要準備的工作:
- (Master)啟動HDFS,執行start-dfs.sh
- (Master)啟動Yarn,執行start-yarn.sh
- (Master、Slave0、Slave1)分別啟動獨立的ZooKeeper集群,執行/home/jun/zookeeper-3.4.12/bin/zkServer.sh start
- (Master)啟動HBase,執行start-hbase.sh
1.啟動Eclipse-加載Web項目
(1)代碼結構
(2)數據庫連接配置代碼
public class DataBase {private static final String DRIVER="com.mysql.jdbc.Driver";private static final String URL="jdbc:mysql://localhost:3306/jd_pingjia?useUnicode=true&characterEncoding=utf-8&useSSL=false";private static final String USER="root";private static final String PASSWORD="bjtungirc";private static Connection connection; private static java.sql.PreparedStatement pstmt; private static ResultSet resultSet;...
}
(3)Phoenix連接代碼
public class phoenix_Hbase {//驅動名稱:private static final String DRIVER="org.apache.phoenix.jdbc.PhoenixDriver";//訪問zookeeper地址private static final String URL = "jdbc:phoenix:192.168.1.100:2181";//用戶名:private static final String USERNMAE="";//密碼: private static final String PASSWORD="";private static Connection connection ;private static ResultSet resultSet ; private static Statement statement ; public static Connection getConnection() throws SQLException{try {Class.forName(DRIVER);connection=DriverManager.getConnection(URL);} catch (ClassNotFoundException e) {e.printStackTrace();}return connection;} public static void closeConnection(Connection c,Statement s,ResultSet r){try {c.close();s.close();r.close();} catch (SQLException e) {e.printStackTrace();}} }
2.安裝Tomcat-啟動程序
3.在瀏覽器中輸入http://master:8080/new_pingjia_hbase/index.jsp即可查看相關內容。
從瀏覽器中可以看到下面的數據分別應該用哪些部分展示。
先來回顧一下數據表中有哪些信息,并且考慮一下需要展示哪些信息。
+------------+--------------+-------------+-----------------+------------+------------+--------------+----------------+-----------------+--------+ | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | COLUMN_NAME | DATA_TYPE | TYPE_NAME | COLUMN_SIZE | BUFFER_LENGTH | DECIMAL_DIGITS | NUM_PR | +------------+--------------+-------------+-----------------+------------+------------+--------------+----------------+-----------------+--------+ | | PINGJIA | SPIDER | ID | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | platform | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | xinhao | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | title | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | content | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | menberlevel | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | fromplatform | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | area | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | userimpression | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | color | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | price | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | productSize | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | creationTime | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | zhuqutime | 12 | VARCHAR | null | null | null | null | | | PINGJIA | SPIDER | lable | 12 | VARCHAR | null | null | null | null | +------------+--------------+-------------+-----------------+------------+------------+--------------+----------------+-----------------+--------+對于這些種類的數據來說,有下面的一些展示方式,還有一些很多別的方式,就看用戶想關注什么樣的信息了,實際應用中需要根據需求來決定展示哪些數據和按照什么方式展示數據。
- 儀表盤:電商平臺樹、用戶購買手機總量、數據總條數
- 餅狀圖:客戶端來源(PC、Android等)、運營商,用戶對顏色的喜愛
- 曲線圖:買家會員等級(鉆石會員、金牌會員等)
- 統計直方圖:用戶購買印象,手機品牌銷量排行,不同等級會員買的手機價格
- 地圖:銷量來源
- 等等
?
轉載于:https://www.cnblogs.com/BigJunOba/p/9363007.html
總結
以上是生活随笔為你收集整理的(实际开发大数据分析系统)网络爬虫获取数据与销售数据分析系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 6304 Chiaki Sequ
- 下一篇: 解决 vue路由跳转到新页面底部而不是顶