CentOS 7 之Hadoop集群搭建 (详细版)

本文旨在提供最基本的,可以用于在生产环境进行Hadoop、HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用。

一、基础环境

 

在Linux上安装Hadoop之前,需要先安装两个程序:

1.1 安装说明

1. JDK 1.6或更高版本(本文所提到的安装的是jdk1.8);

2. SSH(安全外壳协议),推荐安装OpenSSH。

 

下面简述一下安装这两个程序的原因:

1. Hadoop是用Java开发的,Hadoop的编译及MapReduce的运行都需要使用JDK。

2. Hadoop需要通过SSH来启动salve列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分集群式和伪分布式)。对于伪分布式,Hadoop会采用与集群相同的处理方式,即依次序启动文件conf/slaves中记载的主机上的进程,只不过伪分布式中salve为localhost(即为自身),所以对于伪分布式Hadoop,SSH一样是必须的。

1.1 JDK的安装与配置

1、上传压缩包

我这里使用的是xftp 5 工具 上传jdk-8u191-linux-x64.tar.gz压缩包 到指定位置

我是在/opt/workspace/

2、解压压缩包

tar -zxvf jdk-8u191-linux-x64.tar.gz

3、重命名

mv jdk-8u191-linux-x64.tar.gz jdk.8

4、配置环境变量 vi 或者vim

vi /etc/profile

添加 export JAVA_HOME=/opt/workspace/jdk1.8

export CLASSPATH=${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib

export PATH=$PATH:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin

保存退出 并刷新   source /etc/profile

然后试一下是否成功    java-version

 

 

二、Host配置

由于我搭建Hadoop集群包含三台虚拟机,所以需要修改调整各台机器的hosts文件配置,进入/etc/hosts,配置主机名和ip的映射,命令如下:

vim /etc/hosts

如果没有足够的权限,可以切换用户为root。或者  chmod 777 需要权限的文件

三台机器的内容统一增加以下host配置:

可以通过hostname来修改服务器名称为master、slave1、slave2

hostname master

三、Hadoop的安装与配置

3.1 创建文件目录

为了便于管理,给Master的hdfs的NameNode、DataNode及临时文件,在用户目录下创建目录:

/data/hdfs/name

/data/hdfs/data

/data/hdfs/tmp

然后将这些目录通过scp命令拷贝到Slave1和Slave2的相同目录下。

3.2 下载

我用的是  hadoop-2.7.3.tar.gz

链接:https://pan.baidu.com/s/1XesKilnkNVAxQHkecMmJcQ 
提取码:meod 

或者官网  https://hadoop.apache.org/releases.html

解压到workspace目录

tar -zxvf hadoop-2.7.3.tar.gz

3.3 配置环境变量

vi /etc/profile

请看开头第一张图

配好刷新资源 source /etc/profile

此时输入  hadoop 回车  会有资源加载  表示成功  如下图(目录别在意,懒得切换回去了)

 

3.4 Hadoop的配置

进入hadoop-2.7.3的配置目录:

cd  ./hadoop2.7/etc/hadoop

依次修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml以及slaves文件。

3.4.1 修改core-site.xml

vi core-site.xml

<property>
   <name>hadoop.tmp.dir</name>
   <value>/home/hadoopdir/dfs/data</value>
   <description>A base for other temporary directories.</description>
 </property>
 <property>
   <name>io.file.buffer.size</name>
   <value>131072</value>
 </property>
 <property>
   <name>fs.default.name</name>
   <value>hdfs://master:9000</value>
 </property>
 <property>
 <name>hadoop.proxyuser.root.hosts</name>
 <value>*</value>
 </property>
 <property>
 <name>hadoop.proxyuser.root.groups</name>
 <value>*</value>
 </property>
 
 

3.4.2 修改vim hdfs-site.xml

vim hdfs-site.xml

<property>
 <name>dfs.replication</name>
   <value>2</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>/home/hadoopdir/dfs/name</value>
   <final>true</final>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>/home/hadoopdir/dfs/data</value>
   <final>true</final>
 </property>
 <property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>master:9001</value>
 </property>
 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>dfs.permissions</name>
   <value>false</value>
 </property>

3.4.3 修改vim mapred-site.xml

复制template,生成xml,命令如下:

cp mapred-site.xml.template mapred-site.xml

vim  mapred-site.xml

<configuration>
 
 <property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
 
 </configuration>

 

3.4.4 修改vim yarn-site.xml

vim  yarn-site.xml

<property>
 <name>yarn.resourcemanager.address</name>
   <value>master:8032</value>
 </property>
 <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>master:8030</value>
 </property>
 <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:8088</value>
 </property>
 <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>master:8031</value>
 </property>
 <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>master:8033</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>
 <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
 </property>
 <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>1</value>
 </property>

  hadoop-env.sh与yarn-env.sh这两个文件不用修改,因为里面的配置是:

export JAVA_HOME=${JAVA_HOME}  

真想改也可以改成对应的路径。

3.4.5 修改data/hadoop-2.7.3/etc/hadoop/slaves

将原来的localhost删除,切换到conf目录 改成如下内容

vi ./slaves

scp -r /opt/workspace/hadoopDir/hadoop2.7 root@slave1:/opt/workspace/hadoopDir/hadoop2.7 

scp -r /opt/workspace/hadoopDir/hadoop2.7 root@slave2:/opt/workspace/hadoopDir/hadoop2.7 

失败的话就把slave换成对应的ip

四、运行Hadoop

4.1 格式化NameNode

执行命令:

hadoop namenode -format

执行过程如下图:

4.2 启动NameNode

执行命令如下:我这是绝对路径  你可以在sbin目录 简单点

/opt/workspace/hadoopDir/hadoop2.7/sbin/hadoop-daemon.sh start namenode

4.3 启动DataNode

执行命令如下:

./sbin/hadoop-daemons.sh start datanode

说明Slave1和Slave2上的DataNode运行正常。

以上启动NameNode和DataNode的方式,可以用start-dfs.sh脚本替代:

./sbin/start-all.sh

成功的话

Master显示:

  SecondaryNameNode

  ResourceManager

  NameNode

Slave显示

       NodeManager

  DataNode

常遇到的情况是slave的Datanode没有启动起来

进入sbin 输入命令 ./start-dfs.sh

slave的Nodemanager没有启动

进入sbin输入 ./start-yarn.sh

格式化 hdfs namenode -format

查看日志

/opt/workspace/hadoopDir/hadoop2.7/logs/yarn-root-nodemanager-slave2.log

每次使用完毕切记 关闭hadoop

stop-dfs.sh

下次时使用

sbin/start-dfs.sh

----------------------------------------------------------------------------------------------------------------------------------

 

五、测试hadoop

5.1 测试HDFS

最后测试下亲手搭建的Hadoop集群是否执行正常,测试的命令: ./sbin/start-dfs.sh

5.2 查看集群状态

./bin/hdfs dfsadmin -report

5.3 测试YARN

可以访问YARN的管理界面,验证YARN,如下图所示:

5.4 测试mapreduce

不想编写mapreduce代码。幸好Hadoop安装包里提供了现成的例子,在Hadoop的share/hadoop/mapreduce目录下。运行例子:

 

 

 

 5.5 测试查看HDFS:

http://192.168.1.40:50070/  即主机IP:50070

 

 

å¾çå·²ç»æå :<

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值