hadoop+hbase+spark总结

hadoop+hbase+spark搭建

hadoop安装:
前期准备:
1.host配置和主机名
2.安装jdk
3.免密ssh登录

Hadoop搭建参考
1.在master上解压安装包

#下载  
wget http://apache.claz.org/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
#解压  
tar -xzvf  hadoop-2.7.3.tar.gz    -C /usr/local 
#重命名   
mv  hadoop-2.7.3  hadoop

2.配置master的环境变量
修改配置文件,vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin 

使得hadoop命令在当前终端立即生效

source /etc/profile

进入hadoop/etc/hadoop下
2.配置core-site.xml

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
        <description>namenode的地址</description>
    </property>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/data0/hadoop/tmp</value>
        <description></description>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/data0/hadoop/dfs/tmp</value>
        <description>namenode存放数据的目录</description>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>

3.配置hdfs-site.xml

<property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
        <description>文件副本数</description>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data0/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data0/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
		<description>权限管理</description>
    </property>
    <property>
        <name>dfs.blocksize</name>
        <value>16m</value>
    </property>

4.配置mapred-site.xml
拷贝mapred-site.xml.template为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml

<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
  </property>
   <property>
      <name>mapred.job.tracker</name>
      <value>http://master:9001</value>
  </property>

5.配置yarn-site.xml

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>spark_shuffle,mapreduce_shuffle</value>
    </property>
        <property>
    <name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
    <value>org.apache.spark.network.yarn.YarnShuffleService</value>
	<description>需要复制spark的jar到hadoop的share/hadoop/yarn/</description
</property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
        <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<property>
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value>16384</value> <!-- 16G -->
  </property>
  <property>
      <name>yarn.scheduler.minimum-allocation-mb</name>
      <value>2048</value>
  </property>
  <property>
      <name>yarn.scheduler.maximum-allocation-mb</name>
      <value>16384</value>
  </property>
  <property>
      <name>yarn.app.mapreduce.am.resource.mb</name>
      <value>4096</value>
  </property>

6、配置masters文件
vim masters

#内容
master

7、配置slaves文件(Master主机特有)

vim /usr/local/hadoop/etc/hadoop/slaves
 内容
master  #如果master也作为DataNode
slave1
slave2
slave3

此外在hadoop-env.sh中还有一些需要注意的配置

export JAVA_HOME=/usr/local/java/jdk1.8.0_201 #如果启动后报jdk的问题则需要修改为绝对路径
export HADOOP_SSH_OPTS="-p 8008" #如果ssh的port不是默认的,则需要修改

以上都是我的配置,有些是后期hbase和spark使用时出现问题修改之后的

最后复制master上的hadoop文件到各个slave上,删除slave内容,配置环境变量

启动集群
1、格式化HDFS文件系统:
进入master的~/hadoop目录,执行以下操作

bin/hadoop namenode -format

格式化namenode,第一次启动服务前执行的操作,以后不需要执行。

2、然后启动hadoop:

sbin/start-all.sh

3、使用jps命令查看运行情况

#master 执行 jps查看运行情况
25928 SecondaryNameNode
25742 NameNode
26387 Jps
26078 ResourceManager

#slave 执行 jps查看运行情况
24002 NodeManager
23899 DataNode
24179 Jps

4、查看hadoop状态
可以用命令hadoop dfsadmin -report,会输出集群的状态
也可以在网页上查看,http://master:50070/dfshealth.html#tab-overview

HBase安装

安装hbase
首先在master安装配置好之后,在复制到从节点

wget http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
#解压
tar -xzvf hbase-1.3.1-bin.tar.gz  -C /usr/local/
#重命名 
mv hbase-1.3.1 hbase

配置环境变量vim /etc/profile

#内容
export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$PATH

#使立即生效
source /etc/profile

修改配置文件
hbase 相关的配置主要包括hbase-env.sh、hbase-site.xml、regionservers三个文件,都在 /usr/local/hbase/conf目录下面:

1.配置hbase-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export HBASE_SSH_OPTS="-p 8018"
export HBASE_CLASSPATH=/usr/local/hbase/conf

#此配置信息,设置由hbase自己管理zookeeper,不需要单独的zookeeper。
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/usr/local/hbase
export HADOOP_HOME=/usr/local/hadoop
#Hbase日志目录
export HBASE_LOG_DIR=/usr/local/hbase/logs

