挺数目上系列的七 —– Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

  对象池是游戏支付被常用的优化措施。

引言

    在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试。其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式。至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了。。。 
    整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多。在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来。于是就有了本篇博文。
    其实我在搭建的时候,并不是按部就班的搭建,中间或多或少都更改过不少,试验出来了目前没啥问题的集群搭建。在写本文的时候,开始准备将环境在一台机器上搭建,然后全部传输到其他机器上。但是想了想,这样或许在搭建环境的时候快速,但是对于阅读者来说,不太友好。于是便拆分出来了,单独搭建一个也是可以的。好了,废话就少说了,教程如下。

  解决问题:在少数种类的戏,相同之对象会反复创与销毁,这些目标的创好耗时,因而,我们见面因为部分内存为代价,将即刻有些目标缓存起来,并无去销毁它,在用创造时,从缓存中将先前创好的目标获得出来下。

目录

[TOC]

  以Unity游戏开发被,创建GameObject是一个犯难的经过,本文将对GameObject类创建一个对象池。因为是一个格外常用之优化手段,因而,我们需要将那能好之移植到另外品种中,不妨放到一个纯净的常用工具的公文夹着,然后可以十分便宜的导出为package,并于其它类别受到导入引用。

一律、环境选择

public class PoolOfGameObjects
{
  private List<GameObject> pool;//存放提前创建好之对象缓存区
  private GameObject sample;//这个目标池缓存的靶子样本
  private int
index;//未下对象的职务坐标(比如10独目标,使用了3个,index就会见变成3,即pool[3]是产一个可用得对象)
}

1,集群机器安装图

这次因为是集群搭建,所以于环境布置方面,我下同一张表来大概讲述。集群使用了3尊机械,分别是master、slave1、slave2,通过名称命名就得知晓主从关系了。使用的操作系统是CentOS6.8,具体各个机器安装之部署如下表:
图片 1

实际每个机器的部署就假设齐图了。需要补充的凡,spark这块我莫下官方自带的spark,而是用的曾编译好的spark和hive的本子。因为背后在应用hive查询的时刻,不思量采取hive默认的mr,在hive2.x随后,官方也不建议了。因为运用mr效率实在太没有,所以于背后我会拿hive的发动机换成spark,而温馨又无思重新编译spark
,所以就因此这个本子了。如果各位想活动编译,或者出现又强之版,就从来不必要肯定按照地方的来。还有存放路径这块,没必要一定要是用方面的,可以优先以机及用
df -h 查看相应的磁盘空间,再来进展布置。

  首先,我们用去创造是池塘,即将其的性初始化:

2,配置说明

  • JDK :Hadoop和Spark 依赖的布,官方建议JDK版本在1.7以上!!!
  • Scala:Spark依赖的部署,建议版本不小于spark的本子。
  • Hadoop: 是一个分布式系统基础架构。
  • Spark: 分布式存储的那个数量进行拍卖的家伙。
  • zookeeper:分布式应用程序协调服务,HBase集群需要。
  • HBase: 一个结构化数据的分布式存储系统。
  • Hive: 基于Hadoop的一个数据仓库工具,目前底默认元数据库是mysql。

public PoolOfGameObjects(GameObject sample)
{
  this.sample =
sample;//不管怎么说,你还先使叫目标池一个靶做样本,不然池子里该放什么呢?
  pool = new List<GameObject>
();//把池塘初始化,不然你提前创建好之靶子要拓宽哪啊?
  index = -1;//现在池子里是拖欠的,所以若读取pool[-1]独见面博得错误。
}

3,下载地址

合法地址:
Hadoop:
http://www.apache.org/dyn/closer.cgi/hadoop/common

Spark:
http://spark.apache.org/downloads.html

Spark Sql on Hive
http://mirror.bit.edu.cn/apache/spark

Scala:
http://www.scala-lang.org/download

JDK:
http://www.oracle.com/technetwork/java/javase/downloads

HBase
http://mirror.bit.edu.cn/apache/hbase/

Zookeeper
http://mirror.bit.edu.cn/apache/zookeeper/

Hive
http://mirror.bit.edu.cn/apache/hive/

