HadoopHBasehive安装步骤.docx

上传人:b****0 文档编号:9889391 上传时间:2023-05-21 格式:DOCX 页数:24 大小:25.58KB
下载 相关 举报
HadoopHBasehive安装步骤.docx_第1页
第1页 / 共24页
HadoopHBasehive安装步骤.docx_第2页
第2页 / 共24页
HadoopHBasehive安装步骤.docx_第3页
第3页 / 共24页
HadoopHBasehive安装步骤.docx_第4页
第4页 / 共24页
HadoopHBasehive安装步骤.docx_第5页
第5页 / 共24页
HadoopHBasehive安装步骤.docx_第6页
第6页 / 共24页
HadoopHBasehive安装步骤.docx_第7页
第7页 / 共24页
HadoopHBasehive安装步骤.docx_第8页
第8页 / 共24页
HadoopHBasehive安装步骤.docx_第9页
第9页 / 共24页
HadoopHBasehive安装步骤.docx_第10页
第10页 / 共24页
HadoopHBasehive安装步骤.docx_第11页
第11页 / 共24页
HadoopHBasehive安装步骤.docx_第12页
第12页 / 共24页
HadoopHBasehive安装步骤.docx_第13页
第13页 / 共24页
HadoopHBasehive安装步骤.docx_第14页
第14页 / 共24页
HadoopHBasehive安装步骤.docx_第15页
第15页 / 共24页
HadoopHBasehive安装步骤.docx_第16页
第16页 / 共24页
HadoopHBasehive安装步骤.docx_第17页
第17页 / 共24页
HadoopHBasehive安装步骤.docx_第18页
第18页 / 共24页
HadoopHBasehive安装步骤.docx_第19页
第19页 / 共24页
HadoopHBasehive安装步骤.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

HadoopHBasehive安装步骤.docx

《HadoopHBasehive安装步骤.docx》由会员分享,可在线阅读,更多相关《HadoopHBasehive安装步骤.docx(24页珍藏版)》请在冰点文库上搜索。

HadoopHBasehive安装步骤.docx

HadoopHBasehive安装步骤

Hadoop,ZooKeeper,HBase,hive(HQL)

安装步骤

Hadoop安装:

首先我们统一一下定义,在这里所提到的Hadoop是指HadoopCommon,主要提供DFS(分布式文件存储)与Map/Reduce的核心功能。

Hadoop在windows下还未经过很好的测试,所以推荐大家在linux(centos6.X)下安装使用。

准备安装Hadoop集群之前我们得先检验系统是否安装了如下的必备软件:

ssh和Jdk1.6(因为Hadoop需要使用到Jdk中的编译工具,所以一般不直接使用Jre)。

可以使用yuminstallrsync来安装rsync。

一般来说ssh是默认安装到系统中的。

Jdk1.6的安装方法

下载linux版本的java,

#mkdir/usr/java

#cd/usr/java

#chmoda+xjdk-6u27-linux-i586.bin

#./jdk-6u27-linux-i586.bin

安装完成后,设置环境变量:

在etc/profile中设置

#exportJAVA_HOME=/usr/java/jdk1.6.0_27

#exportCLASSPATH=.:

$JAVA_HOME/jre/lib/rt.jar:

$JAVA_HOME/lib/dt.jar:

$JAVA_HOME/lib/tools.jar

#exportPATH=$PATH:

$JAVA_HOME/bin

设置完成后,使用reboot或者source/etc/profile

确保以上准备工作完了之后我们就开始安装Hadoop软件,假设我们用三台机器做Hadoop集群,分别是:

192.168.0.141、192.168.0.142和192.168.0.143(下文简称141,142和143),且都使用root用户。

这里有一点需要强调的就是,务必要确保每台机器的主机名和IP地址之间能正确解析。

Host配置

一个很简单的测试办法就是ping一下主机名,比如在ww-1上pingww-2,如果能ping通就OK!

若不能正确解析,可以修改/etc/hosts文件,如果该台机器作Namenode用,则需要在hosts文件中加上集群中所有机器的IP地址及其对应的主机名;如果该台机器作Datanode用,则只需要在hosts文件中加上本机IP地址和Namenode机器的IP地址。

以本文为例,dbrg-1中的/etc/hosts文件看起来就应该是这样的:

127.0.0.1localhostlocalhost

192.168.0.141ww-1ww-1

192.168.0.142ww-2ww-2

192.168.0.143ww-3ww-3

