文件配置:
(注:修改配置文件需要使用root用户,否则修改失败)
vim /etc/sysconfig/network
修改主机名为:HOSTNAME=Master
vim /etc/sysconfig/network-scripts/ifcfg-eth0
查看IP地址、网关、DNS服务器是否正确
vim /etc/sysconfig/network-scripts/ifcgf-eth0
如果不正确,进行修改
ifconfig
修改后的结果
vim /etc/hosts
配置hosts文件,主机和IP地址映射
(注:IP地址根据要求而定)
192.168.1.2 Master
192.168.1.3 Slave1
修改后的结果
SSH配置:
(注:如果ssh没有安装,可在root下安装)
yum install ssh
安装SSH协议
yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)
service sshd restart
启动服务
(注:以下操作在普通用户下操作)
ssh Master
登录本机,此时需要密码
(注:设置无密码登录本机)
exit
退出刚才的 ssh Master
cd ~/.ssh/
若没有该目录,请先执行一次ssh Master
ssh-keygen -t rsa
会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys
加入授权
(注:经过上述步骤,还是会提示输入密码,要做下面两个修改)
chmod 600 ~/.ssh/authorized_keys
修改文件"authorized_keys"权限
su -
进入root用户,在root用户下操作
vim /etc/ssh/sshd_config
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容
###############
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
###############
service sshd restart
重启
exit
退出root用户
ssh Master
登录本机,此时不需要密码
scp ~/.ssh/id_rsa.pub [email protected]:~/
复制文件"id_rsa.pub"到服务器IP为"192.168.1.3"的用户为"hadoop"的"/home/hadoop/"下面
(注:下面在Slave1上操作)
mkdir ~/.ssh
在"/home/hadoop/"下创建".ssh"文件夹
这一步并不是必须的,如果在Slave1的"/home/hadoop"已经存在就不需要创建了,因为我们之前并没有对Slave机器做过无密码登录配置,所以该文件是不存在的。用下面命令进行创建。
(注:用hadoop登录系统,如果不涉及系统文件修改,一般情况下都是用我们之前建立的普通用户hadoop进行执行命令)
chmod 700 ~/.ssh
修改文件夹".ssh"的用户权限,把他的权限修改为"700"
(注:如果不进行,即使你按照前面的操作设置了"authorized_keys"权限,并配置了"/etc/ssh/sshd_config",还重启了sshd服务,在Master能用"ssh localhost"进行无密码登录,但是对Slave1进行登录仍然需要输入密码,就是因为".ssh"文件夹的权限设置不对。这个文件夹".ssh"在配置SSH无密码登录时系统自动生成时,权限自动为"700",如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
把Master的公钥追加到Slave1的授权文件"authorized_keys"中去
(注:用root用户修改"/etc/ssh/sshd_config",方法同上)
su -
进入root用户
vim /etc/ssh/sshd_config
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容
###############
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
###############
service sshd restart
重启
exit
退出root用户
(注:在Master上登录Slave1)
ssh Slave1
登录Slave1,不需要密码
Java环境配置:
计划:
使用U盘将hadoop-2.6.0.tar和jdk-7u51-linux-x64.tar拷贝到CentOS系统中
备选计划1:
修改主机IP,直接上网下载
备选计划2:
按照教程要求,搭建VSFTP服务器
(注:CentOS系统不能识别NTFS格式的U盘,将U盘重新格式化成FAT32的,可读取)
采用U盘方式,将所需文件拷贝到/home/hadoop/下
(注:使用root用户)
mkdir /usr/local/java
在"/usr/local"下创建"java"文件夹
cp /home/hadoop/jdk-7u51-linux-x64.tar.gz /usr/local/java
把"jdk-7u51-linux-x64.tar.gz"复制到"/usr/local/java"文件夹中
cd /usr/local/java
打开/usr/local/java文件夹
tar -zxvf jdk-7u51-linux-x64.tar.gz -C /usr/local/java
解压到/usr/local/java文件夹
(注:设置环境变量)
vim /etc/profile
编辑/etc/profile文件
(注:在文件末尾插入下列内容)
# set java environment
export JAVA_HOME=/usr/local/java/jdk1.7.0_51
export JRE_HOME=/usr/local/java/jdk1.7.0_51/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
source /etc/profile
使配置生效
java -version
查看版本信息,验证是否安装成功
(注:设置环境变量,转到普通用户下)
vim ~/.bashrc
编辑.bashrc文件
(注:在文件末尾插入下列内容)
# set java environment
export JAVA_HOME=/usr/local/java/jdk1.7.0_51
export JRE_HOME=/usr/local/java/jdk1.7.0_51/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
(注:在文件末尾插入上列内容)
source ~/.bashrc
使配置生效
(注:在root和普通用户下验证配置是否成功)
java -version
查看版本信息,验证是否安装成功
(注:信息如下所示)
[[email protected] ~]# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
(注:信息如上所示)
(注:安装其他主机)
scp /home/hadoop/jdk-7u51-linux-x64.tar.gz [email protected]:~/
把"Master.Hadoop"文件夹"/home/hadoop/"的JDK复制到其他Slave的"/home/hadoop/"下面
(注:格式为:scp /home/hadoop/jdk-6u31-linux-i586.bin 远程用户名@远程服务器IP:~/)
安装Hadoop:
cp /home/hadoop/hadoop-2.6.0.tar.gz /usr/local
把"hadoop-2.6.0.tar.gz"复制到"/usr/local"目录下面
cd /usr/local
进入"/usr/local"目录
tar -zxvf hadoop-2.6.0.tar.gz
解压"hadoop-2.6.0.tar.gz"安装包
mv hadoop-2.6.0 hadoop
将"hadoop-2.6.0"文件夹重命名"hadoop"
chown -R hadoop:hadoop hadoop
(注:chown -R hadoop:hadoop(用户名:用户组) hadoop(文件夹))
将文件夹"hadoop"读权限分配给hadoop用户
rm -rf hadoop-2.6.0.tar.gz
删除"hadoop-2.6.0.tar.gz"安装包
mkdir /usr/local/hadoop/tmp
在"/usr/local/hadoop"创建"tmp"文件夹
vim /etc/profile
配置"/etc/profile",配置信息如下
(注:信息如下所示)
# set hadoop path
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
(注:信息如上所示)
(注:上面的信息不能多打空格,否则,会报not a valid identifier错误)
配置Hadoop:
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
配置hadoop-env.sh文件,注意它的目录,配置信息在下面
(注:信息如下所示)
# set java environment
export JAVA_HOME=/usr/local/java/jdk1.7.0_51
(注:信息如上所示)
(注:配置其他文件)
cd /usr/local/hadoop/etc/hadoop
打开路径,需要配置的文件都保存在这里
vim slaves
将原来 localhost 删除,把所有Slave的主机名写上,每行一个,例如我只有一个 Slave节点,那么该文件中就只有一行内容:Slave1
vim core-site.xml
配置core-site.xml
(注:修改配置信息如下所示)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
(注:修改配置信息如上所示)
vim hdfs-site.xml
配置hdfs-site.xml
(注:修改配置信息如下所示)
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(1代表Slave机的个数)
(注:修改配置信息如上所示)
文件mapred-site.xml,这个文件不存在,首先需要从模板中复制一份
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
配置mapred-site.xml
(注:修改配置信息如下所示)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(注:修改配置信息如上所示)
vim yarn-site.xml
配置yarn-site.xml
(注:修改配置信息如下所示)
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
复制Hadoop文件到Slave主机:
cd /usr/local
打开usr路径
rm -r ./hadoop/tmp
删除tmp文件夹,原因是前面如果做过伪分布式实验,会留下一些内容,影响后面的实验;如果没有做过伪分布式实验,则不需要删除
sudo tar -zcf ./hadoop.tar.gz ./hadoop
压缩
scp ./hadoop.tar.gz Slave1:/home/hadoop
复制到Slave1主机上
接下来在Slave主机上操作:
sudo tar -zxf /home/hadoop/hadoop.tar.gz -C /usr/local
复制到/usr/local路径下
chown -R hadoop:hadoop /usr/local/hadoop
要给"Slave1"服务器上的用户hadoop添加对"/usr/local/hadoop"读权限。
启动及验证:
(注:一下步骤在普通用户下进行)
在Master主机上操作:
cd /usr/local/hadoop/
打开/usr/local/hadoop/路径
bin/hdfs namenode -format
(注:在root用户下关闭防火墙)
service iptables stop
关闭防火墙
(注:重新转到普通用户下)
首次初始化
sbin/start-dfs.sh
sbin/start-yarn.sh
启动
bin/hdfs dfsadmin -report
检查是否成功,查看Hadoop集群的状态
http://master:50070/
通过Web页面看到查看DataNode和NameNode的状态
http://master:8088/cluster
通过Web界面查看任务进度
sbin/stop-dfs.sh
sbin/stop-yarn.sh
关闭
Hadoop2.6.0下载地址:
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/
或
http://hadoop.apache.org/releases.html
JDK下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
版权声明:本文为博主原创文章,未经博主允许不得转载。