Hadoop-2.6.0配置

我自己配置Hadoop的过程挺艰难的,东拼西凑找遍教程,可算把这配好了。特此写一个记录,以防日后所需,同时也希望能帮到大家。

事先准备

软件 下载地址
CentOS 7.4 https://www.centos.org/download/
VirtualBox 6.0 https://www.virtualbox.org/wiki/Downloads
JDK 1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Hadoop 2.6 https://hadoop.apache.org/releases.html
XShell 6 https://www.netsarang.com/zh/xshell/
XFtp 6 https://www.netsarang.com/zh/xftp/

VirtualBox

安装CentOS

  1. 新建虚拟机
    类型:Linux;版本:Red Hat 32/64依自身情况在这里插入图片描述
  2. 挂载镜像文件 ,将会带来全新的写作体验;
  3. 启动并安装 ;安装时选择最小安装即可
    在这里插入图片描述

配置网络环境

  1. 网卡1
    在这里插入图片描述

  2. 网卡2(这里使用的是WIFI,如果是有线网络 见3)
    在这里插入图片描述

  3. 网卡2(有线网络)在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. CentOS中的网络设置:
    首先在windows中输入ipconfig /all查看网络配置。如图,我的虚拟机软件所分配到的ipv4为192.168.56.1;那么我们实际在虚拟机中的ipv4地址的范围应该是192.168.56.2~192.168.56.255

    在这里插入图片描述接下来在CentOS中操作:
    输入ip add查看网络配置

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
    2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:e7:0e:5b brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.2/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::9f23:fc55:29a7:6e2c/64 scope link 
       valid_lft forever preferred_lft forever
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:6d:1e:ed brd ff:ff:ff:ff:ff:ff
    inet6 2408:84ef:22:eab6:3cd8:95a0:8ce9:4ad9/64 scope global noprefixroute dynamic 
       valid_lft 3363sec preferred_lft 3363sec
    inet6 fe80::22ed:6b14:3db9:426f/64 scope link 
       valid_lft forever preferred_lft forever
    
    

    输入vi /etc/sysconfig/network-scripts/ifcfg-enp0s3编辑enp0s3网卡
    修改其中的ONBOOT;IPADDR;NETMASK;GATEWAY

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    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=enp0s3
    UUID=8b84fb8e-0a8c-4ed8-9d81-b33f2043980c
    DEVICE=enp0s3
    ONBOOT=yes
    IPADDR=192.168.56.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    PREFIX=24
    DNS1=114.114.114.114
    

    设置完成后输入service network restart来重启网络
    方便起见,这里可以先把防火墙关了,输入systemctl stop firewalld.service
    输入systemctl status firewalld.service确认防火墙已被关闭
    在这里插入图片描述
    如图: 防火墙已被关闭

    Active: inactive (dead)
    

    测试与实体机的连接ping 192.168.43.1Ctrl/Command + Z停止ping
    在这里插入图片描述
    测试与外网的连接ping www.baidu.com
    回到实体机,打开cmd,输入ping 192.168.56.2测试与虚拟机的连接

Linux常用命令

