1、先决条件
a) 至少准备三台机器
b) 三台机器时间要一致,相差30秒以内。ntpdate 1.cn.pool.ntp.org 设置系统的时间保持一致
c) 必须有主机名和ip映射。
d) 必须有JDK1.7,并且JDK的环境变量必须配置好。
e). 配置环境变量:vi ~/.bash_profile(生产环境下是在用户自己的家目录下的.bash_profile配置)
在文件的最后添加:
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
一定要source:
source ~/.bash_profile
f)、防火墙暂时关闭。service iptables stop
2、上传tar,并且解压。并且配置hadoop的环境变量
export HADOOP_HOME= /usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3、编辑hadoop配置文件:hadoop-env.sh、core-site.xml、hdfs-site.xml、sleves
3.1 Hadoop-env.sh (~/hadoop/etc/hadoop在这个下面)
更改第25行
export JAVA_HOME=/usr/java/default
3.2、core-site.xml主节点一般说的是namenode节点,node1是主节点
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>
3.3、hdfs-site.xml配置secondarynamenode
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>node2:50091</value>
</property>
3.4、slaves
所有datanode的主机名:
node3
node4
node5
4、设置sshd免密码登陆。
4.1 找一台主节点:启动服务。
4.2 所有节点上执行生成密钥的命令:ssh-keygen。执行完之后,~/.ssh这个文件夹下有以下的文件
[root@node1 .ssh]# ll
总用量 16
-rw-r--r--. 1 root root 1960 3月 13 17:32 authorized_keys
-rw-------. 1 root root 1675 3月 13 17:06 id_rsa
-rw-r--r--. 1 root root 392 3月 13 17:06 id_rsa.pub
-rw-r--r--. 1 root root 2015 3月 13 18:05 known_hosts
4.3 把每台机器上的id_rsa.pub拷贝到主节点(node1)下,改成和自己主机名对应的名字:scp -r id_rsa.pub node1:/home/4_id.pub,把公钥追cat /home/id_6.pub >> ~/.ssh/authorized_keys
4.4 在主节点上(node1)把所有的id_rsa.pub里面的内容追加到authorized_keys文件里(一共有node1、node2、node3、node4、node5五个节点,node1是主节点存namenode,node2是存secondarynamenode,其他是存datanode。把node1、node2、node3、node4、node5的id_rsa.pub的内容全部追加到authorized_keys,在4.3步的时候就已经把node2、node3、node4、node5的id_rsa.pub文件拷贝到/home目录下了)
4.5 把node1的authorized_keys文件拷贝到其他的节点的~/.ssh文件夹下
4.6 开始用ssh node2或者node3或者node4或者node5免密登录