Hadoop安装,centos7下

Windows下安装Hadoop宣告失败,无法解决jps缺少进程问题

接下来尝试在Linux下安装,选择centos7下安装,教程较多

以下为搜索到的教程

教程配置了多台主机,我准备只配置一台。

 

一、 准备条件
一台centos7虚拟机(我使用的软件是vm)
文件传输工具:Xftp(vm有vm tool但是不太好用)
远程连接工具:Xshell(与命令行界面类似,但是支持复制粘贴)
二、修改ip为固定
我当时创建的虚拟机采用的网络连接方式是NAT模式,这样比较适合与外网连接。如果当时选的不是NAT的话,也可以修改。

找到虚拟机的设置选项


在这里更改之后,点击确定就好。
下面说说具体配置固定ip:

确定虚拟网络的参数


选择vmnet8,这就是你的虚拟机的网卡。然后再选择NAT设置和DHCP设置


在本机中查看DNS服务器的ip:

记录好这些内容,当然这些参数大部分是可以修改。但是为了不必要的麻烦(因为懒),我们就不修改了。
2. 进入虚拟机,修改配置
后续步要在root用户下进行

找到这个文件进行修改,最后的“ens”可能不同,去目录中看一下就知道

ipaddr是你要固定的ip
netmask是子网掩码
gateway是网关

service network restart
重启网络服务

网络启动正常,ping一下百度也没有问题

三、安装jdk
下载jdk
去oracle官网下载适宜版本的jdk

需要注册登录,不过下载是免费的。
将jdk传输到centos中
我是通过xftp传输的。

这个软件按使用很简单,推荐大家使用,vm本身的工具,我觉得不好用。
解压jdk
tar -zxvf jdk-8u241-linux-x64.tar.gz /opt/soft/jdk
记住自己解压的位置,我是习惯于把软件安装到/opt/soft文件夹下,新建一个jdk目录

编辑配置文件
vi /etc/profile
将光标移动到末尾,输入以下内容

#java environment
export JAVA_HOME=/opt/soft/jdk/jdk1.8.0_241
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
source /etc/profile
使配置文件生效。

检查文件是否生效
java -verison

修改bashrc文件
vi ~/.bashrc
export JAVA_HOME=/opt/soft/jdk/jdk1.8.0_241
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
四、各种设置
关闭防火墙
systemctl stastus fiewalld.service #查看防火墙状态
systemctl stop fiewalld.service #临时关闭防火墙
systemctl disable fiewalld.service #禁止开机自启动
systemctl start fiewalld.service #打开防火墙
systemctl enable fiewalld.service #打开开机启动
这里我们只要用到前三个命令。

修改主机名
hostnamectl set-hostname s161

3. 关闭selinux

getenforce #查看状态
setenforce 0 #临时关闭
setenforce 1 #临时打开
要永久关闭,需要修改/etc/sysconfig/selinux文件


已经关闭。
4. 配置节点的域名解析

vi /etc/hosts

在后面添加,四个节点的ip和主机名,这里我们暂时只有一台虚拟机,这是预准备。

五、安装Hadoop
下载hadoop
apache官网的版本挺全,但是下载速度较慢;国内清华的镜像下载的速度挺快,但是版本不是很全。
apache官网:https://archive.apache.org/dist/hadoop/common/
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
我下载的是2.9.1版,不推荐用3.x版,新本有一些生态还不够完善
传到centos中解压安装

解压:tar -zxvf hadoop-2.9.1.tar.gz
配置环境变量
vi /etc/profile
# HADOOP_HOME
export HADOOP_HOME=/opt/soft/hadoop/hadoop-2.9.1
export HADOOP_CONF_FILE=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile
修改~/.bashrc文件
vi ~/.bansrc
export JAVA_HOME=/opt/soft/jdk/jdk1.8.0_241
export HADOOP_PREFIX=/opt/soft/hadoop/hadoop-2.9.1
export PATH=$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH

注意:这里是在原来jdk的基础上修改的,即这里是jdk+hadoop的内容,不只是hadoop。
最后再使配置文件生效source ~/.bashrc
5. 检查配置

