快速搭建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 ##停止
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章