管理员权限:sudo(下文配置时的指令操作如果出现错误,就在指令前加sudo
防火墙状态:systemctl status firewalld.service
关闭防火墙:systemctl stop firewalld.service
编辑enp0s3网卡:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
重启network:service network restart
更改DNS
查看当前启动的连接:nmcli connection show
更改DNS:nmcli con mod enp0s3 ipv4.dns 114.114.114.114
配置生效:nmcli con up enp0s3
配置hadoop文件:cd /usr/local/hadoop-2.6.0/etc/hadoop

取消当前指令:Ctrl/Command + Z
保存文件并退出:先按Esc;然后 Shift + ; (即输入“:”)最后输入wq

XFtp 连接 CentOS

左上角新建连接
在这里插入图片描述

连接成功后,左边为本机文件,右边为虚拟机文件;可以通过右键本机文件将其上传至虚拟机
在这里插入图片描述

XShell 连接 CentOS

左上角新建连接
在这里插入图片描述

点击用户身份验证,输入用户名和密码
在这里插入图片描述

安装JDK

下载JDK 1.8: 链接在这里插入图片描述
利用XFtp将文件发送到CentOS中。
输入tar -zxvf jdk-8u202-linux-x64.tar.gz解压文件
输入mv jdk1.8.0_202 /usr/local/将解压好的文件夹移动到usr/local文件夹下(个人习惯问题,可不移)
在这里插入图片描述

输入vim /etc/profile配置JDK环境;在文件最下面输入:

export JAVA_HOME=/usr/local/jdk1.8.0_202/
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 -version测试是否生效,如图:
在这里插入图片描述

Hadoop配置前期准备(Hadoop安装&SSH免密登录)

master
node1
node2
  1. 下载Hadoop 2.6 链接
    在这里插入图片描述
    利用XFtp将文件发送到CentOS中。
    输入tar -zxvf hadoop-2.6.0.tar.gz解压文件
    输入mv hadoop-2.6.0 /usr/local/将解压好的文件夹移动到usr/local文件夹下(个人习惯问题,可不移)
    在这里插入图片描述
    输入vim /etc/profile配置Hadoop环境;在文件最下面输入:

    export HADOOP_HOME=/usr/local/hadoop-2.6.0/
    export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
    

    如图:
    在这里插入图片描述

    输入source /etc/profile使方才的修改生效
    输入hadoop version测试是否生效,如图:
    在这里插入图片描述

  2. 首先为了方便我们访问,先分别为三台虚拟机设置主机名
    hostnamectl set-hostname master
    hostnamectl set-hostname node1
    hostnamectl set-hostname node2
    设置好后输入vim /etc/hosts配置hosts文件;在文件最下面输入

    192.168.56.2    master
    192.168.56.3    node1
    192.168.56.4    node2
    

    如图:
    在这里插入图片描述
    可使用ping node1测试是否连通

  3. SSH配置
    输入rpm –qa | grep ssh查看是否已经安装了SSH
    如果未安装,输入yum install ssh -y安装SSH
    输入ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa生成密钥(过程中无需输入参数,直接回车即可)
    如图:这边已经生成过一次了,所以输入y覆盖
    在这里插入图片描述
    注意图中的:

    Your public key has been saved in /home/robinjohn/.ssh/id_rsa.pub.
    

    得知,我们的密钥被保存在了/home/robinjohn/.ssh/路径下
    输入cd /home/robinjohn/.ssh/切换到该路径下
    输入ls显示该目录下的文件,如图:
    在这里插入图片描述
    可以看到我们已经生成了id_rsa和id_rsa.pub文件
    在该目录下,输入cat id_rsa.pub >> authorized_keys生成公钥
    输入ls显示该目录下的文件,如图:
    在这里插入图片描述
    可以看到我们已经生成了authorized_keys文件
    由于authorized_keys文件权限必须是600,所以我们输入chmod 600 authorized_keys修改其权限
    修改完成后输入systemctl restart sshd.service重启服务使其生效
    输入ssh localhostssh master使用SSH登录当前master主机,如图:
    在这里插入图片描述
    可以看到我们已经不需要密码了,测试完后别忘了使用exit登出。
    输入scp ~/.ssh/authorized_keys node1:~/.ssh将我们的密钥发给node1结点;同理,输入scp ~/.ssh/authorized_keys node2:~/.ssh将密钥发给node2结点;如图:
    在这里插入图片描述
    输入ssh node1ssh node2分别测试两个结点的免密登录,如图:
    在这里插入图片描述
    可以看到我们已经不需要密码了,测试完后别忘了使用exit登出。
    此时,我们已经实现了master->node的免密登录,即:

    master
    node1
    node2

    接下来,我们在node1和node2上分别执行
    cat id_rsa.pub >> ~/.ssh/authorized_keys保存公钥
    cd ~/.ssh/切换到保存公钥的路径
    并输入chmod 600 authorized_keys修改其权限
    修改完后别忘了输入systemctl restart sshd.service重启下服务
    输入scp ~/.ssh/authorized_keys master:~/.ssh将公钥发送给master
    好啦,我们来测试下能不能免密连上master,输入ssh master
    在这里插入图片描述
    在这里插入图片描述
    成功!~ 测试完别忘了exit退出登录。

    现在,我们实现了node->master的免密登录(双向),即:

    master
    node1
    node2

Hadoop配置

1. 修改配置文件

由于我先前用mv hadoop-2.6.0 /usr/local/将解压好的文件夹移动到了usr/local文件夹下,那么我的配置文件目录则为/usr/local/hadoop-2.6.0/etc/hadoop/
如图:
在这里插入图片描述

输入cd /usr/local/hadoop-2.6.0/etc/hadoop切换到该目录下,并输入ls查看文件
在这里插入图片描述
我们一共需要修改7个文件:

hadoop-env.sh
yarn-env.sh
slaves
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml

首先我们输入vim hadoop-env.sh打开hadoop-env.sh文件
由于hadoop在配置文件中需要JDK的绝对路径,所以。
export JAVA_HOME=${JAVA_HOME}前加#对其注释
另起一行,写入export JAVA_HOME=/usr/local/jdk1.8.0_202,即:

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/jdk1.8.0_202

如图:
在这里插入图片描述
输入vim yarn-env.sh打开yarn-env.sh文件
在文件末尾加上export JAVA_HOME=/usr/local/jdk1.8.0_202,如图:
在这里插入图片描述
输入vim slaves修改slaves文件;slaves直译过来有奴隶的意思,我们把这个文件原来的内容全部删除,并往这个文件中添加

node1
node2

如图:
在这里插入图片描述
输入vim core-site.xml打开core-site.xml文件,做如下修改:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>fs.default.name</name>
		<value>hdfs://master:9000</value>    
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/hadoop-2.6.0/tmp</value>
	</property>
</configuration>

输入vim hdfs-site.xml打开hdfs-site.xml文件,做如下修改:

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>2</value>    
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/usr/local/hadoop-2.6.0/hdfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/usr/local/hadoop-2.6.0/hdfs/data</value>
	</property>
</configuration>

输入vim mapred-site.xml打开mapred-site.xml文件,做如下修改:

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>master:10020</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>master:19888</value>
	</property>
	<property>
		<name>mapred.job.tracker</name>
		<value>master:9001</value>
	</property>
</configuration>

输入vim yarn-site.xml打开yarn-site.xml文件,做如下修改:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                 <name>yarn.resourcemanager.hostname</name>
                 <value>master</value>
        </property>
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>master:8032</value>
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>master:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:8033</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>master:8088</value>
        </property>
</configuration>

到这,master的hadoop已配置完成;剩下node1和node2结点按照上面的步骤一样配置。
很麻烦?不用怕;
输入scp -r /usr/local/hadoop-2.6.0 node1:/usr/local/hadoop-2.6.0将我们所有配置好的hadoop文件发送到node1结点上;
同理输入scp -r /usr/local/hadoop-2.6.0 node2:/usr/local/hadoop-2.6.0发送给node2。
在这里插入图片描述

2. 初始化并开启Hadoop

接下来的操作只需要在master中执行即可
首先输入cd /usr/local/hadoop-2.6.0/bin来到hadoop下的bin文件夹中
输入./hadoop namenode -format为第一次的开启执行初始化
在这里插入图片描述
注意图中的

19/06/03 15:39:19 INFO util.ExitUtil: Exiting with status 0

如果最后的数字不是0,意味着在执行的时候出了某些错误;有可能是权限不足,在命令前加sudo再执行一次试试;
输入cd /usr/local/hadoop-2.6.0/sbin来到sbin文件夹中
输入./start-all.sh启动Hadoop
打开Hadoop的管理页面 http://192.168.56.2:50070 ;如图:
在这里插入图片描述
至此,Hadoop就成功配置完成了!
使用完后别忘了关闭,输入./stop-all.sh

3. 一些常用的管理页面地址

master结点ip + :端口号
http://192.168.56.2:50070

50070
8088
19888
3306
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章