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 | sudo mkdir /usr/local/java/ |
配置环境变量
1 | # 打开配置文件 |
测试是否配置成功
然后可通过java -version
查看是否配置成功
0x02 下载Hadoop并配置
下载
从官网下载:http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz
下载后解压到想要放置的目录即可。
配置环境变量
1 | # 打开配置文件 |
配置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
8Port 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 | ssh-keygen -t rsa -P '' #直接回车生成公钥和私钥 |
测试本地免密登陆
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> wzb name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value> wzb 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
5Starting 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,进行相应处理。