百度云:
链接:https://pan.baidu.com/s/1kUYfDaf 密码:o1ov

  接下我们复制一些样本的副本到池塘里:

次、集群的相干安排

private void Add(int count=1)
{
  for (int i = 0; i < count; i++)
  {
    GameObject copy = GameObject.Instantiate (this.sample);
    copy.SetActive
(false);//还不曾动的物体就叫其安静躺着池子里,不然可能会见吃渲染出来。
    pool.Add (copy);
  }
}

1,主机名反和主机及IP做相关映射

本条方式是私有的,我们的池塘很智能,不待外部为咱加水,当池子的靶子吃耗尽,池子会协调往里补充加更多会为此之目标。

1. 再次改主机名

说明:更改主机名是为了有利于集群管理,不然每个机器的号还深受localhost也未极端好吧!
集群所有的机还如举行这操作。

输入

 vim /etc/sysconfig/network 

拿localhost.localdomain修改为你一旦还改之称呼,每令名称还不相同
例如:

HOSTNAME=master

注: 名称更改了之后输入reboot重启才会生效。

  接下去,我们应于啊时往池里加对象啊?也许你的游艺有一个妙的加载界面,你可能想当此刻为池子里丰富差不多够用底靶子备用,也许你没那么多内存去存放多余的目标,你还是无晓而会因此到几乎只,或者您并从未足够的加载时间,只想吝啬的要一个常加加一个(在编程时,希望你能够举行一个吝啬鬼)。

2.召开主机及IP的关系映射

改hosts文件,做涉嫌映射
说明:这个每令机械还开此布局,具体ip和主机名称为友好之也以。
输入:

vim /etc/hosts

添加

192.169.0.23 master
192.169.0.24 slave1
192.169.0.25 slave2

图片 2
说明:可以于同宝机器上加了随后方可采取scp
命令或采取ftp将这个文件copy到 其他机器中。
scp命令示例:

scp -r /etc/hosts root@192.169.0.24:/etc

  不管您是前者还是后者,既然想给还多的品类能够复用,我们得克以满足两者的得,为了前者,我们需要另一个构建函数:

2,ssh免登录

安ssh免密码登录是为操作方便
变化秘钥文件
于各个台机械及都履行同一不折不扣
第一输入:

ssh-keygen -t rsa -P ''

浮动秘钥之后,然后以各个台机器/root/.ssh
都存入内容同样之文书,文件名称叫authorized_keys,文件内容是咱们刚刚为3宝机器生成的公钥。可以于同光机械上转,然后复制到另外的机械及。

新建authorized_keys文件
输入 :

 touch  /root/.ssh/authorized_keys

编辑 authorized_keys 并以另外机器上之秘钥拷贝过来

cat /root/.ssh/id_rsa.pub
vim /root/.ssh/authorized_keys

拿其他机器上的 id_rsa.pub 的始末拷贝到 authorized_keys这个文件被。
率先只机械:
图片 3

老二独机器:
图片 4

老三独机械:
图片 5

最终authorized_keys文件之始末
图片 6

以此最终之authorized_keys文件copy到外机器的 /root/.ssh
目录下。使用scp或者ftp都可。
scp命令示例:

scp -r /root/.ssh/authorized_keys root@192.169.0.24:/root/.ssh

测试不密码登录
输入:

ssh slave1
ssh slave2

输入 exit 退出
图片 7

public PoolOfGameObjects(GameObject sample,int capacity)
{
  this.sample = sample;
  pool = new List<GameObject> ();
  Add(capacity);
  index = 0;
}

3,防火墙关闭

说明:其实可以不闭馆防火墙,进行权力设置,但是为了便利访问,于是就关闭了防火墙。每个机器都做!!!

闭馆防火墙的下令
住防火墙:
service iptables stop
启航防火墙:
service iptables start
重复开防火墙:
service iptables restart
永远关闭防火墙:
chkconfig iptables off

于初始化池子的时刻,我们不怕朝里面创建了用户预计会用到的靶子副本个数。

4,时间安排

集群达之机械时如果联合,因为我立即边的是虚拟机,所以就算甭了。
安装集群时间一起可以使NTP服务。
切实可以参照: http://blog.csdn.net/to_baidu/article/details/52562574

 

