hadoop2.6.4+zookeeper3.4.9+spark1.6.0+hive2.1.0+hbase1.2.1

一:安裝環境
#selinux 關閉
一、臨時關閉(不用重啓機器):
setenforce 0 
二、修改配置文件須要重啓機器:
修改/etc/selinux/config 文件
將SELINUX=enforcing改成SELINUX=disabled
重啓機器便可html

#關閉防火牆
2.1) 重啓後生效 
開啓: chkconfig iptables on 
關閉: chkconfig iptables off 
2) 即時生效,重啓後失效 
開啓: service iptables start 
關閉: service iptables stop 
須要說明的是對於Linux下的其它服務均可以用以上命令執行開啓和關閉操做。 
在開啓了防火牆時,作以下設置,開啓相關端口, 
修改/etc/sysconfig/iptables 文件,添加如下內容: 搜索
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPTjava

#添加 ip和域
3.vim /etc/hosts
eg:
172.16.100.210  dev1.hadoop.feidai.com dev1
#修改別名
vim /etc/sysconfig/network
eg:
NETWORKING=yes
HOSTNAME=uat1.hadoop.feidai.com
#臨時生效
hostname 別名
#查看顯卡,綁定固定ip
eg:
DEVICE=em1
HWADDR=24:6E:96:58:7D:34
TYPE=Ethernet
UUID=43bf8c93-9bbc-42f8-820a-9477d4951298
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.100.217
NETMASK=255.255.255.0
GATEWAY=172.16.100.252node

4.ssh免密碼登錄
cd
ssh-keygen -t rsa  --------------------而後一直按回車鍵,就會按照默認的選項將生成的密鑰保存在.ssh/id_rsa文件中。
ls -a 
#默認在 ~/.ssh目錄生成兩個文件:
#id_rsa      :私鑰
#id_rsa.pub  :公鑰
cd ~/.ssh
cp id_rsa.pub authorized_keys 
#或者cat ~/.ssh/id_rsa.pub >> .ssh/authorized_keys  
#能夠實現本機免密碼登錄,把其它pc的公鑰添加到authorized_keys可實現免密碼訪問
ssh uat2 date #檢查ssh免密碼是否成功mysql

5.安裝jdk
#set java environment
#卸載已經 安裝的jdk
rpm -qa |grep java |xargs rpm -e --nodeps
#jdk-7u79-linux-x64.tar.gz
vim /etc/profile
#jdk1.7.0_79
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
#讓修改生效:
[root@localhost java]# source /etc/profile
#驗證JDK有效性
[root@localhost java]# java -versionlinux

#查看個版本兼容問題
hbase.apache.org/book.html#arch.overviewweb

一.zookeeper-3.4.6 安裝
vim /etc/profile
#zookeeper-3.4.6
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/binsql

tar -zxvf /usr/local/zookeeper-3.4.6.tar.gz
mv /usr/local/zookeeper-3.4.6 /usr/local/zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
#-----
修改如下內容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/zk_data
dataLogDir=/usr/local/zookeeper/zk_logs
clientPort=2181
maxClientCnxns=2000
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
保存退出
#-----
#而後建立一個tmp文件夾
mkdir -pv /usr/local/zookeeper/zk_data
#而後建立一個logs文件夾
mkdir -pv /usr/local/zookeeper/zk_logs
scp -r zookeeper root@slave1:/usr/local/
#最後向該文件寫入ID,填入myid文件裏
192.168.1.112機器:
echo "1" >> /usr/local/zookeeper/zk_data/myid
192.168.1.113機器:
echo "2" > /usr/local/zookeeper/zk_data/myid
192.168.1.114機器:
echo "3" > /usr/local/zookeeper/zk_data/myid數據庫

source /etc/profile
#啓動
zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@slave2 local]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@slave1 zookeeper]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@master local]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: followerapache

#數據清理文件
vim zkslCleanup.sh
#!/bin/bash
#Cleanup snapshots and transaction logs
          
#snapshot file dir
dataDir=/usr/local/zookeeper/zk_data/version-2
#tran log dir
dataLogDir=/usr/local/zookeeper/zk_logs/version-2
#zk log dir
logDir=/usr/local/zookeeper/zk_logs
#Leave 60 files
count=60
count=$[$count+1]
ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f
ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f
ls -t $logDir/zookeeper.log.* | tail -n +$count | xargs rm -fbootstrap

chmod +x zkslCleanup.sh

二.hadoop的HA配置

#統一時間
date -s "2017-08-03 17:18:00"
#hadoop-2.6.4
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_BIN=/usr/local/hadoop/bin
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

