1 系统环境说明
CentOS-6.5-x86_64-minimal
192.168.137.101 master
192.168.137.102 slave1
192.168.137.103 slave2
2 安装前的准备工作
2.1 配置网络
分别进入三台机器的网络配置文件,进入
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:9B:9C:E1
TYPE=Ethernet
UUID=b711da3a-e25f-4dec-be15-24b7f169a200
ONBOOT=yes //这个改成yes,这不要是no的话,网卡没法启动
NM_CONTROLLED=yes
#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=192.168.137.101
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
保存后,启动网卡 service network restart
2.2 配置机器名
分别配置三台机器的名称master,slave1,slave2,进入vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master.localdomain
保存后,无需重启,在每台机器上执行:hostname 机器名,重新登录即可
2.3 配置域名服务
vi /etc/resolv.conf
nameserver 192.168.137.1
2.4 配置hosts
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.101 master.localdomain master
192.168.137.102 slave1.localdomain slave1
192.168.137.103 slave2.localdomain slave2
2.5 安装基本的软件
yum -y install wget zip unzip man gcc gcc-c++ make setuptool automake lzo-devel svn libtool
yum install wget
yum install zip
yum install unzip
yum install man
yum install gcc
yum install gcc-c++
yum install make
yum install setuptool
yum install automake
yum install lzo-devel
yum install svn
yum install libtool
安装GNOME图形界面(喜欢图形界面的话可以安装下面):
yum -y groupinstall "X Window System"
Desktop"
"Chinese Support"
yum groupinstall "X Window System"
yum groupinstall "Desktop"
yum groupinstall "Chinese Support"
安装完成后,用"init 5"即可启动图形界面。
2.6
关闭防火墙
service iptables stop //关闭防火墙
service iptables disable //彻底关闭防火墙
2.7
检查ssh安装情况,如果没有则安装ssh
systemctl status sshd.service --查看ssh状态
2.8 创建用户
useradd hadoop //创建用户
passwd hadoop //设置用户密码
2.8
配置ssh无密钥登录
下面是在master上面的操作
# su hadoop --切换到hadoop用户
$ cd ~ --打开用户文件夹
$ ssh-keygen -t rsa -P '' --生成密码对,/home/hadoop/.ssh/id_rsa和/home/hadoop/.ssh/id_rsa.pub
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys --把id_rsa.pub追加到授权的key里面去
$ chmod 600 ~/.ssh/authorized_keys --修改权限
$ su --切换到root用户
# vim /etc/ssh/sshd_config --修改ssh配置文件
RSAAuthentication yes #启用RSA认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
# su hadoop --切换到hadoop用户
$ scp ~/.ssh/id_rsa.pub
[email protected]:~/ --把公钥复制所有的Slave机器上
$ scp ~/.ssh/id_rsa.pub
[email protected]:~/
下面是在slave1上面的操作
# su hadoop --切换到hadoop用户
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys --追加到授权文件"authorized_keys"
$ chmod 600 ~/.ssh/authorized_keys --修改权限
$ su --切换回root用户
# vim /etc/ssh/sshd_config --修改ssh配置文件
RSAAuthentication yes #启用RSA认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
验证,在master 上执行:ssh slave1, ssh slave2,这时候是不需要密码
3 安装必须的软件
- 64位linux系统。我使用的是 CentOS
- JDK 1.7+。注:使用1.7即可,如果是1.8则会编译失败,1.6没有试过,看网上大牛的帖子说也能过
- maven-3.2.5。 这是apache的一个产品,hadoop的编译要就是3.0以上
- protobuf 注:谷歌的产品,最好是提前百度准备一下这个文件
- hadoop-2.5.2-src 这个可以到Apache的官网上去下载
- ant-1.9.4 这个也是Apache的,在文章最后附的参考链接中有关于下载的百度网盘地址
3.1 安装JDK
cd /home/hadoop/tools/
cp jdk-7u75-linux-x64.tar.gz / usr/java
cd /usr/java
tar -zxvf jdk-7u75-linux-x64.tar.gz
配置环境变量:vi /etc/profile
#add jdk
export JAVA_HOME=/usr/java/jdk1.7.0_75
export PATH=.:$PATH:$JAVA_HOME/bin
使环境变量生效:source /etc/profile
检测安装是否成功:
java -version
javac -version
3.2 安装maven
cd /home/hadoop/tools/
mkdir /usr/maven
cp apache-maven-3.2.5-bin.tar.gz /usr/maven
cd /usr/maven
tar -zxvf apache-maven-3.2.5-bin.tar.gz
配置环境变量:vi /etc/profile
#add maven
export MAVEN_HOME=/usr/maven/apache-maven-3.2.5
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
使环境变量生效:source /etc/profile
验证:
mvn -version
3.3 安装
protobuf
cd /home/hadoop/tools/
mkdir /usr/protobuf
tar -zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0/
./configure --prefix=/usr/protobuf //配置你安装的路径
make
make install
配置环境变量:vi /etc/profile
#add protobuf
export PROTOBUF_HOME=/usr/protobuf/
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PROTOBUF_HOME/bin
使环境变量生效:source /etc/profile
验证:
protoc --version
3.4 安装CMAKE
yum install cmake
yum install openssl-devel
yum install ncurses-devel
3.5 安装
Ant
cd /home/hadoop/tools/
mkdir /usr/ant
cp apache-ant-1.9.4-bin.tar.gz /usr/ant
cd /usr/ant
tar -zxvf apache-ant-1.9.4-bin.tar.gz
配置环境变量:vi /etc/profile
#add ant
export ANT_HOME=/usr/ant/apache-ant-1.9.4
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PROTOBUF_HOME/bin:$ANT_HOME/bin
使环境变量生效:source /etc/profile
验证:
ant -version
3.6 安装
findbugs
cd /home/hadoop/tools/
mkdir /usr/findbugs
cp findbugs-3.0.0.tar.gz /usr/findbugs
cd /usr/findbugs
tar -zxvf findbugs-3.0.0.tar.gz
配置环境变量:vi /etc/profile
#add findbugs
export FINDBUGS_HOME=/usr/findbugs/findbugs-3.0.0
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PROTOBUF_HOME/bin:$ANT_HOME/bin:$FINDBUGS_HOME/bin
使环境变量生效:source /etc/profile
验证:
4
编译hadoop
所有的机器上都要安装
hadoop
,现在就先在
Master
服务器安装,然后其他服务器按照步骤重复进行即可。安装和配置
hadoop
需要以
"root"
的身份进行。
4.1
解压hadoop源码包
cd /home/hadoop/tools/
tar -zxvf hadoop-2.5.2-src.tar.gz
cd /root/hadoop-2.5.2-src/
cd hadoop-2.5.2-src
vim BUILDINT.txt
进入文件夹里面,里面有一个文件BUILDINT.txt,打开即可看见里面关于编译hadoop的一些环境要求
4.2 编译hadoop(一定要保证网络畅通)
cd hadoop-2.5.0-src
mvn package -Pdist,native,docs -DskipTests -Dtar
查看编译结果
同样在刚刚进行编译的那个目录下,有一个 hadoop-dist文件夹,进入里面的target文件夹,然后就可以看到编译成功64位的hadoop文件,解压后的在 hadoop-2.5.2 这个文件夹中,同时还生成了一个压缩包:hadoop-2.5.2-tar.gz 这个压缩包可以拷贝到别的机器上进行安装
4.3 安装与配置hadoop
tar -zxvf
hadoop-2.5.2-tar.gz
cp -r hadoop-2.5.2 /opt/
chown -R hadoop:hadoop /opt/hadoop-2.5.2
vi /etc/profile
#add hadop
export HADOOP_HOME=/opt/hadoop-2.5.2
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PROTOBUF_HOME/bin:$ANT_HOME/bin:$FINDBUGS_HOME/bin:$HADOOP_HOME/bin
使环境变量生效:source /etc/profile
su hadoop
cd /opt/hadoop-2.5.0
mkdir -p dfs/name
mkdir -p dfs/data
mkdir -p tmp
4.4 配置所有slave节点
cd etc/hadoop
vi slaves
slave1.localdomain
slave2.localdomain
4.5 修改hadoop-env.sh和yarn-env.sh
分别进入这两个文件修改Java环境路径
export JAVA_HOME=/usr/java/jdk1.7.0_75
4.6 修改core-site.xml
fs.defaultFS
hdfs://master:9000
io.file.buffer.size
131702
hadoop.tmp.dir
file:/opt/hadoop-2.5.2/tmp
hadoop.proxyuser.hadoop.hosts
hadoop.proxyuser.hadoop.groups
4.7 修改hdfs-site.xml
dfs.namenode.name.dir
/opt/hadoop-2.5.2/dfs/name
dfs.datanode.data.dir
/opt/hadoop-2.5.2/dfs/data
dfs.replication
3
dfs.namenode.secondary.http-address
master:9001
dfs.webhdfs.enabled
true
4.8
修改mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
4.9 配置yarn-site.xml(这里注意内存和cpu的设置)
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.auxservices.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.address
master:8032
yarn.resourcemanager.scheduler.address
master:8030
yarn.resourcemanager.resource-tracker.address
master:8031
yarn.resourcemanager.admin.address
master:8033
yarn.resourcemanager.webapp.address
master:8088
yarn.nodemanager.resource.memory-mb
2048
yarn.nodemanager.resource.cpu-vcores
1
4.10
同步代码到其他机器
1.
同步配置代
码
先在
slaves
的机器上也
创
建
scp -r hadoop-2.5.2
[email protected]:/opt/
2.
同步
/etc/profile
scp -r /etc/profile root@hadoop2:/etc/profile
4.11 格式化namenode(只在master上进行)
hadoop namenode -format
4.12
启动hdfs
cd /opt/
hadoop-2.5.2/sbin/
启动
hdfs
执行
start-dfs.sh
开 启 hadoop dfs 服 务
启动
Yarn
开 启 yarn 资 源管理服 务
start-yarn.sh
启动httpfs
开
启
httpfs
服
务
httpfs.sh start
使得
对外
可以提高
http
的
restful
接口服
务
4.13 检查启动情况
http://192.168.137.101:8088
http://192.168.137.101:50070