ww-2中的/etc/hosts文件看起来就应该是这样的:

127.0.0.0localhostlocalhost

192.168.0.141ww-1ww-1

192.168.0.143ww-3ww-3

下面是在centos6平台下安装Hadoop的过程:

在usr下建立hadoop文件夹,将hadoop下载文件解压。

在etc/profile文件中设置环境变量:

export HADOOP_HOME=/home/ww/hadoop.020.204.0/hadoop

集群配置

在这里我们使用141作为NameNode与JobTracker,其它两台机器作为DataNode和TaskTracker,具体的配置如下:

环境的配置

在$HADOOP_HOME/conf/hadoop-env.sh中定义了Hadoop启动时需要的环境变量设置,其中我们至少需要配置JAVA_HOME(Jdk的路径)变量;另外我们一般还需要更改HADOOP_LOG_DIR(Hadoop的日志路径)这个变量,默认的设置是“exportHADOOP_LOG_DIR=${HADOOP_HOME}/logs”,一般需要将其配置到一个磁盘空间比较大的目录下。

(不是必要)

Hadoop核心程序配置

Hadoop包括一组默认配置文件($HADOOP_HOME/src目录下的core/core-default.xml,hdfs/hdfs-default.xml和mapred/mapred-default.xml)。

虽然默认配置文件能让Hadoop核心程序顺利启动,一般需要自己来设置一些常规配置以满足开发和业务的需求,所以我们需要对默认配置文件的值进行覆盖,具体方法如下。

$HADOOP_HOME/conf/core-site.xml是Hadoop的核心配置文件,对应并覆盖core-default.xml中的配置项。

我们一般在这个文件中增加如下配置:

Core-site.xml代码

--用于dfs命令模块中指定默认的文件系统协议-->

fs.default.name

hdfs:

//192.168.0.141:

9000

--用于dfs命令模块中指定默认的文件系统协议-->

fs.default.name

hdfs:

//192.168.1.111:

9000

$HADOOP_HOME/conf/hdfs-site.xml是HDFS的配置文件,对应并覆盖hdfs-default.xml中的配置项。

我们一般在这个文件中增加如下配置:

dfs.name.dir

/opt/hadoop/data/dfs.name.dir

--DFS中存储文件数据的目录-->

dfs.data.dir

/opt/hadoop/data/dfs.data.dir

(不添加)

--是否对DFS中的文件进行权限控制(测试中一般用false)-->

dfs.permissions

false

--DFS中存储文件命名空间信息的目录-->

dfs.name.dir

/opt/hadoop/data/dfs.name.dir

--DFS中存储文件数据的目录-->

dfs.data.dir

/opt/hadoop/data/dfs.data.dir

--是否对DFS中的文件进行权限控制(测试中一般用false)-->

dfs.permissions

false

  $HADOOP_HOME/conf/mapred-site.xml是Map/Reduce的配置文件,对应并覆盖mapred-default.xml中的配置项。

我们一般在这个文件中增加如下配置:

--用来作JobTracker的节点的(一般与NameNode保持一致)-->

mapred.job.tracker

192.168.0.141:

9001

--map/reduce的系统目录(使用的HDFS的路径)-->

mapred.system.dir

/system/mapred.system.dir

--map/reduce的临时目录(可使用“,”隔开,设置多重路径来分摊磁盘IO)-->

mapred.local.dir

/opt/hadoop/data/mapred.local.dir

(不添加)

主从配置

  在$HADOOP_HOME/conf目录中存在masters和slaves这两个文件,用来做Hadoop的主从配置。

上面已经提到了Hadoop主要由NameNode/DataNode和JobTracker/TaskTracker构成,在主从配置里我们一般将NameNode和JobTracker列为主机,其它的共为从机,于是对于此处的配置应该是:

Masters代码

192.168.0.141

 Slaves代码

192.168.0.142  

192.168.0.143  

如果你对以上介绍的配置项做了正确的配置,那么你的Hadoop集群只差启动和初体念了,当然,在$HADOOP_HOME/conf目录下还包括其它的一些配置文件,但那些都不是必须设置的,如果有兴趣你可以自己去了解了解。

值得注意的是Hadoop集群的所有机器的配置应该保持一致,一般我们在配置完master后,使用scp将配置文件同步到集群的其它服务器上。

SSH配置

经过以上两个步骤,Hadoop的安装和配置已经OK了,那么下面我们就来启动Hadoop集群。

