1、修改主机名称
对master/slave1/slave2同时配置为Master/Slave1/Slave2
master@Master:~$ sudo gedit /etc/hostname
上述3个虚机结点均需要进行以上步骤
2、填写主机IP
对master/slave1/slave2同时配置
master@Master:~$ sudo gedit /etc/hosts
192.168.48.128 master
192.168.48.129 slave1
192.168.48.130 slave2
上述3个虚机结点均需要进行以上步骤
3、建立hadoop用户组及新用户
对master/slave1/slave2同时配置
为hadoop集群专门设置一个用户组及用户
master@Master:~$ sudo groupadd hadoop //设置hadoop用户组
master@Master:~$ sudo useradd -s /bin/bash -d /home/hnu -m hnu -g hadoop //添加一个hnu用户,此用户属于hadoop用户组。
master@Master:~$ sudo passwd hnu //设置用户hnu登录密码
master@Master:~$ su hnu //切换到hnu用户中
上述3个虚机结点均需要进行以上步骤
4、 配置ssh免密码连入
Ubuntu14.04系统下:
对master/slave1/slave2同时配置
master@Master:~$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
master@Master:~$ sudo apt-get install openssh-server
上述3个虚机结点均需要进行以上步骤
(1) 每个结点分别产生公私密钥。
hnu@Master:~$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,如下:
hnu@Master:~$ cd .ssh
hnu@Master:~$ ls
Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:
hnu@Master:~/.ssh$ cat id_dsa.pub >> authorized_keys
hnu@Master:~/.ssh$ ls
用上述同样的方法在剩下的两个结点中如法炮制即可。
上述3个虚机结点均需要进行以上步骤
(2)本机ssh免密码登录测试
hnu@Master:~$ ssh localhost
在单机结点上用ssh进行登录,这将为后续对子结点SSH远程免密码登录作好准备。
用上述同样的方法在剩下的两个结点中如法炮制即可。
上述3个虚机结点均需要进行以上步骤
(3) 让主结点(master)能通过SSH免密码登录两个子结点(slave)
1)对slave1节点操作:
为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:
hnu@Slave1:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub ./master_dsa.pub
hnu@Slave1:~/.ssh$ cat master_dsa.pub >> authorized_keys
如上过程显示了slave1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,这一过程需要密码验证。接着,将master结点的公钥文件追加至authorized_keys文件中,通过这步操作,如果不出问题,master结点就可以通过ssh远程免密码连接slave1结点了。
2)对slave2节点同样进行以上步骤
在master结点中对两个子节点进行免密登陆:
hnu@Master:~$ ssh slave1
slave1结点首次连接时需要输入yes后成功接入,紧接着注销退出至master结点。然后再执行一遍ssh slave1,如果没有要求你输入”yes”,就算成功了,对node2结点也可以用同样的方法进行上述操作。
表面上看,这两个节点的ssh免密码登录已经配置成功,但是我们还需要对主节点master也要进行上面的同样工作,据说是真实物理结点时需要做这项工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。
3)对master自身进行ssh免密码登录测试工作:
hnu@Master:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub ./master_dsa.pub
hnu@Master:~/.ssh$ cat master_dsa.pub >> authorized_keys
hnu@Master:~/.ssh$ ssh master
至此,SSH免密码登录已经配置成功。
5、JDK与HADOOP环境变量配置
对master/slave1/slave2同时配置
解压JDK
master@Master:~$ sudo tar -zxvf jdk-8u91-linux-x64.tar.gz -C /opt
master@Master:~$ sudo gedit /etc/profile
#JAVA
export JAVA_HOME=/opt/jdk1.8.0_91
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
#HADOOP
export HADOOP_PREFIX=/home/hnu/hadoop-2.6.0
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"
上述3个虚机结点均需要进行以上步骤
6、HADOOP安装与配置
对master配置
解压hadoop
master@Master:~$ sudo tar -zxvf hadoop-2.6.0.tar.gz -C /home/hnu
master@Master:/home/hnu/hadoop-2.6.0/etc/hadoop$
1) core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hnu/hadoop-2.6.0/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
</configuration>
2) hadoop-env.sh 添加如下环境变量(一定要添加切勿少了)
export JAVA_HOME=/opt/jdk1.8.0_91
export HADOOP_PID_DIR=/home/hnu/hadoop-2.6.0/pids
在yarn-env.sh下添加如下环境变量
export JAVA_HOME=/opt/jdk1.8.0_91
export YARN_PID_DIR=/home/hnu/hadoop-2.6.0/pids
3) hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hnu/hadoop-2.6.0/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hnu/hadoop-2.6.0/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
4) mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>master:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>http://master:9001</value>
</property>
</configuration>
5) yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
6)slaves
slave1
slave2
7、向各节点复制hadoop
向slave1节点复制hadoop:
hnu@Master:~$ scp -r ./hadoop-2.6.0/ slave1:~
向slave2节点复制hadoop:
hnu@Master:~$ scp -r ./hadoop-2.6.0/ slave2:~
8、赋予权限
对master/slave1/slave2执行相同操作
将目录hadoop文件夹及子目录的所有者和组更改为用户hnu和组hadoop
root@Master:/home/hnu# chown -R hnu:hadoop hadoop-2.6.0
9、格式化hadoop
hnu@Master:~$ source /etc/profile
hnu@Master:~$ hdfs namenode -format
10、启动/关闭hadoop
start-all.sh/stop-all.sh
start-dfs.sh/start-yarn.sh
stop-dfs.sh/stop-dfs.sh
查看hdfs/RM
192.168.48.128:50070/192.168.48.128:8088
master:50070/master:8088
注:
(1)hadoop集群启动jps查看后没有DATANODE
删除slave1/slave2 中 /home/hnu/hadoop/data/current/VERSION文件后重启即可
写留言
微信扫一扫
关注该公众号