5,快捷键设置(可选)

证实:因为若常常切换各个目录以内,所以为了偷懒,就设置别叫了。只待以linux输入别名,就可以实行别名后面的吩咐,相当之有益。
例如:我们常常因此底ll就是 ls -l 的号。关于别名这块各位好活动检索。
输入:

vim ~/.bashrc

累加脚的始末

# Some more ailases
alias chd='cd /opt/hadoop/hadoop2.8'
alias chb='cd /opt/hbase/hbase1.2'
alias chi='cd /opt/hive/hive2.1'
alias czk='cd /opt/zookeeper/zookeeper3.4'
alias csp='cd /opt/spark/spark2.0-hadoop2.4-hive'

alias fhadoop='/opt/hadoop/hadoop2.8/bin/hdfs namenode -format'
alias starthadoop='/opt/hadoop/hadoop2.8/sbin/start-all.sh'
alias stophadoop='/opt/hadoop/hadoop2.8/sbin/stop-all.sh'

alias starthbase='/opt/hbase/hbase1.2/bin/start-hbase.sh'
alias stophbase='/opt/hbase/hbase1.2/bin/stop-hbase.sh'

alias startzk='/opt/zookeeper/zookeeper3.4/bin/zkServer.sh start'
alias stopzk='/opt/zookeeper/zookeeper3.4/bin/zkServer.sh stop'
alias statuszk='/opt/zookeeper/zookeeper3.4/bin/zkServer.sh status'

alias startsp='/opt/spark/spark1.6-hadoop2.4-hive/sbin/start-all.sh'
alias stopsp='/opt/spark/spark1.6-hadoop2.4-hive/sbin/stop-all.sh'

图片 8

遂添加之后输入

source ~/.bashrc

然后输入设置的别名就可实施你所装的内容了。别名的安装不肯定非要遵照上面的,如果生还好法子尽管告以

  现在,你生出了一个塘,也许里面还有一部分目标供您下,现在来确定一下公能用者池塘来举行什么,首先,这个池子里之目标是供我们以出来用的,并且要您产生妙的军事管制习惯,你当看,用了还推广回原处是自然的,我们必定要是吝啬,如果您轻易扔,那么当你管池塘里的对象用老时,不得不重新要cpu再为卿创造一个,每创建一个副本,池子的体积就见面进一步好,你或觉得,我既将GameObject清理掉了,但池子并无会见知晓你及将其的管理对象清理了,它还是碰头也目标保留一个职。所以我们需要简单只主导办法,借用和归。

6,整体环境变量设置

当 /etc/profile
这个布局文件要增长很多的环境布置,这里就先行将一体化的环境布置列举出,各位在配置环境变量的以自己的吧遵循!!!
可以事先安排好环境变量之后,在传输到任何机器上。
我此先将这些部署都传至外的机上了,并且都source了,所以下文中斯布局文件的操作实际是没有开的。具体情况以温馨的也以。

#Java Config
export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
# Scala Config
export SCALA_HOME=/opt/scala/scala2.12
# Spark Config
export  SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
# Zookeeper Config
export ZK_HOME=/opt/zookeeper/zookeeper3.4
# HBase Config
export HBASE_HOME=/opt/hbase/hbase1.2
# Hadoop Config 
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
# Hive Config
export HIVE_HOME=/opt/hive/hive2.1
export HIVE_CONF_DIR=${HIVE_HOME}/conf

export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:$PATH

  首先是借:

亚、Hadoop的环境搭建

优先说明,这些部署可以在同尊机械及配置,然后复制到外机器上便实施了。复制之后注意要这些配置文件生效。

public GameObject Borrow()
{
  if (index >= 0 && index <
pool.Count)//index属性保存着可用对象的下标,我梦想会连续的博对象,而非是每次都失去巡回一全方位List,假如100个遭之所以少99单,得得循环多少次啊
  {
    pool[index].SetActive(true);
    return pool[index++];//借来一个继,浮标移动到就指在得下一样号
  }
  else
  {
    Add();//不足够得下,得吧池增加一个目标
    if (index < 0)
    {
      index = 0;//这里用index++也可以
    }
    return Borrow();
//刚刚没有借到,现在追加了一个目标,总好借给我了
  }
}

