hadoop 3.1.0伪分布式的搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011066470/article/details/86530608

总目录:

文档笔记见:百度网盘/大数据资料

1.1 软件准备说明

所需软件如下图所示:

大数据插架都在于此:http://archive.apache.org/dist

Hadoop3.1.0的地址:http://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/

Jdk:https://download.csdn.net/download/micholas_net/10488056

或者百度网盘:”开发用到的工具/”这个目录下

1.2 预备工作

1.2.1  关闭防火墙

Centos6.5 防火墙的命令:

只用root用户才能对防火墙进行操作:

Service iptables status

Service iptables stop;

Service iptables restart;

对于centos7自带的防火墙的相关指令:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

systemctl status firewalld.service #查看firewall的状态

1.2.2  修改主机名

Vim  /etc/sysconfig/network     #修改主机名

Centos7 特有的修改主机的方式:

hostnamectl set-hostname naidong  #永久性,并且立即生效

如图:

1.2.3  修改主机ip

BOOTPROTO的方式有:none 不设置;dhcp 动态获取;static 静态配置

  1. dhcp动态获取方式

Vim  /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="dhcp"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

UUID="faae9218-1e5c-41c2-be4d-954e08f47970"

DEVICE="ens33"

ONBOOT="yes"

  1. 不指定方式

Vim  /etc/sysconfig/network-scripts/ifcfg-eth0   #修改ip

DEVICE=eth0

TYPE=Ethernet

UUID=53bf9bda-633b-480f-b006-a43e0a3ce113

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none #none不指定dhcp,动态获取,static静态获取

#BOOTPROTO=static

IPADDR=192.168.2.121

NETMASK=255.255.255.0

DNS1=192.168.2.1

BROADCAST=192.168.2.1

ARPCHECK=no

#GATEWAY=192.168.2.255

PREFIX=24

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

HWADDR=00:22:68:17:03:C9

GATEWAY=192.168.2.1

LAST_CONNECT=1461421962

1.2.4  ip与主机名之间的映射

Vim /etc/hosts   #修改主机名和ip的关联映射

查看主机名:

还是没有改变,重新启动系统,输入:reboot

root@localhost ~]# hostname

naidong

[root@localhost ~]#

注意:以上操作配置完成后,需要重新启动机器,让配置生效!!!

1.3 环境的配置

1.3.1 将安装包上传到指定的文件夹下

1.将 hadoop-3.1.0.tar.gz 放到/usr/local/hadoop (hadoop目录自己创建)

2.将jdk1.8 放到/usr/local/java目录下(java目录自己创建)

3.解压命令为:tar   -zxvf    xxxx.tar.gz

1.3.2  jdk,hadoop环境变量的配置

Vim  /etc/profile

   #jdk

export JAVA_HOME=/usr/local/java/jdk1.8.0_171

export JRE_HOME=/usr/local/java/jdk1.8.0_171/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HONE/lib/:$CLASSPATH

export PATH=$JAVA_HOME/bin/:$PATH

#hadoop

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.0

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

 配置完成后,让其立即生效: sourc /etc/profile

1.3.3  验证jdk安装是否成功

1.3.4  验证hadoop的环境变量是否成功

1.4  ssh免密码登陆

1.4.1  unbuntu版本的配置

安装ssh命令: sudo apt-get install ssh    #centos系统不支持apt-get命令

安装完成后,生成密钥,ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

1、创建ssh-key,,这里我们采用rsa方式

ssh-keygen -t rsa -P ""   //(P是要大写的,后面跟"")

(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

2、进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的,执行下面的命令自动生成

Cd  ~/.ssh

cat id_rsa.pub >> authorized_keys

验证是否成功:Ssh localhost

可以看到不用再输入密码了,即配置成功!

1.4.2  centos版本的配置

1进入root的的主目录: cd ~;

2进入到root主目录下,查看.shh文件夹:    ls -la

注意:centos7 是没有.ssh文件夹的,需要自己创建.ssh文件夹;而centos6.5默认是存在的

 3执行生成公钥私钥文件的命令:

 ssh-keygen -t rsa    #输入该命令后,紧接着让输入一些东西,选择忽略,敲回车就行,可以看到生成了两个文件:id_rsa,    id_rsa.pub;

4将id_rsa.pub文件的内容追加到authorized_keys文件中:

5执行ssh 测试

提示是否建立连结:选择yes

再次执行:ssh localhost

1.5  hadoop配置文件

进入$HADOOP_HOME/etc/hadoop目录,配置 hadoop-env.sh等。涉及的配置文件如下: 

Core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml 的配置均配置在<configuration></configuration>标签中

1.5.1 hadoop-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_171

 

1.5.2 core-site.xml

 <!-- 指定hdfs的nameservice为ns1 -->

     <property>

  <name>fs.defaultFS</name>

  <value>hdfs://192.168.10.90:9000</value>

     </property>

     <!-- 指定hadoop临时目录 -->

     <property>

  <name>hadoop.tmp.dir</name>

  <value>/usr/local/hadoop/hadoop_tmp</value>

     </property>

如图:

1.5.3 hdfs-site.xml

<property>

 <name>dfs.namenode.name.dir</name>

  <value>/usr/local/hadoop/namedir/</value>

</property>

 

<!-- Configurations for DataNode: -->

<property>

  <name>dfs.datanode.data.dir</name>

  <value>/usr/local/hadoop/datadir/</value>

</property>

<property>

    <name>dfs.replication</name>

    <value>1</value>

</property>

如图:

1.5.4 mapred-site.xml

<!-- 指定mr框架为yarn方式 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

 <property>

  <name>mapreduce.application.classpath</name>  <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>

</property>

如图:

1.5.5 yarn-site.xml

<property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <property>

        <name>yarn.nodemanager.env-whitelist</name>

        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>

   </property>

如图:

1.6  格式化文件系统

root@ubuntu:/usr/local/hadoop/hadoop-3.1.0/bin# hdfs namenode -format

当看到xxxx has been successfully formatted;格式化成功!

1.7  启动hadoop

1.root@ubuntu:/usr/local/hadoop/hadoop-3.1.0/sbin# ./start-all.sh

如果运行脚本报如下错误,

ERROR: Attempting to launch hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
Starting datanodes
ERROR: Attempting to launch hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to launch hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.

需要在start-dfs.sh 和stop-dfs.sh的开头处,在顶部空白处添加内容:

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

start-yarn.sh和stop-yarn.sh的顶部空白处添加内容

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

最后执行:./start-all.sh

Unbutun版本:

Centos 07版本:

从以上可以看出启动顺序为:1.namenode;2.datanode;3.secondary namenode;4.resource manager;5.nodemanager

2.输入地址:http://localhost:8088/cluster/apps/NEW

3.输入地址:http://localhost:9870/

注意:第一次格式化文件系统后,第二次格式化文件系统,容易造成启动后datanode没有进程

解决办法为:删除hdfs-site.xml中指定的name和data的文件夹,重新启动hadoop

hdfs-site.xml

<property>

 <name>dfs.namenode.name.dir</name>

  <value>/usr/local/hadoop/namedir/</value>

</property>

 

<!-- Configurations for DataNode: -->

<property>

  <name>dfs.datanode.data.dir</name>

  <value>/usr/local/hadoop/datadir/</value>

</property>

<property>

    <name>dfs.replication</name>

    <value>1</value>

</property>

都看到这里了,就顺手点击左上角的【关注】按钮,点击右上角的小手,给个评论,关注一下,再走呗!☺

猜你喜欢

转载自blog.csdn.net/u011066470/article/details/86530608
今日推荐