博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop2.6.4+zookeeper3.4.9+spark1.6.0+hive2.1.0+hbase1.2.1
阅读量:6855 次
发布时间:2019-06-26

本文共 18219 字,大约阅读时间需要 60 分钟。

hot3.png

一:安装环境

#selinux 关闭
1、临时关闭(不用重启机器):
setenforce 0 
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可

#关闭防火墙

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 ACCEPT

#添加 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.252

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免密码是否成功

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 java]# source /etc/profile
#验证JDK有效性
[root java]# java -version

#查看个版本兼容问题

hbase.apache.org/book.html#arch.overview

一.zookeeper-3.4.6 安装

vim /etc/profile
#zookeeper-3.4.6
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

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: follower

#数据清理文件

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 -f

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

 

转载于:https://my.oschina.net/u/2510243/blog/845198

你可能感兴趣的文章
【VLC-Android】LibVLC API简介(相当于VLC的MediaPlayer)
查看>>
分享一个收集到的文件和目录操作类FileSystemObject
查看>>
团队建设的小技巧
查看>>
laravel 基础知识总结
查看>>
第八次会
查看>>
利用脚本打包的动态库 在打包发布时出现得问题解析 ERROR ITMS-90362等
查看>>
Tomcat安全配置规范
查看>>
Configure Dynamics 365 and Azure Service Bus Integration (using OneWay relay and listener)
查看>>
必须掌握的30种SQL语句优化
查看>>
day14-css边框以及其他常用样式
查看>>
还原数据库 提示数据在访问中,无法独占访问
查看>>
【其他】Xshell秘钥方式登陆服务器
查看>>
Codeforces 405C
查看>>
Tomcat之catalina.out日志分割
查看>>
Ubuntu下安装Matplotlib和basemap
查看>>
Fedora17 64bit 安装ORACLE 11gR2
查看>>
[转]以安装桌面体验功能为例来探索windows2012服务器管理器的新变化
查看>>
php 发送POST 请求
查看>>
angularjs四大核心特性
查看>>
售前工程师的成长---一个老员工的经验之谈(四)(转载)
查看>>