1,JDK配置

说明:
一般CentOS自带了openjdk,但是hadoop集群使用的是oracle官方的jdk,所以先卸载CentOS的jdk,然后再次设置于oracle下充斥好之JDK。
第一输入 java -version
查看是否安装了JDK,如果设置了,但本不符合的话,就卸载
图片 9

输入
rpm -qa | grep java
翻开信息
图片 10
接下来输入:
rpm -e –nodeps “你如推卸载JDK的音信”
如: rpm -e –nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
图片 11

确认没有了随后,解压下充斥下来的JDK

tar  -xvf   jdk-8u144-linux-x64.tar.gz

走至opt/java文件夹着,没有就新建,然后用文件夹又命名吧jdk1.8。

mv  jdk1.8.0_144 /opt/java
mv  jdk1.8.0_144  jdk1.8

接下来编辑 profile 文件,添加如下配置
输入:

vim /etc/profile

添加:

export JAVA_HOME=/opt/java/jdk1.8
export JRE_HOME=/opt/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

长成功以后,输入

source /etc/profile
java  -version 

翻是否配备成功

  有时候你得一次性借多单,你说到底不期望要来多水吧:

2,hadoop配置

public GameObject[] Borrow(int count)
{
  GameObject[] order = new GameObject[count];
  for (int i = 0; i < count;
i++)//不要介意这里运用的大循环,假如你拿这轮回放到里层,创建GameObject的时日复杂度是同样的,但会多调用几差方的主意,这里自己弗思呢这或多或少性质,多写有代码。
  {
    order[i] = Borrow();
  }
  return order;
}

3.2.1 文件准备

拿下载下来的Hadoop的布局文件进行解压
在linux上输入:

 tar  -xvf   hadoop-2.8.2.tar.gz

接下来以解压之后的文书夹移动及opt/hadoop文件夹下,没有该文件夹就新建,然后将文件夹又命名也hadoop2.8。
在linux上输入移动文件夹命令:

mv  hadoop-2.8.2 /opt/hadoop
mv  hadoop-2.8.2 hadoop2.8

  使用完毕以后,我们还要出色的将副本还回到:

3.2.2 环境布置

编辑 /etc/profile 文件
输入:

vim /etc/profile

添加:

export HADOOP_HOME=/opt/hadoop/hadoop2.8 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

输入:

source  /etc/profile

若果配置生效

public bool Lend(GameObject gameobject)
{
  for (int i = 0; i < index;
i++)//只需要以就借发的列表前有进行比较对
  {
    if
(pool[i].Equals(gameobject))//的确是以此池子里之放贷出去的目标
    {
      pool[i].SetActive(false);
      pool.Insert(pool.Count,
pool[i]);//将目标插入到结尾面待之后继续应用
      pool.Remove(pool[i]);//将原本的拖欠出来的岗位去丢
      index–;//浮标向前同各
      return true;//归还成功
    }
  }
  return false;//归还不成功
}

3.2.3 修改配置文件

修改 core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml
等这些部署文件
在linux输入进去该目录的一声令下:

cd /opt/hadoop/hadoop2.8/etc/hadoop

  同样的,归还你呢非思更好几浅吧:

3.2.3.1 修改 core-site.xml

hadoop的存放路径可以自行更改。开始我觉着这些文件夹需要手动创建,后来行了,如果不手动创建,会自行创建的,所以就算失丢了手动创建目录的步子。
输入:

vim core-site.xml

<configuration>节点内投入配置:

 <configuration>
<property>
    <name>hadoop.temp.dir</name>
    <value>file:/root/hadoop/tmp</value>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
<!-- eclipse连接hive 的配置-->
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
 </property>
 <property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>
</configuration>

图片 12

说明: fs.defaultFS 是缺省文件的称谓, 最早以的是
fs.default.name,后来在时官方文档中查阅及拖欠方式都废除用了。于是边转移成为是了。ps:感觉呢没有啥区别。

public GameObject[] Lend(GameObject[] gameobects)
{
  List<GameObject> notMatch = new List<GameObject>();
  for (int i = 0; i < gameobects.Length; i++)
  {
    if (!Lend(gameobects[i]))
    {
      notMatch.Add(gameobects[i]);
    }
  }
  return notMatch.ToArray();
}

