你好,游客 登录
背景:
阅读新闻

Hadoop--快速搭建大数据开发环境

[日期:2017-07-31] 来源:小小默's Blog  作者: [字体: ]

最近自己电脑的磁盘坏了,导致数据也没了。安装好系统之后就是各种弄环境了,之前的博客也写过hadoop环境搭建 Hadoop  Hive  HBase  Kafka  Spark  MySQL  Redis 等等一系列的。

之前记录的目的也是为了方便自己吧,但整个流程下来还是的花费几个小时。从前面的博客找到从虚拟机的网络配置,下载软件上传在修改配置挺麻烦的。这里再次做个汇总,以后做这个过程或者升级就更加方便( 主要便捷是后面会给出一个Virtual Box的包直接导入就有这些所有环境了 )。

准备

  • 软件下载(可以通过该链接自己下载,同时我在附录中也提供了 百度云下载 地址)
  1. https://www.virtualbox.org/wiki/Downloads virtual box 使用了5.0.40版本
  2. http://vault.centos.org/6.5/isos/x86_64/ box 使用CentOS-6.5-x86_64-minimal.iso
  3. http://archive.apache.org/dist/hadoop/common 使用 hadoop-2.7.2
  4. http://archive.apache.org/dist/hbase/ 使用 hbase-1.3.1-bin.tar.gz
  5. http://archive.apache.org/dist/hive/ 使用apache-hive-1.2.1-bin.tar.gz
  6. http://archive.apache.org/dist/kafka/ 使用 kafka_2.11-0.11.0.0.tgz
  7. http://archive.apache.org/dist/zookeeper/ 使用 zookeeper-3.4.9.tar.gz
  8. http://archive.apache.org/dist/spark/ 使用 spark-2.0.0-bin-hadoop2.7.tgz
  9. http://www.oracle.com/technetwork/java/javase/downloads/index.html 使用 jdk-8u144-linux-x64.tar.gz
  10. https://redis.io/download 使用 redis-3.0.6.tar.gz
  11. https://dev.mysql.com/downloads/mysql/5.5.html?os=31&version=5.1 使用 mysql-5.7.9-1.el6.x86_64.rpm-bundle.tar

安装linux

  1. 安装virtual box(略,这个没什么好说的,一直下一步就ok!) 
  2. 安装Linux虚拟机注意(选择第一个) 
  3. 添加虚拟机后网络配置
  • 这个网络配置部分参考: http://blog.xiaoxiaomo.com/2016/11/11/VirtualBox-网络配置/

环境准备

  • 规划
  1. 创建一个data目录所有东西都放在那儿: mkdir /data
  2. 再在data目录下创建一个data目录用来保存一些数据,比如hdfs,kafka等: mkdir /data/data
  • 上传软件

  • 准备

  1. 关闭防火墙:

    [[email protected] ~]# service iptables stop 
    [[email protected] ~]# chkconfig --list | grep iptables
    
  2. 修改主机名:修改

    [[email protected] ~]# vi /etc/sysconfig/network
    ## 修改为:
    HOSTNAME=xiaoxiaomo
    
  3. 绑定hosts Name:

    [[email protected] ~]# vi /etc/hosts
    ## 添加
    192.168.56.102 xiaoxiaomo
    
  4. 设置ssh:

    [[email protected] ~]# ssh-keygen -t rsa  #生成rsa格式的ssh私钥和公钥
    [[email protected] ~]# ssh-copy-id -i xiaoxiaomo #把公钥复制到对方节点(这里我复制到自己的主机xiaoxiaomo01上)
    [[email protected] ~]# ssh xiaoxiaomo01 #验证
    
  5. 安装国内的yum镜像

    参考:

    http://blog.xiaoxiaomo.com/2016/02/11/Linux-Yum%E6%BA%90%E7%A0%81%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE/
  6. 安装JDK 参考,这里我们安装jdk1.8 
    ##解压到/data && 修改名称
    [[email protected] ~]# tar -zxvf /opt/jdk-8u144-linux-x64.tar.gz -C /data
    [[email protected] ~]# mv /data/jdk1.8.0_144/ /data/jdk
    ##配置环境变量
    [[email protected] ~]# vi /etc/profile
    export JAVA_HOME=/data/jdk
    export PATH=.:$JAVA_HOME/bin:$PATH
    

参考:

http://blog.xiaoxiaomo.com/2016/04/09/Hadoop-%E5%AE%89%E8%A3%85%E5%89%8D%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87/

安装Hadoop

  • 解压&&重命名&&配置环境变量

    [[email protected] ~]# tar -zxvf /opt/hadoop-2.7.2.tar.gz -C /data/
    [[email protected] ~]# mv /data/hadoop-2.7.2/ /data/hadoop
    [[email protected] ~]# mkdir -p /data/data/hdfs/name ##需要创建一个目录不然启动会报错
    [[email protected] ~]# vim /etc/profile ##添加如下
    export HADOOP_HOME=/data/hadoop
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
    
    ## 【**备注后面的环境变量就略了,参考附录中的环境变量**】
    
  • 配置

  1. 配置core-site.xml

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://xiaoxiaomo:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/data/data/hdfs/tmp</value>
            </property>
    
            <!-- 垃圾回收站
     <property>
     <name>fs.trash.interval</name>
     <value>1440</value>
     </property>
     -->
    </configuration>
    
  2. 配置hadoop-env.sh

    export JAVA_HOME=/data/jdk
    export HADOOP_LOG_DIR=/data/data/hdfs/logs
    
  3. 配置hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:///data/data/hdfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:///data/data/hdfs/data</value>
        </property>
            <property>
              <name>dfs.namenode.checkpoint.dir</name>
              <value>file:///data/data/hdfs/namesecondary</value>
            </property>
            <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>xiaoxiaomo:9001</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
            <property>
            <name>dfs.permissions</name>
            <value>false</value>
        </property>
            <!--
     <property>
     <name>dfs.hosts</name>
     <value>/data/hadoop/etc/hadoop/datanode-allow</value>
     </property>
     <property>
     <name>dfs.hosts.exclude</name>
     <value>/data/hadoop/etc/hadoop/datanode-deny</value>
     </property>
     -->
    </configuration>
    
  4. 配置log4j.properties

    hadoop.log.dir=/data/data/hdfs/logs
    
  5. 配置log4j.properties

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>xiaoxiaomo:10020</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>xiaoxiaomo:19888</value>
        </property>
        <property>
            <name>yarn.app.mapreduce.am.staging-dir</name>
            <value>/history</value>
        </property>
            <property>
            <name>mapreduce.jobhistory.done-dir</name>
            <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.intermediate-done-dir</name>
            <value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
        </property>
            <property>
                    <name>mapreduce.map.log.level</name>
                    <value>DEBUG</value>
            </property>
            <property>
                    <name>mapreduce.reduce.log.level</name>
                    <value>DEBUG</value>
            </property>
    </configuration>
    
  6. 配置slaves

    ##localtion修改为
    xiaoxiaomo
    
  7. yarn-env.sh

    export JAVA_HOME=/data/jdk
    export YARN_LOG_DIR=/data/data/hdfs/logs
    export YARN_ROOT_LOGGER=DEBUG,DRFA
    
  8. 配置yarn-site.xml

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>xiaoxiaomo</value>
            </property>
            <property>
            <name>yarn.resourcemanager.address</name>
            <value>xiaoxiaomo:8032</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>xiaoxiaomo:8030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>xiaoxiaomo:8031</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>xiaoxiaomo:8033</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>xiaoxiaomo:8088</value>
        </property>
            <property>
                    <name>yarn.log-aggregation-enable</name>
                    <value>true</value>
            </property>
    </configuration>
    

参考:

http://blog.xiaoxiaomo.com/2016/05/08/Hadoop-2-0%E4%BC%AA%E5%88%86%E5%B8%83%E5%BC%8F%E5%AE%89%E8%A3%85/

安装zookeeper

[[email protected] ~]# tar -zxvf /opt/zookeeper-3.4.9.tar.gz -C /data/
[[email protected] ~]# mv /data/zookeeper-3.4.9/ /data/zookeeper
## 配置环境变量略
[[email protected] ~]# vi /etc/profile ## 添加:export ZK_HOME=/data/zookeeper
[[email protected] ~]# cd $ZK_HOME/conf
[[email protected] conf]# mv zoo_sample.cfg zoo.cfg
[[email protected] conf]# vi zoo.cfg ##修改:dataDir=/data/data/zookeeper
[[email protected] conf]# vi log4j.properties  ##修改:zookeeper.log.dir=/data/data/zookeeper/logs
##启动
[[email protected] conf]# zkServer.sh start

