千家信息网

基于CentOS的Hadoop分布式环境如何搭建

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"基于CentOS的Hadoop分布式环境如何搭建",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"基于CentOS的Hadoop分布式
千家信息网最后更新 2026年10月31日基于CentOS的Hadoop分布式环境如何搭建

这篇文章主要讲解了"基于CentOS的Hadoop分布式环境如何搭建",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"基于CentOS的Hadoop分布式环境如何搭建"吧!

在搭建hadoop环境中你要知道的一些事儿:

1.hadoop运行于linux系统之上,你要安装linux操作系统

2.你需要搭建一个运行hadoop的集群,例如局域网内能互相访问的linux系统

3.为了实现集群之间的相互访问,你需要做到ssh无密钥登录

4.hadoop的运行在jvm上的,也就是说你需要安装java的jdk,并配置好java_home

5.hadoop的各个组件是通过xml来配置的。在官网上下载好hadoop之后解压缩,修改/etc/hadoop目录中相应的配置文件

工欲善其事,必先利其器。这里也要说一下,在搭建hadoop环境中使用到的相关软件和工具:

1.virtualbox--毕竟要模拟几台linux,条件有限,就在virtualbox中创建几台虚拟机楼

2.centos--下载的centos7的iso镜像,加载到virtualbox中,安装运行

3.securecrt--可以ssh远程访问linux的软件

4.winscp--实现windows和linux的通信

5.jdk for linux--oracle官网上下载,解压缩之后配置一下即可

6.hadoop2.7.1--可在apache官网上下载

好了,下面分三个步骤来讲解

linux环境准备

配置ip

为了实现本机和虚拟机以及虚拟机和虚拟机之间的通信,virtualbox中设置centos的连接模式为host-only模式,并且手动设置ip,注意虚拟机的网关和本机中host-only network 的ip地址相同。配置ip完成后还要重启网络服务以使得配置有效。这里搭建了三台linux,如下图所示

配置主机名字

对于192.168.56.101设置主机名字hadoop01。并在hosts文件中配置集群的ip和主机名。其余两个主机的操作与此类似

[root@hadoop01 ~]# cat /etc/sysconfig/network # created by anaconda networking = yes hostname = hadoop01   [root@hadoop01 ~]# cat /etc/hosts 127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1     localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.101 hadoop01 192.168.56.102 hadoop02 192.168.56.103 hadoop03

永久关闭防火墙

service iptables stop(1.下次重启机器后,防火墙又会启动,故需要永久关闭防火墙的命令;2由于用的是centos 7,关闭防火墙的命令如下)

systemctl stop firewalld.service    #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动

关闭selinux防护系统

改为disabled 。reboot重启机器,使配置生效

[root@hadoop02 ~]# cat /etc/sysconfig/selinux  # this file controls the state of selinux on the system # selinux= can take one of these three values: #   enforcing - selinux security policy is enforced  #   permissive - selinux prints warnings instead of enforcing #   disabled - no selinux policy is loaded selinux=disabled # selinuxtype= can take one of three two values: #   targeted - targeted processes are protected, #   minimum - modification of targeted policy only selected processes are protected #   mls - multi level security protection selinuxtype=targeted

集群ssh免密码登录

首先设置ssh密钥

ssh-keygen -t rsa

拷贝ssh密钥到三台机器

ssh-copy-id 192.168.56.101 
ssh-copy-id 192.168.56.102
ssh-copy-id 192.168.56.103

这样如果hadoop01的机器想要登录hadoop02,直接输入ssh hadoop02

ssh hadoop02

配置jdk

这里在/home忠诚创建三个文件夹中

tools--存放工具包

softwares--存放软件

data--存放数据

通过winscp将下载好的linux jdk上传到hadoop01的/home/tools中

解压缩jdk到softwares中

tar -zxf jdk-7u76-linux-x64.tar.gz -c /home/softwares

可见jdk的家目录在/home/softwares/jdk.x.x.x,将该目录拷贝粘贴到/etc/profile文件中,并且在文件中设置java_home

export java_home=/home/softwares/jdk0_111 export path=$path:$java_home/bin

保存修改,执行source /etc/profile使配置生效

查看java jdk是否安装成功:

java -version

可以将当前节点中设置的文件拷贝到其他节点