3.2.3.2 修改 hadoop-env.sh

此只要召开,不知道干什么相对路径不识别,于是就下绝对路径。

export   JAVA_HOME=${JAVA_HOME}

修改为:

export   JAVA_HOME=/opt/java/jdk1.8

横流:修改也团结JDK的门道
图片 13

归还多只之变数多一些,我们拿无配合的对象拒退为用户。

3.2.2.3 修改 hdfs-site.xml

下面的hdfs的存路径,可以因自己机器更改。
<configuration>节点内投入配置:

 <property>
    <name>dfs:replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/root/hadoop/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/root/hadoop/data</value>
  </property>    

图片 14

  最后,我们尚欲有清理对象池的法子,有时候我们从没握住好初始化池子的高低,或者同一开始我们因此了森副本,但是下我们用的要命少,将未以的副本清理出来:

3.5.2.4 修改mapred-site.xml

执行mapreduce的运作框架配置。ps:感觉这个布局没啥用,可能本身尚未因此mr吧。
万一没 mapred-site.xml
该文件,就复制mapred-site.xml.template文件并重命名为mapred-site.xml。
改是新建的mapred-site.xml文件,在<configuration>节点内加入配置:

<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

public void Clear()
{
  if (index >= 0)
  {
    for (int i = pool.Count-1; i >=index; i–)
    {
      if
(!pool[i].activeSelf)//以防我们删掉正在以的目标,这仍是从未必要之。经过测试,有没出夫判断不会见招误删,但是多一致重合保险,有时候未必是坏事
      {
        GameObject.Destroy(pool[i]);
      }
    }
    pool.RemoveRange(index, pool.Count –
index);//把池塘的容量恢复至正的尺寸
  }
}

3.5.2.5 修改yarn-site.xml文件

yarn 资源调度的布,集群的话语是布局是必的。
修改/opt/hadoop/hadoop2.8/etc/hadoop/yarn-site.xml文件,
<configuration>节点内投入配置

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
   </property>
   <property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
   </property>
   <property>
        <description>The address of the scheduler interface.</description>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
   </property>
   <property>
        <description>The http address of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
   </property>
   <property>
        <description>The https adddress of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
   </property>
   <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
   </property>
   <property>
        <description>The address of the RM admin interface.</description>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
   <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8182</value>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
   </property>
   <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
   </property>
   <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
</property>
   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>

图片 15

证:yarn.nodemanager.vmem-check-enabled这个的意思是忽视虚拟内存的自我批评,如果您是安装在虚拟机上,这个布局非常有因此,配上后连续操作不爱生出题目。如果是实业机上,并且内存够多,可以以这个布局去丢。

  当你无思量只要之池子的上,需要销毁它来释放更多之内存:

3.5.2.6 修改slaves

安基本的布置。如果未设置是,集群就无法得知主从了。如果是单机模式,就无必要配置了。
修改/opt/hadoop/hadoop2.8/etc/hadoop/slaves文件
更改为

slave1 
slave2

这些安排参考Hadoop官方文档。
Hadoop官方配置文件具体说明: http://hadoop.apache.org/docs/r2.8.3/

以一如既往大机械及(最好是master)做扫尾这些配置之后,我们采取scp命令将这些安排传输到另外机器上。
输入:
jdk环境传输

scp -r /opt/java root@slave1:/opt
scp -r /opt/java root@slave2:/opt

hadoop环境传输

scp -r /opt/hadoop root@slave1:/opt
scp -r /opt/hadoop root@slave2:/opt

传之后,便以主节点启动集群。
于启动hadoop之前,需要初始化,这个只有需要在master上初始化就可了。

public void Destory(bool
force)//false时,仅仅销毁池子和莫运的目标,已经采用的靶子非见面给灭绝,但为无力回天还还给回来;true时,已经以的靶子呢会见被要挟销毁掉。
{
  int start;
  if (force)
  {
    start = 0;
  }
  else
  {
    start = index;
  }
  for (int i = pool.Count – 1; i >= start; i–)
  {
    if ((force) || (!pool[i].activeSelf))
    {
      GameObject.Destroy(pool[i]);
    }
  }
  pool.Clear();
}

