您的位置:首页 > 运维架构 > Linux

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

2018-03-08 16:40 477 查看

前言

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

工具

VMware 12 pro(虚拟机软件)

CentOS 7

Hadoop-3.0.0

jdk1.8.0

SecureCRT(用于登陆linux主机)

安装及配置CentOS

在VMware中点击文件-新建虚拟机,然后按提示进行即可,虚拟机设置大概如下图,网络适配器选择NAT。



注意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就行。



保存退出后输入命令重启网络服务

sudo service network restart


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

ping www.baidu.com


为了方便,建议下面操作在SecureCRTSecureCRT或类似的软件上进行

配置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




先去配置好环境变量

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.dir</name>
<value>file:/home/hadoop/hadoop-3.0.0/data</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>


修改hdfs-site.xml

vi hdfs-site.xml




<configuration>
</configuration>


改成

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop-3.0.0/data/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-3.0.0/data/dfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</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

文件夹,否则可能格式化失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: