1. 程式人生 > >hadoop-2.5.0,hbase,hive,pig,sqoop,zookeeper 叢集安裝

hadoop-2.5.0,hbase,hive,pig,sqoop,zookeeper 叢集安裝

1.        準備工作

軟體準備:

1)      Hadoop: hadoop-2.5.0.tar.gz

2)      Jdk: jdk-7u71-linux-x64.tar.gz

3)      Hive:apache-hive-0.13.1-bin.tar.gz

4)      Hbase:hbase-0.98.8-hadoop2-bin.tar.gz

5)      Sqoop:sqoop-1.99.4-bin-hadoop200.tar.gz

6)      Zookeeper:zookeeper-3.4.6.tar.gz

7)      eclipse:eclipse-SDK-4.3.1-linux-gtk-x86_64.tar.gz

8)      Eclipse外掛:hadoop-eclipse-plugin-2.5.0.jar

9)      Pig:pig-0.13.0.tar.gz

10)  Mysql:MySQL-server-5.5.21-1.linux2.6.x86_64.rpm

MySQL-client-5.5.21-1.linux2.6.x86_64.rpm

MySQL-devel-5.5.21-1.linux2.6.x86_64.rpm

11)  Mysql驅動:mysql-connector-java-5.0.3.jar

硬體準備:

物理機器總 共4臺,想配置基於物理機的hadoop叢集中包括 4 個 節點: 1 個 Master , 3 個 Salve , 節點之間區域網連線,可以相互 ping 通

Ip分佈 為

192.168.0.1 hadoop1

192.168.0.2 hadoop2

192.168.0. 3 hadoop3

192.168.0. 4 hadoop4

作業系統為 RedHat 5.4 64bit

Master機器主要配置NameNode和JobTracker的角色, 負責總 管分散式資料和分解任 務 的 執 行;3個Salve機器配置DataNode和TaskTracker的角色, 負責 分散式資料存 儲 以及任 務 的 執 行。

此處省略Linux作業系統的安裝... ...

建立賬戶

使用root登陸 所有機器後,所有的機器都 建立 hadoop 用 戶

useradd hadoop

passwd hadoop

此時 在 /home/ 下就會生成一個hadoop 目錄 ,目 錄 路徑 為 /home/hadoop

建立相關的目錄

定義 需要資料及目 錄 的存放路徑

定義 代 碼及工具 存放的路徑

mkdir -p /home/hadoop/source

mkdir -p /home/hadoop/tools

定義 資料 節 點存放的路徑到跟目 錄 下的hadoop資料夾, 這 裡是資料 節 點存放目 錄 需要有足夠的空 間 存放

mkdir -p /hadoop/hdfs

mkdir -p /hadoop/tmp

mkdir -p /hadoop/log

設定可寫許可權

chmod -R 777 /hadoop

定義 java安裝程式路徑

mkdir -p /usr/java

2.        安裝JDK

1 ,將下 載好的 jdk-7u71-linux-x64.tar.gz通 過 SSH 上 傳到 /usr/java 下

scp -r ./[email protected]:/usr/java

2 , 進入 JDK 安裝目 錄 cd /usr/java 並且 執行 chmod +x jdk-7u71-linux-x64.bin

3 , 執行 ./ jdk-7u71-linux-x64.bin

4 ,配置 環境變數,執行 cd /etc 命令後 執行 vi profile ,在行末尾新增

export JAVA_HOME=/usr/java/jdk1.7.0_71

exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:/lib/dt.jar

export PATH=$JAVA_HOME/bin:$PATH

5 , 執行 chmod +x profile 將其 變成可執行檔案

6 , 執行 source profile 使其配置立即生效

source /etc/profile

7 , 執行 java -version 檢視是否安裝成功

這個步驟所有機器都必須安裝

[[email protected] bin]# java -version

java version "1.6.0_32"

Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01,mixed mode)

3.        修改主機名

修改主機名,所有節點均一樣配置

1 , 連線到主節點 192.168.0.1 ,修改 network , 執行 vim/etc/sysconfig/network ,修改 HOSTNAME=hadoop1