3,hadoop启动

:启动hadoop之前确保防火墙关闭,各个机器时经过,ssh免登录都无问题。
初始化hadoop
切换到/opt/hadoop/hadoop2.8/bin目下输入

./hdfs  namenode  -format

初始化成功后,切换到/opt/hadoop/hadoop2.8/sbin
启动hadoop 的hdfs和yarn
输入:

start-dfs.sh
start-yarn.sh

先是次于登录会询问是不是连,输入yes ,然后输入密码就可以了
起步成功以后,可以动用jps命令于一一机器及查看是否中标
足于浏览器输入: ip+50070 和8088端口查看
图片 16

图片 17

要是一旦图展示,则启动成功。
比方败,检查jps是否中标启动,防火墙是否都关闭。都承认没有问题以后,还是无法打开界面,请查看日志,再来寻找原因。

  以上,就是一个GameObject对象池的骨干落实,放心大胆的安排在你的逐一Unity应用中,也许你还会碰到各种池,比如大规模的线程池,总体的思路都是这样,具体贯彻会晤略有不同,你还可创造一个联结的接口,添加各有特色的池塘,让您的池系统尤其健全

季、Spark的条件布置

说明:其实spark的连锁配置,我当非常数据上系列的六 —–
Hadoop+Spark环境搭建
http://www.panchengming.com/2017/12/19/pancm63/
应该既说之死详细了,虽然是单机环境。其实集群为就是加个slave配置,其他的小好像没什么了。所以就是概括的贴下配置。

1,Scala配置

暨JDK配置几乎如出一辙

4.1.1 文件准备

用生充斥好的Scala文件解压
输入

tar -xvf scala-2.12.2.tgz

然后倒到/opt/scala 里面
还要再命名吧scala2.1
输入

mv  scala-2.12.2  /opt/scala
mv scala-2.12.2 scala2.12

4.1.2 环境布置

编辑 /etc/profile 文件
输入:

export SCALA_HOME=/opt/scala/scala2.12
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:$PATH

输入:

source  /etc/profile

使配置生效
输入 scala -version 查看是否安装成功

2,Spark配置

4.2.1,文件准备

以下充斥好之Spark文件解压
输入

tar -xvf spark-1.6.3-bin-hadoop2.4-without-hive.tgz

下一场倒到/opt/spark 里面,并重命名
输入

mv  spark-1.6.3-bin-hadoop2.4-without-hive  /opt/spark
mv  spark-1.6.3-bin-hadoop2.4-without-hive  spark1.6-hadoop2.4-hive

4.2.2,环境布置

编辑 /etc/profile 文件
输入:

export  SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive 
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

输入:

source  /etc/profile

如若配置生效

4.2.3,更改配置文件

切换目录
输入:

cd /opt/spark/spark1.6-hadoop2.4-hive/conf
4.2.3.1 修改 spark-env.sh

以conf目录下,修改spark-env.sh文件,如果无 spark-env.sh
该文件,就复制spark-env.sh.template文件并重命名为spark-env.sh。
修改是新建的spark-env.sh文件,加入配置:

export SCALA_HOME=/opt/scala/scala2.1    
export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8    
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop  
export SPARK_HOME=/opt/spark/spark1.6-hadoop2.4-hive
export SPARK_MASTER_IP=master    
export SPARK_EXECUTOR_MEMORY=4G

:上面的路径为友好之也以,SPARK_MASTER_IP为主机,SPARK_EXECUTOR_MEMORY为设置的运作内存。

4.2.3.2 修改slaves

slaves 分布式文件
以conf目录下,修改slaves文件,如果没 slaves 该公文,就复制slaves
.template文件并重命名为slaves 。
改者新建的slaves 文件,加入配置:

slave1 
slave2

每当平玉机械及(最好是master)做扫尾这些配置之后,我们运用scp命令将这些安排传输至外机器上。
输入:
scala环境传输

scp -r /opt/scala root@slave1:/opt
scp -r /opt/scala root@slave2:/opt

spark环境传输

scp -r /opt/spark root@slave1:/opt
scp -r /opt/spark root@slave2:/opt