二.hadoop的HA配置(安裝環境就不在此細說)
mv hadoop-2.6.4 hadoop

cd /usr/local/hadoop/etc/hadoop
1.vim hadoop-env.sh

export HADOOP_LOG_DIR=/root/data/hadoop/log
export JAVA_HOME=/usr/java/jdk1.7.0_79

2.vim core-site.xml
<configuration>
   /*這裏的值指的是默認的HDFS路徑。當有多個HDFS集羣同時工做時,集羣名稱在這裏指定!該值來自於hdfs-site.xml中的配*/
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://nameservice</value>
      </property>
                           
   /*緩衝區大小:io.file.buffer.size默認是4KB*/
      <property>
      <name>io.file.buffer.size</name>
      <value>131072</value>
      </property>
                          
   /*這裏的路徑默認是NameNode、DataNode、JournalNode等存放數據的公共目錄。用戶也能夠本身單獨指定這三類節點的目錄。*/
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/root/data/hadoop/tmp</value>
      <description>Abase for other temporary directories. </description>
      </property>
                               
   
     <property>
      <name>hadoop.proxyuser.hduser.hosts</name>
        <value>*</value>
     </property>
                     
     <property>
       <name>hadoop.proxyuser.hduser.groups</name>
        <value>*</value>
     </property>
                       
   <!--這裏是ZooKeeper集羣的地址和端口。注意,數量必定是奇數,且很多於三個節點-->
     <property>
       <name>ha.zookeeper.quorum</name>
        <value>master:2181,slave1:2181,slave2:2181</value>
     </property>
</configuration>


3.vim hdfs-site.xml

<configuration>
    <!--指定DataNode存儲block的副本數量。默認值是3個,不要大於DataNode的數量 -->  
    <property>    
      <name>dfs.replication</name>    
         <value>3</value>    
    </property>   
                          
    <!--使用federation時,HDFS集羣別名。名字能夠隨便起,多個集羣時相互不重複便可-->    
    <property>    
      <name>dfs.nameservices</name>    
      <value>nameservice</value>    
    </property>  
                            
    <!-- 指定該集羣的namenode的機器 -->
    <property>
    <name>dfs.ha.namenodes.nameservice</name>
    <value>master,slave1</value>
    </property>
                          
    <!-- master的RPC通訊地址 -->
    <property>
      <name>dfs.namenode.rpc-address.nameservice.master</name>
        <value>master:8020</value>
    </property>
    <!-- master的http通訊地址 -->
    <property>
    <name>dfs.namenode.http-address.nameservice.master</name>
    <value>master:50070</value>
    </property>
                            
    <!-- slave的RPC通訊地址 -->
    <property>
    <name>dfs.namenode.rpc-address.nameservice.slave1</name>
    <value>slave1:8020</value>
    </property>
    <!-- slave的http通訊地址 -->
    <property>
    <name>dfs.namenode.http-address.nameservice.slave1</name>
    <value>slave1:50070</value>
    </property>
                            
    <!-- 指定NameNode的元數據edits在JournalNode上的存放位置 -->
    <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://master:8485;slave2:8485;slave1:8485/nameservice</value>
    </property>
                              
    <!-- 開啓NameNode故障時自動切換到另外一臺NameNode -->
    <property>
    <name>dfs.ha.automatic-failover.enabled.nameservice</name>
    <value>true</value>
    </property>
                                
    <!-- 指定該集羣出故障時,哪一個實現類負責執行故障切換 -->
    <property>
    <name>dfs.client.failover.proxy.provider.nameservice</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
                                    
    <!-- 一旦須要NameNode切換,使用ssh方式進行操做 -->
    <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
    </property>
                                      
    <!-- 若是使用ssh進行故障切換,使用ssh通訊時用的密鑰存儲的位置 -->
    <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_dsa</value>
    </property>
                                    
    <!-- connect-timeout鏈接超時 -->
    <property>
    <name>dfs.ha.fencing.ssh.connect-timeout</name>
    <value>30000</value>
    </property>
                            
    <!-- 指定JournalNode在本地磁盤存放數據的位置 -->
    <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/root/data/hadoop/journal</value>
    </property>
                                                         
    <property>    
    <name>dfs.namenode.name.dir</name>    
    <value>/root/data/hadoop/hdfs/namenode</value>    
    </property>    
                            
    <property>    
    <name>dfs.datanode.data.dir</name>    
    <value>/root/data/hadoop/hdfs/datanode</value>    
    </property>    
                            
   
    <!-- 在NN和DN上開啓WebHDFS (REST API)功能,不是必須 -->                                                                    
    <property>    
    <name>dfs.webhdfs.enabled</name>    
    <value>true</value>    
    </property> 