2 ,修改 hosts 檔案, 執行 cd /etc 命令後 執行 vi hosts ,在行末尾新增 :

192.168.0. 1   hadoop1

192.168.0. 2   hadoop2

192.168.0. 3   hadoop3

192.168.0. 4   hadoop4

3 , 執行 hostname hadoop1

4 , 執行 exit 後重新 連線可看到主機名以修改 OK

其他節點 也修改主機名後新增Host, 或者 host 檔案可以在後面執行 scp 覆蓋操作

4.        配置SSH無密碼登陸

SSH 無密 碼原理簡介 :

首先在 hadoop1 上生成一個金鑰對,包括一個公鑰和一個私鑰,並將公鑰複製到所有的 slave(hadoop2-hadoop4) 上。

然後當 master 通過 SSH 連線 slave 時, slave 就會生成一個隨機數並用 master 的公鑰對隨機數進行加密,併發送給 master 。

最後 master 收到加密數之後再用私鑰解密,並將解密數回傳給 slave , slave 確認解密數無誤之後就允許 master 不輸入密碼進行連線了

2 ,具體步 驟(在root使用者和hadoop使用者登陸情況下執行)

1 、 執行命令 ssh-keygen -trsa 之後一路回車,檢視剛生成的無密碼鑰對: cd .ssh 後執行 ll

2 、把 id_rsa.pub 追加到授權的 key 裡面去。 執行命令 cat~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

3 、修改許可權: 執行 chmod 600~/.ssh/authorized_keys

4 、確保 cat/etc/ssh/sshd_config 中存在如下內容

RSAAuthenticationyes

PubkeyAuthenticationyes

AuthorizedKeysFile      .ssh/authorized_keys

如需修改,則在修改後執行重啟 SSH 服務命令使其生效 :service sshd restart

5 、將公 鑰複製到所有的 slave 機器上 :scp ~/.ssh/id_rsa.pub192.168.0.3 : ~/    然後 輸入 yes ,最後 輸入 slave 機器的密 碼

6 、在 slave 機器上 建立 .ssh 資料夾 :mkdir~/.ssh 然後執行 chmod 700 ~/.ssh (若資料夾以存在則不需要建立)

7 、追加到授權檔案authorized_keys 執行命令 :cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 然後 執行 chmod 600~/.ssh/authorized_keys

8 、重複第 4 步

9 、 驗證命令 : 在 master 機器上 執行 ssh 192.168.0.3 發現主機名由hadoop1 變成 hadoop3 即成功,最後刪除 id_rsa.pub 檔案 :rm -r id_rsa.pub

按照以上步驟分別配置 hadoop1,hadoop2,hadoop3,hadoop4 ,要求每個都可以無密 碼登入

5.        HADOOP 安裝

建立目錄

mkdir –p /home/hadoop

cd /home/hadoop

將安裝包複製到該目錄下解壓

tar zxvf hadoop-2.5.0.tar.gz

/etc/profile

配置環境變數: vim /etc/profile

新增

export HADOOP_DEV_HOME=/home/hadoop/hadoop

export PATH=$PATH:$HADOOP_DEV_HOME/bin

export PATH=$PATH:$HADOOP_DEV_HOME/sbin

exportHADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}

export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}

export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}

export YARN_HOME=${HADOOP_DEV_HOME}

exportHADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

exportHDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

exportYARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

建立並配置hadoop-env.sh

vim/usr/hadoop/hadoop-2.0.0-alpha/etc/hadoop/hadoop-env.sh

在末尾新增 export JAVA_HOME=/usr/java/jdk1.7.0_71

 core-site.xml

在 configuration 節點裡面新增屬性

<property>

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

<value>/hadoop/tmp</value>

<description>A base for othertemporary directories.</description>

</property>

<property>

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

<value>hdfs://192.168.0.1:9000</value>

</property>

新增 httpfs 的選項

<property>

<name>hadoop.proxyuser.root.hosts</name>

