hadoop+hive+sqoop安裝

1. 軟件部署步驟

1.1. Hadoop安裝部署

1.1.1安裝前的準備

hadoop-1.0.4.tar.gz

jdk-6u35-linux-x64-rpm.bin

2臺suse Linux主機

hadoop0-NameNode 192.168.0.11

hadoop1-DataNode 192.168.0.13


1.1.2安裝部署

首先安裝JDK

chmod +x jdk-6u35-linux-x64-rpm.bin

./jdk-6u35-linux-x64-rpm.bin

在/etc/profile的最後添加JDK環境變量,如下:  

export JAVA_HOME=/usr/java/jdk1.6.0_35

export JRE_HOME=/usr/java/jdk1.6.0_35/jre

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

export PATH=$JAVA_HOME/bin:$PATH

然後

hadoop0-NameNode:/soft #source /etc/profile

配置完成後,需要重啓終端,在終端中輸入java -version,檢測jdk是否安裝成功,如果出現jdk相關版本,則成功。


hadoop安裝

1. 更改主機名、IP

1.1 IP設置:

在192.168.0.11上

 命令:# vi /etc/hosts

192.168.0.11    hadoop0-NameNode.test.com hadoop0-NameNode

192.168.0.13    hadoop1-DataNode.test.com hadoop1-DataNode


1.2 更改主機名:

vi /etc/hostname   在裏面添加

hadoop0-NameNode


hadoop0-NameNode:/soft #hostname -F /etc/hostname

192.168.0.13上

命令:# vi /etc/hosts

192.168.0.13    hadoop1-DataNode.test.com hadoop1-DataNode


1.2 更改主機名:

vi /etc/hostname   在裏面添加

hadoop1-DataNode


hadoop1-DataNode:/soft #hostname -F /etc/hostname


2. SSH設置

如代碼清單 1 所示:

[root@hadoop0 ~]# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

a8:97:55:d3:95:d6:fe:f5:08:ca:4c:6e:24:62:b4:22 root@hadoop0

Ssh-keygen -t rsa命令將爲 hadoop0-NameNode 上的當前用戶 root 生成密鑰對,密鑰對的保存路徑使用缺省的 /root/.ssh/id_rsa, 要求輸入passphrase 的時候,直接回車。這樣生成的證書以及公鑰將存儲在 /root/.ssh 目錄,形成如下兩個文件 id_rsa,id_rsa.pub。

然後將 id_rsa.pub文件的內容複製到hadoop0-NameNode(包括本機)、hadoop1-DataNode的/root/.ssh/authorized_keys文件的尾部。若機器上不存在這個/root/.ssh/authorized_keys文件,可以自行創建一個。

2.2 SSH連接測試

從 hadoop0-NameNode 分別向 hadoop0-NameNode, hadoop1-DataNode發起 SSH 連接請求,確保不需要輸入密碼就能 SSH 連接成功。

命令:

hadoop0-NameNode:/soft #ssh hadoop0-NameNode

hadoop0-NameNode:/soft #ssh hadoop1-DataNode

注意第一次 SSH 連接時會出現如下提示信息:

The authenticity of host [homer06] can't be established. The key fingerprint is:

74:32:91:f2:9c:dc:2e:80:48:73:d4:53:ab:e4:d3:1a

Are you sure you want to continue connecting (yes/no)?

輸入 yes, 這樣 OpenSSH 會把連接過來的這臺主機的信息自動加到 /root/.ssh/know_hosts 文件中去,第二次再連接時,就不會有這樣的提示信息。

以後就不需要輸入密碼就可以建立ssh連接了,配置成功。


3. 安裝部署hadoop

在hadoop0主機上部署hadoop軟件,解壓到/usr/local/hadoop-1.0.4,更名爲hadoop

3.1 修改環境變量

在/usr/local/hadoop/conf目錄下的hadoop-env.sh中設置JAVA_HOME的環境變量,如下:

