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

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

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

安装linux

  1. 安装virtual box(略,这个没什么好说的,一直下一步就ok!) 
  2. 安装Linux虚拟机注意(选择第一个) 
  3. 添加虚拟机后网络配置

环境准备

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

  • 准备

  1. 关闭防火墙:

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

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

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

    [root@xiaoxiaomo ~]# ssh-keygen -t rsa  #生成rsa格式的ssh私钥和公钥
    [root@xiaoxiaomo ~]# ssh-copy-id -i xiaoxiaomo #如果你对大数据开发感兴趣,想系统学习大数据的话,可以加入大数据技术学习交流扣扣群:522+数字189+数字307,欢迎添加,私信管理员,了解课程介绍,获取学习资源把公钥复制到对方节点(这里我复制到自己的主机xiaoxiaomo01上)
    [root@xiaoxiaomo ~]# ssh xiaoxiaomo01 #验证
  5. 安装JDK  :
    ##解压到/data && 修改名称
    [root@xiaoxiaomo ~]# tar -zxvf /opt/jdk-8u144-linux-x64.tar.gz -C /data
    [root@xiaoxiaomo ~]# mv /data/jdk1.8.0_144/ /data/jdk
    ##配置环境变量
    [root@xiaoxiaomo ~]# vi /etc/profile
    export JAVA_HOME=/data/jdk
    export PATH=.:$JAVA_HOME/bin:$PATH
    

安装Hadoop

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

    [root@xiaoxiaomo ~]# tar -zxvf /opt/hadoop-2.7.2.tar.gz -C /data/
    [root@xiaoxiaomo ~]# mv /data/hadoop-2.7.2/ /data/hadoop
    [root@xiaoxiaomo ~]# mkdir -p /data/data/hdfs/name ##需要创建一个目录不然启动会报错
    [root@xiaoxiaomo ~]# 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>
    
  • 启动测试
    ## 格式化数据目录
    [root@xiaoxiaomo ~]# hdfs namenode -format
    ## 启动hdfs
    [root@xiaoxiaomo ~]# start-dfs.sh ##访问:http://xiaoxiaomo:50070
    ## 启动yarn
    [root@xiaoxiaomo ~]# start-yarn.sh ##访问:http://xiaoxiaomo:8088
    

安装zookeeper

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

安装HBase

[root@xiaoxiaomo ~]# tar -zxvf hbase-1.3.1-bin.tar.gz -C /data/
[root@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
    [root@xiaoxiaomo ~]# start-hbase.sh
    

安装MySQL

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

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

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

安装Hive

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

    [root@xiaoxiaomo 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

    [root@xiaoxiaomo 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.  

安装Kafka

  1. 解压 && 配置

    [root@xiaoxiaomo opt]# tar -zxvf kafka_2.11-0.11.0.0.tgz -C /data
    [root@xiaoxiaomo 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
    [root@xiaoxiaomo kafka]# mkdir -p /data/data/kafka/logs
    
  2. 启动 && 测试

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

安装Redis

  1. 解压编译

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

    ####将redis_init_script复制到/etc/rc.d/init.d/同时改名为redis
    [root@xiaoxiaomo redis-3.0.6]# cp /opt/redis-3.0.6/utils/redis_init_script /etc/rc.d/init.d/redis
    [root@xiaoxiaomo 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
    [root@xiaoxiaomo redis-3.0.6]# mkdir /etc/redis   
    [root@xiaoxiaomo redis-3.0.6]# cp /opt/redis-3.0.6/redis.conf /etc/redis/6379.conf
    
  4. 注册服务 && 启动 && 停止

    ## 注册redis服务:
    [root@xiaoxiaomo redis-3.0.6]# vim /etc/redis/6379.conf
    [root@xiaoxiaomo redis-3.0.6]# service redis start ##启动
    [root@xiaoxiaomo redis-3.0.6]# service redis stop ##停止
    [root@xiaoxiaomo redis-3.0.6]# redis-cli
    127.0.0.1:6379> shutdown ##停止
原创文章 117 获赞 16 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xyzkenan/article/details/103936671