从零开始大数据——部署一个Hadoop环境
目标:用虚拟机模拟部署两个节点的Hadoop环境并做集群。
安装前的准备
下载Linux环境、Hadoop和JDK,我的版本是:CentOS-7-x86_64-DVD-1511.iso、hadoop-2.8.4.tar.gz,JDK使用jdk-7u80-linux-x64.tar.gz,虚拟机使用VMware Workstation Pro 12.0,新建一个虚拟机安装CentOS-7,网络设置为NET方式,安装完毕,修改网络地址,我的是192.168.135,vi /etc/hostname 主机名命名为master。
[[email protected] hadoop] vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
[[email protected] hadoop] vi /etc/hosts
我们预计安装三个服务器,分别为master和slave1、slave2,写进Hosts里面。
192.168.13.135 master
192.168.13.136 slave1
192.168.13.137 slave2
关闭防火墙
systemctl disable firewalld ,禁止开机启动
vim /etc/selinux/config,设置SELINUX=disabled。
打开master,解压JDK到opt目录下,如下图:
修改/etc/profile,加入:
export JAVA_HOME="/opt/jdk1.7.0_80"
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME="/opt/hadoop-2.8.4"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后执行source /etc/profile使之生效。
关机然后克隆两个虚拟机,修改第一个IP为192.168.13.136,名为slave1,修改第二个IP为192.168.13.137,名为slave2。
配置 SSH 无密码登录
生成**:ssh-****** -t rsa -P '' -f ~/.ssh/id_rsa ,
分发**:
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
同样在两个slave上也生成**并复制到其它三台机器 。
开始安装
复制并解压hadoop-2.8.4.tar.gz到/opt目录下。
第一步:添加环境变量
进入/opt/hadoop-2.8.4/etc/hadoop目录,修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的
export JAVA_HOME=/opt/jdk1.7.0_80/
第二步:修改core-site.xml,内容如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.8.4/data/tmp</value>
</property>
</configuration>
然后创建/opt/hadoop-2.8.4/data/tmp目录并赋予权限。
第三步:修改hdfs-site.xml
<configuration>
<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.namenode.name.dir</name>
<value>/opt/hadoop-2.8.4/data/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.8.4/data/dfs/data</value>
</property>
</configuration>
第四步:配置slaves
将预计的slaves主机名填进去就行了
master
slave1
slave2
第五步:配置yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
我们配置Hadoop1服务器为resourcemanager服务器并启用日志聚集功能。
第六步:配置mapred-site.xml
复制mapred-site.xml.template为mapred-site.xml,然后编辑它。
[[email protected] hadoop]# cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</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></configuration>
mapreduce.framework.name设置mapreduce任务运行在yarn上。
mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在master机器上。
mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。
第七步:分发集群内容
配置完成,进入hadoop的安装目录,远程分发到服务器上 :
cd /opt
scp -r hadoop-2.8.4/ slave1:$PWD
scp -r hadoop-2.8.4/ slave2:$PWD
启动和测试集群
第一次启动,需要在master机器上格式化hdfs 文件系统,输入:
hadoop namenode -format
然后启动dfs 服务和yarn 服务
start-dfs.sh
start-yarn.sh
使用jps命令看看服务器是否启动,输入jps回车,如果出现类似下面这样的字样,就成了
6754 ResourceManager
6558 SecondaryNameNode
6379 NameNode7273 Jps
然后在浏览器中输入http://192.168.13.135:50070,出现下面的页面,看到两个Live Nodes,则配置成功。