启动前我们需要做一些准备,因为集群的启动是从NameNode开始的,于是DataNode的运行需要NameNode的远程调用,Hadoop使用ssh命令远程运行DataNode节点,这就是为什么Hadoop需要ssh的支持。

我们可以想象一下,如果集群里有100台机器,那么我们就需要输入100遍主机的访问密码,但如果配置SSH使用无密码公钥认证的方式,就解决了此问题。

简单的说,在141上需要生成一个密钥对,即一个私钥和一个公钥。

将公钥拷贝到142和143上,如此一来,当141向142发起ssh连接的时候,142上就会生成一个随机数并用141的公钥对这个随机数进行加密,并且发送给141,141收到这个加密的数以后用私钥进行解密,并将解密后的数返回142,142确认解密的数无误后就允许141进行连接了。

这就完成了一次公钥认证过程。

公钥生成的步骤如下:

在每台电脑的用户文件夹下面建立.ssh文件夹

命令为:

#mkdir.ssh

然后生成密钥:

命令为:

#ssh-keygen-trsa

之后三次回车,完成之后,会在ssh文件夹下面建立id_rsa.pub,id_rsa两个文件。

所有计算机都生成完密钥后。

将主机生成的id_rsa.pub的内容复制到authorized_keys文件中。

如果authorized_keys不存在,则使用touch~/.ssh/authorized_keys生成一个;如果该文件已经存在,则追加内容进去就OK了。

最后将生成主机的.ssh文件夹拷贝到其它计算机中。

这里我们推荐使用如下命令:

本机:

#cd.ssh

#cpid_rsa.pubauthorized_keys

在往远程计算机copy文件之前,要先对本机取得ssh权限

即在本机:

#ssh192.168.0.141按提示进行。

远程:

scp–r/home/ww/.ssh192.168.0.142:

/home/ww

scp–r/home/ww/.ssh192.168.0.143:

/home/ww

#chmodgo-rwxauthorized_keys644权限所有计算机上都要进行,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。

测试是否成功命令:

ssh192.168.0.142

经过以上步骤,我们的无密码访问就配置好了。

部署远程计算机

前面讲的这么多Hadoop的环境变量和配置文件都是在ww-1这台机器上的,现在需要将hadoop部署到其他的机器上,保证目录结构一致。

[ww@ww-1:

~]$scp-r/home/ww/Hadoop0.20.204.0ww-2:

/home/ww/

[ww@ww-1:

~]$scp-r/home/ww/Hadoop0.20.204.0ww-3:

/home/ww/

至此,可以说,Hadoop已经在各个机器上部署完毕了下面就让我们开始启动Hadoop吧。

启动

启动方式如下:

启动服务之前,我们需要做一件事情,非常重要,那就是格式化命名空间

#bin/hadoopnamenode–format

启动dfs和map/reduce服务

bin/start-all.sh(开启服务时,使用有管理员权限的帐户)

我们用如下命令验证一下是否启动成功:

bin/hadoopdfs-ls

如果没有错误提示或者出现文件列表,那么恭喜你,Hadoop成功启动了,另外,我们可以通过访问http:

//192.168.0.141:

50070来查看hdfs的状态,访问http:

//192.168.0.141:

50030来查看map/reduce的状态。

如果出现错误,或Hadoop集群未启动,可以查看$HADOOP_HOME/logs/下的日志文件。

HDFS操作

运行bin/目录的hadoop命令,可以查看Hadoop所有支持的操作及其用法,这里以几个简单的操作为例。

建立目录

[ww@ww-1:

hadoop]$bin/hadoopdfs–mkdirtestdir

在HDFS中建立一个名为testdir的目录

复制文件

[ww@ww-1:

hadoop]$bin/hadoopdfs–put/home/ww/large.ziptestfile.zip

把本地文件large.zip拷贝到HDFS的根目录/user/ww/下,文件名为testfile.zip

查看现有文件

[ww@ww-1:

hadoop]$bin/hadoopdfs–ls

安装和配置ZooKeeper

HBase从0.20.0开始,需要首先安装ZooKeeper。

从apache上下载zookeeper-3.3.3.tar.gz(Stable版本),解压到/home/hdfs/目录下。

(1),在namenode节点新建zookeeper目录,在该目录下新建myid文件。

(2),在zookeeper-3.3.3/conf目录下,拷贝zoo_sample.cfg为zoo.cfg。

在zoo.cfg中将dataDir改为/home/hdfs/zookeeper,在文件末位添加所有的主机:

server.1=master:

2888:

3888

