hadoop完全分布环境搭建
来源:互联网 发布:彩先知软件 编辑:程序博客网 时间:2024/05/16 00:57
设备:win10操作系统,内存4G
软件:vnware workstation,secureCRT,xftp
材料:centos7镜像文件、jdk1.8.0_144、hadoop-2.7.4
一、安装虚拟机
在虚拟机中新建两个centos7虚拟机,一个分配内存1G作为namenode,另一个分配512M作为datanode(可以根据自己主机的内存而定,博主内存4G不足以将3个datanode都设置为1G),为了运行流畅,datanode可以不安装图形界面。
二、静态IP设置
1.将两个虚拟机的网络模式都设置为仅主机模式,主机虚拟网卡的IP设置为192.168.10.1
2.配置两台虚拟机的IP:vi /etc/sysconfig/network-scripts/ifcfg-ens33(网卡名称“ens33”并不是确定的),ONBOOT修改为yes,其后添加ip地址、掩码、网关(为主机虚拟网卡的IP地址)和网卡物理地址(ifconfig查询到)
ONBOOT=yes
IPADDR=192.168.10.100
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
HWADDR=00:0c:29:ea:cb:d1
IPADDR=192.168.10.100
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
HWADDR=00:0c:29:ea:cb:d1
将namenode设置为192.168.10.100,datanode设置为192.168.10.101
配置完成后 network service restart 生效
3.修改主机名:vi /etc/hostname
namenode中:HOSTNAME=master
datanode中:HOSTNAME=slave1
(节点增加时也需要进行如上的配置)
4.修改hosts文件,以便namenode可以通过主机名解析datanode的IP
192.168.10.100 master
192.168.10.101 slave1
(节点增加时,往下排列)
三、ssh免密登录
namenode可以免密登录登陆各个节点,获取反馈节点数据存储和程序运行的数据
在root目录(也可以使用其他用户的家目录)的路径下运行
ssh-keygen -t dsa -P '' -f /root/.ssh/id_dsa
ssh-keygen代表生成密钥;-t表示生成密钥的类型;-P提供密语;-f指定生成的文件。
ssh-keygen -t dsa -P '' -f /root/.ssh/id_dsa
ssh-keygen代表生成密钥;-t表示生成密钥的类型;-P提供密语;-f指定生成的文件。
这个命令执行完毕后会在/root/.ssh文件夹下生成两个文件,分别是id_dsa、id_dsa.pub,这是SSH的一对私钥和公钥
对文件授权:
chmod 600 /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
chmod 700 /root/.ssh
以上步骤在各个节点上都要运行
接下来再namenode中
将id_dsa.pub追加key中:cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys
将本地的id_dsa.pub复制到远程datanode的authorized_keys中
scp /root/.ssh/id_sda.pub root@192.168.10.101:/root/.ssh/authorized_keys
配置完成后,登陆验证 ssh master(登陆本机) ssh slave1(192.168.10.101)登陆远程datanode
注意:如果配置完成后,更换过虚拟机,但是使用了之前相同的ip,需要将namenode节点中的记录清除
ssh-keygen -R 192.168.10.101(中途更换过ip为192.168.10.101的虚拟机)
四、搭建java环境
1.检查已有的jdk
在所有的节点上都需要有java环境
检查已经安装过的jdk:rpm -qa|grep jdk
删除已经安装的文件:rpm -e --nodeps +安装的jdk包名称(上个命令查询到的所有jdk文件)
2.下载jdk文件,xftp拖到linux上,解压到/usr/local目录下
3.配置环境变量 vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0(文件名中途改过)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
配置完成后 source /etc/profile生效
五、安装hadoop
在所有的节点上都需要进行如下配置
1.官网下载hadoop:http://www.linuxidc.com/Linux/2016-07/133508.htm
2.xftp拖到linux上,解压到 /usr/local目录下
3.到安装路径下的/etc/hadoop下找到配置文件进行配置
>>>hadoop-env.sh配置
# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}
# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}
找到上面的内容将JAVA_HOME的路径加到后面
export JAVA_HOME=/usr/local/jdk1.8.0
export JAVA_HOME=/usr/local/jdk1.8.0
>>>core-site.xml配置
在configuration中增加属性配置,分别指定namenode的ip和端口,以及hdfs数据在在本地存储目录
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.10.100:9000</value>
</property>
<property>
<name>fs.tmp.dir</name>
<value>/usr/local/hadoop2.7.4/tmp</value>
</property>
</configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.10.100:9000</value>
</property>
<property>
<name>fs.tmp.dir</name>
<value>/usr/local/hadoop2.7.4/tmp</value>
</property>
</configuration>
>>>hdfs-site.xml配置
指定dfs.replication冗余备份数量为1(一般为3,此处节点数量不够,设置为1),namenode存储元数据(命名空间和变更日志)的路径,以及datanode存储数据块的位置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop2.7.4/tmp/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop2.7.4/tmp/data</value>
</property>
</configuration>
<value>/usr/local/hadoop2.7.4/tmp/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop2.7.4/tmp/data</value>
</property>
</configuration>
>>>mapred-site.xml.template配置
指定任务分配的IP和端口
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.10.100:9001</value>
</property>
</configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.10.100:9001</value>
</property>
</configuration>
4.hadoop环境变量配置
vi /etc/profile
增加如下内容
export HADOOP_HOME=/usr/local/hadoop2.7.4
export PATH=${HADOOP_HOME}/bin:$PATH
export PATH=${HADOOP_HOME}/bin:$PATH
5.配置slaves文件:vi slaves
196.168.10.100
192.168.10.101
第一个对应名称节点IP,第二个对应数据节点的IP,如需增加节点,只需要往后面增加
六、启动hadoop
1.格式化hdfs文件系统:hadoop namenode -format
2.在/usr/local/hadoop2.7.4/sbin路径下启动hadoop :./start-all.sh
3.查看是否启动成功:
在namenode中用jps命令查看进程显示如下内容
5540 NodeManager
10212 Jps
5430 ResourceManager
4967 NameNode
5272 SecondaryNameNode
10212 Jps
5430 ResourceManager
4967 NameNode
5272 SecondaryNameNode
在datanode中用jps命令显示如下内容
3703 NodeManager
3799 Jps
2750 DataNode
3799 Jps
2750 DataNode
也可以通过hadoop dfsadmin -report查看集群状态
或者在linux上用浏览器登录http://master:50070查看
七、增加节点
上述步骤完成之后只有一个数据节点和一个名称节点,只有足够多的节点方能体系分布式的优势,所以如果主机内存满足条件,可以在虚拟机中增加几个节点,按照上述步骤配置IP,主机名,JAVA环境,安装hadoop以及配置相应的文件(与上述slave1相同),在名称节点中配置slaves,hosts文件,完成之后需要在名称节点中格式化hdfs系统,启动即可。
阅读全文
0 0
- hadoop完全分布环境搭建
- Hadoop 2.6 完全分布环境搭建
- 分布搭建hadoop环境
- hadoop伪分布环境搭建
- hadoop伪分布环境搭建
- hadoop伪分布环境搭建
- hadoop为分布环境搭建
- hadoop伪分布环境搭建
- hadoop +hbase +zookeeper 完全分布搭建
- hadoop完全分布式环境搭建
- Hadoop完全分布式环境搭建
- hadoop完全分布式环境搭建
- hadoop 完全分布式环境搭建
- hadoop 伪分布的环境搭建
- hadoop介绍以及伪分布环境搭建
- Hadoop 2.2.0 伪分布环境搭建
- hadoop-2.5.2伪分布环境搭建
- hadoop-2.4.1伪分布环境搭建
- 0.0 用代码画画——作者简介
- 第一个程序(python)-HelloWorld
- springmvc的编码问题
- 自由编译配置软件autoconf
- Hbase shell
- hadoop完全分布环境搭建
- browserify出现ParseError: Unexpected character '�'
- Python-IDLE实现清屏
- [Leetcode]Dynamic Programming-note
- shell if语句和test命令
- 阿里云|REDIS 开启多个端口
- JavaScript实现图片轮播图
- 初入Tensorflow一览(1)
- 9.10NOIP模拟赛