初识hadoop之分布式文件系统(HDFS)
hadoop常用发行版:
apache hadoop
cdh cloudera distributed hadoop
hdp hortonworks data platfrom
分布式文件系统(hdfs)
hdfs架构
1个master(namenode/nn)带n个slaves(datanode/dn)
hdfs/yarn/hbase都是类似结构
一个文件会被拆分成多个block
blocksize:128m
130m ==> 2个block:128m和2m
nn:
1)负责客户端请求的响应
2)负责元数据(文件的名称、副本系数、block存放的dn)的管理
dn:
1)存储用户的文件对应的数据块(block)
2)要定期向nn发送心跳信息,汇报本身及其所有的block信息,健康状况
a typical deployment has a dedicated machine that runs only the namenode software. each of the other machines in the cluster runs one instance of the datanode software.
namenode + n个datanode
建议:nn和dn部署在不同的节点上
replication factor:副本系数、副本因子
hdfs环境搭建
使用版本:hadoop-2.6.0-cdh5.7.0
hadoop伪分布式安装步骤
1) jdk安装
解压:tar –zxvf jdk-7u79-linux-x64.tar.gz –c ~/app
添加到系统环境变量:~/.bash_profile
export java_home=/home/hadoop/app/jdk1.7.0_79
eport path=$java_home/bin:$path
使得环境变量生效:source ~/.bash_profile
验证java是否配置成功:java –version
2) 安装ssh
sudo yum install ssh
ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorizes_keys
3) 下载并解压hadoop
下载:直接在cdh网站下载
解压:tar –zxvf hadoop-2.6.0-cdh5.7.0.tar.gz –c ~/app
4) hadoop配置文件的修改(hadoop_home/etc/hadoop)
hadoop-evn.sh
export java_home=/home/hadoop/app/jdk1.7.0_79
core-site.xml
<property>
<name>fs.defaultfs</name>
<value>hdfs://hadoop000:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/app/tmp</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
slaves(配置dn的个数)添加主机名称
5) 启动hfds
格式化文件系统(仅第一次执行即可,不要重复执行,在bin目录下执行,即在客户端执行):
hdfs namenode –format
启动hdfs:sbin/start-dfs.sh
验证是否启动成功:
jps
datanode
secondarynamenode
namenode
浏览器访问方式:
6) 停止hdfs
sbin/stop-dfs.sh
将hadoop的bin目录配置到环境变量当中
vi ~/.bash_profile
export hadoop_home=/root/app/hadoop-2.6.0-cdh5.7.0
export path=$hadoop_home/bin:$path
环境变量生效:
source ~/.bash_profile
查看环境变量:
echo $hadoop_home
hdfs常用操作命令:
hdfs dfs(hadoop fs) +
-ls + / 查看根目录下的文件和文件夹
-mkdir + /test 在根目录下创建test文件夹
-put 文件名 + / 将文件上传到根目录当中(拷贝文件)
-copyfromlocal hello.txt + /test/a/b/h.txt 将文件拷贝到指定路径中
-text(-cat) + /文件名 查看文件的内容
-mkdir –p + /test/a/b 递归创建文件夹
-lsr + / 递归展示文件夹(-ls –r + /)
-get + /test/a/b/h.txt 将文件拷贝到本地
-rm + /hello.txt 删除文件
-rm + -r /test 删除文件夹
上一篇: 人生日历怎么样同步新浪微博和腾讯QQ
下一篇: 人生日历生活指数/天气预报功能使用教程