安装Hadoop:CentOS-7配置Hadoop-3.0.0伪分布式安装

前言

本文为作者的日记,因此默认读者会使用linux系统的基本命令如编辑及保存文件、打开文件夹、退出文件夹、新建及删除文件夹、显示文件内容等。

工具

VMware 12 pro(虚拟机软件)
CentOS 7
Hadoop-3.0.0
jdk1.8.0
SecureCRT(用于登陆linux主机)

安装及配置CentOS

在VMware中点击文件-新建虚拟机,然后按提示进行即可,虚拟机设置大概如下图,网络适配器选择NAT。
安装Hadoop:CentOS-7配置Hadoop-3.0.0伪分布式安装_第1张图片
注意CentOS默认是最小化安装,请在安装过程中“软件选择”处选择桌面模式(下文会关闭图形界面以节省内存),ROOT密码、用户名、用户密码均设为hadoop,其余选项默认即可。

开机后进入桌面,新安装的系统用不了sudo命令,需要更改一下系统文件,进入root用户后输入

vi /etc/sudoers

按箭头下建找到

root    ALL=(ALL)       ALL

更改如下并保存退出文件

root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL

输入exit退出root用户,因为CentOS 7取消了inittab,因此执行如下命令设置开机默认模式为文本模式:(关闭图形界面是为了节省内存,比如单机完全分布式可以把Slave结点都关掉,若需要在linux上编程不关也可以)

sudo systemctl set-default multi-user.target

然后输入如下命令立刻进入文本模式

sudo init 3

进入文本模式后登陆hadoop用户,输入如下命令查看网关名称

ifconfig

第一行第一个就是,比如作者的网关名字是ens33
输入下列命令设置ip等信息(最后一个是你自己的网关名称)

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

进入编辑模式并加入以下内容,注意根据你实际情况填写

IPADDR=192.168.29.3
GATEWAY=192.168.29.2
NETMASK=255.255.255.0

其中GATEWAY是网关,请在VMware的编辑-虚拟网络编辑器中查看你的网关,IPADDR是ip地址,设为网关地址加1就行。
安装Hadoop:CentOS-7配置Hadoop-3.0.0伪分布式安装_第2张图片
保存退出后输入命令重启网络服务

sudo service network restart

最后ping一下百度有反应就表示可以了。

ping www.baidu.com

为了方便,建议下面操作在 SecureCRT S e c u r e C R T 或类似的软件上进行

配置jdk及环境变量

将下载好的jdk-8u161-linux-x64.tar.gz放到windows的C盘上,右键选择Connect SFTP Connected,用于将win的文件发到linux上,在SFTP页面输入如下命令(文件名称输入前半部分按下Tab键就能自动补全)。

put c:/jdk-8u161-linux-x64.tar.gz ~/

这时候回到linux上输入ll就能看到文件已经在了,输入下面命令解压

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

进入jdk1.8.0_161/输入pwd记下jdk的路径

[hadoop@localhost ~]$ cd jdk1.8.0_161/
[hadoop@localhost jdk1.8.0_161]$ pwd
/home/hadoop/jdk1.8.0_161

现在去设置环境变量

sudo vi /etc/profile 

按shirt+G跳到最后一行进入编辑模式添加下面内容后保存退出

export JAVA_HOME=/home/hadoop/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin

为了使更改后的profile立刻生效,输入下面命令

source /etc/profile

此时输入如下命令就可以看到环境变量是否成功设置

echo $JAVA_HOME

配置SSH无密码登陆

CentOS 7默认已经安装了 SSH client、SSH server,如果这一步命令报错请自行下载安装SSH client、SSH server。
分别输入下面命令生成密钥、将密钥加到授权、更改文件权限

cd .ssh                        # 没有这个文件夹就新建一个
ssh-keygen -t rsa              # 一直按回车就行
cat id_rsa.pub >> authorized_keys  
chmod 600 ./authorized_keys

验证是否配置成功,输入下面命令登陆本机,如果不用输入密码表示成功

ssh localhost

安装及配置Hadoop-3.0.0

同样将下载好的hadoop-3.0.0.tar.gz放到windows的C盘,在SecureCRT通过SFTP执行下面命令发送到linux中

put c:/hadoop-3.0.0.tar.gz ~/

解压到/home/hadoop

tar -zxvf hadoop-3.0.0.tar.gz 

安装Hadoop:CentOS-7配置Hadoop-3.0.0伪分布式安装_第3张图片
先去配置好环境变量

sudo vi /etc/profile

在最后一行添加

export HADOOP_HOME=/home/hadoop/hadoop-3.0.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

这里说明一下环境变量的PATH,把路径添加上了就可以在任意地方打开PATH里面的东西,而不用专门跑到该文件夹里面,比如上面的hadoop-3.0.0/sbin,里面保存hadoop的开关。
最后运行一下

source /etc/profile

接下来先进入下面的文件夹

cd hadoop-3.0.0/etc/hadoop/

修改hadoop-env.sh

vi hadoop-env.sh

找到# export JAVA_HOME=
改成export JAVA_HOME=/home/hadoop/jdk1.8.0_161
记得去掉前面的’#’号。

修改core-site.xml

<configuration>
configuration>

改成

<configuration>
    <property>
        <name>hadoop.tmp.dirname>
        <value>file:/home/hadoop/hadoop-3.0.0/datavalue>
        <description>Abase for other temporary directories.description>
    property>
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://localhost:9000value>
    property>
configuration>

修改hdfs-site.xml

vi hdfs-site.xml

<configuration>
configuration>

改成

<configuration>
    <property>
        <name>dfs.replicationname>
        <value>1value>
    property>
    <property>
        <name>dfs.namenode.name.dirname>
        <value>file:/home/hadoop/hadoop-3.0.0/data/dfs/namevalue>
    property>
    <property>
        <name>dfs.datanode.data.dirname>
        <value>file:/home/hadoop/hadoop-3.0.0/data/dfs/datavalue>
    property>
    <property>
         <name>dfs.http.addressname>
         <value>0.0.0.0:50070value>
    property>
configuration>

最后一步,格式化namenode

hdfs namenode -format

接着开启所有(关闭的话用stop替换start即可):

start-all.sh

正常情况下输入命令jps可以看到当前的进程

[hadoop@localhost hadoop]$ jps
2916 NodeManager
2357 DataNode
2809 ResourceManager
2522 SecondaryNameNode
3275 Jps
2255 NameNode

TIPS

  • 在windows(需关闭防火墙)或linux(需关闭防火墙)里的浏览器输入localhost:50070或者localhost:8088(需要localhost和ip地址建立映射关系,or直接IP地址:XXXX)可以查看hadoop节点状态等。
  • windows端设置localhost的映射貌似会有问题,比如我在win10更改hosts(192.168.29.3 localhost)会无效,可能因为windows的localhost名字有冲突,因此最好将linux的主机名改一下,这时core-site.xml对应的主机名也需要更改。
  • 缺少任何一个都是错误的,请进入日志/home/hadoop/hadoop-3.0.0/logs对应的.log文件查看错误原因。
  • 当你尝试重新格式化namenode时,建议先删除/home/hadoop/hadoop-3.0.0/data
    文件夹,否则可能格式化失败。

你可能感兴趣的:(Hadoop)