export JAVA_HOME =/usr/java/jdk1.6.0_35

export HADOOP_HOME=/usr/local/hadoop

export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH

3.2 修改/usr/local/hadoop/conf/masters文件

  打開masters文件,該文件用來指定NameNode,內容如下:

hadoop0-NameNode:/usr/local/hadoop/conf # cat masters 

hadoop0-NameNode

3.3 修改/usr/local/hadoop/conf/slaves文件

  打開slaves文件,該文件用來指定所有的DataNode,一行指定一個主機名。即本文中的hadoop0-NameNode、hadoop1-DataNode,如下:

hadoop0-NameNode:/usr/local/hadoop/conf # cat slaves 

hadoop0-NameNode

hadoop1-DataNode

3.4 修改core-site.xml、hdfs-site.xml和mapred-site.xml

在/usr/local/hadoop/src/core、/usr/local/hadoop/src/hdfs、/usr/local/hadoop/src/mapred目錄中分別找到core-default.xml,hdfs-default.xml,

mapred-default.xml三文件,然後copy到/usr/local/hadoop/conf目錄下,這三個文件包含Hadoop的所有配置項,然後把這個分別改名爲core-site.xml,hdfs-site.xml,mapred-site.xml,我們根據需要修改如下:

修改core-site.xml:

<property>

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

  <value>/usr/local/hadoop/tmp</value>

</property>

<property>

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

  <value>hdfs://192.168.0.11:9000</value>

</property>

注:

fs.default.name是NameNode的URI。hdfs://主機名:端口

修改hdfs-site.xml:

<property> 

  <name>dfs.replication</name>

  <value>1</value>

</property>




修改mapred-site.xml:

<property>

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

  <value>192.168.0.11:9001</value>

</property>


配置完成後進行部署,把配置好的hadoop文件夾拷貝到hadoop1主機上。命令如下:

[root@hadoop0:~]# scp -r /usr/local/hadoop  [email protected]: /usr/local/

需要注意,如在hadoop1-DataNode上某些配置路徑和hadoop0-NameNode主機上不一致,則需要修改成對應的hadoop1-DataNode主機上的路徑。

例如:hadoop1-DataNode的Java安裝路徑不一樣,要修改conf/hadoop-env.sh。建議儘量使用相同的路徑安裝部署。

至此,hadoop部署完畢。


4. 測試:

重啓終端,格式化namenode:

進入hadoop目錄下的bin目錄,輸入

./hadoop namenode -format對hadoop進行格式化。

啓動hadoop:在hadoop的bin目錄下,輸入

./start-all.sh  

如果啓動成功,可以用jps命令查看namenode,datanode,jobtracker,tasktracker,secondarynamenode

五個節點都啓動,則正常啓動了。

停止hadoop,在hadoop的bin目錄下,輸入

./stop-all.sh


附:secondarynamenode配置

假設增加一臺機器爲192.168.0.12

首先修改namenode和secondarynamenode兩臺機器的master文件,把secondarynamenode的主機名添加上去(一行一個)

然後登錄secondarynamenode修改conf/core-site.xml

<name>fs.checkpoint.dir</name> 

<value>/data/work/hdfs/namesecondary</value>   這裏存儲namenode的鏡像

<description>Determines where on the local filesystem the DFS secondary name node should store the temporary images to merge. If this is a comma-delimited list of directories then the image is replicated in all of the directories for redundancy. </description> 

</property>

修改conf/hdfs-site.xml

<property> 

<name>dfs.http.address</name> 

<value>192.168.0.11:50070</value> 這裏修改namenode主機的IP

<description> The address and the base port where the dfs namenode web ui will listen on. If the port is 0 then the server will start on a free port. </description> 

</property>

重新啓動hadoop,你在secondarynamenode上用jps會看到secondarynamenode進程



1.2 Hive安裝部署

1.2.1 解壓hive安裝包

