linux --centOS下构建hadoop集群(伪分布式)

时间:2022-09-14 15:47:41

创建用户及准备

在构建hadoop之前,创建一个hadoop用户,并通过passwd hadoop给用户设置密码。

linux --centOS下构建hadoop集群(伪分布式)

接着使用su hadoop切换到hadoop用户:

linux --centOS下构建hadoop集群(伪分布式)

并且切换到主目录下创建一个dir 命名为opt。

linux --centOS下构建hadoop集群(伪分布式)

创建好了目录,上传两个压缩包至opt,分别是:

---hadoop-2.7.5.tar.gz

---jdk-8u152-linux-x64.tar.gz

tar -zxvf  hadoop-2.7.5.tar.gz

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

解压后,会生成两个文件夹

linux --centOS下构建hadoop集群(伪分布式)

配置环境

先配置jdk的环境。

cd jdk1.8.0_152

事实上我们没必须要一个一个键盘敲击出jdk可以通过TEB键补齐。

接着编辑 主目录下的 隐藏文件 .bashrc,可以通过 ll -a看到。

声明一个javapath变量,把当前绝对路径赋给它:

javapath=`pwd`

vi ~/.bahsrc 添加两行路径:

    export    JAVA_HOME=$javapath

    export    PATH=$PATH:$javapath/bin

再刷新一下 .bashrc:source ~/.bashrc

执行java,就配置好了。

配置好了jdk,接着配置hadoop。

依葫芦画瓢,先声明变量,hadooppath=`pwd`

vi ~/.bahsrc

    export     HADOOP_HOME=$hadooppath

    export    HADOOP_CONF_DIR=$hadooppath/opt/hadoop

    export    PATH=$PATH:$hadooppath/bin:$hadooppath/sbin

刷新一下,执行hadoop.就配置好啦。

无密码登陆

ssh-keygen -t rsa

根据它的提示一直回车或者y后,它会生出一个.ssh的隐藏文件夹

linux --centOS下构建hadoop集群(伪分布式)

ssh-copy-ip localhost 

这时你会发现一个问题无法解析主机名。

linux --centOS下构建hadoop集群(伪分布式)


修改ip地址为静态ip

切换到root用户,不然权限不够。

cd  /etc/sysconfig/network-scripts

linux --centOS下构建hadoop集群(伪分布式)

修改ifcfg-ens33

首先,把BOOTPROTO=dhcp改为 BOOTPROTO=static

再添加这4行代码

IPADDR=192.168.220.138
NETMASK=255.255.255.0
GATEWAY=192.168.220.1
DNS1=202.106.0.20

linux --centOS下构建hadoop集群(伪分布式)

2.修改主机名和主机映射
vi /etc/hostname
将localhost改为python
保存退出
vi /etc/hosts

192.168.158.166  python

保存退出。

重启网络 systemctl restart network。

这时候你就会发现localhost 变成了python.

linux --centOS下构建hadoop集群(伪分布式)

此时就可以在hadoop用户下执行ssh-copy-id python。

伪分布式集群

OK,做好这些前戏咱们正式进入主题。

进入/home/hadoop/opt/hadoop-2.7.5/etc/hadoop内配置以下文件:

core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves文本文件
-------------------------------------

从官网查询:hadoop.apache.org/docs


/core-site.xml
默认文件系统:hdfs
<property>
 <name>fs.defaultFS</name>
 <value>http://python:9000</value>

</property>

linux --centOS下构建hadoop集群(伪分布式)

hdfs-site.xml
修改hadoop关于文件 块的默认备份数 3,修改为1

修改Hadoop文件块的默认备份数 3,修改为1
<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>

<property>
   <name>dfs.namenode.name.dir</name>
   <value>file:///home/hadoop/opt/tmp/dfs/name</value>
</property>

<property>
   <name>dfs.datanode.data.dir</name>
   <value>file:///home/hadoop/opt/tmp/dfs/data</value>
</property>

<property>
   <name>dfs.namenode.http-address</name>
   <value>python:50070</value>
</property>


linux --centOS下构建hadoop集群(伪分布式)
修改mapred-site.xml文件:
cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

启用yarn的资源调度框架

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

</property>


修改slaves
配置datanode的主机名称

将localhost改为python


修改yarn-site.xml
配置yarn的主机
<property>
 <name>yarn.resourcemanager.hostname</name>
 <value>python</value>
</property>
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value> mapreduce_shuffle</value>
</property>

以上配置均是放入<configration>中

配置好以后,并不是就能立即启动的,还需要关闭防火墙。

关闭防火墙以及selinux

关闭防火墙需要root权限

su root

先关闭关闭selinux

    临时关闭:setenforce 0

    永久关闭:vi /etc/selinux/config
修改:SELINUX=disabled

保存并退出

接着关闭防火墙。

推荐使用临时关闭。

 临时关闭:   systemctl stop  firewalld

linux --centOS下构建hadoop集群(伪分布式)

完成后退出当前用户回到hadoop用户

    exit

hdfs namenode -format #第一次启动要执行格式化,之后启动不用执行这个

start-dfs.sh

在执行jps,如果出现

linux --centOS下构建hadoop集群(伪分布式)

就证明你成功啦。