java 整合hadoop_Hadoop伪分布式和分布式集群搭建(2)--伪分布式搭建

b988c0573ad76a6448919f7786140ab8.png
Hadoop伪分布式和分布式集群的搭建,一些心得体会,便于查阅

本文主要写Hadoop伪分布式的搭建

b6f98b6c0799f30cb3b22c410be7315a.png

一、安装hadoop

将解压缩的hadoop和jdk放入/root/app目录下,查看文件的路径

d548437da98fcc067d8ca653bf3ac41d.png
/

8761bc93c2212f12819b144c82f1af6d.png

二、伪分布式配置文件的设置

进入hadoop的配置文件所在目录

[

1.修改hadoop-env.sh

[

将下面一行到文件末尾

export 

b8d07330b4a5cdbb9d9fa16ce5504861.png
G跳到文件末尾,wq保存退出

2.修改core-site.xml

[

在文件末尾<configuration>和</configuration>之间添加以下内容

<!

f25b78d37bae963255bef40348517266.png

3.修改hdfs-site.xml

[

在文件末尾添加以下内容(并设置块大小Blocksize为64m)

<!

ecc302452861bcc2a873974965a61a38.png

4.将mapred-site.xml.template更名为mapred-site.xml并修改其内容

[

在文件末尾添加以下内容

<!

a4c07597342ea678a3209a73e4f4a823.png

5.修改yarn-site.xml

[

在文件末尾添加以下内容

<!

a30af0f24c50466b14bfd67ef3fe5a20.png

6.修改slaves

[

将文件内容修改成以下内容

node1

7a17d5015649cf39a425805bc063c39a.png

三、关闭防火墙

1.查看防火墙状态

[

2.临时关闭防火墙

[
重启后防火墙还是会开启,centos7开始要使用 systemctl stop firewalld 关闭防火墙或者用systemctl disabled firewalld永久关闭防火墙

3.查看防火墙开机启动状态

[

4.关闭防火墙开机启动

[

c4ab352b08f70c216f9f7fbcc5ef78f9.png

四、将hadoop添加到环境变量

[

在文件末尾添加以下内容

export 
PATH在安装jdk时已经设置,这里需要修改其值

更新配置

[

重启CentOS

ee709d65db4a5c65454891ca06f0fc98.png

五、格式化HDFS(NAMENODE)

第一次使用时要格式化

[

六、消除警告信息

在执行start-dfs.sh,start-yarn.sh等操作时会出现警告信息

问题的错误原因会发生在64位的操作系统上,原因是官方下载的hadoop使用的本地库文件(例如lib/native/libhadoop.so.1.0.0)都是基于32位编译的,运行在64位系统上就会出现上述错误。解决方法之一是在64位系统上重新编译hadoop。

另一种解决方法如下:

1.对于下面这个警告信息

Java HotSpot(TM) Client VM warning: You have loaded library /root/app/hadoop-2.7.1/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.

It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.

修改hadoop-env.sh,在文件最后加入两行:

export 

44c506e268afd80b366e7d2b91a7490b.png

2.对于下面这个警告信息

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

这个是警告信息,可以在打印日志中去掉,将警告改为错误即可

在日志中将警告改为错误

vi 

在这个文件最后加入一行

log4j

16a21eccb840c3d6e85ae2685ecd16fc.png

七、配置免密登录hadoop

执行start-dfs.sh和start-yarn.sh时都要多次输入密码,这是因为ssh协议的要求

实现从node1通过ssh免密登录其它主机(包括自己)

a.生成ssh免登陆密钥

[

输入3个回车(或y)

执行完这个命令后,会生成id_rsa(私钥)和id_rsa.pub(公钥)

b.将公钥拷贝到要免密登录的目标机器上

[

八、启动Hadoop

1.启动dfs.sh

[

2.启动yarn.sh

[

3.用jps查看进程

[

ff4e68cbb11d43d489144162b18041b4.png
注:以消除警告和免密登录协议

九、通过web界面验证

1.修改linux主机与ip地址映射关系

在前面已修改windows主机同linux主机名与IP地址的映射关系,简述如下:

修改C:WindowsSystem32driversetchosts文件(先要修改其属性中安全选项使得Users用户组有完全控制权限),在最后面加入一行(为后面的分布式集群,一并将四台linux的ip和主机名映射关系写上):
192.168

现在在cmd中可以用ping node1

2.浏览器打开hdfs的web管理界面

node1

37237e2d0cb097ef0882f60a4a963534.png

3.浏览器打开yarn的web管理界面

node1

387c0b178343bab600743595e75f9ccd.png

4.上传一个文件到hdfs

[

或者

[root@node1 hadoop]# hadoop fs -put /root/softpkgs/jdk-8u211-linux-i586.tar.gz hdfs://node1:9000/app

在hdfs管理页面中选择utilities/browse the file system可以看到这个刚上传的文件

848301aa7bf9e6bf1e77017f055f2a3e.png

删除所有文件

[

点击这个文件还可以下载到主机

还可通过linux查看文件是否已上传

[

现删除CentOS中的jdk-8u211-linux-i586.tar.gz

[

现从hdfs下载之前上传的jdk-8u211-linux-i586.tar.gz

[

发现文件已经成功下载到当前目录

[

十、测试mapreduce

1.切换到目录

[

7c747e58b3635fff8c522497334594ed.png

看到该目录有一个文件hadoop-mapreduce-examples-2.7.1.jar

这个jar包包含很多mapreduce示例程序

2.用mapreduce运行圆周率程序

用这个jar包运行计算圆周率的mapreduce程序

[

其中参数pi指定要运行那个类,第一个5是map的任务数量,第二个5是每个map的取样数,这两个数越大,结果越精确,但是也越耗时

若提示进入safe mode,退出安全模式
[

3.查看任务

在程序执行过程中可以通过yarn界面查看任务

77c24b23a1d9baccbeedb866eb9716d2.png

4.查看结果

e22ec46231ad3e4de4ff7f42ebcf7de7.png

十一、词频统计

1.在Linux本地/root目录下递归创建目录wordcount/input

[

在Linux本地/root/wordcount/input目录下创建文件wc.txt,内容如下:

java 

51d023c4f864830f205093972f353079.png

2.在HDFS根目录下递归创建目录wordcount/input

首先删除HDFS上的wordcount目录及wc.txt

[

查看是否还有该目录

[

在HDFS根目录下递归创建目录wordcount/input

[

87ef0b364e751add0be0cfbfae78b938.png

将Linux本地的文件wc.txt上传到HDFS的input目录

[

a08292759f6b5dbb823a805620de6b71.png

用mapreduce对wc.txt进行词频统计,使用HDFS中的input目录作为输入目录,HDFS中/wordcount/output作为结果输出目录,将结果文件下载到Linux本地并验证结果是否正确

下面对这个文件进行字数统计

[

通过yarn界面查看任务

862ba99757129b3471d203c8b8ebcb18.png

上面这条指令会将input目录下所有文件都进行字数统计并将结果写到output目录中(运行程序之前不要创建output目录,不然会报错,程序运行时会自动创建)

在hdfs管理页面可以下载part-r-00000文件,打开该文件可以看到统计结果,结果文件按照原始文件中单词升序排列并给出每个单词出现的次数

通过web界面发现在HDFS的/wordcount目录下创建里output,output有两个文件

3152cc5e6db5aba7523123a83b1448a7.png

运行结束,查看结果

5c8e2f8c9f4830108585ee15ed10dffe.png

可以用下面的指令查看词频统计结果

[

f14a62f21c002931d2e100f2a56498ba.png

还可将其下载到windows本地查看

e509933617de8301a70fa62fee9ebb79.png

十二、备份

一种简单便捷的方法是快照
[

在/root下创建目录backup

b0affaeec0fe678daaf5690febba6a4f.png

将网络配置及主机名、IP地址的映射关系及伪分布式的重要文件做备份(方便伪分布式与分布式集群之间的转换)

To be continue ... ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值