Hadoop1.x与2.x安装笔记
Email:
2015-05-09
Hadoop 1.x 安装
Hadoop1.x 集群规划
No | 名称 | 内容 | 备注 |
1 | 用户 | grid |
|
2 | 用户组 | hadoop | 有权限运行hadoop,并可以使用jdk |
3 | 服务器 | Hadoop11: 192.168.1.211 Hadoop12: 192.168.1.212 Hadoop13: 192.168.1.213 |
|
4 | 系统 | Cent OS 7 |
|
5 | JDK版本 | jdk-7u79-linux-x64.gz |
|
6 | Hadoop版本 | hadoop-1.2.1-bin.tar.gz |
|
| 文件传输工具 | WinSCP |
|
-
创建用户及所属组
grid,用来运行Hadoop (可选)
su
groupadd grid
useradd –m –s /bin/bash –g grid grid
-
机器及网络配置
-
配置IP
-
修改主机名:
su
vi /etc/hostname
将三台机器的名子改为: hadoop11, hadoop 12, hadooop 13
-
配置host文件
切换到root帐户下,使用vi在修改文件/etc/hosts,添加三台机器的IP,及名称。然后使用ping命令检查各台机器之间的是否可以通过机器名连通
-
关闭防火墙
systemctl stop firewalld.service
-
禁止防火墙自启动
systemctl disable firewalld.service
-
配置SSH无密码登录
在三台机器上分别执行
ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
然后在需要输入信息的时候,直接回车。直至命令完成
使用ssh登录机器。检查SSH无密码是否配置正确
将三台的机器的id_rsa.pub内容合并,然后将内容写到authorized_keys,然后使用SCP将authorized_keys拷贝到其它两台机器上。
scp id_rsa.pub hadoop11:~/.ssh/h12_id_rsa.pub
scp id_rsa.pub hadoop11:~/.ssh/h13_id_rsa.pub
-
安装JDK
-
准备JKD
将准备好的JKD安装包使用Winscep拷贝到Hadoop11上
-
在root用户解压安装
su
cp jdk-7u79-linux-x64.gz hadoop-1.2.1-bin.tar.gz /usr/local
tar -zxvf jdk-7u79-linux-x64.gz
-
为用户赋权限
在三台机器上执行以下命令
cd /usr/local
chown –R grid:hadop jdk-7u79-linux-x64
-
安装Hadoop
-
准备hadop安装包
使用winscp将hadop安装包hadoop-1.2.1-bin.tar.gz拷贝到hadoop11机器上
-
在root用户下解压hadoop
su
cd /usr/local
tar –zxvf hadoop-1.2.1-bin.tar.gz
-
为用户赋权限
chown –R grid:hadoop hadoop-1.2.1
-
修改配置文件
-
修改hadoop-env.sh
-
修改masters,slaves文件
-
修改core-site.xml,hdfs-site.xml,mapred-site.xml
core-site.xml
hdfs-site.xml
mapred-site.xml
-
将配置好的hadoop复制到其它各节点
scp -r jdk1.7.0_79 hadoop12:/usr/local
scp -r hadoop-1.2.1 hadoop12:/usr/local/
scp -r jdk1.7.0_79 hadoop13:/usr/local
scp -r hadoop-1.2.1 hadoop13:/usr/local/
-
在hadoop12,hadoop13上设置权限:
su
chown -R grid:grid hadoop-1.2.1 jdk1.7.0_79
-
格式化hadoop
bin/hadoop namenode -format
-
启动进程
在hadoop安装目录下运行
bin/start-all.sh
-
检查进程
使用工具jps on hadoop11
jps on hadoop12, hadoop13
-
在Hadoop 1.x上运行wordcount
Hadoop一切准备就细后,我们来运行hadoop自带的例子wordcount来检查下hadoop是否能正常工作。
-
准备要分析的文件
cd /usr/local/hadoop-1.2.1/
mkdir input
echo "hello word" >test1.txt
echo "hello hadoop" >test2.txt
-
将文件放到hdfs文件系统中
bin/hadoop fs -put /usr/local/hadoop-1.2.1/input in
检查文件创建是否成功
bin/hadoop fs -lsr in
-
运行程序
bin/hadoop jar hadoop-examples-1.2.1.jar wordcount in out
-
查看结果:
bin/hadoop fs -cat /user/grid/out/part-r-00000
作业问题二:Hadoop 2.x 安装
Hadoop2.x 集群规划
No | 名称 | 内容 | 备注 |
1 | 用户 | grid |
|
2 | 用户组 | hadoop | 有权限运行hadoop,并可以使用jdk |
3 | 服务器 | Hadoop21: 192.168.1.221 Hadoop22: 192.168.1.222 Hadoop23: 192.168.1.223 |
|
4 | 系统 | Cent OS 7 |
|
5 | JDK版本 | jdk-7u79-linux-x64.gz |
|
6 | Hadoop版本 | hadoop-2.5.2.tar.gz |
|
| 文件传输工具 | WinSCP |
|
x安装的前期准备工作与hadoop 1.x类似,具体步骤可以参考1.x的安装文件。下面主要介绍hadoop 2.x的安装.
-
安装Hadoop
-
准备Hadoop安装包
将文件hadoop-2.5.2.tar.gz拷贝到/home/grid
-
在root用户下解压hadoop
su
cp hadoop-2.5.2.tar.gz /usr/local
tar -zxvf hadoop-2.5.2.tar.gz
-
为用户赋权限
chown -R grid:hadoop hadoop-2.5.2
exit
-
修改配置文件:
hadoop2.x 需要修改如下目录下的七个配置文件
/usr/local/hadoop-2.5.2/etc/hadoop
- yarn-env.sh
- hadoop-env.sh
- slaves
- core-site.xml
- hdfs-site.xml
- mapred-site.xml (从mapred-site.xml.template复制得到)
- yarn-site.xml
-
yarn-env.sh
-
hadoop-env.sh
-
slaves
1.4.4 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop21:9000</value>
<description>change your own hostname</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.5.2/tmp</value>
</property>
</configuration>
-
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdfs://hadoop21:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.5.2/name</value>
</property>
<property>>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.5.2/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
-
mapred-site.xml
从mapred-site.xml.template复制得到
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop21:10020</value>
</property>
<property>>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop21:19888</value>
</property>
</configuration>
-
yarn-site.xml
<configuration>
<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>hadoop21:8022</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop21:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop21:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop21:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop21:8088</value>
</property>
</configuration>
-
复制配置好的Hadoop到其它节点
scp -r hadoop-2.5.2 hadoop22:/usr/local
scp -r hadoop-2.5.2 hadoop23:/usr/local
-
在hadoop22,hadoop23上执行命令设置权限
chown -R grid:hadoop hadoop-2.5.2 jdk1.7.0_79
-
格式化Hadop
bin/hdfs namenode -format
-
启动Hadoop
sbin/start-dfs.sh
sbin/start-yarn.sh
-
检查进程
/usr/local/jdk1.7.0_79/bin/jps
hadoop21:
hadoop22
hadoop23
-
使用Hadoop 2.x 运行示例
-
准备文件
mkdir input
cd input
echo "hello word" >test1.txt
echo "hello hadoop" >test2.txt
-
将文件放到hdfs文件系统中
bin/hadoop fs -put /usr/local/hadoop-2.5.2/input /in
-
运行程序
bin/hadoop jar /usr/local/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcount /in/* /out
-
查看结果:
bin/hadoop fs -ls -R /out
bin/hadoop fs -cat /out/part-r-00000