Centos7搭建Hadoop伪分布式集群详细步骤

0x00 前言

Apache Hadoop是一款支持数据密集型分布式应用程序并以Apache 2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。此处仅使用一台虚拟机进行hadoop集群搭建,因此称为伪分布式。

0x01 安装JAVA环境-jdk1.8

下载安装包

安装包可根据需要从官网下载
也可以在centos中使用wget命令下载,如下图提取下载链接

1
2
#此链接很有可能失效,如失效请重新提取
wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz?AuthParam=1553514841_9cc3afa073df0a90e3fbb39088a2cde9

新建安装目录并解压

1
2
sudo mkdir /usr/local/java/
sudo tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/

配置环境变量

1
2
3
4
5
6
7
8
9
# 打开配置文件
vi ~/.bashrc
# 添加并保存
export JAVA_HOME=/usr/local/java/jdk1.8.0_201 #注意此处jdk目录与你解压目录相同
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 使环境变量生效
source ~/.bashrc

测试是否配置成功

然后可通过java -version查看是否配置成功

0x02 下载Hadoop并配置

下载

从官网下载:http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz

下载后解压到想要放置的目录即可。

配置环境变量

1
2
3
4
5
6
7
8
# 打开配置文件
vi ~/.bashrc
# 添加并保存
export HADOOP_HOME=/home/wzb/hadoop-3.2.0 #注意此处hadoop目录与你解压目录相同
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# 使环境变量生效
source ~/.bashrc

配置hadoop-env.sh中的$JAVA_HOME

1
vi hadoop-3.2.0/etc/hadoop/hadoop-env.sh

测试是否配置成功

hadoop version

0x03 配置ssh免密登陆

因为hadoop集群在进行验证时采用ssh公钥登陆,此处配置伪分布式集群,以本地免密登陆为例。

安装

centos默认安装了openssh,如未安装,请先进行安装

1
yum install openssh-server -y

配置

打开openssh主配置文件

1
sudo vi /etc/ssh/sshd_config

需开启并配置的文件如下,其他根据需要可自由配置

1
2
3
4
5
6
7
8
Port 22
ListenAddress 0.0.0.0
ListenAddress ::
PermitRootLogin no
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes

配置完成后重启服务以使配置生效

1
sudo service sshd restart

生成公钥

1
2
3
4
5
6
ssh-keygen -t rsa -P ''  #直接回车生成公钥和私钥

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #将本机的公钥添加进authorized_keys中,这样允许本机通过ssh的形式免密码登录,如配置其他主机免密登陆,请将其他主机公钥配置到`authorized_keys`

sudo chmod 700 ~/.ssh #配置相应权限
sudo chmod 600 ~/.ssh/authorized_keys

测试本地免密登陆

1
ssh localhost

配置成功则无需密码直接登陆成功

如果失败请使用ssh -vvv locoalhost进行debug排查

0x04 配置hadoop伪分布式集群

配置hadoop运行核心文件core-site.xml


1
2
3
4
5
6
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

配置HDFS分布式储存的配置hdfs-site.xml


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/wzb/hdfs-data/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/wzb/hdfs-data/data</value>
</property>

</configuration>

数据目录格式化

1
hdfs namenode -format


出现INFO common.Storage: Storage directory /home/wzb/hdfs-data/name has been successfully formatted.字样时表明格式化目录成功

启动Hadoop

1
start-all.sh


启动过程中下面进程无错误启动即启动成功。

1
2
3
4
5
Starting namenodes
Starting datanodes
Starting secondary namenodes
Starting resourcemanager
Starting nodemanagers

查看java进程

使用命令jps可发现相关进程启动成功

查看端口

netstat -ntpl |grep java
可与上面进程号比对查看相关进程部署在哪个端口。

访问端口

http://127.0.0.1:8088

http://127.0.0.1:9870

注意事项

本地搭建伪分布式会面临设备关机重启,请在关机前执行stop-all.sh关闭所有相关进程。

0x05 总结

在配置环节可能出现多处未知错误,可通过排查log记录解决。
如免密登陆及部署hadoop时可能会出现未知错误。

  • 免密登陆出现的错误可通过ssh -vvv localhost查看debug情况,进行相应错误的处理。
  • 部署hadoop过程中,如有关进程未正常启动可通过hadoop目录下的logs文件查看启动失败的进程log,进行相应处理。

本文标题:Centos7搭建Hadoop伪分布式集群详细步骤

文章作者:boogle

发布时间:2019年03月25日 - 20:50

最后更新:2019年03月27日 - 08:01

原始链接:https://zhengbao.wang/Centos7搭建Hadoop伪分布式集群详细步骤/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

感觉写的不错,给买个棒棒糖呗