</configuration>

4.vim mapred-site.xml
<configuration>
   <!--hadoop對map-reduce運行框架一共提供了3種實現,在mapred-site.xml中經過"mapreduce.framework.name"個屬性來設置爲"classic"、 "yarn"或者"local"-->
      <property>
        <name>mapreduce.framework.name</name>
         <value>yarn</value>
      </property>
                      
   <!--MapReduce JobHistory Server地址-->
      <property>
      <name>mapreduce.jobhistory.address</name>
      <value>0.0.0.0:10020</value>
      </property>
                      
   <!--MapReduce JobHistory Server Web UI地址-->
      <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>0.0.0.0:19888</value>
      </property>
</configuration>
5.vim yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
   <property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
   </property>

   <property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
            </property>

  <!--resourcemanager的地址 -->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>slave2:2181,master:2181,slave1:2181</value>
    </property>

  <!--r啓動HA高可用性 -->
    <property>
      <name>yarn.resourcemanager.ha.enabled</name>
         <value>true</value>
    </property>
                              
     <!--指定resourcemanager的名字-->
      <property>
      <name>yarn.resourcemanager.cluster-id</name>
      <value>fd</value>
      </property>    

     <!--使用了2個resourcemanager,分別指定Resourcemanager的地址-->
        <property>
         <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
        </property>    
                                
     <!--自定ResourceManager1的地址-->
        <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>slaver1</value>
        </property>
                                
        <!--自定ResourceManager2的地址-->
        <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>slaver2</value>
        </property>
</configuration>

6. vim slaves
master
slave1
slave2

7. vim yarn-env.sh 
export JAVA_HOME=/usr/java/jdk1.7.0_79
#指定日誌存放目錄
export YARN_LOG_DIR=/root/data/hadoop/log


mkdir -pv /root/data/hadoop/tmp;
mkdir -pv /root/data/hadoop/journal;
mkdir -pv /root/data/hadoop/log;
mkdir -pv /root/data/hadoop/hdfs

2.啓動journalnode(分別在在主機名slave2,master,slave1; 或者在master啓動所有)
/usr/local/hadoop/sbin/hadoop-daemon.sh start journalnode
jps顯示進程
8058 Jps
8012 JournalNode
7794 QuorumPeerMain

3.格式化namenode(master,查看日誌是否成功)
hdfs namenode -format

4.格式化ZKFC(master)
hdfs zkfc -formatZK

5.NameNode從master同步到slave1(slave1,或者 scp -r /root/data/hadoop/hdfs root@slave1:/root/data/hadoop/)
hdfs namenode bootstrapstandby(查看是否生成hdfs/namenode 目錄)


6.啓動NameNode和DataNode
start-dfs.sh
8899 NameNode
8581 JournalNode
9305 Jps
7978 QuorumPeerMain
9034 DataNode

7.啓動ZookeeperFailoverController(master和slave1)
hadoop-daemon.sh start zkfc

8.啓動yarn(master或者slave1)
start-yarn.sh

http://192.168.19.129:50070/dfshealth.html#tab-overview
http://192.168.19.128:50070/dfshealth.html#tab-overview

(一個active,一個standby)

[root@master hadoop]# jps
8293 QuorumPeerMain
66803 DFSZKFailoverController
66408 NameNode
66060 JournalNode
67120 Jps
66534 DataNode

[root@slave1 hdfs]# jps
63317 DFSZKFailoverController
62838 JournalNode
63167 DataNode
63074 NameNode
7988 QuorumPeerMain
63537 Jps

[root@slave2 data]# jps
58483 Jps
7794 QuorumPeerMain
58192 JournalNode
58303 DataNode

hive2.1.0安裝
#(hive歷史版本)
 http://archive.apache.org/dist/hive/
 (hbase 兼容)
 http://hbase.apache.org/book.html#hive
 
mysql> create user 'hive'@'%' identified by 'hive';//建立用戶名和密碼

mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;//賦予hive用戶全部權限,'%'表示任何地址均可以經過hive用戶鏈接mysql,若是你想限制能夠加入你的ip
mysql> flush privileges;//刷新權限列表
mysql> create database hive;//建立數據庫
mysql> show grants for hive;//查看用戶權限
#重啓mysql服務
service mysqld restart;

#apache-hive-2.1.0-bin
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH

#在hdfs上建立hive存儲數據的相關目錄
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/log

#修改hive-site.xml文件
vim hive-site.xml

