准备一台干净的虚拟机-centos7

网络连接改成NAT模式   进行下一步安装

[root@hdp-01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=no改为ONBOOT=yes

重启网络服务:

[root@hdp-01 ~]# sudo service network restart
[root@hdp-01 ~]# mkdir apps
[root@hdp-01 ~]# tar -zxvf jdk-8u152-linux-x64.tar.gz -C apps/
[root@hdp-01 ~]# mv jdk1.8.0_152 java [root@hdp-01 ~]# vi /etc/profile
[root@hdp-01 ~]# vi /etc/profile

在文件最后加入:

export JAVA_HOME=/root/apps/java
export PATH=$PATH:$JAVA_HOME/bin

 

修改完成后,记得 source /etc/profile使配置生效

hdp-01为模板克隆四台虚拟机 分别为hdp-02 hdp-03 hdp-04

Windows配置hosts文件

C:\Windows\System32\drivers\etc

192.168.137.138 hdp-01
192.168.137.139 hdp-02
192.168.137.140 hdp-03
192.168.137.141 hdp-04

配置SSH免密登录

在每台服务器或虚拟机上配置hosts,命令行输入:

vi /etc/hosts

在其中添加所有服务器或虚拟机节点ip和对应的域名

192.168.137.138 hdp-01
192.168.137.139 hdp-02
192.168.137.140 hdp-03
192.168.137.141 hdp-04

在hdp-01中输入ssh-keygen 一直回车

复制公钥到其他节点

ssh-copy-id -i .ssh/id_rsa.pub root@hdp-01
ssh-copy-id -i .ssh/id_rsa.pub root@hdp-02
ssh-copy-id -i .ssh/id_rsa.pub root@hdp-03
ssh-copy-id -i .ssh/id_rsa.pub root@hdp-04

复制完成即可实现免密登录,测试一下:

ssh 0.0.0.0

上传hadoop-2.8.4.tar.gz到hdp-01

[root@hdp-01 ~]# tar -zxvf hadoop-2.8.4.tar.gz -C apps/
[root@hdp-01 apps]# mv hadoop-2.8.4/ hadoop

修改配置文件

指定hadoop的默认文件系统为:hdfs

指定hdfs的namenode节点为哪台机器

指定namenode软件存储元数据的本地目录

指定datanode软件存放文件块的本地目录

hadoop的配置文件在:/root/apps/hadoop/etc/hadoop/

[root@hdp-01 ~]# cd apps/hadoop/etc/hadoop
[root@hdp-01 hadoop]# vi hadoop-env.sh

修改hadoop-env.sh

export JAVA_HOME=/root/apps/java

修改core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hdp-01:9000</value>
    </property>
</configuration>

修改hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/root/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/root/dfs/data</value>
    </property>
</configuration>

[root@hdp-01 ~]# cd apps/hadoop/share/

[root@hdp-01 share]# rm -rf doc/

拷贝整个hadoop安装目录到其他机器

scp -r /root/apps/hadoop hdp-02:/root/apps/
scp -r /root/apps/hadoop hdp-03:/root/apps/
scp -r /root/apps/hadoop hdp-04:/root/apps/

启动HDFS

提示:要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量

vi /etc/profile

export JAVA_HOME=/root/apps/java
export HADOOP_HOME=/root/apps/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

[root@hdp-01 ~]# scp -r /etc/profile hdp-02:/etc/profile
[root@hdp-01 ~]# scp -r /etc/profile hdp-03:/etc/profile
[root@hdp-01 ~]# scp -r /etc/profile hdp-04:/etc/profile

初始化namenode的元数据目录

hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录

[root@hdp-01 ~]# hadoop namenode -format

创建一个全新的元数据存储目录

生成记录元数据的文件fsimage

生成集群的相关标识:如:集群id——clusterID

启动namenode进程(在hdp-01上)

关闭防火墙

[root@hdp-01 ~]# hadoop-daemon.sh start namenode

启动完后,ps查看一下namenode的进程是否存在

windows中用浏览器访问namenode提供的web端口:50070

http://hdp-01:50070

 

启动众datanode们(在任意地方)

hadoop-daemon.sh start datanode

用自动批量启动脚本来启动HDFS

修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)

[root@hdp-01 ~]# vi apps/hadoop/etc/hadoop/slaves
//加入
hdp
-01 hdp-02 hdp-03 hdp-04

在hdp-01上用脚本:start-dfs.sh 来自动启动整个集群

停止则用脚本:stop-dfs.sh