其他分享
首页 > 其他分享> > Hadoop集群部署

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

标签:opt,部署,Hadoop,hadoop,export,sxt,HOME,2.6,集群
来源: https://blog.csdn.net/qq_43459184/article/details/100930707