1 安装并配置jdk和hadoop
1.1 安装文件传输软件
安装文件传输软件SSHSecureShellClient3.2.9软件
通过“SSH Secure File Transfer Client”向linux虚拟机传送hadoop-2.7.1.tar.gz和jdk-8u60-linux-x64.tar.gz。
在linux虚拟机上,运行ls命令,可以看到,我们上传的两个压缩文件。
1.2 解压jdk和hadoop
在linux虚拟机上解压文件,并通过mv命令重命名文件夹名称为hadoop和jdk8。
#tar–xzvf hadoop-2.7.1.tar.gz
#tar–xzvf jdk-8u60-linux-x64.tar.gz
#mv jdk1.8.0_60 jdk1.8
#mv hadoop-2.7.1 hadoop
解压hadoop:
解压jdk:
重命名:
1.3 配置/etc/profile中的环境变量
执行#sudo vi /etc/profile,并添加下列内容:
export JAVA_HOME=/home/hadoop/jdk1.8
export JRE_HOME =/home/hadoop/jdk1.8/jre
export HADOOP_HOME = /home/hadoop/hadoop
export CLASSPATH =$ {JAVA_HOME}/lib: $ {JRE_HOME}/lib
export PATH=${HADOOP_HOME}/bin: ${HADOOP_HOME}/sbin:${JAVA_HOME}/bin:$PATH
执行vi命令,打开/etc/profile文件:
使用sudo命令时,需要输入hadoop用户的密码。
进入/etc/profile文件,添加export语句内容后,按下esc键,输入:wq命令,保存并推出/etc/profile文件。
1.4 修改hadoop环境参数
修改hadoop/etc/hadoop下的hadoop-env.sh、mapred-env.sh、yarn-env.sh中的内容:
export JAVA_HOME=/home/hadoop/jdk8
首先,通过#cd hadoop/etc/hadoop,进入文件所在目录,可通过ls命令查看目录下的文件;然后,#vi hadoop-env.sh:
在文件中,找到export JAVA_HOME行内容,修改后保存退出(Esc, :wq)。
同理,编辑mapred-env.sh、yarn-env.sh中的对应内容:
1.5 建立文件目录
#mkdir /home/hadoop/hadoop/tmp
#mkdir /home/hadoop/hadoop/dfs
#mkdir /home/hadoop/hadoop/dfs/name
#mkdir /home/hadoop/hadoop/dfs/data
注:cd命令的使用
(1)直接使用cd,不带任何参数,表示回到当前用户的主目录。针对hadoop用户,它的主目录是/home/hadoop。
(2)cd hadoop,表示进入当前目录下的hadoop子目录。
(3)cd .. ,表示回到从当前目录切换到上一级目录。
Cd命令通常会结合pwd、ls等命令一起使用。
pwd命令用于显示当前的目录路径信息;ls命令用于查看当前目录中的文件和子目录情况。
1.6 修改hadoop的xml配置文件
1.6.1.
修改hadoop的xml配置文件的方法与修改hadoop环境参数的方法类似,都是先通过 cd命令进入配置文件所在的目录,然后通过vi编辑器进行xml文件的编辑。
注:
中文注释,在进行配置时,需要去掉,否则会因为编码格式问题,导致hadoop启动时不能正确解析xml的情况出现。
(2)core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四个xml配置文件都位于/home/hadoop/hadoop/etc/hadoop目录下。
(3)如果嫌vi编辑器编辑文本麻烦的话,可以通过SSH Secure File Transfer软件将四个xml文件(mapred-site.xml默认情况下不存在,只有mapred-site.xml.template文件存在,拷贝该文件后重命名即可)拷贝到windows环境下,通过文本编辑器进行配置修改后(具体参加后面的具体配置内容),再拷贝回Linux的/home/hadoop/hadoop/etc/hadoop目录,覆盖原文件即可。
1.6.2 配置core-site.xml文件
修改hadoop/etc/hadoop下的core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
</configuration>
1.6.3 配置hdfs-site.xml文件
修改hadoop/etc/hadoop下的hdfs-site.xml
<configuration>
<!--配置文件的副本数,副本数不能大于datanode数目-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>file:/home/hadoop/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!--防止出现不允许远程读写hdfs,不建议使用
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
-->
<!--namenode每3秒发一个心跳信号-->
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
</property>
<!--心跳机制recheck的间隔,当某个节点在35000/1000*2+3*10即100s内无响应,则集群将其标记为dead-->
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>35000</value>
</property>
</configuration>
1.6.4 配置mapred-site.xml文件
修改hadoop/etc/hadoop下的mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--history要手动启动,启动命令为:mr-jobhistory-daemon.sh starthistoryserver,这样在web上就可以访问master:19888端口了,这是查看job的history信息的端口-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
1.6.5 配置yarn-site.xml文件
修改hadoop/etc/hadoop下的yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</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.address</name>
<value>master:8032</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>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
1.7 修改masters和slaves
修改hadoop/etc/hadoop下的masters和slaves两个文件。
在masters中增加内容:
master
在slaves中增加内容:
master
slave1
注:masters中的配置表示secondarynamenode所在的节点机,默认没有该文件,通过vi编辑保存后自动创建了该文件;slaves中的配置表示datanode节点机。
1.8 关闭linux虚拟机
在命令行下输入下列命令,关闭虚拟机。
#sudo init 0
1.9 克隆master虚拟机
通过Vmware克隆master虚拟机为slave1虚拟机。
Vmware->虚拟机->管理->克隆,克隆时选择“完全克隆”。
1.10 配置slave1虚拟机
1.10.1 启动虚拟机
启动虚拟机slave1
1.10.2 修改主机名
将slave1的主机名由master修改为slave1。
#sudo vi /etc/hostname
slave1
1.10.3 修改IP地址
修改slave1的ip地址为192.168.10.11
#sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.10.11
netmask 255.255.255.0
gateway 192.168.10.1
1.10.4 重启虚拟机
通过命令#sudo reboot重启虚拟机slave1。
1.11 无密钥登录ssh
1.11.1 启动master虚拟机
1.11.2 生成密钥文件对
在master上运行命令
#ssh-keygen–t rsa
一路回车,创建一对密钥文件(公钥和私钥,其中id_rsa.pub是公钥,id_rsa为私钥)。
进入.ssh目录,可以看到生成的密钥对文件id_rsa.pub和id_rsa。
1.11.3 拷贝公钥文件
在master上运行命令
#ssh-copy-idhadoop@master
上面的命令执行过程中,建立连接提示时,选“yes”,回车。之后输入master主机hadoop的密码。执行完后,输入命令#ssh master,正常的应该出现如下的界面(即,不需要输入master的hadoop用户密码,就可以通过ssh登录master主机了)。
在命令行输入#exit退出ssh登录,回到.ssh目录。
在master上运行命令
#ssh-copy-idhadoop@slave1
上面的命令执行过程中,建立连接提示时,选“yes”,回车。之后输入slave1主机hadoop的密码。执行完后,输入命令#ssh slave1,正常的应该出现如下的界面(即,不需要输入slave1的hadoop用户密码,就可以通过ssh登录slave1主机了)。
输入#exit退出slave1的ssh登录。
2 启动Hadoop
2.1 格式化HDFS文件系统
在master主机上执行下述命令,用于格式化HDFS文件系统。
#hadoop namenode –format
执行结果如下所示,表示HDFS文件系统格式化成功。
2.2 启动Hadoop
在master主机上执行下述命令,用于格式化HDFS文件系统。
#start-all.sh
启动命令执行完成后的界面如上图所示。
2.3 查看进程
在master主机上执行#jps,查看进程信息应该有如下进程:
NodeManager
NameNode
Jps
DataNode
SecondaryNameNode
ResourceManager
用#ssh slave1登录到slave1,执行#jps,查看进程信息应该有如下进程:
Jps
NodeManager
DataNode
在浏览器中输入IP地址:192.168.10.10:50070,会出现如下界面:
至此,说明整个Hadoop系统安装成功。