传之后,便在主节点启动集群。

3,spark启动

证实:要先期启动Hadoop
切换到Spark目录下
输入:

cd /opt/spark/spark2.2/sbin

接下来启动Spark
输入:

 start-all.sh

启动成功以后,可以使用jps命令于逐个机器及查看是否中标。
得以浏览器输入: ip+8080 端口查看

图片 18
假使成功展示是界面,则意味着Spark成功启动。

五、Zookeeper的环境布置

因HBase做集群,所以尽管用zookeeper了。
zookeeper
于群环境多建筑及,都见面发出客的身影,如kafka、storm等,这里就是非多说了。

1,文件准备

将下载下来的Zookeeper 的布文件进行解压
在linux上输入:

 tar  -xvf   zookeeper-3.4.10.tar.gz

然后倒到/opt/zookeeper里面,没有就新建,然后拿文件夹又命名为zookeeper3.4
输入

mv  zookeeper-3.4.10  /opt/zookeeper
mv  zookeeper-3.4.10  zookeeper3.4

2,环境布置

编辑 /etc/profile 文件
输入:

export  ZK_HOME=/opt/zookeeper/zookeeper3.4 
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${ZK_HOME}/bin:$PATH

输入:

source  /etc/profile

若果配置生效

3,修改配置文件

5.3.1 创建文件及目录

当集群的服务器上还创造这些目录

mkdir   /opt/zookeeper/data  
mkdir   /opt/zookeeper/dataLog

又在/opt/zookeeper/data目录下创造myid文件
输入:

touch  myid

创办成功以后,更改myid文件。
本人及时边为了便于,将master、slave1、slave2的myid文件内容改动也1,2,3
图片 19

5.3.2 新建zoo.cfg

切换到/opt/zookeeper/zookeeper3.4/conf 目录下
若是无 zoo.cfg 该文件,就复制zoo_sample.cfg文件并重命名为zoo.cfg。
修改是新建的zoo.cfg文件

dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/dataLog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

图片 20

说明:client
port,顾名思义,就是客户端连接zookeeper服务的端口。这是一个TCP
port。dataLogDir里是置于的各个日志(WAL)。而dataDir里放之是内存数据结构的snapshot,便于快速恢复。为了达成性能最大化,一般提议将dataDir和dataLogDir分及不同的磁盘上,这样就是可以充分利用磁盘顺序写的性状。dataDir和dataLogDir需要好创建,目录可以团结制订,对许即可。server.1中之这1待以及master这个机器上的dataDir目录中的myid文件中之数值对应。server.2中之是2急需与slave1这个机器上之dataDir目录中之myid文件中之数值对应。server.3中的这个3需要和slave2这个机器及之dataDir目录中的myid文件被的数值对应。当然,数值你可以管用,只要对应即可。2888暨3888底端口号也可以不管用,因为当不同机器及,用成一样呢无所谓。
1.tickTime:CS通信心跳数
Zookeeper 服务器之间或客户端和服务器之间维持心跳的光阴间隔,也就是每个
tickTime 时间就是见面发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
2.initLimit:LF初始通信时限
会师众多中之follower服务器(F)与leader服务器(L)之间开始连接时亦可耐受的极度多中心跳数(tickTime的数)。
initLimit=10
3.syncLimit:LF同步通信时限
集众多被的follower服务器和leader服务器之间请求与报之间会容忍的最为多中心跳数(tickTime的数据)。
syncLimit=5

依然用zookeeper传输到外的机械及,记得改 /opt/zookeeper/data
下之myid,这个不克一如既往。
输入:

scp -r /opt/zookeeper root@slave1:/opt
scp -r /opt/zookeeper root@slave2:/opt

4,启动zookeeper

以zookeeper是选举制,它的主从关系并无是像hadoop那样指定的,具体可看官方的文档说明。
打响安排zookeeper之后,在各台机器上启动zookeeper。
切换到zookeeper目录下

cd /opt/zookeeper/zookeeper3.4/bin

输入:

zkServer.sh start

遂启动以后
翻开状态输入:

 zkServer.sh status

足查看各个机器及zookeeper的leader和follower
图片 21

六、HBase的条件布置

1,文件准备

