安裝母機(jī)linux
下載CentOS-6.5-x86_64-bin-minimal.iso進(jìn)行U盤安裝
安裝KVM虛擬化軟件
yum install kvm libvirt python-virtinst qemu-kvm virt-viewer bridge-utils #安裝
/etc/init.d/libvirtd start #啟動(dòng)
也可以在軟件管理器搜索kvm進(jìn)行安裝
虛擬化機(jī)器集群
橋接方式創(chuàng)建虛擬機(jī):
virt-install
--name=gateway #名字
--ram 4096 #內(nèi)存
--vcpus=4 #cpu核數(shù)
-f /home/kvm/gateway.img #文件
--cdrom /root/CentOS-6.5-x86_64-bin-minimal.iso #iso鏡像文件
--graphics vnc,listen=0.0.0.0,port=5920, #是否使用vnc連接器
--network bridge=br0 --force --autostart #采用橋接方式橋接br0卓舵,自動(dòng)啟動(dòng)
也可以在圖形化界面進(jìn)行新增操作话原。minimal安裝的linux需要先安裝桌面環(huán)境闽晦。
yum -y groupinstall Desktop
yum -y groupinstall "X Window System"
startx #啟動(dòng)圖形化
如果想默認(rèn)以圖形界面啟動(dòng),則修改/etc/inittab
id:5:initdefault: #3為默認(rèn)命令行鸿脓,5為圖形化刃泌,其他不常用
搭建環(huán)境前搖
1、網(wǎng)絡(luò)設(shè)置
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
HWADDR=52:54:00:00:9d:f1
IPADDR=192.168.0.231
PREFIX=24
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
2、關(guān)閉selinux
/etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
3虎韵、修改文件句柄
在/etc/security/limis.conf增加以下配置,將root替換為你想授權(quán)的用戶
root soft nofile 65535
root hard nofile 65535
root soft nproc 32000
root hard nproc 32000
4缸废、關(guān)閉防火墻
service iptables stop #現(xiàn)在關(guān)閉iptables
chkconfig --level 35 iptables off #以后重啟也不啟動(dòng)iptables
5包蓝、修改主機(jī)名和hosts
cat > /etc/sysconfig/network << EOF
> NETWORKING=yes
> HOSTNAME=spark-1
> GATEWAY=192.168.0.1
> EOF
cat >> /etc/hosts << EOF
> 192.168.0.231 spark-1
> 192.168.0.232 spark-2
> 192.168.0.233 spark-3
> 192.168.0.234 spark-4
> EOF
環(huán)境搭建
- ssh互通
每臺(tái)機(jī)器執(zhí)行以下命令:
ssh-keygen
touch authorized_keys
將每臺(tái)機(jī)器的id_rsa.pub的內(nèi)容拷貝到每臺(tái)機(jī)器的authorized_keys文件內(nèi) ssh-copy-id命令
- 安裝和配置啟動(dòng)hadoop
從官網(wǎng)下載hadoop-2.7.3.tar.gz到~
tar zxvf hadoop-2.7.3.tar.gz
mv hadoop-2.7.3 /usr/local
echo "HADOOP_HOME=/usr/local/hadoop-2.7.3" >> /etc/profile
echo "PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> /etc/profile
source /etc/profile
cd $HADOOP_HOME
# 修改core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.3/var</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://spark-1:9000</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>2880</value>
</property>
# 修改hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>spark-1:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>spark-2:50090</value>
</property>
# 修改mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>spark-1:8021</value>
</property>
# 修改slaves
spark-1
spark-2
spark-3
spark-4
# 啟動(dòng)hadoop
$HADOOP_HOME/bin/hadoop namenode -format
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
$HADOOP_HOME/bin/hadoop dfsadmin -safemode leave
安裝zookeeper
同上步驟1將zookeeper-3.4.6.tar.gz解壓到/usr/local,將ZOOKEEPER_HOME加到/etc/profile,更新PATH
創(chuàng)建data目錄和myid文件和logs目錄
mkdir -p $ZOOKEEPER_HOME/data
touch $ZOOKEEPER_HOME/myid
echo 1 > $ZOOKEEPER_HOME/myid #安裝的每臺(tái)機(jī)器擁有一個(gè)id驶社,一般安裝奇數(shù)臺(tái)機(jī)器,id一般0或1開始测萎,保證唯一性
mkdir -p $ZOOKEEPER_HOME/logs
配置zookeeper
cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
echo > zoo.cfg << EOF
> tickTime=2000
> dataDir=/usr/local/zookeeper-3.4.6/data
> dataLogDir=/usr/local/zookeeper-3.4.6/logs
> clientPort=2181
> tickTime=2000
> initLimit=10
> syncLimit=5
> server.0=spark-1:2888:3888
> server.1=spark-2:2888:3888
> server.2=spark-3:2888:3888
> EOF
啟動(dòng)zookeeper亡电,在每臺(tái)安裝機(jī)器執(zhí)行:
zkServer.sh start
zkServer.sh status #查看狀態(tài)
安裝hbase
同上解壓和配置環(huán)境變量
修改hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://spark-1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>spark-1:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>spark-1,spark-2,spark-3</value>
</property>
修改hbase-env.sh,添加以下內(nèi)容
export JAVA_HOME=/usr/local/jdk #java安裝目錄
export HBASE_LOG_DIR=/usr/local/hbase-1.2.1/logs #Hbase日志目錄
export HBASE_MANAGES_ZK=false #如果使用HBase自帶的Zookeeper值設(shè)成true 如果使用自己安裝的Zookeeper需要將該值設(shè)為false
修改regionservers,將安裝HBase的主機(jī)名加入硅瞧,去掉localhost啟動(dòng)hbase
$HBASE_HOME/bin/start-hbase.sh
安裝spark
如上解壓和配置環(huán)境變量
將hadoop的core-site.xml份乒、hdfs-site.xml和HBase的hdfs-site.xml拷到spark的conf目錄
修改spark-default.conf
spark.executor.memory 6g
spark.eventLog.enabled true
spark.eventLog.dir hdfs://spark-1:9000/spark-history
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.eventLog.compress true
spark.scheduler.mode FAIR
修改spark-env.sh
export HBASE_HOME=/usr/local/hbase-1.2.1
export HIVE_HOME=/usr/local/hive-1.2.1
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/local/spark-2.0.1-hadoop2.7/jars/hbase/*
export SCALA_HOME=/usr/local/scala
export JAVA_HOME=/usr/local/jdk
export SPARK_MASTER_IP=spark-1
export SPARK_WORKER_MEMORY=11g
export SPARK_WORKER_CORES=4
export SPARK_EXECUTOR_CORES=2
export SPARK_EXECUTOR_MEMORY=6g
export SPARK_DAEMON_MEMORY=11g
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.3/etc/hadoop
# export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=s1:2181,s2:2181,s3:2181 -Dspark.deploy.zookeeper.dir=/spark" #zookeeper管理模式
export SPARK_LOG_DIR=/usr/local/spark-2.0.1-hadoop2.7/logs
export SPARK_HISTORY_OPTS="-Dspark.history.retainedApplications=10 -Dspark.history.fs.logDirectory=hdfs://spark-1:9000/spark-history"
將hbase的lib下的以下jar包拷到spark的jars/hbase目錄
guava-12.0.1.jar hbase-client-1.2.1.jar hbase-common-1.2.1.jar hbase-protocol-1.2.1.jar hbase-server-1.2.1.jar htrace-core-3.1.0-incubating.jar metrics-core-2.2.0.jar protobuf-java-2.5.0.jar
啟動(dòng)spark
$SPARK_HOME/sbin/start-all.sh
$SPARK_HOME/sbin/start-history-server.sh
快捷安裝思路:
- 善用rsync:
由于幾乎大部分配置都是一樣,可以在一臺(tái)機(jī)器上先做以上配置腕唧,用rsync -avz 進(jìn)行文件夾同步或辖,然后每臺(tái)機(jī)器配置不同的地方 - 使用fabric
通過編寫fabric腳本來安裝集群,對(duì)shell能力要求較高