[大数据]连载No1之Hadoop概念和伪分布式集群环境搭建

是什么是hadoop?
(1) 框架核心设计: HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算

(2) 思想 : 分布式,分而治之,并行结算 ,计算向数据移动

(3) 模块:分布式文件存储系统HDFS: 提供了高可扩展性,高可靠性,和高吞吐率的数据存储服务 
分布式计算框架MapReduce: 计算向数据 移动 分布式资源框里框架YARN: 负责集群资源的管理和调度

(4)存储模型:字节
--文件线性切割成块(Block):偏移量offset(byte)
-- Block 分选存储在集群节点中
--单一文件Block大小一致,文件和文件可以不一致
--Block可以设置副本数,副本分散在不同节点中
--文件上传可以设置副Block大小和副本数
--已上传的文件Block副本数可以调整,大小不变
--只支持一次写入,多次读取,同一时刻还有一个写入者,可以Append追加数据

(5)架构模型
--文件元数据MetaData,文件数据
--(主) NameNode节点保存文件元数据:单节点posix
--(从) DateNode节点保存文件Block数据:多节点
--DataNode和NameNode保持心跳,提交block列表
--HdfsClient和NameNode交换元数据信息
--HdfsClint和DataNode交换文件Block数据

(6)NameNode(NN)
-基于内存存储:不会和存盘发生交换
-主要功能
接受客户端的读写f㐏
接受Namenode汇报的Block列表信息
-NameNOde保存metadata信息包括
  文件owership和permissions
  文件大小,时间
  (Block列表:Block偏移量),位置信息
  Block每副本位置(有DatNode上报)

(7)DataNode(DN)
   --本地磁盘目录存储数据(Block),文件形式
   --同时存储Block的元数据信息文件
   --启动DN时会向NN汇报block信息
   --通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的Block到其他的DN

(8)SecondaryNameNode (SNN)
-不是NN的备份,但可以做备份,主要作用是帮助NN合并edits log,减少NN启动时间
--合并时机
根据配置文件设置的间隔时间fs.checkpoint.period 默认3600秒
根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值默认为是64MB

用户登录配置

生成秘钥:  ssh-keygen -t rsa生成ssh秘钥。dsa
 复制到authorized_keys:  cp id_rsa.pub authorized_keys
 登录:  ssh localhost

安装hadloop
下载 http://archive.cloudera.com/cdh5/cdh/5/ 并解压到本地
/Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6

配置  etc/hadoop/
hadoop-env.sh 
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
export HADOOP_PID_DIR=/Users/wlx/bigdater/hadoop-2.5.0-cdh5.3.6/hdfs/tmp

配置 etc/hadoop/ /core-site.xml  指定临时目录和文件系
<configuration>
<property>
      //告诉所有集群节点,NameNode节点位置(所有集群配置都一置)
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
	//hadloop 默认临时文件地址
        <name>hadoop.tmp.dir</name>
<value>/Users/wlx/bigdater/hadoop-2.5.0-cdh5.3.6/hdfs/tmp</value> </property></configuration>

配置 ect/hadoop/hdfs-site.xml 由于是一台Mac电脑,所以数据的副本设置为1,默认是3
<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/Users/wlx/bigdater/hadoop-2.5.0-cdh5.3.6/hdfs/tmp/name</value>
    </property>
    <property>
        <name>dfs.namenode.data.dir</name>
        <value>/Users/wlx/bigdater/hadoop-2.5.0-cdh5.3.6/hdfs/tmp/data</value>
    </property>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
</configuration>

配置etc/hadoop/mapred-env.sh
export HADOOP_MAPRED_PID_DIR=/home/hadoop/bigdater/hadoop-2.5.0-cdh5.3.6/hdfs/tmp

配置 etc/hadoop/yarn-env.sh
export YARN_PID_DIR=/home/hadoop/bigdater/hadoop-2.5.0-cdh5.3.6/hdfs/tmp

配置 创建mapred-site.xml文件,直接执行命令cp mapred-site.xml.templete mapred-site.xml ,配置数据处理的框架为yarn
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>