以下载下来的HBase的配置文件进行解压
在linux上输入:

 tar  -xvf   hbase-1.2.6-bin.tar.gz

接下来倒到/opt/hbase 文件夹里面,并重命名为 hbase1.2
输入

mv  hbase-1.2.6  /opt/hbase
mv  hbase1.2  /opt/hbase

2,环境布置

编辑 /etc/profile 文件
输入:

export HBASE_HOME=/opt/hbase/hbase1.2
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

输入:

source  /etc/profile

要是配置生效
输入
hbase version
查版本
图片 22

3,修改配置文件

切换到 /opt/hbase/hbase-1.2.6/conf 下

6.3.1 修改hbase-env.sh

编写 hbase-env.sh 文件,添加以下配置

export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HBASE_HOME=/opt/hbase/hbase1.2
export HBASE_CLASSPATH=/opt/hadoop/hadoop2.8/etc/hadoop
export HBASE_PID_DIR=/root/hbase/pids
export HBASE_MANAGES_ZK=false

图片 23
说明:配置的不二法门为祥和之也以。HBASE_MANAGES_ZK=false
是免启用HBase自带的Zookeeper集群。

6.3.2 修改 hbase-site.xml

编辑hbase-site.xml 文件,在<configuration>长如下配置

<property>
 <name>hbase.rootdir</name>
 <value>hdfs://master:9000/hbase</value>
 <description>The directory shared byregion servers.</description>
</property>
 <!-- hbase端口 -->
<property>
 <name>hbase.zookeeper.property.clientPort</name>
 <value>2181</value>
</property>
<!-- 超时时间 -->
<property>
 <name>zookeeper.session.timeout</name>
 <value>120000</value>
</property>
<!--防止服务器时间不同步出错 -->
<property>
<name>hbase.master.maxclockskew</name>
<value>150000</value>
</property>
<!-- 集群主机配置 -->
<property>
 <name>hbase.zookeeper.quorum</name>
 <value>master,slave1,slave2</value>
</property>
<!--   路径存放 -->
<property>
 <name>hbase.tmp.dir</name>
 <value>/root/hbase/tmp</value>
</property>
<!-- true表示分布式 -->
<property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
</property>
  <!-- 指定master -->
  <property>
    <name>hbase.master</name>
    <value>master:60000</value>
  </property>

</configuration>

图片 24
说明:hbase.rootdir:这个目录是region
server的共享目录,用来持久化Hbase 。hbase.cluster.distributed
:Hbase的运转模式。false是单机模式,true是分布式模式。若否false,Hbase和Zookeeper会运行在跟一个JVM里面。

6.3.3 修改regionservers

点名hbase的主导,和hadoop的slaves文件配置一样
用文件修改为

slave1 
slave2

图片 25
:上面的为集群的主机名称

以同光机械及(最好是master)做了这些安排之后,我们采取scp命令将这些部署传输到其它机器及。
输入:
hbase环境传输

scp -r /opt/hbaseroot@slave1:/opt
scp -r /opt/hbase root@slave2:/opt

传之后,便以主节点启动集群。

4,启动hbase

在成功启动Hadoop、zookeeper之后
切换到HBase目录下

cd /opt/hbase/hbase1.2/bin

输入:

start-hbase.sh

起步成功以后,可以动用jps命令在逐一机器及查看是否成
足在浏览器输入: ip+16010 端口查看
图片 26

要成功展示该界面,则启动成功。

七、Hive的环境设置配置

为hive安装使用无欲集群,只待在同一令机器上设置使用就得了,之前以我之
坏数据上系列之四 —–
Hadoop+Hive环境多建筑图文详解(单机)
http://www.panchengming.com/2017/12/16/pancm61/
里面已经教的老大详细,所以本文就未以描述了。

八、其他

环境搭建参考:
http://blog.csdn.net/pucao_cug/article/details/72773564
条件布置参考的官文档。

暨是,本课程就结束了,谢谢阅读!

版权声明:
作者:虚无境
博客园出处:http://www.cnblogs.com/xuwujing
CSDN出处:http://blog.csdn.net/qazwsxpcm    
私博客出处:http://www.panchengming.com
原创是,转载请标明出处,谢谢!

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注