1.0 Hadoop-HDFS介绍及安装

HDFS分布式存储系统(提供了 高可靠性、高扩展性和高吞吐率的数据存储服务)
HDFS优点:
高容错性 数据自动保存多个副本,副本丢失后,自动恢复
适合批处理 移动计算而非数据,数据位置暴露给计算框架
适合大数据处理
可构建在廉价机器上
HDFS缺点:
低延迟数据访问 比如毫秒级,低延迟与高吞吐率
小文件存取 占用NameNode 大量内存,寻道时间超过读取时间
并发写入、文件随机修改 最好不要修改
HDFS: NameNode | Secondary NameNode | DataNode(block)

NameNode主要功能:接受客户端的读写服务
NameNode保存metadate(源信息)
– NameNode的metadate信息在启动后会加载到内存
metadata存储到磁盘文件名为” fsimage
Block的位置信息不会保存到fsimage
edits记录对metadata的操作日志
SecondaryNameNode(SNN)
它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并edits log,减少NN启动时间
SNN执行合并时机
根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒
根据配置文件设置edits log大小 fs.checkpoint.size 规定

DataNode
存储数据(Block)
启动DN线程的时候会向NN汇报block信息
通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收 到DN的心跳,则认为其已经lost,并copy其上的block到其它DN
默认情况下block加上自己都有三个副本,大小最好不要超过1G
HDFS支持2种认证:
simple 只认证用户,不认证密码,默认使用
kerberos 认证用户也认证密码,但是要新增机器的时候,新增的机器上用户名密码失效
HDFS的namenode启动的时候自动进入 安全模式,这时候文件只读

HDFS 安装:
 
  1. 先决条件
    1. 三台机器(以上)
    2. 时间一致,相差30秒以内。
    3. 必须有主机名和ip映射。 --hdfs只认主机名,不认IP
    4. 必须有JDK1.7,并且JDK的环境变量必须配置好。
      1. 配置环境变量:vi ~/.bash_profile #全局变量:/etc/profile
在文件的最后添加:
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
 
source ~/.bash_profile 重新刷新环境变量文件
  1. 防火墙暂时关闭。
上传tar,并且解压(tar -zxvf tar包名)。并且配置hadoop的环境变量
export HADOOP_HOME=/opt/local/hadoop-2.5.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 编辑hadoop配置文件/etc/hadoophadoop-env.sh core-site.xml  hdfs-site.xml
Sleves

Hadoop-env.sh
更改第25
export JAVA_HOME=/usr/java/default
core-site.xml     --- 主节点   namenode
<property>
        <name>fs.defaultFS</name>
        <value>hdfs:// node1:9000</value>
    </property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop</value>
</property>
 
Hdfs-site.xml       --secondary namenode
<property>   
<name>dfs.namenode.secondary.http-address</name>
<value> node2:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value> node2:50091</value>
</property>
 
Slaves
所有datanode 的主机名 -- 设置所有作为datanode节点的主机名
node1
node2
node3
  1. 设置sshd免密码登陆。
    1. 找一台主节点:启动服务。
      1. 执行命令生成密钥。ssh-keygen     (cd /root        ls –al      cd .ssh)
      2. 拷贝主节点的公钥到所有节点中去。ssh-copy-id -i id_rsa.pub root@node2 node2可随意修改node1 node2(所有需要免密码的服务器)
  2. 拷贝文件:hosts,bash_profile  hadoop目录 到其他几台机器
  3. 格式化HDFS: bin/hdfs namenode –format 必须在主节点上
  4. 在主节点上启动 sbin/start-dfs.sh
 
启动之后: jps 显示机器节点名称
  http://localhost:50070/    localhost改为namenode的ID 网页访问端口50070 其他访问端口9000

hdfs dfs -ls / 查看HDFS根目录下有没有文件夹
hdfs dfs -mkdir /home 在根目录下创建一个home文件夹
hdfs dfs -put apache-tomcat-7.0.61.tar.gz /home/ 把apache上传到网盘home下
hdfs dfs 查看帮助文档
hdfs dfs -chown -R zhangsan /test 给test文件夹权限修改为zhangsan
hadoop -deamon.sh restart datanode 重启这个datanode节点
hadoop -deamons.sh restart datanode 重启 所有datanode节点 -一般不用

eclipse中访问hdfs服务
 D:\java工具\eclipse\plugins 中加上hadoop-eclipse-plugin-2.5.1.jar,然后重启
然后右上角-》Open Perspective找到Map/Reduce
下方找到Map/Reduce locations 右下角:New hadoop location
选择DFS Master host:自己的nodeName的IP 端口9000 Location name:随便取

 eclipse编程:注意windows用户注意修改为root

猜你喜欢

转载自blog.csdn.net/u011418530/article/details/80276384
今日推荐