1. 程式人生 > >淘寶雙11資料分析與預測彙總

淘寶雙11資料分析與預測彙總

國慶假期留在學校做了一下林子雨博士的大資料實驗--淘寶雙11資料分析與預測,雖然教程寫得很詳細,但自己還是踩了很多坑,現在記錄下來,希望給別人一點幫助。

淘寶雙11資料分析與預測實驗連結:http://dblab.xmu.edu.cn/post/8116/

問題一:安裝Hadoop時報錯

Starting namenodes on [localhost]
localhost: mkdir: 無法建立目錄"/usr/local/hadoop/logs": 許可權不夠
localhost: chown: 無法訪問"/usr/local/hadoop/logs": 沒有那個檔案或目錄
localhost: starting namenode, logging to 
/usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 159: /usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out: 沒有那個檔案或目錄 localhost: head: 無法開啟"/usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out" 讀取資料: 沒有那個檔案或目錄 localhost:
/usr/local/hadoop/sbin/hadoop-daemon.sh: 行 177: /usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out: 沒有那個檔案或目錄 localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 178: /usr/local/hadoop/logs/hadoop-dblab-namenode-dblab-virtual-machine.out: 沒有那個檔案或目錄 localhost: mkdir: 無法建立目錄"/usr/local/hadoop/logs": 許可權不夠 localhost: chown: 無法訪問
"/usr/local/hadoop/logs": 沒有那個檔案或目錄 localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 159: /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out: 沒有那個檔案或目錄 localhost: head: 無法開啟"/usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out" 讀取資料: 沒有那個檔案或目錄 localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 177: /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out: 沒有那個檔案或目錄 localhost: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 178: /usr/local/hadoop/logs/hadoop-dblab-datanode-dblab-virtual-machine.out: 沒有那個檔案或目錄 Starting secondary namenodes [0.0.0.0] 0.0.0.0: mkdir: 無法建立目錄"/usr/local/hadoop/logs": 許可權不夠 0.0.0.0: chown: 無法訪問"/usr/local/hadoop/logs": 沒有那個檔案或目錄 0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out 0.0.0.0: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 159: /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out: 沒有那個檔案或目錄 0.0.0.0: head: 無法開啟"/usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out" 讀取資料: 沒有那個檔案或目錄 0.0.0.0: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 177: /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out: 沒有那個檔案或目錄 0.0.0.0: /usr/local/hadoop/sbin/hadoop-daemon.sh: 行 178: /usr/local/hadoop/logs/hadoop-dblab-secondarynamenode-dblab-virtual-machine.out: 沒有那個檔案或目錄 [email protected]-virtual-machine:/usr/local/hadoop$ sudo chown -R niugen /usr/local/hadoop

報錯原因:許可權不夠

解決方法:

sudo chown -R 你自己電腦到使用者名稱 /usr/local/hadoop

 

問題二:Error: JAVA_HOME is not set and could not be found.

 解決方法: JAVA_HOME 環境變數沒設定好,請按教程在.bashrc檔案中設定好JAVA_HOME,如果還是出現 Error: JAVA_HOME is not set and could not be found. 的錯誤,就到hadoop的安裝目錄修改配置檔案“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在裡面找到“export JAVA_HOME=${JAVA_HOME}”這行,然後,把它修改成JAVA安裝路徑的具體地址,比如,
“export JAVA_HOME=/usr/lib/jvm/你自己到java版本”,然後,再次啟動Hadoop。

 

問題三:使用Sqoop將Hive資料匯入到MySQL中

報錯內容:

ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
...
ERROR tool.ExportTool: Encountered IOException running export job: java.io.IOException: No columns to generate for ClassWriter

報錯原因:操作許可權不夠
解決方法:
首先用命令service mysql start確保mysql已經啟動,進入操作介面 mysql -u root -p,按提示輸入的mysql密碼,然後執行下面命令修改遠端登入許可權

mysql> grant all privileges on *.* to [email protected] identified by 'root';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)

 

問題四:將Hive資料匯入到MySQL時報錯

報錯內容:

ERROR:"Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient"

報錯原因:換資料庫時沒有和hive成功通訊。
解決方法:在確保Hive和MySQL配置步驟正確執行的前提下,在終端輸入如下命令

source /usr/local/hive/scripts/metastore/upgrade/mysql/hive-schema-3.0.0.mysql.sql//使這個版本的配置檔案有用!注意更換檔案路徑 

schematool -dbType mysql -initSchema//進行初始化.執行顯示成功就可以正常通訊了。

 

問題五:新建Java Web專案時,沒有找到Dynamic Web Project

問題原因:安裝的是專門開發java專案的,而Dynamic Web Project屬於J2EE技術,所以你要專門下載一個集成了J2EE外掛的Eclipse,(eclipse-jee-helios-SR2-win32)
解決方法:
方法一:先解除安裝之前的eclipse版本,到eclipse官網下載相對應版本的IDE

官網連結:http://www.eclipse.org/downloads/packages/release/neon/2/eclipse-ide-java-ee-developers

方法二:檢視部落格https://www.cnblogs.com/longronglang/p/7156383.html  (如果你在原來的eclipse版本下執行這個方法不成功,請轉到方法一

 

問題六:Eclipse匯入外部的jar包

ps:與其說這是一個問題,不如說這是一個注意項。之前天真以為匯入jar包只要滑鼠左鍵拖拉進去就可以,其實這種做法是錯誤的。

正確操作步驟檢視此連結:https://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html