天天看點

大資料叢集環境搭建

安裝可以參考這個老哥 http://blog.csdn.net/u012185296

也可以參考下面的安裝cmd,

下載下傳安裝包

wget http://archive.cloudera.com/cdh5/parcels/5.12.1.3/CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel

wget http://archive.cloudera.com/cdh5/parcels/5.12.1.3/CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1

wget http://archive.cloudera.com/spark2/parcels/2.2.0.cloudera1/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el6.parcel

wget http://archive.cloudera.com/spark2/parcels/2.2.0.cloudera1/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el6.parcel.sha1

wget http://archive.cloudera.com/spark2/csd/SPARK2_ON_YARN-2.1.0.cloudera1.jar

wget http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel

wget http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha1

安裝cmd

1. 網絡配置(所有節點)

vi /etc/sysconfig/network修改hostname:

NETWORKING=yes

HOSTNAME=n1

通過service network restart重新開機網絡服務生效。

vi /etc/hosts,修改ip與主機名的對應關系

192.168.1.106   n1

192.168.1.107   n2

192.168.1.108   n3

注意:這裡需要将每台機器的ip及主機名對應關系都寫進去,本機的也要寫進去,否則啟動Agent的時候會提示hostname解析錯誤。

1.格式化分區 

fdisk -l 檢視盤  

mkfs.ext4 -T largefile /dev/xvdb1   格式化分區

将分區資訊寫入fstab

echo '/dev/sda /home/hdfs/hd01 ext4 defaults 0 0' >> /etc/fstab

echo '/dev/sdb /home/hdfs/hd01 ext4 defaults 0 0' >> /etc/fstab

echo '/dev/sdc /home/hdfs/hd02 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sdd /home/hdfs/hd03 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sde /home/hdfs/hd04 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sdf /home/hdfs/hd05 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sdg /home/hdfs/hd06 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sdh /home/hdfs/hd07 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sdi /home/hdfs/hd08 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sdj /home/hdfs/hd09 ext4 defaults 0 0' >> /etc/fstab  

echo '/dev/sdk /home/hdfs/hd10 ext4 defaults 0 0' >> /etc/fstab  

建立相應檔案夾  然後挂載分區

挂載分區

mount /dev/sda /home/hdfs/hd01

mount /dev/sdb /home/hdfs/hd02

mount /dev/sdc /home/hdfs/hd03

mount /dev/sdd /home/hdfs/hd04

mount /dev/sde /home/hdfs/hd05

mount /dev/sdf /home/hdfs/hd06

mount /dev/sdg /home/hdfs/hd07

mount /dev/sdh /home/hdfs/hd08

mount /dev/sdi /home/hdfs/hd09

mount /dev/sdj /home/hdfs/hd10

mount /dev/sdk /home/hdfs/hd10

防護牆關閉

關閉防火牆:

service iptables stop (臨時關閉)  

chkconfig iptables off (重新開機後生效)

2.mysql 安裝

yum install mysql-server安裝mysql伺服器。

chkconfig mysqld on設定開機啟動,

service mysqld start啟動mysql服務

設定root的初試密碼:mysqladmin -u root password '54321'

mysql -uroot -p進入mysql指令行,

删除mysql.user表中的匿名使用者,修改密碼

use mysql;

delete from user where user='';

update user set password=PASSWORD('54321') where user='root';

flush privileges;

建立以下資料庫:

#hive

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

#activity monitor

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

#hue

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

設定root授權通路以上所有的資料庫:

#授權root使用者在主節點擁有所有資料庫的通路權限

grant all privileges on *.* to 'root'@'namenode1' identified by '54321' with grant option;

grant all privileges on *.* to 'root'@'127.0.0.1' identified by '54321' with grant option;

grant all privileges on *.* to 'root'@'localhost' identified by '54321' with grant option;

grant all privileges on *.* to 'root'@'%' identified by '54321' with grant option;

flush privileges;

grant all privileges on *.* to 'root'@'bakdb01' identified by '123456' with grant option;

grant all privileges on *.* to 'root'@'127.0.0.1' identified by '123456' with grant option;

grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges;

3.ntp安裝

叢集中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。 具體思路如下:

master節點作為ntp伺服器與外界對時中心同步時間,随後對所有datanode節點提供時間同步服務。

所有datanode節點以master節點為基礎同步時間。

所有節點安裝相關元件:yum install ntp。完成後,配置開機啟動:chkconfig ntpd on,檢查是否設定成功:chkconfig --list ntpd其中2-5為on狀态就代表成功。

主節點配置

在配置之前,先使用ntpdate手動同步一下時間,免得本機與對時中心時間差距太大,使得ntpd不能正常同步。這裡選用65.55.56.206作為對時中心,ntpdate -u 65.55.56.206。

ntp服務隻有一個配置檔案,配置好了就OK。 這裡隻給出有用的配置,不需要的配置都用#注掉,這裡就不在給出:

