系列目录:
Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境
建立Linux虚拟机(全节点)
客户机操作系统:CentOS-6.5-x86_64。
网络连接:host-only。Connecet automaticcally:打勾。
hadoopmaster
192.168.169.100
255.255.255.0
hadoopslave1
192.168.169.101
255.255.255.0
hadoopslave2
192.168.169.102
255.255.255.0
安装类型:Minimal
关闭防火墙和SELINUX(全节点)
1
2
3
4
5
6
7
8
9 1# iptables
2service iptables status
3service iptables stop
4# 不随操作系统自动启动
5chkconfig iptables off
6# 永久起效,reboot重启后生效
7vi /etc/selinux/config
8SELINUX=disabled
9
合并CentOS 6.5的两个DVD作为本地yum源(master节点)
创建相关目录
1
2 1mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd /mnt/iso
2
说明:
/mnt/dvd1和/mnt/dvd2,用于挂载Centos6.5原有的两个镜像ISO文件。
/mnt/dvd,合并后的镜像文件存放目录。
/mnt/iso,制作好ISO镜像的存放目录。
挂载CentOS原来的两个镜像文件,首先, 复制第一张DVD(CentOS-6.5-x86_64-bin-DVD1)中的所有文件到/mnt/dvd目录下,然后,只拷贝第二张DVD中 Packages目录下的所有RPM文件到/mnt/dvd/Packages/目录下,由于第二张DVD(CentOS-6.5-x86_64-bin-DVD2)不能当做启动光盘,所以只需要RPM文件即可。
1
2
3
4
5
6
7
8 1mount /dev/sr0 /mnt/dvd1
2df -h
3cp -av /mnt/dvd1/* /mnt/dvd
4umount /mnt/dvd1
5
6mount /dev/cdrom /mnt/dvd2
7cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd/Packages/
8
合并TRANS.TBL,将DVD2中TRANS.TBL的信息追加到DVD1中TRANS.TBL后面,并排序保存。
1
2
3
4
5 1cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd/Packages/TRANS.TBL
2mv /mnt/dvd/Packages/{TRANS.TBL,TRANS.TBL.BAK}
3sort /mnt/dvd/Packages/TRANS.TBL.BAK > /mnt/dvd/Packages/TRANS.TBL
4rm -rf /mnt/dvd/Packages/TRANS.TBL.BAK
5
备份原有yum配置文件,
1
2
3 1cd /etc/yum.repos.d
2rename .repo .repo.bak *.repo
3
生成新的yum配置文件
1
2
3
4
5
6
7
8
9 1cat > /etc/yum.repos.d/CentOS-Media.repo <<EOF
2>[c6-media]
3>name=CentOS-\$releasever - Media
4>baseurl=file:///mnt/dvd
5>gpgcheck=0
6>enabled=1
7>gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
8>EOF
9
更新yum源
1
2
3 1yum clean all
2yum upgrade
3
将/mnt/dvd/打包为iso
1
2
3 1yum install genisoimage
2mkisofs -l -J -L -r -V "CentOS-6.5-x86_64" -o /mnt/iso/CentOS-6.5-x86_64-DVD.iso /mnt/dvd
3
CentOS搭建本地yum源(http方式)(master节点)
启动httpd服务
1
2
3
4
5
6
7 1# 验证是否安装httpd服务
2rpm -qa|grep httpd
3# yum install -y httpd
4yum install -y httpd
5# 启动httpd服务
6service httpd start
7
安装yum源
1
2
3
4
5
6 1# 在/var/www/html/下创建文件夹CentOS6.5
2mkdir -p /var/www/html/CentOS6.5
3
4# 将iso文件中的内容copy到CentOS6.5
5cp -av /mnt/dvd/* /var/www/html/CentOS6.5/
6
利用ISO镜像,yum源搭建OK。浏览器验证访问:http://192.168.169.100/CentOS6.5/。
使用yum源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 1# 备份原有的repo文件
2mkdir -p /etc/yum.repos.d/repo.bak
3cd /etc/yum.repos.d/
4cp *.repo *.repo.bak repo.bak/
5rm -rf *.repo *.repo.bak
6# 新建文件 vi CentOS6.5.repo
7[base]
8name=CentOS-$releasever - Base
9baseurl=http://hadoopmaster:80/CentOS6.5/
10enabled=1
11gpgcheck=1
12gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
13
14# 更新yum源
15yum clean
16yum repolist
17
yum源配置(全节点)
使用yum源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 1# 备份原有的repo文件
2mkdir -p /etc/yum.repos.d/repo.bak
3cd /etc/yum.repos.d/
4cp *.repo *.repo.bak repo.bak/
5rm -rf *.repo *.repo.bak
6# 新建文件 vi CentOS6.5.repo
7[base]
8name=CentOS-$releasever - Base
9baseurl=http://hadoopmaster:80/CentOS6.5/
10enabled=1
11gpgcheck=1
12gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
13
14# 更新yum源
15yum clean
16yum repolist
17
hosts文件修改(全节点)
1
2
3
4
5
6 1vi /etc/hosts
2
3192.168.169.100 hadoopmaster
4192.168.169.101 hadoopslave1
5192.168.169.102 hadoopslave2
6
ssh免密码登录,以master节点为例(全节点)
1
2
3
4
5
6 1yum install -y openssh-clients
2ssh-keygen -t rsa
3ssh-copy-id -i .ssh/id_rsa.pub root@hadoopmaster
4ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave1
5ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave2
6
安装jdk(全节点)
1
2
3
4 1mkdir -p /root/training
2cd /root/training
3tar -zxvf jdk-7u75-linux-i586.tar.gz
4
配置环境变量:
1
2
3
4
5
6
7
8
9
10
11
12
13 1vi .bash_profile
2
3JAVA_HOME=/root/training/jdk1.7.0_75
4export JAVA_HOME
5
6PATH=$JAVA_HOME/bin:$PATH
7export PATH
8
9# 立即生效
10source .bash_profile
11which java
12java -version
13
bug解决:64bit的操作系统,无法运行32bit的应用程序,需要安装32bit的glibc库。
1
2 1-bash: /root/training/jdk1.7.0_75/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
2
1
2
3 1yum install -y glibc*.i686
2rpm -qf /lib/ld-linux.so.2
3
全分布模式配置
hadoop-env.sh
JAVA_HOME
/root/training/jdk1.7.0_75
Java的home目录
hdfs-site.xml
dfs.replication
2
数据的冗余度
hdfs_site.xml
dfs.permissions
false
core-site.xml
fs.defaultFS
hdfs://hadoopmaster:9000
namenode的IP地址和端口,9000是RPC通信的端口
core-site.xml
hadoop.tmp.dir
/root/training/hadoop-2.4.1/tmp
如不修改默认为/tmp,设置的路径必须事先存在
slaves
DataNode的地址
hadoopslave1 hadoopslave2
mapred-site.xml
mapreduce.framework.name
yarn
指定MR运行在yarn上
yarn-site.xml
yarn.resourcemanager.hostname
hadoopmaster
指定YARN的老大(ResourceManager)的地址
yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
reducer获取数据的方式