在CentOS7.5上搭建Hadoop3.0.3单节点集群

完全分布式集群搭建请移步

在CentOS7.5上搭建Hadoop3.0.3完全分布式集群

当前CentOS和JDK版本:

[root@master ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)
[root@master ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

可通过如下命令查看JAVA_HOME

[root@master ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre

所要搭建的Hadoop版本:

[root@master ~]# hadoop version
Hadoop 3.0.3
Source code repository https://yjzhangal@git-wip-us.apache.org/repos/asf/hadoop.git -r 37fd7d752db73d984dc31e0cdfd590d252f5e075
Compiled by yzhang on 2018-05-31T17:12Z
Compiled with protoc 2.5.0
From source with checksum 736cdcefa911261ad56d2d120bf1fa
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.0.3.jar
HostnameHDFSMapReduce2IP
masternameNodeResourceManager10.0.86.245

1.设定SSH免密登录

[root@master ~]# yum install rsync
[root@master ~]# ssh-keygen -t rsa -P ‘ ‘ -f ~/.ssh/id_rsa 
[root@master ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

注:
①第一行命令rsync是一个文件同步和传输工具。rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法
②第二行命令用于产生秘钥,-t(type)表示加密类型,rsa是对称加密,若是dsa为整数加密;-P表示密码,空字符串表示不使用密码,-f(file)表示生成秘钥放在哪个文件中
③第三行命令用于把生成的(公钥和私钥)中的公钥(.pub)放到需要无密码免登录的账户中,其中authorized_keys不能更改。
④设置完SSH后记得用ssh localhost命令验证一下,如果直接登录不需要密码,则说明设置成功,如下所示:

[root@master ~]# ssh localhost
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Last login: Sun Nov 25 21:12:21 2018 from 159.226.50.246
[root@master ~]# 

2.安装JDK

先键入java -version并执行后查看当前节点是否有装好的JAVA,当出现如下图JAVA版本,则说明已安装成功,无需再安装。

[root@master ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

如果没有以上情况,则需要安装JDK,在CentOS中用yum命令安装,直到出现上图情况则表示安装成功:

[root@master ~]# yum install java-1.8.0-openjdk
[root@master ~]# java -version

默认安装路径:/usr/lib/jvm/java-......./
比如我当前版本的安装路径:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/

3.下载安装Hadoop

[root@master ~]# wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz
[root@master ~]# tar -zxvf hadoop-3.0.3.tar.gz
[root@master ~]# mv hadoop-3.0.3 /usr/local/hadoop
[root@master ~]# ll /usr/local/hadoop

注:
①第二行命令用于解压下载好的hadoop,参数z表示有gzip属性的,x表示解压,v表示显示全部过程,f(必须排在所有参数之尾)后面跟档案名
②第三行命令用于将解压好的hadoop转移到公共目录,mv(move)。

4 设定Hadoop环境变量

[root@master ~]# vim ~/.bashrc 

在文件结尾处粘贴如下代码并保存退出。
4637
注:配置文件中的JAVA_HOMEHADOOP_HOME需要根据实际安装的版本和存在的路径进行修改。

# Set Java Environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# Hadoop
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

保存退出后需要让当前环境变量配置立刻生效,无需重启。

[root@master ~]# source ~/.bashrc

5 hadoop配置文件设定

5.1 修改hadoop-env.sh

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

在如图所示位置粘贴相应两行代码。
333

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
export HADOOP_HOME=/usr/local/hadoop

5.2 修改core-site.xml

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/core-site.xml

<configuration> </configuration>标签中粘贴如下代码,以下步骤同上。
在这里插入图片描述

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9000</value>
</property>

如果是Hadoop2.x.x版本,则还需要在core-site.xml中追加如下键值对,并在对应目录建立tmp目录,否则SecondaryNameNode启不来,当初遇到这个基础问题,花费了好长时间啊o(╥﹏╥)o

<property>
  <name>hadoop.tmp.dir</name>
  <value> file:/usr/local/hadoop/tmp/</value>
</property>

5.3 修改yarn-site.xml

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/yarn-site.xml 

yarn-site文件存储的是管理程序、资源管理如CPU资源、内存资源等。

<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>

5.4 修改mapred-site

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/mapred-site.xml 
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

5.5 修改hdfs-site.xml

[root@master ~]# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml 

hdfs-site为分布式系统配置文件。

<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
 </property>

6 建立与格式化HDFS目录

[root@master ~]# mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
[root@master ~]# mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
[root@master ~]# chown <用户名> : <组名> -R /usr/local/hadoop
# 以下例如填root,但这样设置,start-dfs.sh时会报错,修改下start-dfs.sh等配置文件即可,后续会说明如何修改。
[root@master ~]# chown root:root -R /usr/local/hadoop  
[root@master ~]# hadoop namenode -format

注:其中mkdir用于创建文件或目录,-p(parents)表示创建的是目录,若没有此目录,则按照后面路径创建下去;chown用于授权,参数-R表示对当前目录下的所有档案与子目录进行相同的拥有者变更权限;hadoop namenode -format用于格式化目录,其会初始化namenode中一些文件和目录。

7 启动hadoop

[root@master ~]# start-dfs.sh
[root@master ~]# start-yarn.sh
或 [root@master ~]# start-all.sh

启动后,输入jps命令后,若出现6个节点则,启动成功,否则查看之前配置文件的修改是否有误。
536475
如果启动报错如下,则是之前设置Hadoop目录权限的时候设置用户名和组名都为root了。

[root@master ~]# start-dfs.sh 
Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [master]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-11-26 09:29:54,896 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

1)则需要修改/usr/local/hadoop/sbin/路径下的start-dfs.shstop-dfs.sh配置文件

[root@master ~]# vim /usr/local/hadoop/sbin/start-dfs.sh 
[root@master ~]# vim /usr/local/hadoop/sbin/stop-dfs.sh

在配置文件顶部加入如下四行参数。
55

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

2)还需要修改/usr/local/hadoop/sbin/路径下的start-yarn.shstop-yarn.sh配置文件

[root@master ~]# vim /usr/local/hadoop/sbin/start-yarn.sh 
[root@master ~]# vim /usr/local/hadoop/sbin/stop-yarn.sh

在配置文件顶部加入如下三行参数。

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

现在启动成功~!
6666

8 开启Hadoop Web界面

ResourceManager地址 http://localhost:8088/
此处我的地址是:http://10.0.86.245:8088/
NameNode HDFS Web地址 http://localhost:9870/
此处我的地址是:http://10.0.86.245:9870/

打开本机浏览器,分别输入上面两个链接出现如下页面则启动成功。可在8088页面中看到有一个活节点(正是我们所搭的单节点)
3673
9078

小结:
datanode(数据节点)主要负责数据的存储。
namenode(命名节点)主要负责三个功能,分别是
(1)管理元数据
(2)维护目录树
(3)响应客户请求

注:

如出现下图,节点中没有jps,则需要安装JDK开发插件。
45454
先检查openjdk版本
在这里插入图片描述
安装java-1.8.0-openjdk-devel后即可正常使用jps

[root@master ~]# yum install -y java-1.8.0-openjdk-devel
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
搭建Hadoop集群的步骤如下: 1. 安装Java 首先需要安装Java,Hadoop需要Java环境才能运行。可以使用以下命令安装Java: ``` sudo yum install java-1.8.0-openjdk-devel ``` 2. 下载Hadoop 从官方网站下载Hadoop 3.3.1版本,然后解压到目录中。可以使用以下命令: ``` wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz tar -zxvf hadoop-3.3.1.tar.gz sudo mv hadoop-3.3.1 /usr/local/hadoop ``` 3. 配置Hadoop环境变量 编辑`/etc/profile`文件,添加以下内容: ``` export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin ``` 然后执行以下命令使配置生效: ``` source /etc/profile ``` 4. 配置Hadoop集群Hadoop集群中,需要指定一个节点作为NameNode,其他节点作为DataNode。可以在`/usr/local/hadoop/etc/hadoop`目录下找到`core-site.xml`和`hdfs-site.xml`两个配置文件,进行以下修改: 在`core-site.xml`文件中添加以下内容: ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode:9000</value> </property> </configuration> ``` 其中,`namenode`是NameNode节点的主机名或IP地址。 在`hdfs-site.xml`文件中添加以下内容: ``` <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value> </property> </configuration> ``` 其中,`dfs.replication`指定了数据备份数量,`dfs.namenode.name.dir`和`dfs.datanode.data.dir`指定了NameNode和DataNode的数据存储路径。 5. 配置YARN YARN是Hadoop的资源管理器,需要进行相应的配置。可以在`/usr/local/hadoop/etc/hadoop`目录下找到`yarn-site.xml`文件,进行以下修改: ``` <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>resourcemanager</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` 其中,`yarn.resourcemanager.hostname`指定了ResourceManager节点的主机名或IP地址。 6. 启动Hadoop集群 按照以下顺序启动Hadoop集群: ``` start-dfs.sh start-yarn.sh ``` 7. 验证Hadoop集群 可以通过访问以下网址来验证Hadoop集群是否正常运行: ``` http://namenode:9870/dfshealth.html http://resourcemanager:8088/cluster ``` 其中,`namenode`和`resourcemanager`分别是NameNode和ResourceManager节点的主机名或IP地址。 以上就是在CentOS 7上搭建Hadoop 3.3.1集群的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SL_World

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值