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