Hadoop集群搭建
Hadoop安装(伪分布式)
安装流程:
1.修改虚拟机网络连接方式 主机名 ip 映射文件 关闭防火情
2.暗账ssh客户端方便多台虚拟机传输数据
3.安装jdk8版本以上,因为hadoop内部需要jdk的运行环境
4.安装hadoop安装包,修改环境配置.
1.先将虚拟机的网络模式选为NAT. (连接外网的一种方式其中)
2.修改主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hdp001 ###这里配置的是主机名
3.修改虚拟机配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
## 这里ONBOOT设置为自动启动yes mac地址和uuid去掉
BOOTPROTO设置为static的 然后自动配置ip地址
## ipadd为ip netmask geteway就是上图中nat设置的网关
DEVICE="eth0"
BOOTPROTO="static" ###
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.101 ###
NETMASK=255.255.255.0 ###
GATEWAY=192.168.1.1 ###
DNS1=114.114.114.114
DNS2=114.114.115.115
4.配置域名映射,这样你就不用每次都写ip地址
#~$ vi /etc/hosts
192.168.254.50 hdp01
192.168.254.51 hdp02
192.168.254.52 hdp03
这个为你的虚拟机ip 与映射的名称
5.关闭防火墙(contOS6)
(这里一定要关闭,因为集群内部的机器一般都要互相通信,通常是关闭防火墙的,因为这样的集群一般都是放在内网中的)
#查看防火墙状态
service iptables status
# 关闭防火墙
service iptables stop
#ັ 查看防火墙开启状态
chkconfig iptables --list
# 关闭防火墙开机启动
chkconfig iptables off
6.安装ssh客户端,因为你可能安装的是mini版本的虚拟机,它本身是没有ssh客户端的,使用指令
yum install -y openssh-clients
7.重启电脑,让配置生效:reboot
安装Hadoop
1.下载:http://archive.apache.org/dist/hadoop/core/ 这里是2.6.4版本.
2.下载后解压.
3.进入hadoop安装包的 etc/hadoop目录,这里有几个文件需要配置
第一个:hadoop-env.sh
# 第27行 配置JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.7.0_65
第二个:core-site.sml
<!-- 指定Hadoop所使用的文件系统 schema(URI),
HDFS的老大NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的储存目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
第三个:hdfs-site.xml
<!-- 指定HDFS的备份数 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hdp01:50090</value>
</property>
第四个:
mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五个:yarn-site.xml
<!-- 指定Yarn的老大 ResourceManager 地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp01</value>
</property>
<!-- reduce获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
第六个:删除slaves原有的内容,配置如下内容.这样我们可以一键式命令启动整个hadoop集群
hdp01
hdp02
hdp03
4.添加hadoop环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_65
export HADOOP_HOME=/wolfcode/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/prifile
5.克隆虚拟机
启动新的虚拟机,因为是做的克隆,所以虚拟机上的主机名,网卡ip mac地址都没有改
而且克隆后的虚拟机会出现网卡异常
- 修改主机名 vi /etc/sysconfig/network
2.修改虚拟机ip,这里记得去掉UUID和MAC地址,避免和被克隆的机器冲突
3.删除网卡,这样系统会自己去重新配置,如下命令:
rm -rf /etc/udev/rules.d/70-persistent-net.rules
4.重启电脑病更新网络服务
reboot
service network restart
在主机上配置免密登录
为了集群主机配置免密登录,这样,我们就可以在主机中将文件分配给每一台集群中的机器:
ssh-keygen -t rsa 声明秘钥,这样在用户的.ssh文件夹下就会产生2个文件
ssh-copy-id hdp01 为某个机器配置免密登录,如果配置好域名映射,后面写映射的名称即可
[root@hdpvm1 ~]# cd ~/.ssh
[root@hdpvm1 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
33:8c:61:a5:eb:25:d5:7a:33:51:f9:4e:9b:18:36:e3 root@hdpvm1
The key's randomart image is:
+--[ RSA 2048]----+
| . .. |
| o . .. |
| + . o . |
| . * . .= o |
| + S +o B o |
| . o + oE + |
| . |
| |
| |
+-----------------+
[root@hdpvm1 .ssh]# ssh-copy-id hdpvm1
The authenticity of host 'hdpvm1 (192.168.254.105)' can't be established.
RSA key fingerprint is f8:98:34:82:c5:8b:14:fd:1a:26:42:28:1b:44:d3:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hdpvm1,192.168.254.105' (RSA) to the list of
known hosts.
root@hdpvm1's password:
Now try logging into the machine, with "ssh 'hdpvm1'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@hdpvm1 .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
启动集群
#hdfs namenode -format
# start-all.sh/stop-all.sh
上面的命令是启hdfs还有mapreduce所在的yarn集群的,现在基本被抛弃,一般建议使用如下两个命令
1. start-dfs.sh/stop-dfs.sh
2. start-yarn.sh/stop-yarn.sh
...
# jps
4688 NodeManager
4454 SecondaryNameNode
5005 Jps
4192 NameNode
4308 DataNode
4594 ResourceManager
当集群成功启动后,我们可以通过50070端口访问该集群,50070为HDFS管理界面,8088为MR管理界面