scp -r /home/* root@192.168.56.10x:/home

hadoop集群安装

集群的规划如下:

101节点作为hdfs的namenode ,其余作为datanode;102作为yarn的resourcemanager,其余作为nodemanager。103作为secondarynamenode。分别在101和102节点启动jobhistoryserver和webappproxyserver

下载hadoop-2.7.3

并将其放在/home/softwares文件夹中。由于hadoop需要jdk的安装环境,所以首先配置/etc/hadoop/hadoop-env.sh的java_home

(ps:感觉我用的jdk版本过高了)

接下来依次修改hadoop相应组件对应的xml

修改core-site.xml :

指定namenode地址

修改hadoop的缓存目录

hadoop的垃圾回收机制

        fsdefaultfs     hdfs://101:8020           hadooptmpdir     /home/softwares/hadoop-3/data/tmp           fstrashinterval     10080       

hdfs-site.xml

设置备份数目

关闭权限

设置http访问接口

设置secondary namenode 的ip地址

        dfsreplication     3           dfspermissionsenabled     false           dfsnamenodehttp-address     101:50070           dfsnamenodesecondaryhttp-address     103:50090    

修改mapred-site.xml.template名字为mapred-site.xml

指定mapreduce的框架为yarn,通过yarn来调度

指定jobhitory

指定jobhitory的web端口

开启uber模式--这是针对mapreduce的优化

        mapreduceframeworkname     yarn           mapreducejobhistoryaddress     101:10020           mapreducejobhistorywebappaddress     101:19888           mapreducejobubertaskenable     true    

修改yarn-site.xml

指定mapreduce为shuffle

指定102节点为resourcemanager

指定102节点的安全代理

开启yarn的日志

指定yarn日志删除时间

指定nodemanager的内存:8g

指定nodemanager的cpu:8核

          yarnnodemanageraux-services     mapreduce_shuffle           yarnresourcemanagerhostname     102           yarnweb-proxyaddress     102:8888           yarnlog-aggregation-enable     true           yarnlog-aggregationretain-seconds     604800           yarnnodemanagerresourcememory-mb     8192           yarnnodemanagerresourcecpu-vcores     8     

配置slaves

指定计算节点,即运行datanode和nodemanager的节点

192.168.56.101
192.168.56.102
192.168.56.103

先在namenode节点格式化,即101节点上执行:

进入到hadoop主目录: cd /home/softwares/hadoop-3

执行bin目录下的hadoop脚本: bin/hadoop namenode -format

出现successful format才算是执行成功(ps,这里是盗用别人的图,不要介意哈)

以上配置完成后,将其拷贝到其他的机器

hadoop环境测试

进入hadoop主目录下执行相应的脚本文件

jps命令--java virtual machine process status,显示运行的java进程

在namenode节点101机器上开启hdfs

[root@hadoop01 hadoop-3]# sbin/start-dfssh  java hotspot(tm) client vm warning: you have loaded library /home/softwares/hadoop-3/lib/native/libhadoopso 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 ', or link it with '-z noexecstack' 16/11/07 16:49:19 warn utilnativecodeloader: unable to load native-hadoop library for your platform using builtin-java classes where applicable starting namenodes on [hadoop01] hadoop01: starting namenode, logging to /home/softwares/hadoop-3/logs/hadoop-root-namenode-hadoopout 102: starting datanode, logging to /home/softwares/hadoop-3/logs/hadoop-root-datanode-hadoopout 103: starting datanode, logging to /home/softwares/hadoop-3/logs/hadoop-root-datanode-hadoopout 101: starting datanode, logging to /home/softwares/hadoop-3/logs/hadoop-root-datanode-hadoopout starting secondary namenodes [hadoop03] hadoop03: starting secondarynamenode, logging to /home/softwares/hadoop-3/logs/hadoop-root-secondarynamenode-hadoopout

此时101节点上执行jps,可以看到namenode和datanode已经启动

[root@hadoop01 hadoop-3]# jps 7826 jps 7270 datanode 7052 namenode

在102和103节点执行jps,则可以看到datanode已经启动

[root@hadoop02 bin]# jps 4260 datanode 4488 jps  [root@hadoop03 ~]# jps 6436 secondarynamenode 6750 jps 6191 datanode

启动yarn

在102节点执行

[root@hadoop02 hadoop-3]# sbin/start-yarnsh  starting yarn daemons starting resourcemanager, logging to /home/softwares/hadoop-3/logs/yarn-root-resourcemanager-hadoopout 101: starting nodemanager, logging to /home/softwares/hadoop-3/logs/yarn-root-nodemanager-hadoopout 103: starting nodemanager, logging to /home/softwares/hadoop-3/logs/yarn-root-nodemanager-hadoopout 102: starting nodemanager, logging to /home/softwares/hadoop-3/logs/yarn-root-nodemanager-hadoopout

jps查看各节点:

[root@hadoop02 hadoop-3]# jps 4641 resourcemanager 4260 datanode 4765 nodemanager 5165 jps   [root@hadoop01 hadoop-3]# jps 7270 datanode 8375 jps 7976 nodemanager 7052 namenode   [root@hadoop03 ~]# jps 6915 nodemanager 6436 secondarynamenode 7287 jps 6191 datanode

分别启动相应节点的jobhistory和防护进程

[root@hadoop01 hadoop-3]# sbin/mr-jobhistory-daemonsh start historyserver starting historyserver, logging to /home/softwares/hadoop-3/logs/mapred-root-historyserver-hadoopout [root@hadoop01 hadoop-3]# jps 8624 jps 7270 datanode 7976 nodemanager 8553 jobhistoryserver 7052 namenode  [root@hadoop02 hadoop-3]# sbin/yarn-daemonsh start proxyserver starting proxyserver, logging to /home/softwares/hadoop-3/logs/yarn-root-proxyserver-hadoopout [root@hadoop02 hadoop-3]# jps 4641 resourcemanager 4260 datanode 5367 webappproxyserver 5402 jps 4765 nodemanager

在hadoop01节点,即101节点上,通过浏览器查看节点状况

hdfs上传文件

[root@hadoop01 hadoop-3]# bin/hdfs dfs -put /etc/profile /profile

运行wordcount程序

[root@hadoop01 hadoop-3]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-jar wordcount /profile /fll_out java hotspot(tm) client vm warning: you have loaded library /home/softwares/hadoop-3/lib/native/libhadoopso 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 ', or link it with '-z noexecstack' 16/11/07 17:17:10 warn utilnativecodeloader: unable to load native-hadoop library for your platform using builtin-java classes where applicable 16/11/07 17:17:12 info clientrmproxy: connecting to resourcemanager at /102:8032 16/11/07 17:17:18 info inputfileinputformat: total input paths to process : 1 16/11/07 17:17:19 info mapreducejobsubmitter: number of splits:1 16/11/07 17:17:19 info mapreducejobsubmitter: submitting tokens for job: job_1478509135878_0001 16/11/07 17:17:20 info implyarnclientimpl: submitted application application_1478509135878_0001 16/11/07 17:17:20 info mapreducejob: the url to track the job: http://102:8888/proxy/application_1478509135878_0001/ 16/11/07 17:17:20 info mapreducejob: running job: job_1478509135878_0001 16/11/07 17:18:34 info mapreducejob: job job_1478509135878_0001 running in uber mode : true 16/11/07 17:18:35 info mapreducejob: map 0% reduce 0% 16/11/07 17:18:43 info mapreducejob: map 100% reduce 0% 16/11/07 17:18:50 info mapreducejob: map 100% reduce 100% 16/11/07 17:18:55 info mapreducejob: job job_1478509135878_0001 completed successfully 16/11/07 17:18:59 info mapreducejob: counters: 52     file system counters         file: number of bytes read=4264         file: number of bytes written=6412         file: number of read operations=0         file: number of large read operations=0         file: number of write operations=0         hdfs: number of bytes read=3940         hdfs: number of bytes written=261673         hdfs: number of read operations=35         hdfs: number of large read operations=0         hdfs: number of write operations=8     job counters          launched map tasks=1         launched reduce tasks=1         other local map tasks=1         total time spent by all maps in occupied slots (ms)=8246         total time spent by all reduces in occupied slots (ms)=7538         total_launched_ubertasks=2         num_uber_submaps=1         num_uber_subreduces=1         total time spent by all map tasks (ms)=8246         total time spent by all reduce tasks (ms)=7538         total vcore-milliseconds taken by all map tasks=8246         total vcore-milliseconds taken by all reduce tasks=7538         total megabyte-milliseconds taken by all map tasks=8443904         total megabyte-milliseconds taken by all reduce tasks=7718912     map-reduce framework         map input records=78         map output records=256         map output bytes=2605         map output materialized bytes=2116         input split bytes=99         combine input records=256         combine output records=156         reduce input groups=156         reduce shuffle bytes=2116         reduce input records=156         reduce output records=156         spilled records=312         shuffled maps =1         failed shuffles=0         merged map outputs=1         gc time elapsed (ms)=870         cpu time spent (ms)=1970         physical memory (bytes) snapshot=243326976         virtual memory (bytes) snapshot=2666557440         total committed heap usage (bytes)=256876544     shuffle errors         bad_id=0         connection=0         io_error=0         wrong_length=0         wrong_map=0         wrong_reduce=0     file input format counters          bytes read=1829     file output format counters          bytes written=1487

浏览器中通过yarn查看运行状态

查看最后的词频统计结果

浏览器中查看hdfs的文件系统

[root@hadoop01 hadoop-3]# bin/hdfs dfs -cat /fll_out/part-r-00000 java hotspot(tm) client vm warning: you have loaded library /home/softwares/hadoop-3/lib/native/libhadoopso 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 ', or link it with '-z noexecstack' 16/11/07 17:29:17 warn utilnativecodeloader: unable to load native-hadoop library for your platform using builtin-java classes where applicable !=   1 "$-"  1 "$2"  1 "$euid" 2 "$histcontrol" 1 "$i"  3 "${-#*i}"    1 "0"   1 ":${path}:"   1 "`id  2 "after" 1 "ignorespace"  1 #    13 $uid  1 &&   1 ()   1 *)   1 *:"$1":*)    1 -f   1 -gn`"  1 -gt   1 -r   1 -ru`  1 -u`   1 -un`"  2 -x   1 -z   1     2 /etc/bashrc   1 /etc/profile  1 /etc/profiled/ 1 /etc/profiled/*sh   1 /usr/bin/id   1 /usr/local/sbin 2 /usr/sbin    2 /usr/share/doc/setup-*/uidgid  1 002   1 022   1 199   1 200   1 2>/dev/null`  1 ;    3 ;;   1 =    4 >/dev/null   1 by   1 current 1 euid=`id    1 functions    1 histcontrol   1 histcontrol=ignoreboth 1 histcontrol=ignoredups 1 histsize    1 histsize=1000  1 hostname    1 hostname=`/usr/bin/hostname   1 it's  2 java_home=/home/softwares/jdk0_111 1 logname 1 logname=$user  1 mail  1 mail="/var/spool/mail/$user"  1 not   1 path  1 path=$1:$path  1 path=$path:$1  1 path=$path:$java_home/bin    1 path  1 system 1 this  1 uid=`id 1 user  1 user="`id    1 you   1 [    9 ]    3 ];   6 a    2 after  2 aliases 1 and   2 are   1 as   1 better 1 case  1 change 1 changes 1 check  1 could  1 create 1 custom 1 customsh    1 default,    1 do   1 doing 1 done  1 else  5 environment   1 environment,  1 esac  1 export 5 fi   8 file  2 for   5 future 1 get   1 go   1 good  1 i    2 idea  1 if   8 in   6 is   1 it   1 know  1 ksh   1 login  2 make  1 manipulation  1 merging 1 much  1 need  1 pathmunge    6 prevent 1 programs,    1 reservation   1 reserved    1 script 1 set  1 sets  1 setup  1 shell  2 startup 1 system 1 the   1 then  8 this  2 threshold    1 to   5 uid/gids    1 uidgid 1 umask  3 unless 1 unset  2 updates    1 validity    1 want  1 we   1 what  1 wide  1 will  1 workaround   1 you   2 your  1 {    1 }    1