<value>192.168.0.1</value>

</property>

<property>

<name>hadoop.proxyuser.root.groups</name>

<value>*</value>

</property>

slave配置

vim /home/hadoop/hadoop/etc/hadoop/slaves

新增 slave 的 IP

192.168.0. 2

192.168.0. 3

192.168.0. 4

配置hdfs-site.xml

vim/home/hadoop/hadoop/etc/hadoop/hdfs-site.xml

新增節點

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/hadoop/hdfs/name</value>

<final>true</final>

</property>

<property>

<name>dfs.federation.nameservice.id</name>

<value>ns1</value>

</property>

<property>

<name>dfs.namenode.backup.address.ns1</name>

<value>192.168.0.1:50100</value>

</property>

<property>

<name>dfs.namenode.backup.http-address.ns1</name>

<value>192.168.0.1:50105</value>

</property>

<property>

<name>dfs.federation.nameservices</name>

<value>ns1</value>

</property>

<property>

<name>dfs.namenode.rpc-address.ns1</name>

<value>192.168.0.1:9000</value>

</property>

<property>

<name>dfs.namenode.rpc-address.ns2</name>

<value>192.168.0.1:9000</value>

</property>

<property>

<name>dfs.namenode.http-address.ns1</name>

<value>192.168.0.1:23001</value>

</property>

<property>

<name>dfs.namenode.http-address.ns2</name>

<value>192.168.0.1:13001</value>

</property>

<property>

<name>dfs.dataname.data.dir</name>

<value>file:/hadoop/hdfs/data</value>

<final>true</final>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns1</name>

<value>192.168.0.1:23002</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns2</name>

<value>192.168.0.1:23002</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns1</name>

<value>192.168.0.1:23003</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address.ns2</name>

<value>192.168.0.1:23003</value>

</property>

配置yarn-site.xml

新增節點

<property>

<name>yarn.resourcemanager.address</name>

<value>192.168.0.1:18040</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>192.168.0.1:18030</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>192.168.0.1:18088</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>192.168.0.1:18025</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>192.168.0.1:18141</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

配置httpfs-site.xml

同步程式碼到其他機器

1.同步配置代 碼

先在 slaves 的機器上也創 建

mkdir -p /home/hadoop/source

部署hadoop程式碼 , 創 建 軟連線 ,然後只要同步修改 過 的etc/hadoop下的配置檔案即可

2.同步 /etc/profile

3.同步 /etc/hosts

scp -r /etc/[email protected]:/etc/profile

scp -r /etc/hosts [email protected]:/etc/hosts

其他機器以此操作

Hadoop啟動

格式化叢集

hadoop namenode -format -clusteridclustername

啟動hdfs

start-dfs.sh

啟動Yarn

start-yarn.sh

啟動httpfs

httpfs.sh start

使得對外 可以提高 http 的restful介面服 務

測試

安裝結果驗證

驗證hdfs

在各臺機器執行 jps 看程序 是否都已 經啟動 了

[[email protected] hadoop]# jps

7396 NameNode

24834 Bootstrap

7594 SecondaryNameNode

7681 ResourceManager

32261 Jps

[[email protected] ~]# jps

8966 Jps

31822 DataNode

31935 NodeManager

程序啟動正常

驗證是否可以登 陸

hadoop fs -ls hdfs://192.168.0.1:9000/

hadoop fs -mkdir hdfs://192.168.0.1:9000/testfolder

hadoop fs -copyFromLocal ./xxxxhdfs://192.168.0.1:9000/testfolder

hadoop fs -ls hdfs://192.168.0.1:9000/testfolder

6.        zookeeper安裝

將zookeeper-3.4.6.tar.gz 複製到/home/hadoop目錄下

Chmod 777 zookeeper-3.4.6.tar.gz

tar zxvf zookeeper-3.4.6.tar.gz

mv zookeeper-3.4.6  zookeeper

建立資料目錄

mkdir /home/hadoop/zookeeper/data

修改配置檔案

cd zookeeper/conf

