hadoop/hbase/spark安裝

安裝母機(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
    通過(guò)編寫fabric腳本來(lái)安裝集群,對(duì)shell能力要求較高
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容