介绍
安装并配置Hadoop集群
修改hosts信息
# vi /etc/hosts
# Hadoop Cluster
172.16.252.128 master
172.16.252.129 slave01
172.16.252.130 slave02
环境依赖
- 安装
ssh
yum install -y ssh
- 安装
rsync
yum install -y rsync
- 安装
jdk
选择安装1.6及以上版本,我才用rpm方式安装,在官网下载 Java SE Development Kit 7u79
如果存在需要卸载旧版本
# rpm -qa | grep java
将显示的旧版本全部删除
# rpm -e --nodeps jdk-X-Y-Z..
转到jdk-7u79-linux-x64.rpm下载目录并安装
# rpm -ivh jdk-7u79-linux-x64.rpm
查看版本信息
# java -version
配置环境变量
# vi /etc/profile
添加内容
# Java Env
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
#Hadoop Env
export HADOOP_HOME=/data/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
Done!
- 配置ssh免密码登陆
选择一台主节点机器生成公钥并存放到~/.ssh/authorized_keys
中,所有含此证书信息的机器都可以被主节点机器免密码ssh访问。
我本地是使用172.16.252.128作为主节点机器,172.16.252.129和172.16.252.130作为子节点。
$ cd ~ #进入用户目录
$ ssh-keygen -t rsa -P ""
#这是生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用""空字符串表示无密码。
#回车后,会提示三次输入信息,我们直接回车即可。这样就在~/.ssh目录下生成了几个东西
$ cd ~/.ssh
$ cat id_rsa.pub >> authorized_keys #这个命令将id_rsa.pub的内容追加到了authorized_keys的内容后面
调试:
# ssh localhost
如不需要输入密码说明生成公钥成功。
对子节点服务器:
将/.ssh目录中的id_rsa.pub这个文件拷贝到需要登录的服务器的/.ssh目录中,然后再运行以下命令来将公钥导入
到~/.ssh/authorized_keys这个文件中
# scp root@172.16.252.128:/root/.ssh/id_rsa.pub ~/.ssh/
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
设置目录权限
$ chmod 755 ~
#~/权限设置为755
$ chmod 700 ~/.ssh/
#~/.ssh权限设置为700
$ chmod 600 ~/.ssh/authorized_keys
#~/.ssh/authorized_keys的权限设置为600
在主节点上ssh登陆无需密码即表示成功
ssh 172.16.252.130
安装配置Hadoop
下载安装
在官网选择了一个稳定且焦心的版本(2.7.3)安装,下载二进制文件。
传到安装目录并解压安装
# tar -zxvf hadoop-2.7.3.tar.gz
配置
采用三台机器作为配置Hadoop集群
进入安装目录
# cd hadoop-2.7.3
- 配置jdk安装信息,将JAVA_HOME修改为你的jdk安装目录
# vi etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_79
- 配置输出信息(仅master配置,非必要)
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
$ cat output/*
- 配置HDFS文件基本信息
# mkdir tmp
# vi etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop-2.7.3/tmp</value>
</property>
</configuration>
# vi etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
#数据有3个副本
# vi etc/hadoop/mapred-site.xml.template
#2.6以前的版本是mapred-site.xml文件
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
# vi etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_79
# vi etc/hadoop/yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
# vi etc/hadoop/slaves
master
slave01
slave02
- 格式化主节点并启动dfs
# bin/hdfs namenode -format
# sbin/start-dfs.sh
在外部(同一局域网或公网)浏览器下访问可以看到相关信息
http://localhost:50070/
- 启动
ResourceManager
和NodeManager
# sbin/start-yarn.sh