cp zoo_sample.cfg zoo.cfg

編輯配置檔案

vi zoo.cfg

# 修改資料目錄dataDir為以下值 

dataDir=/home/hadoop/zookeeper/data

# 新增以下段落 

server.1=192.168.0.1:2886:3886 

server.2=192.168.0.2:2887:3887 

server.3=192.168.0.3:2888:3888 

server.4=192.168.0.4:2889:3889

server.id=host:port:port標識不同的ZooKeeper伺服器

需要在每個伺服器的資料目錄中(這邊為/home/hadoop/zookeeper/data)建立myid檔案,檔案的內容為以上對應的server.id中的id

vi /data/zookeeper/myid 

# 值為各個伺服器對應的server.id中的id

id

e. 配置環境變數並啟動ZooKeeper

vi /etc/profile 

export ZOOKEEPER_HOME=/home/hadoop/zookeeper 

PATH=$PATH:$ZOOKEEPER_HOME/bin 

/在剩下的伺服器中做相同的zookeeper操作,需要在每一臺機器上都啟動

zkServer.sh start

f. 驗證

jps 檢視多了QuorumpeerMain 程序

zkCli.sh -server 192.168.0.2:2181

[zk: 192.168.0.2:2181(CONNECTED) 0] help

[zk: 192.168.0.2:2181(CONNECTED) 0] create/user 123456

[zk: 192.168.0.2:2181(CONNECTED) 0] get/user

7.        Hbase 安裝

將hbase-0.98.8-hadoop2-bin.tar.gz 複製到/home/hadoop/

解壓:tar zxvf hbase-0.98.8-hadoop2-bin.tar.gz

mv hbase-0.98.8-hadoop2 /home/hadoop/hbase

cd hbase/conf

編輯配置檔案hbase-site.xml

vi hbase-site.xml

<configuration>

 <property>

   <name>hbase.rootdir</name>

   <value>hdfs://hadoop1:9000/hbase</value>

   <description>區域伺服器使用儲存HBase資料庫資料的目錄</description>

 </property>

 <property>

   <name>hbase.cluster.distributed</name>

   <value>true</value>

<description>

指定HBase執行的模式: false:單機模式或者為分散式模式  true: 全分佈模式 

   </description>

 </property>

 <property>

   <name>hbase.zookeeper.quorum</name>

   <value>hadoop1, hadoop2, hadoop3, hadoop4</value>

   <description>ZooKeeper叢集伺服器的位置</description>

 </property>

</configuration>

編輯配置檔案regionservers

vi regionservers 

hadoop1 

hadoop2

hadoop3

hadoop4

設定環境變數hbase-env.sh

vi hbase-evn.sh 

export HBASE_MANAGES_ZK=false

使用獨立的ZooKeeper時需要修改HBASE_MANAGES_ZK值為false,為不使用預設ZooKeeper例項。

啟動服務

需要先啟動ZooKeeper(已經啟動)和hdfs檔案系統

注意:以下兩個命令只需要在hadoop1下啟動

start-hbase.sh

jps命令檢視多了 HRegionServer

修改系統時間使系統時間同步,負責HRegionServer程序會過一會死掉。

/etc/rc.local

末尾加入一行,同步主節點時間,主節點不用配:

ntpdate 192.168.0.2

f測試

hbase shell

hbase(main):001:0> status

hbase(main):001:0> create ‘student’,’name’,’age’

hbase(main):001:0> desc ‘student’

hbase(main):001:0> put ‘student’,’1’,’name’,’mapengbo’

hbase(main):001:0> put ‘student’,’1’,’age,’26’

hbase(main):001:0> get ‘student’,’1’,

8.        Mysql安裝

   mkdir –p /home/tools

將MySQL-server-5.5.21-1.linux2.6.x86_64.rpm,MySQL-client-5.5.21-1.linux2.6.x86_64.rpm

複製到/home/tools下

安裝服務端:

rpm -ivhMySQL-server-5.1.7-0.i386.rpm

安裝客戶端:

rpm -ivhMySQL-client-5.1.7-0.i386.rpm

cp/usr/share/mysql/my-medium.cnf /etc/my.cnf

   1、資料庫目錄

   /var/lib/mysql/

   2、配置檔案

   /usr/share/mysql(mysql.server命令及配置檔案)

   3、相關命令

  /usr/bin(mysqladmin mysqldump等命令)

   4、啟動指令碼

   /etc/rc.d/init.d/(啟動指令碼檔案mysql的目錄)

   3、自動啟動(預設自動新增到自啟動,不用操作)

   1)察看mysql是否在自動啟動列表中

   [[email protected] local]# /sbin/chkconfig--list | grep mysql

   2)把MySQL新增到你係統的啟動服務組裡面去

   [[email protected]]# /sbin/chkconfig --add mysql

   3)把MySQL從啟動服務組裡面刪除。

   [[email protected]]# /sbin/chkconfig --del mysql

登入MySQL的命令是mysql, mysql 的使用語法如下:

mysql [-uusername] [-h host] [-p[password]] [dbname]

username 與 password 分別是 MySQL 的使用者名稱與密碼,mysql的初始管理帳號是root,沒有密碼,注意:這個root使用者不是Linux的系統使用者。MySQL預設使用者是root,由於初始沒有密碼,第一次進時只需鍵入mysql即可

增加了密碼後的登入格式如下:

   mysql -u root -p

   Enter password: (輸入密碼)

  其中-u後跟的是使用者名稱,-p要求輸入密碼,回車後在輸入密碼處輸入密碼。

9.        hive安裝

將apache-hive-0.13.1-bin.tar.gz 複製到/home/hadoop/

解壓:tar zxvf apache-hive-0.13.1-bin.tar.gz

mv apache-hive-0.13.1-bin /home/hadoop/hive

cp  mysql-connector-java-5.0.3.jar  /home/hadoop/hive/lib

進入解壓後的hive目錄,進入conf

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

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

配置hive-env.sh 

HADOOP_HOME=/home/hadoop/hadoop

export HIVE_CONF_DIR=/home/hadoop/hive/conf

export HIVE_AUX_JARS_PATH=/home/hadoop/hive/lib

儲存退出

source /hive-env.sh

hdfs dfs -mkdir -p /usr/hive/warehouse

 hdfsdfs -mkdir -p /usr/hive/tmp

 hdfsdfs -mkdir -p /usr/hive/log

 hdfsdfs -chmod g+w /usr/hive/warehouse

 hdfsdfs -chmod g+w /usr/hive/tmp

 hdfsdfs -chmod g+w /usr/hive/log

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

vi hive-site.xml

<property>

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

 <value>hdfs://node0:9000/usr/hive/warehouse</value>

 (這裡就與前面的hdfsdfs -mkdir -p /usr/hive/warehouse相對應,其中node0指的是筆者的NameNode的hostname;)

 </property>

 <property>

 <name>hive.exec.scratchdir</name>

 <value>hdfs://node0:9000/usr/hive/warehouse</value>

 </property>

<property>

 <name>hive.querylog.location</name>

 <value>/usr/hive/log</value>

 </property>

<property>

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

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

 </property>

 javax.jdo.option.ConnectionURL這個引數使用來設定元資料連線字串

<property>

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

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

 </property>

<property>

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

 <value>hive</value>

 </property>

 這個javax.jdo.option.ConnectionUserName

 是用來設定hive存放的元資料的資料庫(這裡是mysql資料庫)的使用者名稱稱的。

 而這個‘hive‘可以根據使用者自己的需要來自行設定

 --------------------------------------

 <property>

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

 <value>hive</value>

 </property>

 這個javax.jdo.option.ConnetionPassword是用來設定,

 使用者登入資料庫的時候需要輸入的密碼的。

修改屬性名稱hive.metastore.ds.retry.attempts 為hive. hmshandler.retry.attempts

修改屬性名稱hive.metastore.ds.retry.interval 為hive. hmshandler.retry. interval 