driftfile /var/lib/ntp/drift

restrict 127.0.0.1

restrict -6 ::1

restrict default nomodify notrap 

server 65.55.56.206 prefer

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

配置檔案完成,儲存退出,啟動服務,執行如下指令:service ntpd start

檢查是否成功,用ntpstat指令檢視同步狀态,出現以下狀态代表啟動成功:

synchronised to NTP server () at stratum 2

time correct to within 74 ms

polling server every 128 s

如果出現異常請等待幾分鐘,一般等待5-10分鐘才能同步。

配置ntp用戶端(所有datanode節點)

driftfile /var/lib/ntp/drift

restrict 127.0.0.1

restrict -6 ::1

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

#這裡是主節點的主機名或者ip

server n1

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

ok儲存退出,請求伺服器前,請先使用ntpdate手動同步一下時間:ntpdate -u n1 (主節點ntp伺服器)

這裡可能出現同步失敗的情況,請不要着急,一般是本地的ntp伺服器還沒有正常啟動,一般需要等待5-10分鐘才可以正常同步。啟動服務:service ntpd start

因為是連接配接内網,這次啟動等待的時間會比master節點快一些,但是也需要耐心等待一會兒。

建立一個jdk的安裝目錄,我這裡是在/usr/local/下建立了Java目錄,指令:mkdir /usr/local/java ,再把 jdk-7u75-linux-x64.tar.gz壓縮包從opt目錄下複制到/usr/local/java目錄下,指令如下:

[plain] view plain copy

cp jdk-7u75-linux-x64.tar.gz /usr/local/java  

安裝jdk

五:解壓縮剛才下載下傳的: jdk-7u75-linux-x64.tar.gz包,指令如下:

[plain] view plain copy 在CODE上檢視代碼片派生到我的代碼片

tar xvf  jdk-7u75-linux-x64.tar.gz  

六:解壓完成後,進入到:

[[email protected]~]# cd /etc  

[[email protected] etc]# vi profile  

在profile檔案的末尾加入如下指令:

export JAVA_HOME=/usr/local/java/jdk1.7.0_75  

export JRE_HOME=/usr/local/java/jdk1.7.0_75/jre  

export PATH=$PATH:/usr/local/java/jdk1.7.0_75/bin  

export CLASSPATH=.:/usr/local/java/jdk1.7.0_75/lib:/usr/local/java/jdk1.7.0_75/jre/lib  

source /etc/profile  環境變量配置生效

主節點解壓安裝

cloudera manager的目錄預設位置在/opt下,解壓:tar xzvf cloudera-manager*.tar.gz将解壓後的cm-5.1.3和cloudera目錄放到/opt目錄下。

為Cloudera Manager 5建立資料庫

首先需要去MySql的官網下載下傳JDBC驅動,http://dev.mysql.com/downloads/connector/j/,解壓後,找到mysql-connector-java-5.1.33-bin.jar,放到/opt/cm-5.10.1/share/cmf/lib/中。

在主節點初始化CM5的資料庫:

/opt/cm-5.12.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p54321 --scm-host localhost scm scm scm

Agent配置

修改/opt/cm-5.10.1/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。

同步Agent到其他節點

scp -r /opt/cm-5.12.0 [email protected]:/opt/

在所有節點建立cloudera-scm使用者

useradd --system --home=/opt/cm-5.10.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

useradd --system --home=/opt/cm-5.10.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm-5-12-0

準備Parcels,用以安裝CDH5

将CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(parcel-repo需要手動建立)。

相關的檔案如下:

CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel

CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1

manifest.json

最後将CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1,重命名為CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha,這點必須注意,否則,系統會重新下載下傳CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel檔案。

相關啟動腳本

通過/opt/cloudera-manager/cm-5.12.0/etc/init.d/cloudera-scm-agent start啟動服務端。

通過/opt/cm-5.12.0/etc/init.d/cloudera-scm-agent start啟動Agent服務。

/opt/cloudera-manager/cm-5.12.0/etc/init.d/cloudera-scm-agent start

/opt/cm-5.10.1/etc/init.d/cloudera-scm-server hard_stop_confirmed restart

/opt/cm-5.10.1/etc/init.d/cloudera-scm-agent stop

我們啟動的其實是個service腳本,需要停止服務将以上的start參數改為stop就可以了,重新開機是restart。

安裝時,檢測錯誤

運作echo 0 > /proc/sys/vm/swappiness

vi /etc/sysctl.conf

添加vm.swappiness=0

運作“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”然後将同一指令添加到一個 init 腳本中,如 /etc/rc.local,這樣當系統重新開機時就會予以設定。

echo never > /sys/kernel/mm/transparent_hugepage/defrag

cp /opt/cm-5.10.1/share/cmf/lib/mysql-connector-java-5.1.34-bin.jar /opt/cloudera/parcels/CDH-5.3.2-1.cdh5.3.2.p0.10/lib/hive/lib/

繼續閱讀