centos7下完全式hadoop集群搭建

来源:互联网 发布:命运 定数 知乎 编辑:程序博客网 时间:2024/06/09 16:04

初入数仓坑,搭建hadoop集群折腾了几天险些让我崩溃,好歹是让我看到了结果:
这里写图片描述

当然虽然过程坑了点耗费了相当心力,但好处是对配置的理解更明白了些,当然流程更是烂熟于心了。下面就开始总结吧:免密通信就不提了需要的话可以直接戳http://blog.csdn.net/qq_29186199/article/details/78428498。
首先说下环境,我是在centos7下面安装的二进制hadoop包(上链接:http://hadoop.apache.org/releases.html),如下图:
这里写图片描述

1、我将所需要的文件解压到了/usr/local/software(该文件是我自己创建放下载的软件包),解压后放到local目录下并更名Hadoop,jdk8,如图:
这里写图片描述

2、接下来配置环境变量(知道肯定有人手懒,贴码),如下图:
(只看java与hadoop环境变量配置)
这里写图片描述

#javaexport JAVA_HOME=/usr/local/jdk8export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#hadoopexport HADOOP_HOME=/usr/local/hadoopexport PATH=$PATH:$HADOOP_HOME/binexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_YARN_HOME=$HADOOP_HOMEexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib/nativeexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

写入配置信息之后别忘了source /etc/profile使配置生效。

3、nano /etc/hosts 进入该文件编辑主节点与子节点信息,我的节点信息如下:
这里写图片描述
事实上,这里只要写主机IP或者主机名(hostname可以查看主机名,vi /etc/hostname可以永久修改主机名,其他方法都更改的话这个方法优先级别最高,自测欢迎指正)其一就可以,都写的话也不错。

4、接下来就是配置Hadoop文件了,我用的是root账户所以各文件无所谓权限不够的问题了(自己玩的嘛/尴尬笑),首先进入Hadoop主目录(我的cd /usr/local/hadoop):
创建新文件tmp和hdfs以及hdfs下面的name和data文件夹上命令:

mkdir {tem,hdfs} , cd hdfs , mkdir {name,data}

上图(总结嘛怎么可能是实时的):
这里写图片描述

5、接下来配置文件,根据个人需要主要有以下几个,不敲了上图:
这里写图片描述
接下来一个一个来:

vi core-site.xml

这里写图片描述

<configuration><property> <final>true</final>         <!--默认文件系统的名字,URL形式-->        <name>fs.defaultFS</name>        <value>hdfs://192.168.233.128:9000</value></property><property>    <!--Hadoop临时目录,其他目录会基于此目录,是本地目录-->    <name>hadoop.tmp.dir</name>        <value>file:/usr/local/hadoop/tmp</value>         <final>true</final></property><property>    <!--读写文件时使用的缓存大小,大小应该是内存Page的倍数-->    <name>io.file.buffer.size</name>        <value>131072</value></property></configuration>
vi hdfs-site.xml

这里写图片描述

<configuration><property><!--本地磁盘目录,用于NameNode存放fsimage文件,可以设置多个,一个坏了用另一个,但是如果设置了HA建议设置一个--><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/hdfs/name</value></property><property><!--本地磁盘目录,HDFS存储数据块的地方--><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/hdfs/data</value></property><property><!--数据块副本--><name>dfs.replication</name><value>3</value></property><property><!--SecondNameNode的http服务地址。端口为0的话服务随机选择一个空闲端口,使用了HA的话就不再使用SecondNameNode--><name>dfs.namenode.secondary.http-address</name><value>192.168.233.128:9001</value></property><property><!--HDFS服务通信的RPC地址,该参数必须设置,如果设置,备份结点,数据结点和其他服务将会连接到指定地址--><name>dfs.namenode.servicerpc-address</name><value>192.168.233.128:10000</value></property><property><!--指定是否在NameNode和DataNode上面指定WebHDFS功能--><name>dfs.webhdfs.enabled</name><value>true</value></property><property><name>dfs.permissions</name><value>false</value></property></configuration>
vi mapred.xml(MapReduce的配置文件)

这里写图片描述

<configuration><property><!--设置MapReduce执行框架为yarn--><name>mapreduce.framework.name</name><value>yarn</value></property><property><!--MapReduce历史服务器地址--><name>mapreduce.jobhistory.address</name><value>192.168.233.128:10020</value></property><property><!--MapReduce历史服务器wen ui地址--><name>mapreduce.jobhistory.webapp.address</name><value>192.168.233.128:19888</value></property></configuration>
vi yarn-site.xml

这里写图片描述

<configuration><property><!--Nodemanager上面运行的附属服务,需要配置成mapreduce_shuffle才可以运行mapreduce--><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><!--对应参考yarn.nodemanager.aux-services--><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><!--ResourceManager对客户端暴露的地址。客户端向RM提交应用程序,杀死应用程序等--><name>yarn.resourcemanager.address</name><value>192.168.233.128:8032</value></property><property><!--调度器地址,ResourceManager向ApplicationManager暴露的地址,ApplicationManager通过该地址向RM申请、释放资源--><name>yarn.resourcemanager.scheduler.address</name><value>192.168.233.128:8030</value></property><property><!--RM向NM暴露的地址,NM通过该地址向NM汇报心跳,领取任务--><name>yarn.resourcemanager.resource-tracker.address</name><value>192.168.233.128:8031</value></property><property><!--RM对管理员暴露的地址,管理员通过该地址向RM发送管理命令--><name>yarn.resourcemanager.admin.address</name><value>192.168.233.128:8033</value></property><property><!--RM对外WEB UI地址,用户可通过该地址查看集群各类信息--><name>yarn.resourcemanager.webapp.address</name><value>192.168.233.128:8088</value></property><property><!--NM总的可用物理内存,不能小于1024.一旦设置不可在运行中动态修改--><name>yarn.nodemanager.resource.memory-mb</name><value>1024</value></property><property>  <name>yarn.nodemanager.aux-services</name>  <value>mapreduce_shuffle</value></property><property>  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  <value>org.apache.hadoop.mapred.ShuffleHandler</value></property></configuration>
vi hadoop-env.sh

这里写图片描述

export JAVA_HOME=/usr/local/jdk8/
vi yarn-env.sh

这里写图片描述

export JAVA_HOME=/usr/local/jdk8
vi slaves

这里写图片描述
至此主节点配置Hadoop配置完成。

6、把主节点服务器即master主机下的/etc/profile,hadoop主目录即:/usr/local/hadoop,和jdk主目录即/usr/local/jdk8复制到其余各个节点服务器,即:

scp -r  /etc/profile 192.168.233.130:/etc/scp -r  /usr/local/hadoop 192.168.233.130:/usr/local/scp -r  /usr/local/jdk8 192.168.233.130:/usr/local/scp -r  /etc/profile 192.168.233.131:/etc/scp -r  /usr/local/hadoop 192.168.233.131:/usr/local/scp -r  /usr/local/jdk8 192.168.233.131:/usr/local/scp -r  /etc/profile 192.168.233.132:/etc/scp -r  /usr/local/hadoop 192.168.233.132:/usr/local/scp -r  /usr/local/jdk8 192.168.233.132:/usr/local/

复制过去之后不要忘记source /etc/profile 使配置生效,另外这里提一下吧,hadoop里面的几个修改的文件各自主机用各自主机的IP(我就在这里面绕不出来了)。

7、第一次启动首先格式化HDFS:
cd /usr/local/hadoop/sbin
hdfs namenode -format
说明:只要看到/usr/local/hadoop/hdfs/name 被格式化成功就没问题了
启动HDFS:start-dfs.sh
java自带jps命令验证:
主节点:
这里写图片描述
子节点:
这里写图片描述
页面验证:
这里写图片描述
没毛病

8、至此hadoop的配置基本完成,其他组件有需要再加希望帮到正在焦头烂额的朋友,在此也感谢官方文档和Hadoop构建数据仓库实践,是个好东西。

原创粉丝点击