比賽項目
相關軟件下載
鏈接:https://pan.baidu.com/s/1W4rVk5D4Zp3nEn7iyXnlsQ
提取碼:rdyo
Hadoop技術
2.1 Liunx 系統環境准備
3月份白嫖的阿里雲ECS雲服務器終於有用了,ubuntu 16.04 64bit,開始搭環境
都是一些基本的命令,如果以前 Linux 用得少按課程資料照貓畫虎也行
2.2 HDFS偽分布式集群搭建
HDFS 是負責海量數據的存儲,集群中的角色主要有 NameNode / DataNode
偽分布是因為只有一台雲主機,以后看看有什么項目能用到真框架吧
首先是安裝 hadoop,用了網盤里的版本,據說和比賽的匹配
然后就開始按課程資料一步步配置文檔,有些地方按自己的想法改着做了,沒出問題
就是我 vim 還用得比較蹩腳,快捷鍵記不住哈哈
2.3 YARN 偽分布式集群搭建
負責海量數據運算時的資源調度,集群中的角色主要有 ResourceManager /NodeManager
配置過程同上,沒啥好說的
附啟動集群成功截圖一張:
2.4 Hadoop 集群初體驗
因為是 SSH 到雲服務器上的,好像沒映射其他端口,看不到 UI 界面
這節課主要就是讓我們用 hadoop 的樣例程序體驗一下分布式計算過程,也沒啥好說的
數據倉庫hive
Hive 是基於 Hadoop 的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,並提供類 SQL 查詢功能, Hive 底層是將 SQL 語句轉換為 MapReduce 任務運行。
(1)Hive 處理的數據存儲在 HDFS;
(2)Hive 分析數據底層的實現是 MapReduce,利用 MapReduce 查詢數據;
(3)執行程序運行在 YARN 上。
2.1 Hive 內嵌模式安裝
內嵌模式:將元數據保存在本地內嵌的 Derby 數據庫中,這是使用 Hive 最簡單的方式。但是這種方式缺點也比較明顯,因為一個內嵌的 Derby 數據庫每次只能訪問一個數據文件,這也就意味着它不支持多會話連接。
按照課程資料給定流程安裝,注意在同一個目錄下同時只能有一個 Hive 客戶端能使用數據庫
輸入 hive 有反饋即連接成功(注意 hive 是基於 hadoop 的,所以事先要在該目錄下啟動集群 start-dfs.sh start-yarn.sh )
2.2 Hive 本地模式安裝
這種模式是將元數據保存在本地獨立的數據庫中(一般是 MySQL),這種方式是一個多用戶的模式,運行多個用戶 Client 連接到一個數據庫中。這種方式一般作為公司內部同時使用 Hive。 這里有一個前提,每一個用戶必須要有對 MySQL 的訪問權利,即每一個客戶端使用者需要知道 MySQL 的用戶名和密碼才行。
首先安裝 MySQL,由於用的是雲服務器(Ubuntu 16.04 64bit),用不了課程資料中的 rpm 包,以下是用 apt 的半自動安裝步驟:
(1)更新 apt-get > sudo apt-get update
(2)安裝服務端 > sudo apt-get install mysql-server
會有一個界面要求設置密碼
(3)安裝客戶端 > sudo apt-get install mysql-client
(4)安裝鏈接庫 > sudo apt-get install libmysqlclient-dev
配置和啟動流程和課程資料一致,包括:
-
初始化 MySQL 的數據庫
-
啟動 MySQL 服務
- 登錄 MySQL
-
重置 MySQL 密碼
-
增加遠程登錄權限
然后要把 Hive 元數據配置到 MySQL
3.1 驅動拷貝
將/root/software目錄下的 MySQL 驅動包 mysql-connector-java-5.1.47-bin.jar 拷貝到 ${HIVE_HOME}/lib 目錄下。
3.2 配置 Metastore到MySQL
同樣按課程資料操作
3.3 初始化元數據庫
中途報錯了一次,重寫了一次配置文件修復了
3.4 Hive 連接
注意啟動 Hive 之前要先啟動 Hadoop
爬蟲技術
Python Requests lib
...