一、简述
本次集群安装基于4台虚拟集群下进行。
hadoop版本使用 2.6.4
操作系统为 centos6.5
jdk版本为 jdk-7u67-linux-x64.tar.gz
二、准备
创建hadoop用户
#分别在4台机器中创建hadoop用户
useradd hadoop
#给hadoop用户授权——如下【图1】
vi /etc/sudoers
【图1】
下载hadoop安装包
https://archive.apache.org/dist/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
下载jdk安装包
https://download.csdn.net/download/u014414323/10420850
上传文件到linux
解压jdk、hadoop安装包并设置环境变量
#解压JDK安装包
tar -zvxf jdk-7u67-linux-x64.tar.gz -C ../apps/
#解压hadoop安装包
tar -zvxf hadoop-2.6.4.tar.gz -C ../apps/
#设置jdk、hadoop 环境变量
sudo vi /etc/profile
#文件最后追加以下3行
export JAVA_HOME=/home/hadoop/apps/jdk1.7.0_67
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#让环境变量生效
source /etc/profile
三、hadoop配置
hadoop安装包解压目录说明
[[email protected] ~]$ ll apps/hadoop-2.6.4/
总用量 52
drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 bin #存放hadoop自身的操作命令
drwxrwxr-x. 3 hadoop hadoop 4096 3月 8 2016 etc #存放配置文件
drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 include #存放c语言本地库的一些头文件
drwxrwxr-x. 3 hadoop hadoop 4096 3月 8 2016 lib #存放本地库
drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 libexec
-rw-r--r--. 1 hadoop hadoop 15429 3月 8 2016 LICENSE.txt
-rw-r--r--. 1 hadoop hadoop 101 3月 8 2016 NOTICE.txt
-rw-r--r--. 1 hadoop hadoop 1366 3月 8 2016 README.txt
drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 sbin #存放hadoop框架启动管理的命令
drwxrwxr-x. 4 hadoop hadoop 4096 3月 8 2016 share #存放文档与jar包
伪分布式需要修改5个配置文件
第一个:hadoop-env.sh
vim hadoop-env.sh
#第27行
export JAVA_HOME=/home/hadoop/apps/jdk1.7.0_67
第二个:core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://min1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop-2.6.4/tmp</value>
</property>
第三个:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定secondary namenode地址 -->
<property>
<name>dfs.secondary.http.address</name>
<value>min1:50090</value>
</property>
第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
#重命名
mv mapred-site.xml.template mapred-site.xml
#编辑
vim mapred-site.xml
<!-- 指定mr运行在yarn上,默认为local(表示让mr在本地机器运行) -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五个:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>min1</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
把上述min1配置好的文件内容全部拷贝到其他集群机器(min2、min3、min4)中(可通过人机交互脚本实现自动化处理)
scp -r apps/ min2:/home/hadoop/
scp -r apps/ min3:/home/hadoop/
scp -r apps/ min4:/home/hadoop/
#拷贝环境变量配置文件
sudo scp /etc/profile min2:/etc/
sudo scp /etc/profile min3:/etc/
sudo scp /etc/profile min4:/etc/
#使环境变生效(将命令发送给4台机器执行)
source /etc/profile
格式化namenode(是对namenode进行初始化,namenode存放着文件存放的索引地址)
hadoop namenode -format
单独启动 namenode
hadoop-daemon.sh start namenode
访问namenode网页界面:
单独启动 datanode
hadoop-daemon.sh start datanode
更多常用命令详情查看:https://blog.csdn.net/u013490585/article/details/83012749
slaves 文件作用说明
一般在集群中你唯一地选择一台机器作为 NameNode ,一台机器作为 ResourceManager,这是master (主)。
那么 ,集群中剩下的机器作为DataNode 和 NodeManager。这些是slaves (从)。
在你的 hadoop目录/etc/hadoop/slaves 文件上列出全部slave机器名或IP地址,一个一行如下:
[[email protected] hadoop]$ vi slaves
#slaves 编辑内容如下
min2
min3
min4
四、免密登录
生成ssh免登陆**
ssh-******
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
[[email protected] ~]$ ssh-copy-id min1
[email protected]'s password:
Now try logging into the machine, with "ssh 'min1'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[[email protected] ~]$ ssh-copy-id min2
[email protected]'s password:
Now try logging into the machine, with "ssh 'min2'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[[email protected] ~]$ ssh-copy-id min3
[email protected]'s password:
Now try logging into the machine, with "ssh 'min3'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[[email protected] ~]$ ssh-copy-id min4
[email protected]'s password:
Now try logging into the machine, with "ssh 'min4'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
启动hadoop
start-all.sh
查看各机器进程启动情况
关闭hadoop