Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式
系列目录:
Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境
建立Linux虚拟机(全节点)
客户机操作系统:CentOS-6.5-x86_64。
网络连接:host-only。Connecet automaticcally:打勾。
hostname | Address | Netmask | Gateway |
---|---|---|---|
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(全节点)
# iptables
service iptables status
service iptables stop
# 不随操作系统自动启动
chkconfig iptables off
# 永久起效,reboot重启后生效
vi /etc/selinux/config
SELINUX=disabled
hosts文件修改(全节点)
vi /etc/hosts
192.168.169.100 hadoopmaster
192.168.169.101 hadoopslave1
192.168.169.102 hadoopslave2
合并CentOS 6.5的两个DVD作为本地yum源(master节点)
创建相关目录
mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd /mnt/iso
说明:
/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文件即可。
mount /dev/sr0 /mnt/dvd1
df -h
cp -av /mnt/dvd1/* /mnt/dvd
umount /mnt/dvd1
mount /dev/cdrom /mnt/dvd2
cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd/Packages/
合并TRANS.TBL,将DVD2中TRANS.TBL的信息追加到DVD1中TRANS.TBL后面,并排序保存。
cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd/Packages/TRANS.TBL
mv /mnt/dvd/Packages/{TRANS.TBL,TRANS.TBL.BAK}
sort /mnt/dvd/Packages/TRANS.TBL.BAK > /mnt/dvd/Packages/TRANS.TBL
rm -rf /mnt/dvd/Packages/TRANS.TBL.BAK
备份原有yum配置文件,
cd /etc/yum.repos.d
rename .repo .repo.bak *.repo
生成新的yum配置文件
cat > /etc/yum.repos.d/CentOS-Media.repo <<EOF
>[c6-media]
>name=CentOS-\$releasever - Media
>baseurl=file:///mnt/dvd
>gpgcheck=0
>enabled=1
>gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
>EOF
更新yum源
yum clean all
yum upgrade
将/mnt/dvd/打包为iso
yum install genisoimage
mkisofs -l -J -L -r -V "CentOS-6.5-x86_64" -o /mnt/iso/CentOS-6.5-x86_64-DVD.iso /mnt/dvd
CentOS搭建本地yum源(http方式)(master节点)
启动httpd服务
# 验证是否安装httpd服务
rpm -qa|grep httpd
# yum install -y httpd
yum install -y httpd
# 启动httpd服务
service httpd start
chkconfig httpd on
安装yum源
# 在/var/www/html/下创建文件夹CentOS6.5
mkdir -p /var/www/html/CentOS6.5
# 将iso文件中的内容copy到CentOS6.5
cp -av /mnt/dvd/* /var/www/html/CentOS6.5/
利用ISO镜像,yum源搭建OK。浏览器验证访问:http://192.168.169.100/CentOS6.5/。
使用yum源
# 备份原有的repo文件
mkdir -p /etc/yum.repos.d/repo.bak
cd /etc/yum.repos.d/
cp *.repo *.repo.bak repo.bak/
rm -rf *.repo *.repo.bak
# 新建文件 vi CentOS6.5.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://hadoopmaster:80/CentOS6.5/
enabled=1
gpgcheck=1
gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
# 更新yum源
yum clean
yum repolist
yum源配置(全节点)
使用yum源
# 备份原有的repo文件
mkdir -p /etc/yum.repos.d/repo.bak
cd /etc/yum.repos.d/
cp *.repo *.repo.bak repo.bak/
rm -rf *.repo *.repo.bak
# 新建文件 vi CentOS6.5.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://hadoopmaster:80/CentOS6.5/
enabled=1
gpgcheck=1
gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
# 更新yum源
yum clean
yum repolist
ssh免密码登录,以master节点为例(全节点)
yum install -y openssh-clients
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@hadoopmaster
ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave1
ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave2
安装jdk(全节点)
mkdir -p /root/training
cd /root/training
tar -zxvf jdk-7u75-linux-i586.tar.gz
配置环境变量:
vi .bash_profile
JAVA_HOME=/root/training/jdk1.7.0_75
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
# 立即生效
source .bash_profile
which java
java -version
bug解决:64bit的操作系统,无法运行32bit的应用程序,需要安装32bit的glibc库。
-bash: /root/training/jdk1.7.0_75/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
yum install -y glibc*.i686
rpm -qf /lib/ld-linux.so.2
全分布模式配置
参数文件 | 配置参数 | 参考值 | 备注 |
---|---|---|---|
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获取数据的方式 |
安装Hadoop(master节点)
tar -zxvf hadoop-2.4.1.tar.gz
配置环境变量:
vi .bash_profile
HADOOP_HOME=/root/training/hadoop-2.4.1
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
source .bash_profile
hadoop-env.sh
# vi hadoop-env.sh
export JAVA_HOME=/root/training/jdk1.7.0_75
hdfs_site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
core-site.xml
,mkdir -p /root/training/hadoop-2.4.1/tmp
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoopmaster:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-2.4.1/tmp</value>
</property>
slaves
hadoopslave1
hadoopslave2
mapred-site.xml
,cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoopmaster</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
配置文件复制
rm -rf /root/training/hadoop-2.4.1/share/doc/
cd ~/training/
scp -r hadoop-2.4.1/ root@hadoopslave1:/root/training
scp -r hadoop-2.4.1/ root@hadoopslave2:/root/training
配置文件修改(slave节点)
cd ~
vi .bash_profile
HADOOP_HOME=/root/training/hadoop-2.4.1
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
source .bash_profile
验证HDFS和MR
hdfs namenode -format
start-all.sh
hdfs dfsadmin -report
stop-all.sh
您可能还想看
数据分析/数据挖掘/机器学习
Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据
Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理
Python数据挖掘与机器学习_通信信用风险评估实战(3)——特征工程
Python数据挖掘与机器学习_通信信用风险评估实战(4)——模型训练与调优
爬虫
Python爬虫实战之爬取链家广州房价_04链家的模拟登录(记录)
微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。
数据分析转载请注明:转载自微信公众号「数据分析」