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相应的文件夹下显示。

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值