話說BIG DATA已經是非常熱門,你想像到所以東西都可以於BIG DATA有關,但是要如何架設一套良好BIG DATA分析系統,這是一件非常困難,而國外已經有當相多公司在使用BIG DATA技術,有很多已經幫我們整理好Open Source 資料。
在台灣只有一些大公司投入BIG DATA技術,而瞭解Hadoop相關技術是有難度,如何利用Hadoop技術解決問題並分析資料是一個關鍵。
在台灣只有一些大公司投入BIG DATA技術,而瞭解Hadoop相關技術是有難度,如何利用Hadoop技術解決問題並分析資料是一個關鍵。
接下來我們教你如何自行架設一套Open Source 軟體Hortonworks HDInsight。
以我們設備有五台電腦主機分別為兩台為Master,三台為DataNode ,架設Hadoop Cluster。
以我們設備有五台電腦主機分別為兩台為Master,三台為DataNode ,架設Hadoop Cluster。
看個人需求,我們以Centos 6.7 Linux版本。
首先安裝Mysql DB因為Ambari需要將資料存入Mysql DB,也可以自行選擇安裝其他資料庫。
例如:
- PostgreSQL (Embedded)
- Oracle
- MySQL
- PostgreSQL
- Microsoft SQL Server (Tech Preview)
- SQL Anywhere
為什麼要選擇Mysql,因為我對Mysql比較熟,所以選擇我最熟悉資料庫。
選擇一台高階電腦主機當Ambari Server Master
yum install -y mysql-server mysql在來關閉防火牆centos,或是可以使用 ntsysv來關閉
chkconfig iptables /etc/init.d/iptables stop
開起所有設備NTP ,將所有主機設備對時。
chkconfig --list
ntpdchkconfig ntpd on
service ntpd start
2.設定Mysql 授權
先檢查看Mysql是否有啟動, 如果未啟動Mysql請將Mysql server啟動。
ps aux | grep mysql
開起Terminal 輸入Mysql root指令新增root密碼 ,預設值是沒有密碼。
mysqladmin -u root password '你的密碼'
登入mysql確認設定root密碼是否正常
mysql -uroot -p
3.新增Mysql Ambari帳號授權
注意密碼在後面安裝ambari需要用到。
下載 MysqlWorkbench 工具
先檢查看Mysql是否有啟動, 如果未啟動Mysql請將Mysql server啟動。
ps aux | grep mysql
開起Terminal 輸入Mysql root指令新增root密碼 ,預設值是沒有密碼。
mysqladmin -u root password '你的密碼'
登入mysql確認設定root密碼是否正常
mysql -uroot -p
3.新增Mysql Ambari帳號授權
注意密碼在後面安裝ambari需要用到。
[localhost]create user 'ambari'@'localhost' identified by '輸入密碼';grant all PRIVILEGES on *.* to 'ambari'@'localhost';
[%]create user 'ambari'@'%' identified by '輸入密嗎';grant all PRIVILEGES on *.* to 'ambari'@'%';
[host名稱] 注意如果不需要請下一步。
create user 'ambari'@'host名稱' identified by '輸入的密碼';
grant all PRIVILEGES on *.* to 'ambari'@'host名稱';
- 透過root帳號使用MysqlWorkbench工具連接MysqlDB
grant all privileges on *.* to 'root'@'%.%.%.%' identified by '' with grant option;flush privileges;exit
下載 MysqlWorkbench 工具
4.設定主機/etc/hosts
一、安裝Abmari repo
首先下載repo檔案至/etc/yum.repo.d路徑 ,其他Linux請連接官方Hortonworks網站 repo
Ambari Server repo檔
wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.2/ambari.repo -O /etc/yum.repos.d/ambari.repo
HDP 2.3.2 repo檔
wget -nv http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.2.0/hdp.repo -O /etc/yum.repos.d/hdp.repo
如果需要透過local repo連接Abmar Server請安裝repolist, createrepo,httpd,不需要請下一步。
開始安裝Ambari Server
yum install -y ambari-server
注意:在安裝Abmari Server先前請安裝好java JDK,Abmari Server可自行指定java版本,如果不指定Abmari Server 安裝時請選擇open source java JDK
自行指定[修改java版本]教學
二、設定Ambari Server JDBC
指定Ambari連接mysql jdbc套件。這個很重要、很重要、非常很重要,如果沒設定Ambari將無法接連到mysql資料庫。(這問題我卡了一兩天 =.=")
四、其他台設備安裝 Ambari-agent
其他設備安裝ambari-agent
yum install -y ambari-agent
五、建立Linux免密碼登入
設定所有主機設備 /etc/hosts, 假設有三台hadoop設備 範例:
- 10.0.1.4 hdp01
- 10.0.1.5 hdp02
- 10.0.1.6 hdp03
一、安裝Abmari repo
首先下載repo檔案至/etc/yum.repo.d路徑 ,其他Linux請連接官方Hortonworks網站 repo
Ambari Server repo檔
wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.2/ambari.repo -O /etc/yum.repos.d/ambari.repo
HDP 2.3.2 repo檔
wget -nv http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.2.0/hdp.repo -O /etc/yum.repos.d/hdp.repo
如果需要透過local repo連接Abmar Server請安裝repolist, createrepo,httpd,不需要請下一步。
yum repolist `使用repo需要的套件`
yum install -y createrepo `使用createreop需要的套件`
yum install -y httpd
yum install -y ambari-server
注意:在安裝Abmari Server先前請安裝好java JDK,Abmari Server可自行指定java版本,如果不指定Abmari Server 安裝時請選擇open source java JDK
自行指定[修改java版本]教學
二、設定Ambari Server JDBC
指定Ambari連接mysql jdbc套件。這個很重要、很重要、非常很重要,如果沒設定Ambari將無法接連到mysql資料庫。(這問題我卡了一兩天 =.=")
yum install -y mysql-connector-java*
ls /usr/share/java/mysql-connector-java.jar `請將jar檔的權限為644`
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
三、開始安裝Abmari Server
ambari-server setup
執行前請先檢查mysql是否已設定完成
- WARNING: SELinux is set to 'permissive' mode and temporarily disabled. OK to continue [y/n] (n)?
請輸入 Y
- Customize user account for ambari-server daemon [y/n] (n)? y
請輸入: Y
- iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports. OK to continue [y/n] (y)?
請輸入: Y
請選擇需要安裝的java版本或是可以直接自行安裝JAVA版本
- [1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
- [2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
- [3] Custom JDK
- Enter advanced database configuration [y/n] (n)?
請輸入: Y
選擇安裝Ambari Server儲存的資料庫,前面我們選擇Mysql所以我們是選擇3
Choose one of the following options:
- [1] - PostgreSQL (Embedded)
- [2] - Oracle
- [3] - MySQL
- [4] - PostgreSQL
- [5] - Microsoft SQL Server (Tech Preview)
- [6] - SQL Anywhere
接下來設定Ambari資料庫連接
- Hostname (localhost): localhost
- Port (3306): 3306
- Database name (ambari): ambari資料庫名稱
- Username (ambari): ambari登入名稱
- Enter Database Password (bigdata): ambari資料庫密碼
- Proceed with configuring remote database connection properties [y/n] (y)? y
請輸入: Y
最後顯示以下訊息你將安裝成功ambari-server
* Ambari Server 'setup' completed successfully.
使用MysqlWorkbench工具連接檢查是否有新增ambari資料庫。
**手動新增ambari 資料庫及資料表
mysql -u ambari -p 你的ambari密碼
create database ambari;
SHOW DATABASES;
use ambari
SOURCE /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
flush privileges;
exit
注意 Ambari-DDL-MySQL-CREATE.sql檔案放在 /var/lib/ambari-server/resources/
四、其他台設備安裝 Ambari-agent
首先將Ambari-server上的ambari.repo及hdp.rep,hdp-util.repo檔案複製到其他台設備。
*注意:使用loca reop 需要安裝httpd,其他台機器才可以連接到Abmari Server資料
的repo檔案
複製ambari,hdp,hdp-utils檔案至其他設備
scp /etc/yum.repos.d/hdp.repo 帳號@ip:/etc/yum.repos.d/ambari.repo
scp /etc/yum.repos.d/hdp.repo 帳號@ip:/etc/yum.repos.d/hdp.repo
scp /etc/yum.repos.d/hdp.repo 帳號@ip:/etc/yum.repos.d/hdp-utils.repo 其他設備安裝ambari-agent
yum install -y ambari-agent
設定Server讓agent連接server
vi /etc/ambari-agent/conf/ambari-agent.ini
[server]
hostname=hdp01 `你的Abmari Server`
url_port=8440
secured_url_port=8441
在每一台hadoop設備輸入ssh-keygen建立key,將所有建立完成的key集中在Server ~/.ssh/authorized_keys 檔案內,使用scp將authorized_keys檔案複製到每一台hdp設備 ~/.ssh路徑
ssh-keygen
cat id_rsa.pub >> authorized_keys
scp ~/.ssh/authorized_keys root@:~/.ssh/authorized_keys
6.設定local repo連接
一、建立Ambari local
透過Ambari Server設備使用repo下載點,不需要每一天設備從網路上下載。
二、修改Abmari repo檔案
#VERSION_NUMBER=2.1.2-377
注意:Server需先安裝httpd,檔案放至路徑為/var/www/html/
三、建立HEP Local
建立hdp資料夾
mkdir -p /var/www/html/hdp
下載hdp repo local資料至var/www/html/hdp Server端
一、建立Ambari local
透過Ambari Server設備使用repo下載點,不需要每一天設備從網路上下載。
如果不設定repo每台機器是直接從網路下載資料,這將會浪費相當多的時間在下載資料,設定完成後,所有Client設備將會從Server端下載repo資料,減少下載時間。
首先在Server端安裝httpd,資料夾放的路徑為 /var/www/html。
yum install -y httpd
#建立資料夾
mkdir -p /var/www/html/ambari
cd /var/www/html/ambari
下載Ambari資料至var/www/html/abmari資料夾,並建立repo下載點。
reposync -r Updates-ambari-2.1.2
createrepo /var/www/html/ambari/Updates-ambari-2.1.2
下載完畢,首先修改Ambari.repo檔案,路徑為 /etc/yum.repos.d/,將repo url修改為Ambari Server IP即可。
vi /etc/yum.repos.d/ambari.repo #VERSION_NUMBER=2.1.2-377
[Updates-ambari-2.1.2]
name=ambari-2.1.2 - Updates
baseurl=http:/// ambari/updates/2.1.2
gpgcheck=0
enabled=1
priority=1
三、建立HEP Local
建立hdp資料夾
mkdir -p /var/www/html/hdp
下載hdp repo local資料至var/www/html/hdp Server端
cd /var/www/html/hdp
reposync -r HDP-2.3.2.0
createrepo /var/www/html/hdp/HDP-2.3.2.0
四、修改hdp repo檔案
全部下載完畢後,修改hdp.repo檔案把url改成Ambari server ip位址,hdp.repo檔案包含hdp、hdp-utils資料,將原本的url修改成Ambari Server IP與gpgcheck修改為0。
vi /etc/yum.repos.d/hdp.repo
#VERSION_NUMBER=2.3.2.0-2950
[HDP-2.3.2.0]
name=HDP Version - HDP-2.3.2.0
baseurl=http:// hdp/HDP-2.3.2.0
gpgcheck=0
enabled=1
priority=1
[HDP-UTILS-1.1.0.20]
name=HDP Utils Version - HDP-UTILS-1.1.0.20
baseurl=http:// hdp/HDP-UTILS-1.1.0.20
gpgcheck=0
enabled=1
priority=1
五、複製repo至其他設備
scp /etc/yum.repos.d/hdp.repo 帳號@ip:/etc/yum.repos.d/hdp-utils.repo
7.安裝Ambari-Agent
將以上功能設定完畢後,開始安裝設備Agent,在每一天機器上安裝Ambari-agent,
修改完成repo檔案後,將ambari.repo與hdp.repo檔案copy至每一台hadoop設備路徑 /etc/yum.repos.d/ 資料夾裡面即可
scp /etc/yum.repos.d/hdp.repo 帳號@ip:/etc/yum.repos.d/ambari.repo
scp /etc/yum.repos.d/hdp.repo 帳號@ip:/etc/yum.repos.d/hdp.repo
7.安裝Ambari-Agent
將以上功能設定完畢後,開始安裝設備Agent,在每一天機器上安裝Ambari-agent,
yum install -y ambari-agent
注意:Server端也需要安裝,不然無法回傳資料給Server。
8.開始安裝HDInsight Cluster
首先將Server端Amabari起動,在將其他機器Agent起動即可。
ambari-server start
amabari-agent st
一、開起瀏覽器輸入網址http://localhlst:8080,ambari預設port為8080,輸入你設定帳號密碼。
二、點選右上角launch install wizard
五、設定repo連接點,如果有使用repo loca,直接使用Server IP,如果沒有設定直接連接Hortonworks官方網站repo。
六、安裝設備名稱,點選OK
十一、設定Hive、Ooiz、Accumlo、Knox帳號密碼。
十四、Preparing to Deploy中....
問題解決:
在檢查過程當中遇到"The following hosts have Transparent HugePages (THP) enabled。THP should be disabled to avoid potential Hadoop performance issues."錯誤訊息。
二、點選右上角launch install wizard
三、輸入ambari hdp名稱。
四、設定Server端Provide SSH Private key,讓Server可以直接連接Client不需要登入帳號密碼。
五、設定repo連接點,如果有使用repo loca,直接使用Server IP,如果沒有設定直接連接Hortonworks官方網站repo。
七、檢查設備是否缺少套件,這需要一點時間,檢查完畢後將會顯示以下畫面
注意:在按下一步先前請點選Click here to see the check results, 檢查所有設備是否符合及其他設定。出現錯誤訊息請解決,否則在安裝時將會無法完成。
八、選擇需要安裝HDInsight套件
九、選擇將軟體安裝在那一台機器設備,將有關Master軟體安裝在前兩~三台。
十、選擇Slaves與Clients
十一、設定Hive、Ooiz、Accumlo、Knox帳號密碼。
十二、設定完成,下一步
十三、顯示Review 設定參數,下一步
十四、Preparing to Deploy中....
十五、開始安裝HDInsight Cluster
十六、安裝完成,開起你的瀏覽器輸入http://localhost:8080,登入帳號密碼,起動所有設備即可。在檢查過程當中遇到"The following hosts have Transparent HugePages (THP) enabled。THP should be disabled to avoid potential Hadoop performance issues."錯誤訊息。
解決方法,在Linux下執行:
echo never >/sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never >/sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/defrag
References:
沒有留言:
張貼留言