配置 yarn-site.xml文件,配置数据处理框架yarn
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>


配置slaves指定datanode节点,将localhost改成主机名

localhost


修改环境变量文件,并使其立即生效 source ~/.base_profile"
###### hadoop 2.5.0
   export HADOOP_HOME=/Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6
   export HADOOP_PREFIX=$HADOOP_HOME
   export HADOOP_COMMON_HOME=$HADOOP_PREFIX
   export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
   export HADOOP_HDFS_HOME=$HADOOP_PREFIX
   export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
   export HADOOP_YARN_HOME=$HADOOP_PREFIX
   export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


常用对于附件和文件夹的增删命令

hdfs dfsadmin -report观察集群配置情况,如图所示,含有三个从节点
hadoop fs -ls /
hadoop fs -put file /
hadoop fs -mkdir /dirname
hadoop fs -text /filename
hadoop fs -rm /filename

横向扩展,如果要新加集群的配置方法

新起一台虚拟机
修改hosts文件
修改nn主机hadoop目录下etc/hadoop/slaves文件加入主机名
同样方式分发hosts, profile, software
在新加的主机上执行hadoop-daemon.sh start datanode

配置完成后,随意地方打上命令 hadoop ,如果有反应,就表示环境配置好了,如下查看版本

zhouguang:~ wlx$ hadoop version
Hadoop 2.5.0-cdh5.3.6
Subversion http://github.com/cloudera/hadoop -r 6743ef286bfdd317b600adbdb154f982cf2fac7a
Compiled by jenkins on 2015-07-28T22:14Z
Compiled with protoc 2.5.0
From source with checksum 9c7775296a534f91809cc23d2d15ffcc
This command was run using /Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6/share/hadoop/common/hadoop-common-2.5.0-cdh5.3.6.jar
zhouguang:~ wlx$ 

启动 start-all.sh 
zhouguang:~ wlx$ start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh17/11/10 17:47:16 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableStarting namenodes on [localhost]localhost: starting namenode, logging to /Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6/logs/hadoop-wlx-namenode-zhouguang.local.outlocalhost: starting datanode, logging to /Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6/logs/hadoop-wlx-datanode-zhouguang.local.outStarting secondary namenodes [0.0.0.0]0.0.0.0: starting secondarynamenode, logging to /Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6/logs/hadoop-wlx-secondarynamenode-zhouguang.local.out17/11/10 17:47:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicablestarting yarn daemonsstarting resourcemanager, logging to /Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6//logs/yarn-wlx-resourcemanager-zhouguang.local.outlocalhost: starting nodemanager, logging to /Users/wlx/work/tool/hadoop-2.5.0-cdh5.3.6/logs/yarn-wlx-nodemanager-zhouguang.local.out

查看启动进程 jps, 有红色部分就说明已经启动成功
zhouguang:~ wlx$ jps
60657 DataNode
60977 Launcher
60978 Jps
60933 NodeManager
60582 NameNode
60854 ResourceManager
682 
60749 SecondaryNameNode
zhouguang:~ wlx$ 

通过Web访问 http://localhost:50070/


设置上传默认路径

zhouguang:~ wlx$ hdfs dfs -mkdir -p /user/zhouguang
17/11/10 17:54:37 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

上传文件
说明:test问价夹下有两个文件,my.text 和 JVM底层调优.avi ,第二个文件有196MB, 上传之后,hdsf会切割成块,每个块默认大小为128MB, 所以会有两个块存储起来

zhouguang:test wlx$ ls -al
total 402776
drwxr-xr-x   4 wlx  staff        136 11 10 18:01 .
drwxr-xr-x+ 74 wlx  staff       2516 11 10 17:58 ..
-rw-r--r--@  1 wlx  staff  206216978  8 26 21:26 JVM底层调优.avi
-rwxr-xr-x@  1 wlx  staff         15 11 10 18:01 my.text

zhouguang:test wlx$ hdfs dfs -put JVM底层调优.avi /user/zhouguang
17/11/10 23:06:06 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

通过Web查看





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源14

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值