一、配置环境
- centos7
- hadoop2.7.2
- java jdk1.7
二、修改hostname和ip
配置ip地址和hostname如下所示:
- 192.168.186.1 master
- 192.168.186.2 slave1
- 192.168.186.3 slave2
其中配置hostname命令如下:
hostnamectl set -hostname master
Hostnamectl status
设置ip地址命令如下:
cd /etc/sysconfig/network-scripts
vi ifcfg-eno16777736
service network restart #让配置生效
其中虚拟机选择的网络建立方式为NAT。中间出现自己定义一个静态ip,NAT又动态分配一个ip的问题。
解决办法为更改虚拟机有线连接配置中,为自定义,设置为自己定义的静态ip。
修改hosts文件。添加以下内容:
vi /etc/hosts
192.168.186.1 master
192.168.186.2 slave1
192.168.186.3 slave2
三、安装Java jdk###
查看是否安装openJDK.如果安装可以卸载,安装sun的JDK。
java -version
rpm -qa|grep java #查看安装的openJDK的source
rpm -e --nodeps +source #source为openjdk源
vi /etc/profile
export JAVA_HOME=/home/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使配置生效,查看Java 版本
source /etc/profile
java -version
三、关闭防火墙###
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
四、安装hadoop###
tar hadoop-2.7.2.tar.gz #解压
hadoop目录下创建数据存放的文件夹,tmp、dfs、dfs/data、dfs/name
然后修改etc下面的配置文件。(不一一列举)
修改slaves文件:
[root@master hadoop]# vi slaves
[root@master hadoop]# cat slaves
slave1
slave2
修改JAVA_HOME值(export JAVA_HOME=/usr/jdk1.7):
[root@master hadoop]# source hadoop-env.sh
[root@master hadoop]# source yarn-env.sh
修改以下四个文件(具体配置内容见度娘):
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
遇到的问题:启动的时候datanode启动失败。
把整个hadoop复制到slave节点:
sudo scp -r /usr/hadoop aboutyun@slave1:~/
五、设置无密码登录ssh###
CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置。
#RSAAuthentication yes
#PubkeyAuthentication yes
输入命令,ssh-keygen -t rsa
,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹
在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
cat id_rsa.pub>> authorized_keys
slave节点:
生成rsa,将rsa.pub运城拷贝到master:
scp id_rsa.pub master:/root/.ssh/id_rsa.pub.s2
主节点进行以下步骤:
[root@master .ssh]# cat id_rsa.pub.s1>>authorized_keys
[root@master .ssh]# cat id_rsa.pub.s2>>authorized_keys
[root@master .ssh]# cat authorized_keys
再将生成的复制到s1 s2:
scp authorized_keys slave1:/root/.ssh
scp authorized_keys slave2:/root/.ssh
登录测试:
ssh master
ssh slave1
在Master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.7.0目录。
bin/hdfs namenode -format
sbin/start-all.sh,#也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
sbin/stop-all.sh#关闭
jps
Web访问,要先开放端口或者直接关闭防火墙:
systemctl stop firewalld.service
http://192.168.0.182:8088/
http://192.168.0.182:50070/
五、运行wordcount###
bin/hdfs dfs -mkdir /test
bin/hdfs dfs -ls /
bin/hdfs dfs -put /home/words /test/
bin/hdfs dfs -ls /test/
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /test/words /test/out
bin/hdfs dfs -ls /test
bin/hdfs dfs -ls /test/out
bin/hadoop fs -cat /test/out/part-r-00000
另一种hadoop命令方式
hadoop fs -mkdir /input
hadoop fs -put LICENSE.txt /input
hadoop fs -ls /input
hadoop fs -cat /input/LICENSE.txt
hadoop jar /home/yy/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output
hadoop fs -ls /output
hadoop fs -cat /output/part-r-00000
遇到的问题。
- yarn设置内存大小
- put命令失败,由于ip没有配置对。
- 也有其他原因,内存不够,多次format节点,造成id不一致等。