参考:

http://blog.xiaoxiaomo.com/2016/05/05/Zookeeper-%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA/

安装HBase

[[email protected]xiaoxiaomo ~]# tar -zxvf hbase-1.3.1-bin.tar.gz -C /data/
[[email protected]xiaoxiaomo ~]# mv /data/hbase-1.3.1/ /data/hbase
  • 修改配置
  1. vi $HBASE_HOME/conf/hbase-env.sh

    export JAVA_HOME=/data/jdk
    export HBASE_LOG_DIR=/data/data/hbase/logs
    export HBASE_ROOT_LOGGER=INFO,DRFA
    
  2. vi $HBASE_HOME/conf/hbase-site.xml

    <property>
      <name>hbase.tmp.dir</name>
      <value>/data/data/hbase/tmp</value>
    </property>
    <property>
      <name>hbase.rootdir</name>
    <value>hdfs://xiaoxiaomo:9000/hbase</value>
    </property>
    <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
    </property>
    <!--zk -->
    <property>
      <name>hbase.zookeeper.quorum</name>
      <value>xiaoxiaomo</value>
    </property>
    <property> 
      <name>hbase.zookeeper.property.dataDir</name>
      <value>/data/data/hbase/zk</value>
    </property>
    
  3. vi $HBASE_HOME/conf/log4j.propertie

    hbase.log.dir=/data/data/hbase/logs ##修改为统一目录
    
  4. 启动

    ## 启动hbase
    [[email protected] ~]# start-hbase.sh
    

参考:

http://blog.xiaoxiaomo.com/2016/06/04/HBase-%E4%BC%AA%E5%88%86%E5%B8%83%E5%92%8C%E9%9B%86%E7%BE%A4%E6%A8%A1%E5%BC%8F/

安装MySQL

[[email protected] opt]# rpm -qa|grep mysql #如有就卸载
[[email protected] opt]# tar -xvf mysql-5.7.9-1.el6.x86_64.rpm-bundle.tar 
[[email protected] opt]# rpm -ivh mysql-community-common-5.7.9-1.el6.x86_64.rpm 
[[email protected] opt]# rpm -ivh mysql-community-libs-5.7.9-1.el6.x86_64.rpm 
[[email protected] opt]# rpm -ivh mysql-community-client-5.7.9-1.el6.x86_64.rpm 
[[email protected] opt]# yum install -y mysql-community-server-5.7.9-1.el6.x86_64.rpm 
[[email protected] opt]# mysqld --initialize #初始化
[[email protected] opt]# cat /var/log/mysqld.log #可以获取初始密码
[[email protected] opt]# chown -R mysql:mysql /var/lib/mysql #授权
[[email protected] opt]# /etc/init.d/mysqld start #启动
[[email protected] opt]# mysql -uroot -p #登录(通过默认的初始密码)

##登录进去后要重设密码
mysql>SET PASSWORD = PASSWORD('root');

##mysql启动&&停止
[[email protected] opt]# /etc/init.d/mysqld start ##启动服务
[[email protected] opt]# service mysqld start ##启动服务
[[email protected] opt]# /etc/init.d/mysqld stop ##启停止服务
[[email protected] opt]# service mysqld stop ##停止服务

参考:

http://blog.xiaoxiaomo.com/2016/02/22/Linux-%E8%BD%AF%E4%BB%B6%E5%AE%89%E8%A3%85%E4%B9%8BMysql/

安装Hive

