安装hadoop集群--hdfs
准备一台干净的虚拟机
[root@hdp-01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=no改为ONBOOT=yes
然后重启网络服务: 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 ~]# vi /etc/profile
在文件最后加入:
export JAVA_HOME=/root/apps/jdk1.8.0_152
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到h01
wget www-us.apache.org/dist/hadoop/common/hadoop-2.8.4/hadoop-2.8.4.tar.gz
[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/jdk1.8.0_152
修改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/jdk1.8.0_150
export HADOOP_HOME=/root/apps/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
scp -r /etc/profile hdp-02:$PWD
scp -r /etc/profile hdp-03:$PWD
scp -r /etc/profile hdp-04:$PWD
首先,初始化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
启动完后,首先用jps查看一下namenode的进程是否存在
然后在windows中用浏览器访问namenode提供的web端口: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