hadoop version
注意这里没有“-”。

ok,成功;

六、编写Hadoop的配置文件
进入${HADOOP_HOME}/etc/hadoop目录下

core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s161:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/soft/hadoop/hadoop_data/tmp</value>
</property>
</configuration>

hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/soft/hadoop/hadoop_data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/soft/hadoop/hadoop_data/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>


mapred-site.xml
这个文件本身不存在先执行以下命令:
cp mapred-site.xml.template mapred-site.xml
1
这就是把mapred-site.xml.template文件在当前文件夹中复制一份并命名为mapred-site.xml

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

yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>s161:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>s161:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>s161:8031</value>
</property>
</configuration>


slaves
s162
s163
s164

这里写的是从节点的主机名

hadoop-env.sh
export JAVA_HOME=/opt/soft/jdk/jdk1.8.0_241


七、将虚拟机复制三份
这一步没啥好说的,复制粘贴就完事了。记得先关闭虚拟机再复制。

八、修改另外三台虚拟机信息
修改主机名
采用命令:hostnamrctl set-hostname xxx来修改主机名
修改ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
改变其中的ip信息
使用:service network restart重启网络服务,最后再ping一下baidu,试一下网络是否是连通的。

3.注意!!!
这里修改的信息,要与之前在/etc/hosts文件中的内容相符。

九、配置四台机器的免密登录
修改配置信息
vi /etc/ssh/sshd_config

将下面部分前面的注释“#”去掉

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

这是开启ssh密钥认证。

生成密钥
这里采用是rsa加密算法
ssh-keygen -t rsa

连续敲回车就行

将公钥写入认证文件
这一步是将自己的公钥写入认证文件
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

连接其他机器,将他们的密钥也写入认证文件

ssh root@s162 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

以其中一台为例,其他两台只要将主机名更换就行。


查看认证文件的内容
cat ~/.ssh/authorized_keys

四台机器的密钥都已经写入认证文件

查看known_hosts中的主机列表
vi ~/.ssh/known_hosts

这里我们可以看到没有s161机器的内容,我们连接一下s161机器

ssh s161

因为这里是主机连接本身,所以之后的用户名和主机名不会有变化,可以输入命令:exit退出连接。再查看一下known_hosts文件
ok了,已经包含全部的四台机器了。

将认证文件复制到其他主机
scp ~/.ssh/authorized_keys root@s162:~/.ssh/authorized_keys

这里是由于第一次连接还要输入密码。scp命令常用于传输文件。

到其他节点查看文件是否正确传输
在s162机器中查看文件传输正确。

免密登录测试

ssh s163

在s161节点中输入命令

可以尝试连接所有机器,全部验证一遍。

十、Hadoop集群的启动
格式化集群
cd /opt/soft/hadoop/hadoop-2.9.1/etc/hadoop/
hdfs namenode -format

出现以下信息,表示格式化成功


启动节点
start-dfs.sh
start-yarn.sh

使用:jps查看启动进程
主节点:

从节点:


关闭节点
stop-dfs.sh
stop-yarn.sh

在不适用,或者其他情况下尽量关闭节点。

4. 注意
如果之前有配置错的,重新配置后想要重新格式化,要先删除格式化创建的目录,否则可能会造成datanode进程无法启动的状况。

十一、在web界面中查看hadoop集群
因为我之前装的是没有GUI的centos系统,所以先安装图形界面

安装图形界面
我是参考了大神的博客:https://www.jianshu.com/p/94d9135edb91
启动集群
这一步与之前启动的方式相同。
在web中查看
进入图形界面的虚拟机,以root用户登录(创建hadoop集群的用户)
打开firefox浏览器,在地址栏输入:s161:50070

通过8088端口可以查看作业状态:

至此hadoop集群搭建完成!!!下一步就是在虚拟机中配置eclipse使用hadoop。


原文链接:https://blog.csdn.net/weixin_44546992/article/details/105875133

posted @ 2021-09-08 22:07  枫叶鎏霜  阅读(167)  评论(0)    收藏  举报