<configuration>  
    <property>  
        <name>hive.metastore.warehouse.dir</name>  
        <!--對應以上在hdfs建立的文件目錄-->
        <value>/usr/hive/warehouse</value>  
        <description>location of default database for the warehouse</description>  
    </property>  
    <property>  
        <name>hive.metastore.local</name>  
        <value>true</value>  
        <description>Use false if a production metastore server is used</description>  
    </property>  
    <property>  
        <name>hive.exec.scratchdir</name>  
        <value>/root/data/hive/tmp</value>  
        <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>  
    </property>  
    <property>  
        <name>javax.jdo.option.ConnectionURL</name> 
        <!--mysql的連接地址,這裏的hivedb是我已經在mysql中建立的數據庫,若是不寫就是default-->        
        <value>jdbc:mysql://192.168.19.130:3306/hive?createDatabaseIfNoExist=true</value>  
        <description> Roy  JDBC connect string for a JDBC metastore.  
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.  
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.  
    </description>  
    </property>  
    <property>  
        <name>javax.jdo.option.ConnectionDriverName</name>  
        <!--mysql的驅動-->
        <value>com.mysql.jdbc.Driver</value>  
        <description>User-Defined(Roy) Driver class name for a JDBC metastore</description>  
    </property>  
    <property>  
        <name>javax.jdo.option.ConnectionUserName</name> 
        <!--連接mysql的用戶名-->        
        <value>hive</value>  
        <description>User-defined(Roy)Username to use against metastore database</description>  
    </property>  
    <property>  
        <name>javax.jdo.option.ConnectionPassword</name>  
        <!--連接mysql的密碼-->
        <value>hive</value>  
        <description>User-defined(Roy)password to use against metastore database</description>  
    </property>  
        <property>  
        <name>hive.metastore.uris</name>
        <value>thrift://192.168.19.130:9083</value>
        <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> 
    </property> 
     <property>
       <name>hive.querylog.location</name>
       <value>/root/data/hive/tmp</value>
      <description>Location of Hive run time structured log file</description>
    </property>
</configuration>  
 

 
//hive的日誌文件
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties


#hive初始化(保證hadoop集羣已經啓動)
schematool -dbType mysql -initSchema

#啓動hive服務
hive --service metastore

#打開一個終端 輸入
hive

hbase1.2.1安裝

1.下載安裝包
http://archive.apache.org/dist/hbase/
解包  
tar -zxvf hbase-1.2.1.tar.gz
rm -rf hbase-1.2.1.tar.gz  
#重命名
mv hbase-1.2.1 hbase 
2.配置環境變量
vim /etc/profile
#hbase-1.2.1
export HBASE_HOME=/usr/local/hbase
export HBASE_BIN=/usr/local/hbase/bin
export PATH=$PATH:$HBASE_HOME/bin
export CLASSPATH=$CLASSPATH:$HBASE_HOME/lib
 #使環境變量生效
 source /etc/profile

3.修改配置文件
vim conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_79
export HBASE_CLASSPATH=/usr/local/hadoop/conf
export HBASE_PID_DIR=/root/data/hbase/pids
export HBASE_MANAGES_ZK=false

hbase-site.xml  
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://nameservice:8020/user/hbase</value>
</property>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
    <property>
    <name>hbase.master</name>
    <value>hdfs://nameservice:60000</value>
   </property>
   <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/data/hbase/data</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/root/data/hbase/tmp</value>
</property>

vim conf/regionservers
master
slave1
slave2

scp -r hbase root@slave1:/usr/local/
scp -r hbase root@slave2:/usr/local/

4.啓動
start-hbase.sh

[root@master local]# jps
8293 QuorumPeerMain
73399 HMaster
73744 Jps
66803 DFSZKFailoverController
66408 NameNode
66060 JournalNode
73527 HRegionServer
66534 DataNode

vim /etc/hosts
192.168.19.128 master nameservice
192.168.19.129 slave1 nameservice
192.168.19.130 slave2

nameservice:16030

hive 和hbase 整合

<property>  
  <name>hive.aux.jars.path</name>  
  <value>
      $HIVE_HOME/lib/hive-hbase-handler-2.1.0.jar,
      $HIVE_HOME/lib/hbase-client-1.1.1.jar,
      $HIVE_HOME/lib/zookeeper-3.4.6.jar,
      $HIVE_HOME/lib/guava-14.0.1.jar
  </value>  
</property> 

