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 ./jdk-6u32-linux-x64.binroot@hadoop1:/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 查看是否安裝成功

 

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

 

[root@hadoop1 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/profileroot@hadoop2:/etc/profile

scp -r /etc/hosts root@hadoop2:/etc/hosts

 

其他機器以此操作

Hadoop啓動

 

格式化集羣

hadoop namenode -format -clusteridclustername

啓動hdfs

start-dfs.sh

啓動Yarn

start-yarn.sh

啓動httpfs

httpfs.sh start

使得對外 可以提高 http 的restful接口服 務

 

測試

安裝結果驗證

驗證hdfs

 

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

 

[root@hadoop1 hadoop]# jps

7396 NameNode

24834 Bootstrap

7594 SecondaryNameNode

7681 ResourceManager

32261 Jps

 

[root@hadoop2 ~]# 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是否在自動啓動列表中

   [root@test1 local]# /sbin/chkconfig--list | grep mysql

   2)把MySQL添加到你係統的啓動服務組裏面去

   [root@test1local]# /sbin/chkconfig --add mysql

   3)把MySQL從啓動服務組裏面刪除。

   [root@test1local]# /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相應的文件夾下顯示。

 

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