[Big Data]hadoop分布式系统在Linux系统安装
待完善
Hadoop2.6.0部署与应用
一、 环境准备
硬件:3台虚拟机
内存:至少512MB
硬盘:至少20G
操作系统:rhel6.4 64位 最小化安装
主机名 |
IP(局域网) |
描述 |
Master |
192.168.111.5 |
hdfs主节点,yarn主节点 |
slaves1 |
192.168.111.6 |
hdfs数据节点,yarn计算节点 |
slaves2 |
192.168.111.7 |
hdfs数据节点,yarn计算节点 |
(1) 安装openssh
在每台虚拟机上安装openssh,最小化虚拟机默认没有安装,自行配置yum安装openssh。3台虚拟机之间需要相互ssh登录
[root@master ~]#yum install openssh* -y
(2) 配置主机名和IP
修改主机名,编辑/etc/sysconfig/network文件
[root@master ~]#vi /etc/sysconfig/network
将主节点计算机名改为master
hostname=master
其他2台类推
hostname=slaves1
hostname=slaves2
然后修改3台虚拟机的IP为在同一个网段的静态IP
[root@master ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
内容分别如下
IPADDR=192.168.111.5
IPADDR=192.168.111.6
IPADDR=192.168.111.7
配置hosts文件,方便访问,不用记IP
[root@master ~]# vi /etc/hosts
192.168.111.5 hadoop-master
192.168.111.6 hadoop-slaves1
192.168.111.7 Hadoop-slaves2
然后把/etc/hosts文件分发到其他2台虚拟机上
[root@master ~]# scp /etc/hosts slaves1:/etc/
[root@master ~]# scp /etc/hosts slaves2:/etc/
二、 安装JDK
可以到oracle官网下载jdk
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz
在每台虚拟机上安装JDK,解压tar.gz包,,把解压的文件夹jdk1.8.0_31移到/usr/java下
[root@master ~]#tar zxvf jdk-8u31-linux-x64.gz
[root@master ~]#mkdir /usr/java
[root@master ~]#mv jdk1.8.0_31 /usr/java
配置环境变量
[root@master ~]#vi /etc/profile
将以下内容添加到/etc/profile的最后面
export JAVA_HOME=/usr/java/jdk1.8.0_31
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
使环境变量生效并验证是否安装成功
[root@master ~]#source /etc/profile
[root@master ~]#java -versison
三、 建立ssh无密登录
3台虚拟机建立专属用户hadoop并为其建立相互信任关系,使其方便自动登录运行命令,密码统一使用hadoop
[root@master ~]#useradd hadoop
[root@master ~]#passwd hadoop
[root@master ~]#su - hadoop
[hadoop@master ~]$Ssh-keygen -t rsa
一直回车就可以生成公钥和私钥,把3台虚拟机的公钥id_rsa.pub文件合并到一个authorized_keys文件上,然后分发到3台虚拟机上,改authorized_keys文件为600权限,使其可以相互登录
在slaves1和slaves2上操作,slaves2对应换编号
[hadoop@slaves1 ~]$cd .ssh
[hadoop@slaves1 ~]$scp id_rsa.pub master:~/.ssh/id_rsa.pub1
在master上操作
[hadoop@master ~]cd .ssh
[hadoop@master ~]cat id_rsa.pub >> authorized_keys
[hadoop@master ~]cat id_rsa.pub1 >> authorized_keys
[hadoop@master ~]cat id_rsa.pub2 >> authorized_keys
[hadoop@master ~]cat authorized_keys #查看是否操作正确
[hadoop@master ~]scp authorized_keys hadoop-master:~/.ssh/
[hadoop@master ~]chmod 600 ~/.ssh/authorized_keys
四、 安装hadoop
在主节点上操作,解压hadoop-2.6.0.tar.gz到hadoop用户家目录,编辑hadoop的配置文件,用hadoop用户操作
Su hadoop
Tar zxvf hadoop-2.6.0.tar.gz
修改hadoop-env.sh和yarn-env.sh文件的JAVA_HOME来指定JDK的路径
vi hadoop-2.6.0/etc/hadoop/hadoop-env.sh
第25行 export JAVA_HOME=/usr/java/jdk1.8.0_31
vi hadoop-2.6.0/etc/hadoop/hadoop-env.sh
第23行 export JAVA_HOME=/usr/java/jdk1.8.0_31
编辑从节点列表文件slaves
vi slaves
指定两台从节点
Hadoop-slvaes1
hadoop-slaves2
编辑core-site.xml,指定主节点的地址和端口
Cd hadoop-2.6.0/etc/hadoop
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
复制mapred-site.xml.template为mapred-site.xml,指定mapreduce工作方式
cd hadoop-2.6.0/etc/hadoop
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
编辑yarn-site.xml,指定yran的主节点和端口
vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<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.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:8035</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>
将hadoop-2.6.0文件夹分发到其他2台虚拟机上
Scp -r hadoop-2.6.0 hadoop-slaves1:~
Scp -r hadoop-2.6.0 hadoop-slaves2:~
编辑环境变量
Vi .baserc
HADOOP_HOME=/home/hadoop/hadoop-2.6.0
PATH=$PATH:$HADOOP_HOME/bin
Export HADOOP_HOME PATH
格式化分布式文件系统
Hadoop namenode -fotmat
在主节点启动
hadoop-2.6.0/sbin/start-all.sh
打开浏览器http://192.168.111.5:8088
如果成功应该看到如下效果
打开浏览器http://192.168.111.5:50070
如果成功可以看到如下效果
五、 运行测试