server.2=slave1:

2888:

3888

server.3=slave2:

2888:

3888

(3)用scp命令将namenode节点的的/home/hdfs/zookeeper-3.3.3和/home/hdfs/zookeeper拷贝到其余所有主机的/home/hdfs目录下。

(4)参照zoo.cfg中的配置,在各主机myid文件中写入各自的编号。

如:

server.1写入1,server.2写入2

在所有节点上执行bin/zkServer.shstart,分别启动。

刚启动一台机器时,会报错,机器全部启动后就正常了。

执行bin/zkCli.sh-serverslave2:

2181,检查指定服务器是否成功启动。

检查zookeeper状态,echoruok|ncmaster2181(不用做这些HBase会帮我们启动ZK)

HBase安装:

(版本0.90.4)

修改文件:

/etc/profile

exportHBASE_HOME=/usr/local/hbase

exportPATH=$PATH:

$HBASE_HOME/bin

先关闭hadoop的安全模式

#bin/hadoopdfsadmin–savemodelleave

不然会出现mismatch错误

(1)系统所有配置项的默认设置在hbase-default.xml中查看,如果需要修改配置项的值,在hbase-site.xml中添加配置项。

在分布式模式下安装HBase,需要添加的最基本的配置项如下:

hbase.rootdir

hdfs:

//master:

54310/hbase

hbase.cluster.distributed

true

hbase.master

hdfs:

//master:

60000

hbase.zookeeper.quorum

slave-001,slave-002,slave-003

CommaseparatedlistofserversintheZooKeeperQuorum.Forexample,",,".Bydefaultthisissettolocalhostforlocalandpseudo-distributedmodesofoperation.Forafully-distributedsetup,thisshouldbesettoafulllistofZooKeeperquorumservers.IfHBASE_MANAGES_ZKissetinhbase-env.shthisisthelistofserverswhichwewillstart/stopZooKeeperon.

hbase.zookeeper.property.dataDir

/data/work/zookeeper

PropertyfromZooKeeper'sconfigzoo.cfg.Thedirectorywherethesnapshotisstored.

(2)在conf/hbase-env.sh中修改添加配置项:

exportJAVA_HOME=/usr/java/jdk1.6.0_22

exportHBASE_MANAGES_ZK=true

exportHADOOP_CONF_DIR=/hadoop/hadoop-config(如果默认,则不添加)

并把~/hadoop-0.20.1/conf/hdfs-site.xml拷贝至~/hbase-3.2.1/conf/目录下(不知道什么用)。

(3)使用hadoop目录下hadoop-0.20.2-core.jar替换hbase-0.90.4/lib下的hadoop-core-0.20-append-r1056497.jar,如果不这样做,会出现版本不一致,导致HMaster启动失败。

(4)在conf/regionservers中添加hadoop-0.20.1/conf/slaves中所有的datanode节点。

Slave1

Slave2

(5)启动

启动/关闭HBase

bin/start-hbase.sh

bin/stop-hbase.sh

测试HBase

bin/hbaseshell

create‘bigtable1’‘data’

put‘bigtable1’,’row1’,’data:

aa’,’value1’

put‘bigtable1’,’row2’,’data:

bb’,’value2’

list

scan‘bigtable1’

删除表:

#disable‘table1’

#drop‘table1’

先启动Hadoop再启动HBase,命令如下

所有命令如下:

Bin/start-all.sh—>Bin/start-hbase.sh

Bin/stop-hbase.sh—>Bin/stop-all.sh

HBasejava编程时需要导入下列包:

hbase-0.20.6.jar

hadoop-core-0.20.1.jar

commons-logging-1.1.1.jar

zookeeper-3.3.0.jar

log4j-1.2.91.jar

Hive安装步骤

第一步,启动hadoop,命令:

./start-all.sh

第二步,启动hive,命令:

#bin/hive

第三步,启动hbase,命令:

./start-hbase.sh

第四步,建立关联表,这里我们要查询的表在hbase中已经存在所以,使用CREATEEXTERNALTABLE来建立,如下:

CREATE EXTERNAL TABLE hbase_table_2(key string, value1 string,value2string)STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'   WITH SERDEPROPERTIES ("hbase.columns.mapping" = "data:

1,data1:

1")   TBLPROPERTIES("hbase.table.name" = "test");    

CREATEEXTERNALTABLEhbase_table_2(keystring,valuestring)

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

WITHSERDEPROPERTIES("hbase.columns.mapping"="data

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2