VirtualBox、CentOS 6.四、Hadoop、Hive玩起

1 安裝VirtualBox:

VirtualBox是一款開源免費的而且很是強大的虛擬機軟件,同時支持X86AMD64/Intel64,能夠在多個操做系統平臺上運行。與同性質的VMWareVirtual PC比較,VirtualBox獨到之處包括支持遠程桌面協議RDPiSCSIUSB的支持。 java

64爲旗艦版Window7操做系統下安裝VirtualBox,直接點擊下載下來的.exe文件,可能會在安裝過程當中出現一些相似沒法寫入註冊表的錯誤,不過我在安裝過程當中幸運地避免了這些錯誤,由於我在安裝以前就搜索到網上的問題,經過他人的經驗就避開了這些陷阱。 node

首先打開命令行窗口:win+R,輸入cmd(以管理員身份運行),而後在命令行中輸入VirtualBox.exe所在路徑後輸入-extract。例如個人是 mysql

C:\Users\Administrator\Downloads\VirtualBox.exe –extract linux

而後回車,會彈出提示框指示把VirtualBox解壓後的路徑: sql

Files were extracted to C:\User\ADMINI~1\AppData\Local\Temp\VirtualBox 數據庫

根據提示找到解壓後的文件,雙擊其中的amd64.msi便可安裝VirtualBox 瀏覽器

抱歉因爲晚上才整理這份文檔,所以沒有可以及時截圖進行說明,只能以文字的形式解釋。 服務器

 

2 在VirtualBox上安裝CentOS 6.4:

         相信網上已經有不少很是詳細的教程教導如何在VirtualBox上安裝CentOS,我也是按照網上的教程一步一步進行安裝和配置的。惟一值得提一下的是,我很二的當啓動虛擬機的安裝時,直接讓安裝過程跳到自動登陸了,也就是跳過了整個安裝界面,這樣也能夠進入CentOS進行操做,可是這樣的操做每次關機後都不會被保存,由於根本沒有安裝CentOS嘛,可是爲何會不通過安裝就會自動登陸進去,這個問題須要查一下,請原諒我對CentOS剛上手,都要慢慢熟悉。重點在於須要按Enter進入安裝界面!而後就是按照教程配置,最後安裝完成後須要Reboot重啓。內存我配置了1024MB,虛擬硬盤20G,路徑爲D:\VirtualBox\CentOS-6.4-64bit.vid。安裝CentOS後默認Host key = right Ctrl,用於切換鼠標。 dom

 

3 CentOS 6.4中Hadoop僞分佈模式安裝:

         Hadoop僞分佈模式是在單機上模擬Hadoop分佈式,單機上的分佈式並非真正的分佈式,而是使用線程模擬分佈式。Hadoop自己沒法區分僞分佈和分佈式,兩種配置也很類似,惟一不一樣的是僞分佈式是在單機器上配置,數據節點和名字節點均是一個機器。我是在CentOS 6.4上搭建Hadoop1.2.1僞分佈模式,搭建環境所需的軟件包括:CentOS 6.4jdk-7u45-linux-x64.rpmhadoop-1.2.1.tar.gz ssh

3.1 安裝JDK並配置Java環境變量:

      因爲是64bit的操做系統,注意下載JDK時也是要64bit

CentOS安裝成功後,系統自帶OpenJDK,查看相關安裝信息:rpm qa | grep java

查看系統自帶JDK的版本信息:java –version

卸載系統自帶OpenJDK

rpm –e –nodeps java-1.7.0-openjdk-1.7.0.19-2.3.9.1.el6_4.x86_64(請注意這裏刪除的OpenJDK就是以前查看獲得的OpenJDK的安裝信息中所顯示的)

rpm –e –nodes java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.x86_64

rpm –e –nodes tzdata –java-2013b-1.el6.noarch

(注意刪除時根據實際安裝信息進行刪除)

         而後進入JDK所在路徑,安裝JDKrpm –ivh jdk-7u45-linux-x64.rpm,默認狀況下jdk會安裝在/usr/java目錄下。

         而後配置環境變量:vi + /etc/profile

profile文件末尾添加以下內容:

JAVA_HOME=/usr/java/jdk1.7.0_45

JRE_HOME=/usr/java/jdk1.7.0_45/jre

PATH=$PATH:$JAVA_HOME/bin:$JER_HOME/bin(注意:冒號爲分隔符)

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

Export JAVA_HOME JRE_HOME PATH CLASSPATH

vi編輯器增長以上內容後保存退出,並執行如下命令是配置生效:source /etc/profile

