当前位置:文档之家› Hadoop集群部署

Hadoop集群部署

1.HDFS:HADOOP的分布式文件系统
HDFS:是一个分布式文件系统(整个系统中有多种角色<namenode、datanode、客户端、secondary namenode>,共同协作完成文件系统的功能)
功能:提供一个目录结构,顶层目录为:/
可以:创建文件夹、删除文件或文件夹、重命名文件、列出文件夹下的文件(涉及元数据操作)
保存文件、读取文件等(涉及元数据操作、文件块读写)
特点:可以存储海量的文件,如果容量不够,添加服务器(data node)即可文件被分散存储在若干台datanode服务器上(存储目录中)
一个文件也可能被切分成多个文件块(block块)分散存储在若干台datanode服务器每一个文件(文件块)在整个集群中,可以存储多个副本
(一个文件存几个副本、一个文件按多大来切块,是由客户端决定?)
hdfs的运作机制:
客户端存入的文件,
一方面由datanode存储文件内容(block)
另一方面由namenode记录文件的块信息(?块,?副本,在哪些dn上)
2.HDFS安装
2.1. 集群环境准备
1、克隆出4台linux虚拟机
2、修改每一台虚拟机的主机名:hdp20-01 hdp20-02 hdp20-03 hdp20-04
3、修改每一台虚拟机的ip地址:
192.168.33.31
192.168.33.32
192.168.33.33
192.168.33.34
4、修改每一台虚拟机的网卡物理地址
vi /etc/udev/rules.d/70-......
把eth0的那一行删掉,然后把下一行的eth1改成eth0
5、重启linux服务器:reboot
6、在windows上配置这几台linux服务器的域名映射:
改好后,同步scp给所有其他机器
7、用crt软件试连接
8、对每一台linux服务器关闭防火墙
8、对每一台linux机器配置域名映射
scp /etc/hosts hdp20-02:/etc/
scp /etc/hosts hdp20-03:/etc/
scp /etc/hosts hdp20-04:/etc/
验证:比如在hdp20-01上,
ping hdp20-02 ###看是否能ping通
9、在每台linux服务器上安装jdk
上传jdk安装包
解压
然后,将安装好的目录scp到其他所有机器的相同路径
然后,将改好的/etc/profile 拷贝scp到其他所有机器的对应路径下
然后用chat window ,统一source /etc/profile 2.2. 安装HDFS
上传hadoop的安装包
解压hadoop安装包
2.2.1.修改配置文件
补充参数:
dfs.replication 默认值3 ## 副本数量,该参数其实用于客户端软件
dfs.blocksize 默认值134217728 ##块大小,该参数其实用于客户端软件
2.2.2.启动hdfs集群
1、先初始化namenode的元数据存储目录:格式化
Hadoop namenode -format
2、先启动namenode
进入hadoop安装目录,里面有一个sbin目录,里面有一个脚本可用于启动hadoop的进程hadoop-daemon.sh
启动namenode:hadoop-daemon.sh start namenode
如果报错,说命令不认识,则应该把hadoop是sbin目录配置到linux的系统环境变量PATH 中
3、启动datanode
先将hadoop安装包从第一台配置好的机器上复制到另外3台机器
然后在后3台机器上配置好path环境变量
然后输入命令启动datanode
hadoop-daemon.sh start datanode
4、访问namenode的web页面
浏览器:http://hdp20-01:50070
可以看到3台datanode在线,即集群启动成功
2.2.
3.批量自动启动集群
1、先配置01机器到所有机器的ssh免密登陆
ssh-keygen ## 生成密钥对
ssh-copy-id hdp20-01
ssh-copy-id hdp20-02
ssh-copy-id hdp20-03
ssh-copy-id hdp20-04
检查:从01上: ssh hdp20-02 看是否要密码
2、修改slaves文件,将需要让脚本自动启动的datanode域名填入salves文件
cd /root/apps/hadoop-2.8.0/etc/hadoop
vi slaves
3、用hadoop安装目录中的sbin目录中的start-dfs.sh即可自动批启动集群
启动:start-dfs.sh
停止:stop-dfs.sh
2.2.4.HDFS命令行客户端
1、基本使用:
准备任意一台机器,上面放一个hadoop安装目录
然后,配置core-site.xml,写一个参数fs.defaultFS:值为hdfs集群的uri
然后,用安装目录中的hadoop命令即可启动hdfs的命令行客户端
hadoop fs -put /root/xx.avi /
2.3. HDFS集群常见故障原因及解决
1、namenode启动正常,但datanode启动失败
原因:datanode存储目录的VERSION文件中存储的集群id:clusterId保存的是上一次namenode所生成的集群id
解决:删除datanode的存储目录,然后再启动,会生成新的存储目录,存储新的集群id
2、datanode进程启动成功,但是不被namenode所接纳
原因:该datanode的存储目录跟另一台datanode的存储目录重复了,导致两个datanode 的uuid相同,namenode就只会认其中一台
解决:删除问题datanode上的存储目录,再启动,即可生成新的uuid
2.4. HDFS命令行客户端常用操作命令2.4.1.hdfs命令行客户端支持的所有命令:
2.4.2.需要掌握的常用命令:
1、上传文件
hadoop fs -put test.txt /
hadoop fs -copyFromLocal test.txt /test.txt.2
2、下载文件
hadoop fs -get /test.txt.2
hadoop fs -copyToLocal /test.txt.2
3、创建目录
hadoop fs -mkdir /aaa
hadoop fs -mkdir -p /bbb/xxx
4、删除目录
hadoop fs -rm -r /aaa
5、移动/重命名
hadoop fs -mv /test.txt.2 /test.txt.3
hadoop fs -mv /test.txt.3 /bbb/test.txt.4
6、拷贝文件
hadoop fs -cp /test.txt /bbb/
7、查看目录下的子文件夹和文件
hadoop fs -ls /bbb/xxx/
hadoop fs -ls -R / ##递归显示指定路径下的所有文件和文件夹信息
8、查看《文本》文件内容
hadoop fs -cat /test.txt
hadoop fs -tail /test.txt
9、下载多个文件在本地生成一个合并文件
hadoop fs -getmerge /test/*.dat ./xx.dat
客户端部署
修改core.site.xml文件
运行客户端命令
执行eclipse中HDFS的操作。

相关主题