負責會報錯:hive error resoled "DEPRECATED: hive.metastore.ds.retry.* nolonger has any effect. Use hive.hmshandler.retry.* instead"

儲存退出。

hbase的lib下找到下面4個檔案拷貝到hive的lib目錄下。

protobuf-java-2.5.0.jar

hbase-client-0.96.2-hadoop2.jar

hbase-common-0.96.2-hadoop2.jar

guava-12.0.1.jar

啟動之前先要建立hive元資料存放的路徑檔案:

 hdfsdfs -mkdir -p /hive/scratchdir

 hdfsdfs -mkdir /tmp

 hdfsdfs -ls /hive

 hdfsdfs -chmod -R g+w /hive/

 hdfsdfs -chmod -R g+w /tmp

建立hive連線的使用者,和hive存放元資料的資料庫,如下:

 GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'IDENTIFIED BY '123456' ;         

mysql> create database hive defaultcharacter set latin1;     //字符集必須是latian1,如果是utf8則很多hive元資料表無法建立。

具體的啟動命令:

 ./hive

hive執行測試:

 進入hive客戶端,執行showtable;查看錶的情況。

 執行:

建立本地表,非hbase對應表

 create table test(key int,amount string) rowformat delimited fields

 terminated by '\t' lines terminated by '\n'stored as textfile; 

load data local inpath '/usr/test.txt'overwrite into table test;

vi /usr/test.txt

1,abd

2,ddf

 執行:

來創建於hbase關聯的表,這樣在hbaseshell下也能看到,兩筆新增資料都能實時看到。

 CREATE TABLE hivetest(key int, val string)STORED BY

 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

 WITHSERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")

 TBLPROPERTIES ("hbase.table.name" ="hivetest");

CREATE EXTERNAL TABLE hive_award(keystring, productid int,matchid string, rank string, tourneyid string, useridbigint,gameid int,gold int,loginid string,nick string,plat string) STORED BY'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,info:MPID,info:MatchID,info:Rank,info:TourneyID,info:UserId,info:gameID,info:gold,info:loginId,info:nickName,info:platform")TBLPROPERTIES("hbase.table.name" = "award");

注意:1.如果要insert與hbase整合的表,不能像本地表一樣load,需要利用已有的表進行,

 如insertoverwrite table hivetest select * from test; 

 其中test的語句(createtable test4(key int,val string) row format delimited fields terminated by '\t'lines terminated by '\n' stored as textfile; ),

 注意型別要一致,否則用insertoverwrite table hivetest select * from test; 導不進去資料

 2.在hive中的 修改能同步反應到hbase中,但是如果在hbase中對新的列做了資料修改,

 則不會反應到hive中,因為hive的原資料檔案並沒有更新。

10.     Pig安裝

將pig-0.13.0.tar.gz 複製到/home/hadoop/

解壓:tar zxvf pig-0.13.0.tar.gz

mv pig-0.13.0 /home/hadoop/pig

vi /etc/profile

export PIG_HOME=/home/hadoop/pig

export PIG_CLASSPATH=/home/hadoop/hadoop/conf/

export PATH=$PIG_HOME/bin:$PATH

Pig有兩種模式:

第一種是Local mode,也就是本地模式,這種模式下Pig執行在一個JVM裡,訪問的是本地的檔案系統,只適合於小規模資料集,一般是用來體驗Pig。而且,它並沒有用到Hadoop的Local runner,Pig把查詢轉換為物理的Plan,然後自己去執行。在終端下輸入% pig -x local就可以進入Local模式了。

         第二種Hadoop模式,這種模式下,Pig才真正的把查詢轉換為相應的MapReduceJobs,並提交到Hadoop叢集去執行,叢集可以是真實的分散式也可以是偽分散式。

cd /home/hadoop/pig/bin

./pig

Grunt>ls /   

列出hdfs檔案

讀取hdfs檔案按“,”分割tables = LOAD '/home/test.txt' USING PigStorage(',') AS (carno,date, addno);

排序ordered = ORDER tables BY carno, date;

