ror:$Z00KEEPER_H0MEdoesnotexist! ''
[0094] #echo^Pleaseset$Z00KEEPER_H0MEtotherootofyourZooKeeper installation. '
[0095] #exit 1
[0096] 冉fi
[0097] 修改/etc/profile環(huán)境變量文件(suroot么后,sudogedit/etc/profile);
[009引添加 6邱0別SQ00P_H0ME二 /home/grid/sqoop
[0099] 在原有PATH后添加:$SQ00P_H0ME/bin
[0100] 步驟S,在mysql中建立測試用戶,測試表和數(shù)據(jù),并測試sqoop連接mysql;
[0101] 創(chuàng)建用戶sqoop并授權(quán);
[0102] grant all privileges o打本.本to'sqoop'%' ide打tif ied by'sqoop'with grant option;
[0103] 創(chuàng)建表空間(schema)sqoop,并創(chuàng)建測試表;
[0104] create table s化dents (
[010己] id int not null primary key,
[0106] name varchar (20),
[0107] ageint)
[0108] 插入測試數(shù)據(jù):
[0109] insei^t into s化dents values ('10001','liyang',29);
[0110] inse:rt into s化dents values (,10002,,,lion,,28);
[0111] insei^t into s化dents values ('10003','leon',26);
[0112] 在masternode測試sqoop能否成功連接宿主機器上的mysql ;sqoop list-tab les--connectjdbc:mysql://192. 168. 66.96:3306/sqoop-usernamesqoop-password sqoop
[0113] 如果能正確顯示出sqoop表空間中的students表,就說明sqoop已經(jīng)可臥成功連 接mysql!
[0114] 步驟四,將mysql中sqoop表空間的students表的S行數(shù)據(jù)導(dǎo)入皿FS:
[0115]啟動hadoop;
[0116] start-all.sh
[0117] 用jps驗證啟動是否成功
[0118] 顯示正在運行臥下進程即為啟動成功:
[0119] 2820SecondaryNameNode
[0120] 4539 Jps
[0121] 2887 JoWracker
[0122] 2595 NameNode
[0123] 從mysql導(dǎo)入數(shù)據(jù),運行如下命令:
[0124]sqoopimport-connectjdbc:mysql://192. 168. 66. 96:3306/sqoop-username sqoop-passwordsqoop-tablestudents-m1
[01巧]驗證導(dǎo)入數(shù)據(jù)是否成功:
[0126] 若導(dǎo)入成功,運行hadoop dfs-ls將能看到根目錄/user/grid/下有臥表名命名 的文件夾students
[0127] 運行hadoopdfs-ls/user/grid/s化dents能看到該文件夾中包含文件;/user/ grid/stude打ts/part-m-OOOOO
[0128]運行hadoop dfs-cat/user/grid/s化dents/part-m-00000就能看到該文件已經(jīng) 包含mysql中students表的S行數(shù)據(jù);
[0129] 10001,liyang,29
[0130] 10002, lion, 28
[0131] 10003,leon,26
[0132] 步驟五,將皿FS中的數(shù)據(jù)導(dǎo)入Mysql的students表中:
[0133] 首先將mysql的students表數(shù)據(jù)清空;
[0134]deletefromS化dents;
[01巧]然后在masternode上執(zhí)行導(dǎo)出數(shù)據(jù)命令;
[01%]sqoope邱OTt-connectjdbc:mysql://192. 168. 66. 96:3306/sqoop-username sqoop-passwordsqoop-tablestudents-export-dir
[0137] hdfs://masternode:9000/user/grid/s化dents/part-m-00000
[013引若成功,在mysql中會看到students表中的數(shù)據(jù)恢復(fù)了。
[0139] 注意;過程中可能會因為slavenode的50010端口沒打開而報錯,需用root用戶 通過sudoufwallow50010命令打開端口。
[0140] (b)Mysql與Hbase互導(dǎo)數(shù)據(jù)
[0141] 將mysql的數(shù)據(jù)導(dǎo)入化ase的命令格式為:
[0142]sqoopimport-connectjdbc:mysql://mysqlserver_IP/databaseName-use rname-passwordpassword-tabledatatable-hbase-create-table-hbase-table hbase_tablename-column-familycol_fam_name-hbase-row-keykey_col_name
[0143]其中,databaseName和datatable是mysql的數(shù)據(jù)庫和表名,hbase_tablename 是要導(dǎo)成Wmse的表名,key_col_name可臥指定datatable中哪一列作為libase新表的 rowkey,col_fam_name是除rowkey么外的所有列的列族名。
[0144] 例如:可通過如下命令將Mysql中的students表導(dǎo)入到Hbase中;
[014己] /home / grid / sqoop/bin / sqoop import - connect jdbc:mysql://192. 168. 66. 96/sqoop-username sqoop-password liyangl6-table students--hbase-create-table--hbase-table students--column-family stuinfo-hbase-row-key id
[0146] 成功執(zhí)行后,可在化ase中用臥下命令查看結(jié)果:
[0147]hbase(main) : 011:0〉scan'S化dents'
[0148] ROWCOLUMN+CE化
[0149]lOOOlcolumn二stuinfo:age,timestamp二1356759994058,value二 2910001column=stuinfo:name,timestamp= 1356759994058,value=liyang
[0150] 10002column二stuinfo:age,timestamp二1356760044478,value二 2810002column=stuinfo:name,timestamp= 1356760044478,value=lion
[0151] 10003column二stuinfo:age,timestamp二1356760044478,value二 2610003column=stuinfo:name,timestamp= 1356760044478,value=leon
[0152] 3row(s)in0? 0900seconds
[0153] (c)Oracle與Hbase互導(dǎo)數(shù)據(jù)
[0154] 將Oracle中的d邱t表(列為id,name,addr)導(dǎo)出至libase中的d邱t表(行鍵 為id,列族為d邱tinfo)
[01 己己]sqoopimport――append――connectjdbc:oracle:thin:@192. 168. 66. 90:1521:or cl--usernametest-passwordtest-ml-tabledept-columnsid,name,addr-hbase -create-table-hbase-tabledept-hbase-row-keyid-column-familydeptinfo
[0156] 電力數(shù)據(jù)的主成分分析法
[0157] 通過臥上的采集、存儲步驟,可臥將與華中電力市場相關(guān)的數(shù)據(jù)臥多級存儲的方 法存在服務(wù)器中。通過信息挖掘存儲在服務(wù)器端的大數(shù)據(jù),發(fā)現(xiàn)隱藏在大型數(shù)據(jù)集中潛在 的數(shù)據(jù)模式和數(shù)據(jù)規(guī)律,將數(shù)據(jù)轉(zhuǎn)換成有用的信息和知識,幫助電力交易的決策者分析歷 史數(shù)據(jù)及當前數(shù)據(jù),并從中發(fā)現(xiàn)隱藏的關(guān)系和模式,預(yù)測未來可能發(fā)生的電力交易行為和 市場導(dǎo)向。下面臥一個華中電力市場交易例子,應(yīng)用主成分分析法分析電量與氣候及時間 的關(guān)系。
[0158] 華中電力市場交易的主要因素包括電量、月份(時間)、電價、最高氣溫、最低氣 溫、平巧氣溫、降水量等,其他因素可臥依據(jù)此分析展開應(yīng)用。
[0159] 表1.華中某電力市場交易的歷史數(shù)據(jù)
[0160]
[0162] 表1所示的內(nèi)容是華中某電力市場交易數(shù)據(jù)庫中抽取的部分歷史數(shù)據(jù)樣本。當數(shù) 據(jù)量累積到百萬條W上時,數(shù)據(jù)的查詢與分析工作必須移植到化doop云平臺皿ase進行海 量存儲,通過化doop生態(tài)系統(tǒng)的Sqoop工具,把數(shù)據(jù)遷移到化ve數(shù)據(jù)倉庫中,使用S化語 言抽取組成表1的大數(shù)據(jù)表(數(shù)據(jù)文件達到TB級)進行分析。采用基于MapRe化ce框架, 對電力市場交易大數(shù)據(jù)進行分布式主成分回歸分析與預(yù)測,其分析流程如圖5所示。
[0163] 圖7中,華中電力市場大數(shù)據(jù)分析經(jīng)過了Map和Re化ce兩個階段,其中Map階段 大數(shù)據(jù)被分割為大量的小樣本數(shù)據(jù)文件,對每個小樣本數(shù)據(jù)基于主成分分析的回歸分析, 最后經(jīng)過Re化ce階段輸出最優(yōu)回歸模型進行交易量預(yù)測。具體的步驟如下:
[0164] (1)華中電力市場交易大數(shù)據(jù)通過SQL語言,