微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hadoop集群部署

hadoop官网

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

在windows主机的host文件中配置各主机的映射

192.168.56.11 node1
192.168.56.12 node2
192.168.56.13 node3
192.168.56.14 node4

一,操作系统环境
依赖软件ssh,jdk
ssh远程访问,一般都是自带
配置java环境
java_home

export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin

免密钥(直接执行)
在NameNode中:先执行下面两行

 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

将NameNode中的ssh文件中的密钥给每一个Datanode,作为公钥

scp id_rsa.pub node2:`pwd`/node1.pub
cat node1.pub >> authorized_keys

测试链接(挨个测试):
ssh node2
exit

时间同步(不同主机时间一致)
配置主机名:

hosts,hostname
vi /etc/hosts

192.168.56.11 node1
192.168.56.12 node2
192.168.56.13 node3
192.168.56.14 node4

配置为当前主机名:
vi /etc/sysconfig/network

二,hadoop部署
/opt/sxt/
将hadoop文件解压到/opt/sxt文件
配置文件修改

export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_HOME=/opt/sxt/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

修改hadoop的配置文件

 vi /opt/sxt/hadoop-2.6.5/etc/hadoop/hadoop-env.sh 
 将     export JAVA_HOME=${JAVA_HOME}
 修改为 export JAVA_HOME=/usr/java/jdk1.7.0_67


 vi /opt/sxt/hadoop-2.6.5/etc/hadoop/mapred-env.sh 
 将     export JAVA_HOME
 修改为 export JAVA_HOME=/usr/java/jdk1.7.0_67


 vi /opt/sxt/hadoop-2.6.5/etc/hadoop/yarn-env.sh 
 将     export JAVA_HOME
 修改为 export JAVA_HOME=/usr/java/jdk1.7.0_67

添加配置
NameNode启动
vi /opt/sxt/hadoop-2.6.5/etc/hadoop/core-site.xml
配置:文件系统的入口,也就是NameNode所在的主机

<configuration>
 <property>
        <name>fs.defaultFS</name>
        <value>hdfs://本地主机名例如node1:9000</value>
    </property>
</configuration>

配置NameNode的可靠性的源存放位置,认在/tmp目录下,但是tmp文件是临时文件,不安全

vi /opt/sxt/hadoop-2.6.5/etc/hadoop/core-site.xml 
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/sxt/hadoop/local</value>
    </property>

配置副本数
vi /opt/sxt/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
配置:副本数,认是3个

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

配置Datanode
vi /opt/sxt/hadoop-2.6.5/etc/hadoop/slaves
配置节点,有几个就写几个

secondary NameNode的配置

vi /opt/sxt/hadoop-2.6.5/etc/hadoop/hdfs-site.xml 
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:50090</value>
    </property>

将配置好的hadoop文件拷贝到datanode
scp -r ./hadoop-2.6.5/ node2:pwd

格式化
hdfs namenode -format

启动
start-dfs.sh

浏览器查看:
http://192.168.56.11:50070

创建用户根目录
hdfs dfs -mkdir -p /usr/root

上传文件
hdfs dfs -put ./hadoop-2.6.5.tar.gz /usr/root

指定块的大小进行分配
hdfs dfs -D dfs.blocksize=1048576 -put test.txt /usr/root

块数据文件存放在
/var/sxt/hadoop/local/dfs/data/current/

停止
stop-dfs.sh

架构模型:

在这里插入图片描述


NameNode(NN)
基于内存存储 :不会和磁盘发生交换
只存在内存中
持久化
NameNode主要功能
接受客户端的读写服务
收集Datanode汇报的Block列表信息
NameNode保存Metadata信息包括
文件owership和permissions
文件大小,时间
(Block列表:Block偏移量),位置信息
Block每副本位置(由Datanode上报)

NameNode持久化
NameNode的Metadate信息在启动后会加载到内存
Metadata存储到磁盘文件名为”fsimage”
Block的位置信息不会保存到fsimage
edits记录对Metadata的操作日志。。。redis

Datanode(DN)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