编辑如下文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
内容
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.200.130
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=192.168.200.2
DNS2=114.114.114.114
编辑文件
vi /etc/sysconfig/network
内容为
NETWORKING=yes
HASTNAME=hadoop01
单次关闭和永久关闭
service iptables stop
chkconfig iptables off
yum install -y openssh-clients
vi /etc/udev/rules.d/70-presistent-net.rules
编辑如下文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
更改ip
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.200.131
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=192.168.200.2
DNS2=114.114.114.114
vi /etc/sysconfig/network
内容
NETWORKING=yes
HOSTNAME=hadoop02
重启电脑,使网卡生效
其他需要克隆的机器只需要根据上述操作来来一遍就ok了。
linux必须做,windows为了使用方便也可以配置
192.168.200.160 hadoop01
192.168.200.161 hadoop02
192.168.200.162 hadoop03
可以使用
产生公钥和私钥
ssh-keygen -t rsa
把公钥发送给需要做免密的机器
ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip) 需要给自己发一个
ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip) 其他的机器发
可以使用免密登陆脚本做免密登陆,免密登陆见附录
tar -zxvf /root/jdk-8u102-linux-x64.tar.gz -C /usr/local/
vi /etc/profile
内容:
export JAVA_HOME=/usr/local/jdk1.8.0_102
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
解压:
tar -zxvf hadoop-2.7.3.tgz -C /usr/local/
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.8.0_102
配置Namenode在哪里 ,临时文件存储在哪里
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://bigdata3901:9000value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/usr/local/hadoop-2.7.3/tmpvalue>
property>
configuration>
配置namenode,datanode数据的本地存放位置,副本数量的多少,secondary的http地址
<configuration>
<property>
<name>dfs.namenode.name.dirname>
<value>/usr/local/hadoop-2.7.3/data/namevalue>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>/usr/local/hadoop-2.7.3/data/datavalue>
property>
<property>
<name>dfs.replicationname>
<value>3value>
property>
<property>
<name>dfs.secondary.http.addressname>
<value>bigdata3901:50090value>
property>
configuration>
首先把mapred-site.xml.tmp* 这个文件进行改名,改为 mapred-site.xml。
cp mapred-site.xml.tmp* mapred-site.xml
主要配置提交任务的方式,提交到yarn集群,默认是本地运行。
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
configuration>
主要是配置了yarn的老大在哪里,和一个map端程序结束的一个辅助服务开启。这里也可以加上每个小弟的资源数量,每个小弟的资源可以配置成不一样的。
<configuration>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>bigdata3901value>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
configuration>
这里是配置小弟有哪些,这里配置域名或者ip,不能都配置
bigdata3901
bigdata3902
bigdata3903
这个不是必须的,只是为了以后的操作方便。
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
把第一台安装好的jdk和hadoop以及配置文件发送给另外两台,主要发送的文件有下面几个:
eg:scp -r /usr/local/jdk1.8.0_102 hadoop02:/usr/local/
需要对namenode节点进行格式化,格式化会在配置的namenode目录下产生一些关于集群的id(用于集群的标示)等信息,只需要在namenode上操作一次
命令:
bin/hadoop namenode -format
启动命令:
sbin/start-dfs.sh
启动后可以使用jps查看下相关进程是否启动。
启动命令:
sbin/start-yarn.sh
启动后可以使用jps命令来查看相关进程的启动情况,
#!/bin/bash
#yum安装expect
yum -y install expect
#PWD_1是登陆密码,可以自己设定
PWD_1=123456
ips=$(cat /etc/hosts |grep -v "::" | grep -v "127.0.0.1")
key_generate() {
expect -c "set timeout -1;
spawn ssh-keygen -t rsa;
expect {
{Enter file in which to save the key*} {send -- \r;exp_continue}
{Enter passphrase*} {send -- \r;exp_continue}
{Enter same passphrase again:} {send -- \r;exp_continue}
{Overwrite (y/n)*} {send -- n\r;exp_continue}
eof {exit 0;}
};"
}
auto_ssh_copy_id () {
expect -c "set timeout -1;
spawn ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@$1;
expect {
{Are you sure you want to continue connecting *} {send -- yes\r;exp_continue;}
{*password:} {send -- $2\r;exp_continue;}
eof {exit 0;}
};"
}
# rm -rf ~/.ssh
key_generate
for ip in $ips
do
auto_ssh_copy_id $ip $PWD_1
done
执行免密登陆脚本的时候出现如下问题的:
原因:ssh客户端没有安装好,卸载重新安装就可以了(先一出,然后再clean下,然后再安装)。
yum remove -y openssh-clients
yum clean all
yum install -y openssh-clients
集群启动问题多看log日志,日志的位置在安装目录下面的logs里面,一定要勇于看日志。