Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建

引言:之前大四的时候觉得大数据很火,就尝试搭建了一个单节点的hadoop玩过,最近工作慢慢有点空闲就开始搭建3节点的大数据平台,现在整个大数据的生态圈已经完善了很多了,花了一个星期终于搭建好了,各种组件玩起来简直不要太爽。

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 大数据集群配置.png

一、装虚拟机vm,集群初始配置
1、下载vm和ubuntu镜像,然后复制两份ubuntu,每台ubuntu都创建一个hadoop用户

sudo useradd -m hadoop -s /bin/bash  #创建hadoop用户,并使用/bin/bash作为shell
sudo passwd hadoop                   #为hadoop用户设置密码,之后需要连续输入两次密码
sudo adduser hadoop sudo             #为hadoop用户增加管理员权限
su - hadoop                          #切换当前用户为用户hadoop
sudo apt-get update                  #更新hadoop用户的apt,方便后面的安装

2、 更改主机名

vim /etc/sysconfig/network 

将localhost.localdomain修改为你要更改的名称,主机这里改为master,其他改为slave1,slave2

HOSTNAME=master

注意:重启才生效

3、做主机和IP的关系映射

vim /etc/hosts

添加下面字段

172.16.0.30 master
172.16.0.31 slave1
172.16.0.32 slave2

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 修改host.png

注意:一定在每一台机器都如此修改,可以在每台机器都用vim修改,也可以在一台机器修改完再用命令传送过去
命令:

scp -r /etc/hosts hadoop@172.16.0.31:/etc

4、安装ssh,设置SSH无密码登陆

sudo apt-get install openssh-server   #安装SSH server
ssh localhost                         #登陆SSH,第一次登陆输入yes
exit                                  #退出登录的ssh localhost
cd ~/.ssh/                            #如果没法进入该目录,执行一次ssh localhost
ssh-keygen -t rsa  

输入完 ssh-keygen -t rsa 需要连续敲击三次回车,如下图:

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 ssh三次回车.png

然后出现下图就成功了

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 成功的图.jpg

新建authorized_keys文件

touch  /root/.ssh/authorized_keys

A、将集群其他机器的rsa文件传送过来

scp ~/.ssh/id_rsa.pub hadoop@master:~/

此命令表示将文件复制到master主机上,命令在其他机器中输入,非master上。

B、在master上将密匙写入到authorized_keys中:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

A和B操作是每一台机器传密匙过来就写入到本机中。
(在slave1上将master和slave2的密匙传过来就写入。)
这第4小节的操作全部在其他机器照样操作。
测试:
ssh slave1

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 0.png

5、集群同步时间
时间同步可参照《zookeeper集群同步时间设置》来设置

二、hadoop集群搭建
1、编辑profile文件

sudo vim /etc/profile
source /etc/profile  #更新修改

将下列配置加到底部:

export JAVA_HOME=/usr/local/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/hive/lib

export SCALA_HOME=/usr/local/scala
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:$PATH

export  SPARK_HOME=/usr/local/spark
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

export  ZK_HOME=/usr/local/zookeeper
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${ZK_HOME}/bin:$PATH

export HBASE_HOME=/usr/local/hbase
export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$HBASE_HOME/bin:$PATH