tar xzf hive-0.9.0

把hive安裝包解壓到/usr/local/hive目錄下

1.2.2 環境變量配置

進入hive的conf目錄下,創建hive-env.sh,在裏面添加

#!/bin/bash

HIVE_HOME=/usr/local/hive

HADOOP_HOME=/usr/local/hadoop

 

將conf/hive-default.xml.template複製兩份,分別命名爲hive-default.xml(用於保留默認配置)和hive-site.xml(用於個性化配置,可覆蓋默認配置)。

配置mysql來存儲hive的元數據,首先得確保安裝了mysql,輸入如下命令檢查:

rpm -qa|grep mysql

命令執行後如果出現相關文件,先卸載掉,命令如下:

rpm -e 出現的文件名

1.2.3 安裝MySQL數據庫

將libmysqlclient15-5.0.67-13.20.1.x86_64.rpm

mysql-5.0.67-13.20.1.x86_64.rpm

mysql-client-5.0.67-13.20.1.x86_64.rpm這三個文件拷貝到/usr/local/mysql路徑下,輸入以下命令安裝:

rpm -ivh ./*.rpm

安裝完成後按照提示輸入以下命令:

/usr/bin/mysqladmin -u root password ''

/usr/bin/mysqladmin -u root -h localhost password ''

此時mysql是不需要密碼登錄的,輸入mysql命令後設置mysql的用戶名和密碼:

create user 'hadoop'@'localhost' IDENTIFIED BY 'hadoop';

grant all privileges on *.* to 'hadoop'@'localhost' with grant option;

然後輸入exit;命令退出mysql,重新登錄則需要用戶名和密碼:

Mysql -uhadoop -phadoop;


下載mysql-connector-java

wget 'http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.22.tar.gz'

tar xvf mysql-connector-java-5.1.22.tar.gz

拷貝mysql-connector-java-5.1.10-bin.jar到/usr/local/hive/lib目錄下。

cp mysql-connector-java-5.1.22/mysql-connector-java-5.1.22-bin.jar  /usr/local/hive/lib/


修改/usr/local/hive/conf/hive-site.xml配置文件,如下:

<property>

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

        <value> 

           jdbc:mysql://localhost:3306/hive?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>hadoop</value>

</property>

<property>

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

           <value>hadoop</value>

</property>

退出命令行終端後,重新啓動hadoop,進入hive/bin,輸入

./hive

進入hive命令的控制檯。輸入

show tables;

第一次會比較慢,成功顯示OK,則說明hive配置成功。

1.3 SQOOP安裝部署

sqoop安裝部署說明

將sqoop-1.4.2.bin_hadoop-1.0.0.tar.gz拷貝到/usr/local/sqoop目錄下,執行命令解壓sqoop包:

tar xzf  sqoop-1.4.2.bin_hadoop-1.0.0.tar.gz

sqoop-1.4.2.bin_hadoop-1.0.0依賴hadoop-core-1.0.3.jar,所以將hadoop安裝目錄/usr/local/hadoop目錄下的hadoop-core-1.0.3.jar拷貝到sqoop的lib目錄下。

sqoop導入oracle數據運行過程中依賴ojdbc14.jar,將其複製到sqoop的lib目錄下。

ojdbc14.jar在$ORACLE_HOME/jdbc/下

修改sqoop文件

修改SQOOP的文件configure-sqoop,註釋掉hbase和zookeeper

檢查(沒有則不需註釋),如下:

#if [ ! -d "${HBASE_HOME}" ]; then

# echo “Error: $HBASE_HOME does not exist!”

# echo ‘Please set $HBASE_HOME to the root of your HBase installation.’

# exit 1

#fi

#if [ ! -d "${ZOOKEEPER_HOME}" ]; then

# echo “Error: $ZOOKEEPER_HOME does not exist!”

# echo ‘Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.’

# exit 1

#fi

修改完成後,則sqoop配置完成。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章