hadoop_hive_zookeeper_kafka_spark平台搭建

1. 搭建linux集群

一般在学习测试阶段最小的节点数是3个节点,因此在虚拟机中安装3个节点。我使用的虚拟机环境是VMware10,linux系统是64位 Centos 6.5 minimal版本。对于安装linux系统的过程就不在赘述了,网上有很多。安装好linux后,需要做好3件事:

  1. 修改主机名: 在/etc/sysconfig/network文件中修改
  2. 配置静态IP
  3. 配置主机名和IP地址的映射关系   /etc/hosts
  4. 关闭防火墙
       
  5. 关闭Selinux

安装好一个节点后,可以通过完全克隆的方式生成其他两个节点,在这里着重叙述下新克隆出的节点如何修改IP地址的方法。

   1 编辑  /etc/udev/rules.d/70-persistent-net.rules  注释掉包含eth0的行,把包含“eth1”行的“eth1”修改成“eth0”

 2 编辑 /etc/sysconfig/network-script/ifcfg-eth0 ,把其中的mac地址修改成虚拟机中的地址。

 3 修改ip地址

最后设置3个节点之间的无密钥登录,即ssh无密钥登录

  1. 在每台虚拟机中执行ssh-keygen -t rsa ,然后默认按Enter确认,最终在用户根目录.ssh目录中生成公钥和私钥

     2. 利用ssh-copy-id -i 主机名,将公钥拷贝至包括本机在内的其他机器上。

2. 安装JDK,

 我安装的版本dk1.8.0_111

3.搭建Hadoop平台

  对于Hadoop平台的搭建,主要是配置四个文件,core-site.xml,hdfs-site.xml,yarn-site.xml和mapred-site.xml,其实在hadoop的包中分别包含了默认的一些配置信息分别是core-site.default.xml,其他三个文件类似。由于hadoop预编译是基于32位系统的,所以我自己编译了下。对于hadoop的配置,我主要配置了以下一些信息:

  (1)core-site.xml

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://spark1:8020</value>
    </property>
    
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.7.3/data/tmp</value>
    </property>
    
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>CYM</value>
    </property>
</configuration>

  (2)hdfs-site.xml

<configuration>
     <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    
    <!--config namenode and secondarynamenode address -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>spark1:50070</value>
    </property>
    
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>spark1:50090</value>
    </property>
    
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///opt/modules/hadoop-2.7.3/data/dfs/nn/fsimage</value>
    </property>
    
    <property>
        <name>dfs.namenode.edits.dir</name>
        <value>
        file:///opt/modules/hadoop-2.7.3/data/dfs/nn/edits
        </value>
    </property>
    
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>
        file:///opt/modules/hadoop-2.7.3/data/dfs/dn
        </value>
    </property>
    
    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>file:///opt/modules/hadoop-2.7.3/data/dfs/snn/fsimage</value>
    </property>
    
    <property>
        <name>dfs.namenode.checkpoint.edits.dir</name>
        <value>file:///opt/modules/hadoop-2.7.3/data/dfs/snn/edits</value>
    </property>
    
</configuration>

  (3)yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>spark2</value>
    </property> 
    
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <property>    
            <name>yarn.nodemanager.vmem-check-enabled</name>    
            <value>false</value>            
    </property>  
</configuration>

  (4)mapred-site.xml

<configuration>
    <property>                         
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>spark1:10020</value>
        <description>MapReduce JobHistory Server IPC host:port</description>
    </property>
    
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>spark1:19888</value>
        <description>MapReduce JobHistory Server Web UI host:port</description>
    </property>
    
    <property>
        <name>mapreduce.job.ubertask.enable</name>
        <value>true</value>
    </property>
</configuration>

  4. 配置HIve

      Hive环境不需要搭建集群,因为hive的数据仓库就是存储在hdfs中,因此只在spark1主机上搭建:

      (1)下载hive包,解压后并配置环境变量

      (2) 安装mysql,yum install mysql-server  ,yum install mysql-connector.java,把生成lib文件拷贝至hive/lib下,开启mysql服务。最后在mysql上创建hive的元数据库,并对hive进行授权。

      (3)配置hive的配置文件

      hive-site.xml

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
</property>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
</property>

      hive-env.sh

export JAVA_HOME=。。。
export HIVE_HOME=。。。
export HADOOP_HOME=。。。

      (4)利用bin/schematool -initSchema -dbtype mysql进行格式化

  5. 配置Zookeeper、Kafka

    (1)首先解压zookeeper设置环境变量,在conf目录下把zoo_sample.cfg重命名为zoo.cfg。设置其中dataDIr目录,并添加

server.0=spark1:2888:3888    
server.1=spark2:2888:3888
server.2=spark3:2888:3888

    (2)在dataDir目录中  echo "0" >myid,其他节点上则依次是“1”,“2”。。。

   Kafka配置:

       (1)安装scala

    (2)解压kafka设置环境变量,在配置文件server.properties中将broker.id根据机器依次设置为"0","1","2"...;并添加zookeeper.connect

spark1:2181,spark2:2181,spark3:2181
启动服务
kafka-server-start.sh kafka_2.11-0.9.0.1/config/server.properties
创建话题topic
kafka-topics.sh --zookeeper spark1:2181,spark2:2181,spark3:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create
创建消息产生者
kafka-console-producer.sh --broker-list spark1:9092,spark2:9092,spark3:9092 --topic TestTopic                                   
创建消息消费者
kafka-console-consumer.sh --zookeeper spark1:2181,spark2:2181,spark3:2181 --topic TestTopic --from-beginning

  6.配置spark

     我下载的是spark2.1.0源码包,进行了编译,因为网络的问题编译了很久。将编译成功的spark配置环境变量,修改配置文件

  (1)spark-env.sh

SPARK_MASTER_HOST=spark2
export JAVA_HOME=/opt/modules/jdk1.8.0_111
export SCALA_HOME=/opt/modules/scala-2.11.6
export HADOOP_HOME=/opt/modules/hadoop-2.7.3
export SPARK_HOME=/opt/modules/spark-2.1.0
#export SPARK_CLASSPATH=$HIVE_HOME/lib:$SPARK_CLASSPATH
HADOOP_CONF_DIR=/opt/modules/hadoop-2.7.3/etc/hadoop

  (2)slave

spark1
spark2
spark3

  (3)启动spark:  start-all.sh

至此环境搭建完成!

posted on 2017-07-17 16:50  奔跑的火柴人  阅读(575)  评论(0)    收藏  举报

导航