感谢各位的阅读,以上就是"基于CentOS的Hadoop分布式环境如何搭建"的内容了,经过本文的学习后,相信大家对基于CentOS的Hadoop分布式环境如何搭建这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

节点 配置 文件 环境 运行 目录 机器 集群 系统 分布式 主机 拷贝 防火墙 防火 名字 命令 地址 密钥 模式 浏览器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 湖北九亚互联网络科技有限公司 互联网科技产业 深圳恒合互联网络科技有限公司 互联网通讯科技 金融科技创新监管互联网金融 重庆科技学院互联网 顶级互联网科技成果有哪些 岳阳华臻互联网科技有限公司 互联网金融科技展 企晟互联网信息科技有限公司 徐州市互联网科技有限公司 恒生互联网科技业指数调整周期 为客找房互联网科技公司怎么样 互联网金融科技元年 互联网科技股为什么大涨 同城互联网络科技 求路客互联网科技电话 陕西彩京云互联网科技有限公司 互联网科技大佬云集 厦门中拓互联网络科技有限公司 朗新科技与工业互联网 互联网与科技发展 国外互联网科技网站 互联网金融中的现代科技 健康食品互联网创新科技园项目 区块链结合互联网科技 启辰互联网科技 互联网对科技影响 高科技和互联网的现代国家
0