hive --auxpath $HIVE_HOME/lib/hive-hbase-handler-2.1.0.jar,$HIVE_HOME/lib/hbase-client-1.1.1.jar,$HIVE_HOME/lib/zookeeper-3.4.6.jar,$HIVE_HOME/lib/guava-14.0.1.jar --hiveconf hbase.zookeeper.quorum=master:2181,slave1:2181,slave2:2181

四。spark1.6.0 HA 

cd /root/spark/conf
spark-env.sh.template spark-env.sh
vim spark-env.sh

HADOOP_HOME=/home/hadoop/hadoop
HADOOP_CONF_DIR=/home/hadoop/hadoop/etc/hadoop/
SPARK_HOME=/root/spark
export SPARK_WORKER_DIR=/root/spark/master
export SCALA_HOME=/usr/local/scala/scala-2.11.8
export JAVA_HOME=/usr/local/java/jdk1.8.0_111
#export SPARK_MASTER_IP=pmaster
export SPARK_WORKER_MEMORY=10g
export SPARK_MASTER_WEBUI_PORT=8888
#export MASTER=spark://pmaster:7077
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/root/spark/lib/*:/root/tanjiong/libs/*

#該參數決定了yarn集羣中,最多可以同時啓動的EXECUTOR的實例個數。
SPARK_EXECUTOR_INSTANCES=3
#設置每一個EXECUTOR可以使用的CPU core的數量。
SPARK_EXECUTOR_CORES=7
#該參數設置的是每一個EXECUTOR分配的內存的數量
SPARK_EXECUTOR_MEMORY=8G
#該參數設置的是DRIVER分配的內存的大小
SPARK_DRIVER_MEMORY=8G
#Spark Application在Yarn中的名字
SPARK_YARN_APP_NAME=」beige.Spark-1.6.0″
#指定在yarn中執行,提交方式爲client
MASTER=yarn-cluster
#Standalone模式HA
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hmaster:2181,slave2:2181,slave4:2181 -Dspark.deploy.zookeeper.dir=/spark"


vim spark-default.conf

#若是沒有適合當前本地性要求的任務可供運行,將跑得慢的任務在空閒計算資源上再度調度的行爲,這個參數會引起一些tmp文件被刪除的問題,通常設置爲false
spark.speculation        false
#若是設置爲true,用jdbc方式鏈接,顯示的會是亂碼
spark.sql.hive.convertMetastoreParquet  false
#應用程序上載到HDFS的複製份數
spark.yarn.submit.file.replication 2
#Spark application master給YARN ResourceManager 發送心跳的時間間隔(ms)
spark.yarn.scheduler.heartbeat.interal-ms   5000
#僅適用於HashShuffleMananger的實現,一樣是爲了解決生成過多文件的問題,採用的方式是在不一樣批次運行的Map任務之間重用Shuffle輸出文件,也就是說合並的是不一樣批次的Map任務的輸出數據,可是每一個Map任務所須要的文件仍是取決於Reduce分區的數量,所以,它並不減小同時打開的輸出文件的數量,所以對內存使用量的減小並無幫助。只是HashShuffleManager裏的一個折中的解決方案。
spark.shuffle.consolidateFiles  true
#用來調整cache所佔用的內存大小。默認爲0.6。若是頻繁發生Full GC,能夠考慮下降這個比值,這樣RDD Cache可用的內存空間減小(剩下的部分Cache數據就須要經過Disk Store寫到磁盤上了),會帶來必定的性能損失,可是騰出更多的內存空間用於執行任務,減小Full GC發生的次數,反而可能改善程序運行的總體性能。這要看你的具體業務邏輯,是cache的多仍是計算的多。
spark.storage.memoryFraction     0.3
#一個partition對應着一個task,若是數據量過大,能夠調整次參數來減小每一個task所需消耗的內存.
spark.sql.shuffle.partitions 800
#Spark SQL在每次執行次,先把SQL查詢編譯JAVA字節碼。針對執行時間長的SQL查詢或頻繁執行的SQL查詢,此配置能加快查詢速度,由於它產生特殊的字節碼去執行。可是針對很短的查詢,可能會增長開銷,由於它必須先編譯每個查詢
spark.sql.codegen true
#咱們都知道shuffle默認狀況下的文件數據爲map tasks * reduce tasks,經過設置其爲true,可使spark合併shuffle的中間文件爲reduce的tasks數目。
spark.shuffle.consolidateFiles true


cp slaves.template slaves  

vim slaves
hmaster
slave1
slave2
slave3
slave4

環境變量配置 #spark-1.6.0-bin-hadoop2.6 export SPARK_HOME=/root/spark export SPARK_SBIN=/root/spark/sbin export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息