淘寶雙11資料分析與預測–“坑點”彙總

小小小華發表於2018-10-14

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

淘寶雙11資料分析與預測實驗連線:點選這裡

  • 問題一:安裝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: 沒有那個檔案或目錄
dblab@dblab-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 root@localhost 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
官網安裝連結:點選這裡

方法二:檢視部落格點選這裡如果你在原來的eclipse版本下執行這個方法不成功,請轉到方法一

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

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

正確操作步驟:檢視此連結

相關文章