Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx

上传人:b****7 文档编号:22099867 上传时间:2023-02-02 格式:DOCX 页数:12 大小:430.92KB
下载 相关 举报
Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx_第1页
第1页 / 共12页
Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx_第2页
第2页 / 共12页
Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx_第3页
第3页 / 共12页
Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx_第4页
第4页 / 共12页
Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx

《Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx》由会员分享,可在线阅读,更多相关《Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

Hadoop210伪分布式搭建及整合HBaseWord文档格式.docx

$HADOOP_HOME/sbin:

$HBASE_HOME/bin:

$MAVEN_HOME/bin

添加完成后,运行source/etc/profile使其立即生效

运行命令java-version查看是否安装成功,如下图所示则说明安装成功。

运行命令mvn-version查看是否安装成功,如下图所示则说明安装成功。

三、配置Hadoop文件

在hadoop2以后的版本中添加了一个新的功能叫yarn,是为了帮助mapreduce提高效率的,所以在配置时也需要配置它,以前是配置4个现在多了一个就是5个,分别是:

core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml和yarn-site.xml

1、编辑core-site.xml

<

property>

name>

fs.defaultFS<

/name>

value>

hdfs:

//master:

9000<

/value>

/property>

hadoop.tmp.dir<

file:

/usr/hadoop-2.1/tmp<

2、编辑hadoop-env.sh修改exportJAVA_HOME=/cloud/jdk1.6.0_24

3、编辑hdfs-site.xml

dfs.replication<

!

--默认三份副本-->

1<

dfs.permissions<

--关闭了权限认证-->

false<

dfs.webhdfs.enabled<

--开启web的hdfs-->

true<

<

dfs.datanode.data.dir<

--真实数据存放地址-->

/usr/hadoop/hadoop-2.1.0-beta/dfs/data<

dfs.namenode.name.dir<

--元数据存放地址-->

/usr/hadoop/hadoop-2.1.0-beta/dfs/name<

<

4、编辑mapred-site.xml

在hadoop2.1.0版本中没有这个文件,我们可以创建一个或者把mapred-site.xml.template复制一份去掉后缀即可。

configuration>

mapreduce.framework.name<

yarn<

/configuration>

5、编辑yarn-site.xml

yarn.resourcemanager.hostname<

master<

yarn.nodemanager.aux-services<

mapreduce.shuffle<

4、格式化HDFS

执行命令hadoopnamenode-format

执行结果如图所示,则说明执行成功。

需要说明的是,从2.0以后启动和停止hadoop的命令start-all.sh和stop-all.sh不建议使用,开始摒弃掉

取而代之的将使用start-dfs.sh和start-yarn.sh启动hadoop,详细请看官方说明,

分别运行start-dfs.sh和start-yarn.sh守护进程,如下图运行正常,访问localhost:

50070正常

访问资源管理界面localhost:

8088,hadoop从版本2.0以后界面功能变的很强大

5、配置SSH免登陆

生产ssh密钥

ssh-keygen-trsa

连续回车即可

在~/.ssh/目录下多了两文件(id_rsaid_rsa.pub)

cat~/.ssh/id_rsa.pub>

>

~/.ssh/authorized_keys

Hadoop2.1.0集成hbase-0.96.1.1-hadoop2-bin.tar

hbase-0.96.1.1-hadoop2-bin.tar可以去官网下载

2、将hbase-0.96.1.1-hadoop2-bin.tar解压到/cloud/下,配置环境变量,

修改/etc/profilevim/etc/profile

增加exportHBASE_HOME=/cloud/hbase

$HADOOP_HOME/bin:

$HBASE_HOME/bin

使其立即生效:

source/etc/profile

3、配置HBase

修改$HBASE_HOME/conf/hbase-site.xml

hbase.rootdir<

9000/hbase<

hbase.cluster.distributed<

hbase.zookeeper.quorum<

注意:

$HBASE_HOME/conf/hbase-site.xml的hbase.rootdir的主机和端口号与$HADOOP_HOME/conf/core-site.xml的fs.default.name的主机和端口号一致

在$HBASE_HOME/conf/regionservers文件增加

localhost

4、处理整合问题

由于hadoop-2.1.0是测试版,所以在和Hbase整合时会出问题,主要问题是版本不兼容,为了解决这个问题我们要使用hadoop-2.1.0中的jar包替换$HBASE_HOME/lib下的jar,但是不是全部替换。