[[email protected] opt]# tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /data/
[[email protected] opt]# mv /data/apache-hive-1.2.1-bin/ /data/hive
## 配置环境变量略
[[email protected] opt]# cd $HIVE_HOME
[[email protected] hive]# cp conf/hive-env.sh.template conf/hive-env.sh
[[email protected] hive]# cp conf/hive-default.xml.template conf/hive-site.xml
  • 修改配置
  1. hive-env.sh

    [[email protected] hive]# vim conf/hive-env.sh ##添加如下配置
    export JAVA_HOME=/data/jdk
    export HIVE_HOME=/data/hive
    export HADOOP_HOME=/data/hadoop
    
  2. hive-env.sh

    [[email protected] hive]# vim conf/hive-env.sh ##修改如下配置
    <property>
      <name>hive.querylog.location</name>
      <value>/data/data/hive/tmp</value>
    </property>
    
    <property>
      <name>hive.exec.local.scratchdir</name>
      <value>/data/data/hive/tmp</value>
    </property>
    
    <property>
      <name>hive.downloaded.resources.dir</name>
      <value>/data/data/hive/tmp</value>
    </property>
    
    <!-- 修改metadata为mysql -->
    <property>
    	<name>javax.jdo.option.ConnectionURL</name>
    	<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>
    </property>
    <property>
    	<name>javax.jdo.option.ConnectionDriverName</name>
    	<value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
    	<name>javax.jdo.option.ConnectionUserName</name>
    	<value>root</value>
    </property>
    <property>
    	<name>javax.jdo.option.ConnectionPassword</name>
    	<value>root</value>
    </property>
    
  3. 复制mysql驱动jar包到$HIVE_HOME/lib/目录下

  4. 启动。查看mysql数据库 ##[[email protected] hive]# hive

参考:

http://blog.xiaoxiaomo.com/2016/05/27/Hive-%E6%A6%82%E8%BF%B0%E4%B8%8E%E4%BD%BF%E7%94%A8/

安装Kafka

  1. 解压 && 配置

    [[email protected] opt]# tar -zxvf kafka_2.11-0.11.0.0.tgz -C /data
    [[email protected] opt]# mv /data/kafka_2.11-0.11.0.0/ /data/kafka
    ## 配置环境变量 && 修改配置文件
    cd $KAFKA_HOME
    log.dirs=/data/data/kafka/logs
    zookeeper.connect=xiaoxiaomo:2181
    [[email protected] kafka]# mkdir -p /data/data/kafka/logs
    
  2. 启动 && 测试

    ## 启动
    [[email protected] kafka]# nohup /data/kafka/bin/kafka-server-start.sh /data/kafka/config/server.properties >>/data/data/kafka/logs/kafka-server.log 2>&1 &
    ## 测试
    [[email protected] kafka]# bin/kafka-topics.sh --create --zookeeper xiaoxiaomo:2181 --replication-factor 1 --partitions 1  --topic hello
    [[email protected] kafka]# bin/kafka-topics.sh --describe --zookeeper xiaoxiaomo:2181   --topic hello
    

参考:

http://blog.xiaoxiaomo.com/2016/05/14/Kafka-%E9%9B%86%E7%BE%A4%E5%8F%8AAPI%E6%93%8D%E4%BD%9C/

安装Redis

  1. 解压编译

    [[email protected] ~]# yum -y install gcc #依赖于gcc
    [[email protected] ~]# tar -zxvf /opt/redis-3.0.6.tar.gz -C /data
    [[email protected] ~]# cd /data/redis-3.0.6/
    [[email protected] ~]# make PREFIX=/data/redis install   #安装到指定目录
    
  2. 将redis做成服务

    ####将redis_init_script复制到/etc/rc.d/init.d/同时改名为redis
    [[email protected] redis-3.0.6]# cp /opt/redis-3.0.6/utils/redis_init_script /etc/rc.d/init.d/redis
    [[email protected] redis-3.0.6]# vim /etc/rc.d/init.d/redis
    
  3. 配置

    ####修改下面4行
    >#chkconfig: 2345 80 90 ##注意:这个在上面蓝色字体第二行
    >EXEC=/data/redis/bin/redis-server##第七行
    >CLIEXEC=/data/redis/bin/redis-cli##第八行
    >$EXEC$CONF&##第二十行
    
    
    ## 配置环境变量 && 修改配置文件
    cd $REDIS_HOME
    ###配置文件拷贝到/etc/redis/${REDISPORT}.conf
    [[email protected] redis-3.0.6]# mkdir /etc/redis   
    [[email protected] redis-3.0.6]# cp /opt/redis-3.0.6/redis.conf /etc/redis/6379.conf
    
  4. 注册服务 && 启动 && 停止

    ## 注册redis服务:
    [[email protected] redis-3.0.6]# vim /etc/redis/6379.conf
    [[email protected] redis-3.0.6]# service redis start ##启动
    [[email protected] redis-3.0.6]# service redis stop ##停止
    [ro[email protected] redis-3.0.6]# redis-cli
    127.0.0.1:6379> shutdown ##停止




收藏 推荐 打印 | 录入: | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款