1.hadoop-cdh下载地址
http://archive.cloudera.com/cdh5/cdh/5/
2.软件准备
jdk-8u65-linux-x64.rpm
hadoop-2.6.0-cdh5.9.0.tar.gz
3.修改机器配置
(1).关闭防火墙
service iptables stop
chkconfig iptables off
(2).关闭selinux
vim /etc/sysconfig/selinux
(3).依次将三台机器hostname修改为 master,node1,node2
vim /etc/sysconfig/network
依次在三台机器上配置上hosts
vim /etc/hosts
10.2.10.200 master
10.2.10.202 node1
10.2.10.203 node2
4.配置master无密码登录所有salve
见配置master无密码登陆所有的slave
5.安装jdk(三台机器都要安装)
rpm -ivh jdk-8u65-linux-x64.rpm
6.配置jdk的环境变量
vim /etc/profile
#增加以下配置
JAVA_HOME=/usr/java/jdk1.8.0_65
JRE_HOME=/usr/java/jdk1.8.0_65/jre
PATH=$PATH:$JAVA_HOME/bin:$JREHOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVAHOME/lib/tool.jar:$JRE_HOME/lib:
export JAVA_HOME JRE_HOME PATH CLASSPATH
查看是否安装成功,如果出现以下提示表明安装成功
7.创建用户组
groupadd hadoop
useradd -r -g hadoop hadoop
8.hadoop集群安装
所有的机器上都要安装hadoop,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。安装和配置hadoop需要以"root"的身份进行。
(1).安装hadoop
tar zxvf hadoop-2.6.0-cdh5.9.0.tar.gz
mv hadoop-2.6.0-cdh5.9.0 /usr/hadoop
cd /usr
创建namenode目录
创建datanode目录
在"/usr/hadoop"创建"tmp"文件夹(公共目录)
mkdir /usr/hadoop/tmp
chown -R hadoop:hadoop hadoop
修改"/etc/profile"文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效
vim /etc/profile
# set hadoop path
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
(2).配置hadoop
配置hadoop-env.sh,该"hadoop-env.sh"文件位于"/usr/hadoop/etc/hadoop/hadoop-env.sh"目录下
vim /usr/hadoop/etc/hadoop/hadoop-env.sh
在文件的末尾添加下面内容
# set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_65
1).配置masters文件
vim /usr/hadoop/etc/hadoop/masters
master
2).配置slaves文件(Master主机特有)
vim /usr/hadoop/etc/hadoop/slaves
node1
node2
3).修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>定义HadoopMaster的URI和端口</description>
</property>
</configuration>
备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错
vim /usr/hadoop/etc/hadoop/core-site.xml
4).配置hdfs-site.xml文件, 修改Hadoop中HDFS的配置,配置的备份方式默认为3
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
以下配置是关闭权限校验,否则通过windows客户端连接的话会有以下警告
WARN org.apache.hadoop.security.UserGroupInformation: No groups available for user Administrator
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
设置namenode与datanode的存放目录
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/hadoop/dfs/name</value>
<description>namenode</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hadoop/dfs/data</value>
<description>datanode</description>
</property>
vim /usr/hadoop/etc/hadoop/hdfs-site.xml
5).配置mapred-site.xml文件, 修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口
<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>
cd /usr/hadoop/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vim /usr/hadoop/etc/hadoop/mapred-site.xml
6).配置yarn-site.xml文件
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</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>
<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>
</configuration>
vim /usr/hadoop/etc/hadoop/yarn-site.xml
(3).将hadoop复制到datanode机器
scp -r /usr/hadoop root@10.2.10.202:/usr/
cd /usr
chown -R hadoop:hadoop hadoop
scp -r /usr/hadoop root@10.2.10.203:/usr/
cd /usr
chown -R hadoop:hadoop hadoop
配合两个datanode的hadoop的环境变量(参考之前的配置)
删除/usr/hadoop/etc/hadoop/slaves文件,这个只有master特有
(4).启动验证
1).格式化HDFS文件系统,在"master"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化,只需 start-all.sh)
2).启动hadoop
cd /usr/hadoop/sbin
./start-all.sh #./stop-all.sh为停止命令
3).验证hadoop
验证方法一:用"jps"命令,在Master上用 java自带的小工具jps查看进程
在Slave1上用jps查看进程
验证方式二:用"hdfs dfsadmin -report"
用这个命令可以查看Hadoop集群的状态
Master服务器的状态:
Slave服务器的状态
(5).网页查看集群
http://10.2.10.200:8088
http://10.2.10.200:50070
9.测试系统自带的例子
(1).运行hadoop估算PI值命令
第一个参数 10 :是指要运行10次的map任务
第二个参数 10: 是指每个map任务要投掷多少次
两个参数的乘积就是总的投掷次数
hadoop jar /usr/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.9.0.jar pi 10 10