Hadoop分布式集群搭建
2017-02-20 22:18
381 查看
1.机器规划
编号 | 主机 | 主机IP | 安装组件 |
---|---|---|---|
1 | node1 | 192.168.96.3 | namenode、zkfc、datanode、nodemanager、zookeeper、jdk |
2 | node2 | 192.168.96.4 | namenode、zkfc、datanode、resourcemanager 、nodemanager、 zookeeper、jdk |
3 | node3 | 192.168.96.5 | datanode、nodemanager、 zookeeper、jdk |
2. Linux ip修改
[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 BOOTPROTO=dhcp TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=yes NAME=eno16777736 UUID=d71373c8-ebe8-488f-b003-ffab7da5ee52 DEVICE=eno16777736 ONBOOT=yes IPADDR=192.168.96.3 NETMASK=255.255.255.0 GATEWAY=192.168.96.2
3.修改linux主机名
Node1 [root@node1 ~]# vim /etc/hostname #进入之后直接写想要的主机名 [root@node1 ~]# vim /etc/sysconfig/network # Created by anaconda NETWORKING=yes HOSTNAME=node1 验证命令:hostname node2和node3同样的操作,分别写入node2、node3
4. 更改host
[root@node1 ~]# vim /etc/hosts 192.168.96.3 node1 #在文件的最后添加 [root@node1 ~]# systemctl stop firewalld.service #关闭防火墙功能 [root@node1 ~]# systemctl disable firewalld.service #将防火墙去除开机自启 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
5.3台机器上分别执行ssh免密钥登录
[root@node1 ~]# ssh-keygen [root@node1 ~]# ls .ssh/ #查看.ssh/目录会生成公钥、私钥两个文件 [root@node1 ~]# ssh-copy-id -i node1 #执行公钥赋值生成认证文件 [root@node1 ~]# ls .ssh/ #再次查看目录下会新增两个认证文件 分别在node2、node3上执行ssh-keygen命令生成公钥、密钥文件 执行(ssk-copy-id -i node1)对node1执行免密钥登录
6.下载jdk
下载地址http://www.oracle.com/technetwork/java/javase/downloads #选择对应版本的jdk [root@node1 liangml]# tar -xvf jdk-8u111-linux-x64.tar.gz #解压jdk 配置变量环境 [root@node1 liangml]# vim /etc/profile #修改配置文件 export JAVA_HOME=/home/liangml/jdk1.8.0_111 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar [root@node1 liangml]# source /etc/profile #执行source命令立即生效 [root@node1 liangml]# java -version #验证命令 java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
7.安装zookeeper
下载地址http://www.apache.org/dyn/closer.cgi/zookeeper/ [root@node1 liangml]# tar -xvf zookeeper-3.4.6.tar.gz [root@node1 conf]# vim zoo.cfg #默认没有这个配置文件 dataDir=/home/liangml/zookeeper-3.4.6/data #制定zookeeper数据目录 server.1=node1:2888:3888 #添加端口 server.2=node2:2888:3888 server.3=node3:2888:3888 clientPort=2181 #客户端连接端口 initLimit=10 syncLimit=5 配置zookeeper的myid文件(node2、node3配置文件分别为2、3) [root@node1 zookeeper-3.4.6]# vim data/myid #编辑data/myid配置文件(修改id为1) [root@node1 liangml]# scp -r zookeeper liangml@node2:/home/liangml/ #复制zookeeper配置文件到node2、node3相应的目录下将myid分别更改为2、3 [root@node1 bin]# ./zkServer.sh start #在3个机器上分别执行命令启用zookeeper [root@node1 bin]# ./zkServer.sh status #验证zookeeper启动(其中一台状态为leater、两台为follower)
8.安装Hadoop
下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common [root@node1 liangml]# unzip hadoop-2.6.0.zip #解压hadoop [root@node1 liangml]# cd hadoop-2.6.0/etc/hadoop/ [root@node1 hadoop]# vim hadoop-env.sh #修改配置文件hadoop-env.sh export JAVA_HOME=/home/liangml/jdk1.8.0_111 [root@node1 hadoop]# vim hdfs-site.xml #修改配置文件hdfs-site.xml <configuration> <property> <name>dfs.nameservices</name> <value>ns1</value> </property> <!-- ns1下面有两个NameNode,分别是nn1,nn2 --> <property> <name>dfs.ha.namenodes.ns1</name> <value>nn1,nn2</value> </property> <!-- nn1的RPC通信地址 --> <property> <name>dfs.namenode.rpc-address.ns1.nn1</name> <value>node1:9000</value> </property> <!-- nn1的http通信地址 --> <property> <name>dfs.namenode.http-address.ns1.nn1</name> <value>node1:50070</value> </property> <!-- nn2的RPC通信地址 --> <property> <name>dfs.namenode.rpc-address.ns1.nn2</name> <value>node2:9000</value> </property> <!-- nn2的http通信地址 --> <property> <name>dfs.namenode.http-address.ns1.nn2</name> <value>node2:50070</value> </property> <!-- 指定NameNode的元数据在JournalNode上的存放位置 --> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node1:8485;node2:8485;node3:8485/ns1</value> </property> <!-- 指定JournalNode在本地磁盘存放数据的位置 --> <property> <name>dfs.journalnode.edits.dir</name> <value>/home/hadoop-2.6.0/journal</value> </property> <!-- 开启NameNode失败自动切换 --> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <!-- 配置失败自动切换实现方式 --> <property> <name>dfs.client.failover.proxy.provider.ns1</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行--> <property> <name>dfs.ha.fencing.methods</name> <value> sshfence shell(/bin/true) </value> </property> <!-- 使用sshfence隔离机制时需要ssh免登陆 --> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/analytics/.ssh/id_rsa</value> </property> <!-- 配置sshfence隔离机制超时时间 --> <property> <name>dfs.ha.fencing.ssh.connect-timeout</name> <value>30000</value> </property> </configuration> [root@node1 hadoop]# vim yarn-site.xml #修改yarn-site.xml配置文件 <configuration> <!-- Site specific YARN configuration properties --> <!-- 指定resourcemanager地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node2</value> </property> <!-- 指定nodemanager启动时加载server的方式为shuffle server --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> [root@node1 hadoop]# vim mapred-site.xml #修改mapred-site.xml配置文件 <configuration> <!-- 指定mr框架为yarn方式 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> [root@node1 hadoop]# vim slaves #修改slaves node1 node2 node3 在node1启动所有的journalnode,注:调用的是hadoop-daemons.sh脚本,注意是复数s的脚本 [root@node1 hadoop]# /home/liangml/hadoop-2.6.0/sbin/hadoop-daemons.sh start journalnode 验证:运行jps,node1、2、3上多了journalnode进程 格式化HDFS [root@node1 hadoop-2.6.0]# bin/hdfs namenode -format #格式化HDFS集群 #格式化后会根据core-site.xml中的hadoop.tmp.dir配置生成文件,本文文件生成目录在hadoop目录tmp下,将相应的目录copy到node2、node3集群下。 [root@node1 hadoop-2.6.0]# scp tmp/ liangml@node2:/home/liangml/hadoop-2.6.0/ 格式化ZK(在node1上执行) [root@node1 hadoop-2.6.0]# bin/hdfs zkfc -formatZK 分别启动HDFS、YARN [root@node1 hadoop-2.6.0]# sbin/start-dfs.sh [root@node1 hadoop-2.6.0]# sbin/start-yarn.sh
验证:
UI验证: http://192.168.93.3:50070 命令验证: [root@node1 bin]# ./hadoop fs -ls / [root@node1 bin]# ./hadoop fs -mkdir /liangml
相关文章推荐
- hadoop2.2.0的ha分布式集群搭建
- 第五天-Hadoop全分布式集群搭建(傻瓜式配置)
- hadoop分布式集群搭建
- Hadoop2.2.0--Hadoop Federation、Automatic HA、Yarn完全分布式集群搭建
- Hadoop-1.1.2、HBase-0.94.7完全分布式集群搭建
- Hadoop分布式集群搭建(二 )完全分布式模式
- 安装Spark+hadoop,spark、hadoop分布式集群搭建...(亲自搭建过!!)
- Spark-1.6.1 Hadoop-2.6.4 VMware Ubuntu 分布式集群搭建 全过程
- Hadoop 2.7.3 完全分布式集群系统搭建
- Docker环境下Hadoop分布式集群搭建
- 使用docker搭建hadoop分布式集群
- spark2.1.0完全分布式集群搭建-hadoop2.7.3
- Ubantu下搭建Hadoop1.x完全分布式集群
- 搭建hadoop2.5.2/Ubuntu12集群(完全分布式)
- 搭建Hadoop分布式集群------SSH无密码验证配置
- 5节点Hadoop分布式集群搭建-超详细文档
- 5节点Hadoop分布式集群搭建-超详细文档
- Hadoop2.6集群环境搭建(伪分布式)
- 解决典型Hadoop分布式集群环境搭建问题
- hadoop分布式集群的搭建