2.配置 hbase-site.xml

<property>
                <name>hbase.rootdir</name>
                <value>hdfs://server207-ke.mars.ljnode.com:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
                <name>hbase.master</name>
                <value>server207-ke.mars.ljnode.com:60000</value>
        </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>server207-ke.mars.ljnode.com,slave</value>
        </property>

3.配置regionservers

master
slave1
slave2
slave3

之后复制hbase文件到slave中,配置环境变量

启动hbase
启动仅在master节点上执行即可

~/hbase/bin/start-hbase.sh
启动后,master上进程和slave进程列表

master中的信息
6225 Jps
2897 SecondaryNameNode   # hadoop进程
2710 NameNode            # hadoop master进程
3035 ResourceManager     # hadoop进程
5471 HMaster             # hbase master进程
2543 HQuorumPeer         # zookeeper进程

salve中的信息
4689 Jps
2533 HQuorumPeer          # zookeeper进程
2589 DataNode             # hadoop slave进程
4143 HRegionServer        # hbase slave进程

因为hbase依赖于hadoop,因此启动和停止都是需要按照顺序进行
如果安装了独立的zookeeper

启动顺序: hadoop-> zookeeper-> hbase
停止顺序:hbase-> zookeeper-> hadoop
使用自带的zookeeper
启动顺序: hadoop-> hbase
停止顺序:hbase-> hadoop

重启hbase

~/hbase/bin/stop-hbase.sh
~/hadoop/sbin/stop-all.sh
~/hadoop/sbin/start-all.sh
~/hbase/bin/start-hbase.sh

Spark on yarn
spark需要先安装scala
添加spark环境变量

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin

在conf下修改配置
1.spark-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export SCALA_HOME=/usr/local/scala
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=server207-ke.mars.ljnode.com
export SPARK_WORKER_MEMORY=16g
export SPARK_WORKER_CORES=4
export SPARK_WORKER_INSTANCES=2
export SPARK_SSH_OPTS="-p 8018"

2.spark-defaults.conf

cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf

添加
spark.yarn.jars hdfs:/master:9000/spark/lib_jars/*

3.slaves

master
slave1
slave2
slave3

上传jar

hadoop fs -mkdir /spark/lib_jars
hadoop fs -put jars/* /spark_jars

复制master的spark文件到slave上,修改环境变量

启动spark

sbin/start-all.sh

验证启动
jps命令,master上会多一个Master进程,slave会多Worker
网页上查看:http://master:8080

spark on yarn
spark有两种提交方式:
spark-submit 提交完整的文件
spark-shell 提交一行一行的脚本

提交的配置
–master MASTER_URL 如spark://host:port,yarn, yarn-cluster,yarn-client, local
–deploy-mode DEPLOY_MODE Client或者master,默认是client
–class CLASS_NAME 应用程序的主类
–name NAME 应用程序的名称
–jars JARS 逗号分隔的本地jar包,包含依赖的jar
–files FILES 逗号分隔的文件,提交的其他文件
–driver-memory MEM Driver内存,默认1G,一般不用很大
–executor-memory MEM 每个executor的内存,默认是1G。一般4-8G
–executor-core NUM 每个executor的核数。一般2-4
–num-executors NUM 启动的executor数量。不用很多,视情况而定
–queue QUEUE_NAME 队列名称
–conf PROP=VALUE 固定的spark配置属性,默认是conf/spark-defaults.conf

下面是conf的配置
spark.default.parallelism 每个stage的默认task数量,官网建议num-executors * executor-cores的2~3倍
spark.storage.memoryFraction RDD持久化数据在Executor内存中能占的比例,默认是0.6
spark.shuffle.memoryFraction shuffle过程中一个task拉取到上个stage的task的输出后,进行聚合操作时能够使用的Executor内存的比例,默认是0.2
spark.dynamicAllocation.enabled=true 开启动态资源分配
spark.dynamicAllocation.minExecutors 每个Application最小分配的executor数
spark.dynamicAllocation.maxExecutors 每个Application最大并发分配的executor数
spark.shuffle.service.enabled=true 启用External shuffle Service服务
spark.sql.shuffle.partitions SQL的partition数量,视SQL而定
park.speculation=true Worker倾斜可以将不给力的节点kill
spark.yarn.executor.memoryOverhead 内存上线

以上是我用到的spark相关的配置,和hadoop组件的安装经历,后续会补充

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值