export KYLIN_HOME=/usr/local/kylin
export PATH=$KYLIN_HOME/bin:$PATH
export hive_dependency=/usr/local/hive/conf:/usr/local/hive/lib/*:/usr/local/hive/hcatalog/share/hcatalog/hive-hcatalog-core-2.3.3.jar

export PHOENIX_HOME=/usr/local/phoenix
export PATH=$PATH:$PHOENIX_HOME/bin
export PHOENIX_CLASSPATH=$PHOENIX_HOME

export MAHOUT_HOME=/usr/local/mahout
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$PATH:$MAHOUT_HOME/conf:$MAHOUT_HOME/bin

2、java配置
首先卸载ubuntu自带openjdk,再安装oracle官方的jdk
卸载;

sudo apt-get remove openjdk*

去oracle官网下载linux版本的jdk,然后解压、重命名、移动:

tar  -xvf   jdk-8u144-linux-x64.tar.gz   #解压
mv  jdk1.8.0_144 java                        #重命名
mv  java /usr/local                              #移动

每台机器都要配置java
3、hadoop安装配置
3.1、修改 core-site.xml
core-site.xml在/usr/local/hadoop/etc/hadoop文件夹里

<configuration>
       <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
       </property>
       <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/home/hadoop/tmp</value>
               <description>Abase for other temporary directories.</description>
       </property>
        <property>
               <name>hadoop.proxyuser.hadoop.hosts</name>
               <value>*</value>
       </property>
       <property>
               <name>hadoop.proxyuser.hadoop.groups</name>
               <value>*</value>
       </property>
</configuration>

3.2配置hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME}修改为绝对地址:
export JAVA_HOME=/usr/local/java
3.3 配置 hdfs-site.xml

<configuration>
       <property>
                <name>dfs.namenode.secondary.http-address</name>
               <value>master:9001</value>
       </property>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/home/hadoop/dfs/name</value>
       </property>
      <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/home/hadoop/dfs/data</value>
       </property>
       <property>
               <name>dfs.replication</name>
               <value>3</value>
        </property>
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
</configuration>

3.4 配置mapred-site.xml
如果没有 mapred-site.xml 该文件,就复制mapred-site.xml.template文件并重命名为mapred-site.xml

<configuration>
          <property>
        <name>mapreduce.framework.name</name>
                <value>yarn</value>
           </property>
          <property>
                  <name>mapreduce.jobhistory.address</name>
                  <value>master:10020</value>
          </property>
          <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
       </property>
</configuration>

3.5 配置yarn-site.xml文件

<configuration>

        <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>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>master:8030</value>
       </property>
       <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
      </property>
      <property>
              <name>yarn.resourcemanager.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>

3.6 修改slaves

slave1 
slave2

3.7传送hadoop到其他机器

sudo scp -r /usr/local/hadoop hadoop@slave1:~/
sudo scp -r /usr/local/hadoop hadoop@slave2:~/

在每一台机器再用命令移动到各自的 /usr/local/目录下

sudo mv hadoop /usr/local/

3.8 hadoop启动
切换到/opt/hadoop/hadoop2.8/bin目录下输入
格式化namenode

./hdfs  namenode  -format

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

start-dfs.sh
start-yarn.sh

然后可以在浏览器输入: ip+50070或8088 端口查看

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 50070.png

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 hadoop.png

4、 配置Hive+Mysql
安装mysql
sudo apt-get install mysql-server
但是ubuntu18安装mysql是不会出现设置 root 帐户密码的
命令:
sudo vim /etc/mysql/debian.cnf

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 mysql.png

在这个文件里面有着MySQL默认的用户名和用户密码,

最最重要的是:用户名默认的不是root,而是debian-sys-maint

mysql -u debian-sys-maint -p

提示输入密码,输入刚刚那个复杂的密码,进入mysql

版本是5.7,password字段已经被删除,取而代之的是authentication_string字段,我的是5.7,所以要更改密码:

update mysql.user set authentication_string=password('password') where user='root'and Host = 'localhost';

重启:

service mysql restart

用命令进入:

sudo mysql -u root -p

4.1、 配置hive-site.xml

<name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://172.16.0.30:3306/hive?createDatabaseIfNotExist=true</value>

<name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>

<name>javax.jdo.option.ConnectionUserName</name>
   <value>root</value>

 <name>javax.jdo.option.ConnectionPassword</name> 
    <value>mima</value>

<name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>

<name>datanucleus.schema.autoCreateAll</name>
   <value>false</value>

4.2、元数据存储初始化

cd /usr/local/hive/bin    
schematool -initSchema -dbType mysql

4.3、允许hive连接mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'mima' WITH GRANT OPTION; 后面的mima是配置hive-site.xml中配置的连接密码
flush privileges 刷新mysql系统权限关系表
4.4、启动验证hive
hive

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 hive.jpg

如果发生slf4j jar包冲突报错,是因为Hadoop的slf4j 与hbase的slf4j jar包绑定冲突,移除其中一个即可。

 rm -rf  /usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar

三、Zookeeper的环境配置
1、下载zookeeper包后,解压:

tar  -xvf   zookeeper-3.4.10.tar.gz        #解压  
mv  zookeeper-3.4.10  zookeeper       #重命名文件名
mv  zookeeper   /usr/local                    #移动

2、修改配置文件
在集群的每台机器上都创建这些目录

mkdir   /usr/local/zookeeper/data  
mkdir   /usr/local/zookeeper/dataLog

在/usr/local/zookeeper/data里创建myid文件

touch  myid

修改master的myid文件为1,slave1为2,slave2为3

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 myid.png

3、新建zoo.cfg文件
切换到/usr/local/zookeeper/conf 目录下 ,没有zoo.cfg文件就新建一个,并加入以下内容

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

4、将zookeeper文件夹传送到其他机器

scp -r /usr/local/zookeeper hadoop@slave1:~/
scp -r /usr/local/zookeeper hadoop@slave2:~

再在每个机器将zookeeper文件夹移动到/usr/local/ 目录下
5、启动zookeeper
切换到/usr/local/zookeeper/bin
zkServer.sh start 需要在每台机器都逐一启动

常用命令
启动
zkServer.sh start
查看状态
zkServer.sh status
重启
zkServer.sh restart
关闭
zkServer.sh stop
四、HBase的环境配置
1、解压文件包

tar  -xvf   hbase-1.2.7-bin.tar.gz       #解压
mv  hbase-1.2.7  hbase                   #重命名
mv  hbase  /usr/local/                      #移动

2、查看版本

start-hbase.sh
stop-hbase.sh

hbase version 

3、修改hbase-env.sh
切换到 /usr/local/hbase/conf 下,

export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
export HBASE_PID_DIR=/usr/local/hbase/pids
export HBASE_MANAGES_ZK=false

4、修改 hbase-site.xml

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:8020/hbase</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>master</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master,slave1,slave2</value>
    </property>
    <property>
        <name>zookeeper.session.timeout</name>
        <value>60000000</value>
    </property>
    <property>
        <name>dfs.support.append</name>
        <value>true</value>
    </property>
</configuration>

注意:这个8020端口与 core-site.xml里的<name>fs.defaultFS</name>是一样的。
说明:hbase.rootdir:这个目录是region server的共享目录,用来持久化Hbase 。hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。
5、修改regionservers
指定hbase的主从,和hadoop的slaves文件配置一样
将文件修改为

slave1 
slave2

在一台机器上(最好是master)做完这些配置之后,我们使用scp命令将这些配置传输到其他机器上。
命令:

scp -r /usr/local/hbase hadoop@slave1:~/
scp -r /usr/local/hbase hadoop@slave2:~/

在每台机器移动hbase文件夹到 /usr/local/ 目录下

sudo mv hbase /usr/local

启动和停止

start-hbase.sh

stop-hbase.sh

打开网址 http://172.16.0.30:16010

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 hbase.png

五、Spark的环境配置
1、配置Scala

tar -xvf scala-2.12.2.tgz         
mv  scala-2.12.2  scala
sudo mv scala /usr/local/

2,配置Spark

tar -xvf spark-1.6.3-bin-hadoop2.4-without-hive.tgz
mv  spark-1.6.3-bin-hadoop2.4-without-hive  spark
sudo mv  spark /usr/local/

3、修改配置文件
切换到conf目录

cd /usr/local/spark/conf

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

export SCALA_HOME=/usr/local/scala
export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_HOME=/usr/local/spark
export SPARK_MASTER_HOST=172.16.0.30
export SPARK_MASTER_IP=172.16.0.30
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export SPARK_EXECUTOR_MEMORY=2G
export SPARK_LOCAL_IP=master
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

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

slave1
slave2

5、传输Scala以及spark到其他机器

scp -r /usr/local/scala hadoop@slave1:~/
scp -r /usr/local/scala hadoop@slave2:~/
scp -r /usr/local/spark hadoop@slave1:~/
scp -r /usr/local/spark hadoop@slave2:~/

然后在各自的机器将其移动到 /usr/local/ 目录下

sudo mv scala /usr/local/

6、spark启动
说明:要先启动Hadoop
切换到Spark目录下,启动spark

cd /usr/local/spark/sbin
start-all.sh                 

启动成功之后,可以使用jps命令在各个机器上查看是否成功。
可以在浏览器输入: ip+8080 端口查看

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 spark.png

六、配置kylin
1、安装

tar -zxvf apache-kylin-2.5.0-bin-hbase1x.tar.gz             #解压
mv apache-kylin-2.5.0-bin-hbase1x  kylin                      #重命名
sudo kylin  /usr/local/                                      #移动

2、配置kylin.sh
切换到kylin/bin 目录下

export KYLIN_HOME=/usr/local/kylin
export HBASE_CLASSPATH_PREFIX=${tomcat_root}/bin/bootstrap.jar:${tomcat_root}/bin/tomcat-juli.jar:${tomcat_root}/lib/*:$hive_dependency:$HBASE_CLASSPATH_PREFIX

3、配置kylin.properties
进入conf文件夹,修改kylin各配置文件kylin.properties如下:

kylin.rest.servers=master:7070
kylin.rest.timezone=GMT+8
kylin.job.jar=/usr/local/kylin/lib/kylin-job-2.5.0.jar
kylin.coprocessor.local.jar=/usr/local/kylin/lib/kylin-coprocessor-2.5.0.jar

4、配置kylin_hive_conf.xml和kylin_job_conf.xml
将kylin_hive_conf.xml和kylin_job_conf.xml的副本数设置为2

<property>
  <name>dfs.replication</name>
  <value>2</value>
  <description>Block replication</description>
</property>

5、启动服务
注意:在启动Kylin之前,先确认以下服务已经启动
启动zookeeper、hadoop、hbase

zkServer.sh start
start-all.sh
start-hbase.sh

启动 hivemetastore 服务

$HIVE_HOME/bin/hive --service metastore

还要启动hadoop的hdfs/yarn/jobhistory服务

mr-jobhistory-daemon.sh start historyserver

Web访问地址: http://172.16.0.30:7070/kylin/

《Hadoop+hive+zookeeper+hbase+spark+kylin+mahout集群搭建》 kylin.png

ADMIN/KYLIN 账户密码登录
七、配置mahout

tar -zxvf apache-mahout-distribution-0.13.0.tar.gz       #解压
mv apache-mahout-distribution-0.13.0 mahout            #重命名
sudo mahout /usr/local/                                 #移动

注意:全部的环境变量在前面编辑profile文件已经配置好了
注意:全部的环境变量在前面编辑profile文件已经配置好了
注意:全部的环境变量在前面编辑profile文件已经配置好了

    原文作者:jason_罗
    原文地址: https://www.jianshu.com/p/27b25f5a1de7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