但是进入hadoop-2.1.0的lib目录下发现竟然没有jar包,jar包去哪了呢?

只有一个native(本地库),话说apache真变态,他们把jar包放到一个叫$HADOOP_HOME/share/hadoop/的目录下了。

打开$HBASE_HOME/lib,我们看到了许多了jar包(116个),同时发现它里面的hadoop版本是hadoop-2.2的,而我们的hadoop版本是hadoop-2.1.0的。

主要替换4个文件夹中的jar包,分别是common、hdfs、mapreduce、yarn。

接下来就是去$HADOOP_HOME/share/hadoop/目录下,找到和$HBASE_HOME/lib下对应的jar,如果版本一样就不需要替换,如果不一样就用$HADOOP_HOME/share/hadoop/目录下的jar包替换$HBASE_HOME/lib目录下的jar包。

替换中发现有一个hadoop2.2-client.jar这个$HADOOP_HOME/share/hadoop/目录下没有,没有怎么办呢?

,留着肯定是个问题,直接删掉就行,替换完总共是115个包,删了一个。

只需要将$HADOOP_HOME/share/hadoop/目录下对应版本的jar包替换掉即可,不要随便删除$HBASE_HOME/lib/下的jar包,以免造成不必要的麻烦。

先启动Hadoop,后启动HBASE

#cd$HBASE_HOME/bin

#./start-hbase.sh

停止

#./stop-hbase.sh

安装成功后不算Jps,一共是8个节点,hadoop5个,Hbase3(HMaster、HQuorumpeer、HRegionServer)个。

YARN加载本地库抛出Unabletoloadnative-hadooplibrary解决办法

1、HADOOP的本地库(NativeLibraries)介绍

Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(NativeLibraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。

目前在Hadoop中,本地库应用在文件的压缩上面:

∙zlib

∙gzip

在使用这两种压缩方式的时候,Hadoop默认会从$HADOOP_HOME/lib/native/Linux-*目录中加载本地库。

如果加载成功,输出为:

DEBUGutil.NativeCodeLoader-Tryingtoloadthecustom-builtnative-hadooplibrary...

INFOutil.NativeCodeLoader-Loadedthenative-hadooplibrary

如果加载失败,输出为:

INFOutil.NativeCodeLoader-Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicable

在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:

hadoop.native.lib<

Hadoop默认的配置为启用本地库。

另外,可以在环境变量中设置使用本地库的位置:

exportJAVA_LIBRARY_PATH=/path/to/hadoop-native-libs

有的时候也会发现Hadoop自带的本地库无法使用,这种情况下就需要自己去编译本地库了。

在$HADOOP_HOME目录下,使用如下命令即可:

antcompile-native

编译完成后,可以在$HADOOP_HOME/build/native目录下找到相应的文件,然后指定文件的路径或者移动编译好的文件到默认目录下即可。

2、问题原因

用官方的Hadoop2.1.0-beta安装后,每次hadoop命令进去都会抛出这样一个Warning

WARNutil.NativeCodeLoader:

Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicable

在/etc/profile文件设置logger级别,看下具体原因

exportHADOOP_ROOT_LOGGER=DEBUG,console​

在使用java代码操作时也出现这个问题:

wrongELFCLASS32,难道是加载的so文件系统版本问题?

so文件位置:

$HADOOP_HOME/lib/native/

执行命令查看libhadoop.so.1.0.0

命令:

filelibhadoop.so.1.0.0

输出信息:

libhadoop.so.1.0.0:

ELF32-bitLSBsharedobject,Intel80386,version1(SYSV),dynamicallylinked,notstripped

原来直接从apache镜像中下载的编译好的Hadoop版本nativelibrary都是32版本的,如果要支持64位版本,必须自己重新编译,这就有点坑爹了,要知道几乎所有的生产环境都是64位的OS

YARN官方对于nativelibrary的一段话验证了这一点

“Thepre-built32-biti386-Linuxnativehadooplibraryisavailableaspartofthehadoopdistributionandislocatedinthelib/nativedirectory​”

重新checkoutsourcecode

http:

//svn.apache.org/repos/asf/hadoop/common/tags/release-2.1.0-beta/

之所以要使用maven的原因就在这。

加上编译native的选项,编译时会根据当前的操作系统架构来生产相应的native库

mvnpackage-Pdist,native-DskipTests-Dtar

再去native文件下查看所有的filetype,已经都是64位版的了,替换线上文件,WARNING消除

整合成功。

 

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

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1