取前10行subtables = LIMIT ordered 10;

在控制檯輸出DUMP subtables;

檔案輸出STORE subtables INTO '/Results';

http://blog.csdn.net/poisonchry/article/details/31486315

11.     Sqoop安裝

將sqoop-1.99.4-bin-hadoop200.tar.gz複製到/home/hadoop/

解壓:tar zxvf sqoop-1.99.4-bin-hadoop200.tar.gz

mv sqoop-1.99.4-bin-hadoop200 /home/hadoop/sqoop

vi /etc/profile

export SQOOP_HOME=/home/hadoop/sqoop 

export PATH=$SQOOP_HOME/bin:$PATH 

export CATALINA_HOME=$SQOOP_HOME/server 

export LOGDIR=$SQOOP_HOME/logs

儲存退出即時生效:

source /etc/profile

修改sqoop配置: 

vi /home/hadoop/sqoop/server/conf/sqoop.properties  

修改指向我的hadoop安裝目錄 

org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/home/hadoop/hadoop/

#把hadoop目錄下的jar包都引進來

vi /home/hadoop/sqoop/server/conf/catalina.properties

common.loader=/home/hadoop/hadoop/share/hadoop/common/*.jar,/home/hadoop/hadoop/share/hadoop/common/lib/*.jar,/home/hadoop/hadoop/share/hadoop/hdfs/*.jar,/home/hadoop/hadoop/share/hadoop/hdfs/lib/*.jar,/home/hadoop/hadoop/share/hadoop/mapreduce/*.jar,/home/hadoop/hadoop/share/hadoop/mapreduce/lib/*.jar,/home/hadoop/hadoop/share/hadoop/tools/*.jar,/home/hadoop/hadoop/share/hadoop/tools/lib/*.jar,/home/hadoop/hadoop/share/hadoop/yarn/*.jar,/home/hadoop/hadoop/share/hadoop/yarn/lib/*.jar,/home/hadoop/hadoop/share/hadoop/httpfs/tomcat/lib/*.jar 

在/home/hadoop/sqoop/lib 加入mysql驅動包

 mysql-connector-java-5.0.3.jar

啟動/停止sqoop200 

         ./sqoop.shserver start/stop 

檢視啟動日誌:

cd /home/hadoop/sqoop 

vim catalina.out  

進入客戶端互動目錄 

./sqoop.sh client 

檢視版本

show version –all

顯示聯結器:show connector –all

建立資料庫連線:create connection --cid 1

建立匯入任務 create job --xid 1 --type import 

檢視匯入狀態:status job --jid 1

12.     eclipse安裝

cp eclipse-SDK-4.3.1-linux-gtk-x86_64.tar.gz /home/hadoop/tools

tar –zxvf eclipse-SDK-4.3.1-linux-gtk-x86_64.tar.gz

將hadoop-eclipse-plugin-2.5.0.jar 複製到/home/hadoop/tools/eclipse/plugins/

接下來在桌面新增eclipse的啟動快捷方式

在linux桌面空白處,點選滑鼠右鍵,彈出一個對話方塊,選擇“create launcher”,--“建立快捷方式“對話方塊---名字:eclipse –命令:/home/hadoop/tools/eclipse/eclipse 瀏覽到安裝eclipse目錄,找到eclipse啟動程式---點選圖示到這裡我們已經配置成功了.

進入Window-->Preference選擇 “Hadoop Map/Reduce”配置根目錄:

進入Window-->OpenPerspective-->other-->Map/Reduce開啟Map/Reduce視窗

開啟Map/Reduce View,右鍵,選擇Newhadoop location

配置location

注意:MR Master和DFS Master配置必須和mapred-site.xml和core-site.xml等配置檔案一致

新建Mapreduce專案

建立MapReduce程式

編寫WordCount程式測試外掛使用:

在MapReduce工程下新建WordCount.java程式

將程式放在hadoop叢集上執行:右鍵-->Runas-->Run on Hadoop,最終的輸出結果會在HDFS相應的資料夾下顯示。