配置完成後,輸入java –version,如出現如下信息說明java環境安裝成功:

java version 「1.7.0_45」

Java(TM) SE Runtime Environment(build 1.7.0_45)

Java HotSpot(TM) Server VM(build 1.7.0_45, mixed mode)

查看JAVA_HOMEecho JAVA_HOME

 

3.2 SSH無密碼驗證配置:

         Hadoop須要使用SSH協議,namenode將使用SSH協議啓動namenodedatanode進程,僞分佈模式數據節點和名字節點都是自己,所以配置SSH localhost無密碼驗證登錄就會方便不少。實際上,在Hadoop的安裝過程當中,是否免密碼登錄是可有可無的,可是若是不配置免密碼登錄,每次啓動Hadoop都須要輸入密碼以登錄到每臺機器的DataNode上,考慮到通常的Hadoop集羣動輒擁有數百或上千臺機器= =,所以通常說來都是配置SSH的免密碼登錄。

         CentOS中,已經含有SSH的全部須要的套件了,默認狀況是不須要再次安裝。使用root權限執行如下命令。

1、檢查Linux是否安裝SSHrpm –qa | grep ssh(下載安裝SSHyum install ssh

2、檢查ssh服務是否開啓:service sshd status(開啓ssh服務:service sshd start

3、查看ssh服務是否開機自動啓動:chkconfig –list sshd,如圖所示爲開機自動啓動:

設置開機自動啓動ssh服務:chkconfig sshd on


4、配置免密碼登錄本機:在root權限進行,查看root文件夾下是否存在.ssh文件夾,這是一個隱藏文件ls –a,通常安裝ssh是會自動在當前用戶下建立這個隱藏文件夾,若是沒有能夠手動建立一個。接下來輸入命令:注意命令中不是雙引號,是兩個單引號

這樣免密碼登錄本機已經配置完成,能夠經過ssh本機IP測試是否須要密碼登錄,如圖所示說明配置免密碼登錄成功!

 

3.3 配置Hadoop:

1、下載hadoop-1.2.1.tar.gz,將其拷貝到/usr/local/hadoop目錄下,而後在該目錄/usr/local/hadoop下解壓安裝生成文件/hadoop-1.2.1(即hadoop被安裝到/usr/local/hadoop/ hadoop-1.2.1文件夾下):tar –zxvf hadoop-1.2.1.tar.gz

2、配置hadoop的環境變量:

vi /etc/profile

#set hadoop

export HADOOP_HOME=/usr/local/hadoop/hadoop-1.2.1

export PATH=$HADOOP_HOME/bin:$PATH

輸入命令source /etc/profile使剛配置的文件生效。

3、進入/usr/local/hadoop/hadoop-1.2.1/conf,配置Hadoop配置文件:

3.1、配置hadoop-env.sh文件:

vi hadoop-env.sh

# set java environment

export JAVA_HOME=/usr/java/jdk1.7.0_45(根據實際狀況配置)

qw(編輯後保存退出)

 

3.2、配置core-site.xml

vi core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

   <property>

     <name>fs.default.name</name>

     <value>hdfs://localhost:9000/</value> 注:9000後面的「/ 」不能少

   </property>

    <property>

      <name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop/hadoop-1.2.1/hadooptmp</value> 注:本身在該路徑下建立文件夾hadooptmp

</property>

</configuration>

說明:hadoop分佈式文件系統的兩個重要的目錄結構,一個是namenode上名字空間的存放地方,一個是datanode數據塊的存放地方,還有一些其餘的文件存放地方,這些存放地方都是基於hadoop.tmp.dir目錄的,好比namenode的名字空間存放地方就是${hadoop.tmp.dir}/dfs/name, datanode數據塊的存放地方就是${hadoop.tmp.dir}/dfs/data,因此設置好hadoop.tmp.dir目錄後,其餘的重要目錄都是在這個目錄下面,這是一個根目錄。我設置的是/usr/local/hadoop/hadoop-1.2.1/hadooptmp,固然這個目錄必須是存在的。

 

3.3、配置hdfs-site.xml

vi hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

  <property>

     <name>dfs.replication</name>  (備份的數量)

     <value>1</value>

  </property>

</configuration>

 

3.4、配置mapred-site.xml

vi mapred-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

  <property>

     <name>mapred.job.tracker</name>

     <value>localhost:9001</value>

  </property>

</configuration>

 

3.5、配置masters文件和slaves文件(通常此二文件的默認內容即爲下述內容,無需從新配置):

vi masters

localhost

vi slaves

localhost

注:由於在僞分佈模式下,做爲master的namenode與做爲slave的datanode是同一臺服務器,因此配置文件中的ip是同樣的。

 

3.6、主機名和IP解析配置:

vi /etc/hosts

編輯主機名:vi /etc/hostname

localhost.localdomain編輯保存後退出

vi /etc/sysconfig/network

注:這三個位置的配置必須一致!

 

4、啓動Hadoop

4.1、進入/usr/local/hadoop/hadoop-1.2.1/bin目錄,格式化namenode

hadoop namenode –format

 

4.2、啓動Hadoop全部進程,進入/usr/local/hadoop/hadoop-1.2.1/bin目錄:start-all.sh

啓動完成後,能夠用jps命令查看Hadoop進程是否徹底啓動,正常狀況下應該有以下進程:

16890 Jps

14663 TaskTracker

14539 JobTracker

14460 SecondaryNameNode

14239 NameNode

14349 DataNode

說明:

1.secondaryname是namenode的一個備份,裏面一樣保存了名字空間和文件到文件塊的map關係,建議運行在另一臺機器上,這樣master死掉以後,還能夠經過secondaryname所在的機器找回名字空間,和文件到文件塊得map關係數據,恢復namenode。

2.啓動以後,在/usr/local/hadoop/hadoop-1.2.1/hadooptmp下的dfs文件夾裏會生成data目錄,這裏面存放的是datanode上的數據塊數據,由於是僞分佈模式,因此name 和 data都在一個機器上,若是是集羣的話,namenode所在的機器上只會有name文件夾,而datanode上只會有data文件夾。

 

在搭建Hadoop過程當中,出現問題:Warning$HADOOP_HOME is deprecated

通過查看hadoop-1.2.1hadoophadoop-config.sh腳本,發現對於HADDP_HOME作了判斷,解決方法以下:

hadoop-env.sh,添加一個環境變量:export HADOOP_HOME_WARN_SUPPRESS=true

 

5、查看集羣狀態:hadoop dfsadmin –report

打開瀏覽器輸入部署Hadoop服務器的IP

http://localhost:50070

http://localhost:50030


4 CentOS 6.4 Hadoop集成Hive:

1、下載hive-0.12.0.tar.gz,將其拷貝到/usr/local/hive目錄下,而後在該目錄/usr/local/hive下解壓安裝生成文件/hive-0.20.0tar zxvf hive-0.20.0.tar.gz

 

2、配置hive的環境變量:

vi /etc/profile

#set hive

export HIVE_HOME=/usr/local/hive/hive-0.20.0

export PATH=$HIVE_HOME/bin:$PATH

輸入命令source /etc/profile使剛配置的文件生效


3、進入/usr/local/hive/hive-0.20.0/conf,依據hive-env.sh.template,建立並配置hive-env.sh

# cp hive-env.sh.template  hive-env.sh

# vi hive-env.sh

export HIVE_CONF_DIR=/usr/local/hive/hive-0.20.0/conf  //設置hive配置文件的路徑

export HADOOP_HOME=/usr/local/hadoop/hadoop-1.2.1  //配置hadoop的路徑

 

4、而後在系統自帶的mysql數據庫中給Hive配置一個數據庫:

# mysql -u root -p

Enter password:

mysql> create database hive;

mysql> grant all on hive.* to hive@'%' identified by 'hive';  //建立hive用戶,並受權

mysql> flush privileges;

show databases;

 

5、接下來配置hive-site.xml

# cp hive-default.xml.template hive-site.xml

# cp hive-default.xml.template hive-default.xml

# cp hive-log4j.properties.template hive-log4j.properties

# cp hive-exec-log4j.properties.template hive-exec-log4j.properties

# vi hive-site.xml

<property>

  <name>javax.jdo.option.ConnectionURL</name>

  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

  <description>JDBC connect string for a JDBC metastore</description>

</property>

 

<property>

  <name>javax.jdo.option.ConnectionDriverName</name>

  <value>org.mysql.jdbc.Driver</value>

  <description>Driver class name for a JDBC metastore</description>

</property>

 

<property>

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

  <value>hive</value>

  <description>username to use against metastore database</description>

</property>

 

<property>

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

  <value></value>

  <description>password to use against metastore database</description>

</property>

 

<property>

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

  <value>/data/hive/warehouse/</value>

</property>

 

6、最後下載mysql-connector-java-5.1.22-bin.jar並將之copyhive-0.12.0/lib目錄下。如今hive運行環境已經配置好了,能夠啓動Hive,最終顯示以下:

# cd /usr/local/hive/hive-0.12.0/bin

# ./hive

相關文章
相關標籤/搜索