Centos 7下VMware三台虚拟机Hadoop集群初体验
一、下载并安装Centos 7
传送门:https://www.centos.org/download/
注:下载DVD ISO镜像
这里详解一下VMware安装中的两个过程
网卡配置
是Additional search domains:8.8.4.4也是谷歌提供的免费DNS服务器Ip地址
二、SecureCRT远程操控
ping www.baidu.com 发现slave1,2不通,而master可以ping通,查看master配置,发现两个从机少了一些配置。
安装vim:yum install vim-enhanced
分别修改配置:vim /etc/sysconfig/network 增加"nameserver 192.168.200.2"
再ping 发现问题解决
三台机器分别执行:vim /etc/sysconfig/network 像下图这样进行配置
三台机器分别执行:vim /etc/hosts 配置内容相同,增加
192.168.200.130 master
192.168.200.120 slave1
192.168.200.110 slave2
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将dhcp 换位static 静态ip
systemctl restart network.service
之后重启并执行ping验证 ping master/ping slave1/ping slave2
三、下载安装jdk配置环境变量
传送门:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
注:下载的是 jdk-8u191-linux-x64.tar.gz
在home文件加下新建文件夹hadoop,上传本地jdk文件至该目录中yum install lrzsz rz为上传指令
因为我安装的centos7 为minimal版,若为其他版本例如图形界面版则需卸载本地jdk后再解压配置自己下载的jdk,可参考:https://www.cnblogs.com/sxdcgaq8080/p/7492426.html 前两个步骤。
解压 [root@master hadoop]# tar -zxvf jdk-8u191-linux-x64.tar.gz
配置java环境变量:vim /etc/profile
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin
刷新配置:source /etc/profile
验证 java/javac/java -version
四、免秘钥登录操作——以master主机为例
第一步:ssh-keygen -t dsa
第二步:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
第三步:在~/.ssh目录下执行 scp authorized_keys root@192.168.200.120:~/.ssh/和scp authorized_keys root@192.168.200.120:~/.ssh/分别将授权文件复制给slave1,slave2
同样的三步骤要分别在slave1,slave2上执行,之后查看三台主机的authorized_keys:
看懂没?
五、下载安装完全分布式hadoop
注:下载二进制binary版本 传送门:http://hadoop.apache.org/releases.html
[root@slave2 hadoop]# tar -axvf hadoop-2.8.5.tar.gz
在/home/hadoop/hadoop-2.8.5/etc/hadoop下面要进行七项配置:
配置1:vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
配置2:vim yarn-env.sh
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
配置3:vim slaves
配置4:vim core-site.xml
1 <property> 2 <name>fs.defaultFS</name> 3 <value>hdfs://master:9000</value> 4 </property> 5 <property> 6 <name>hadoop.tmp.dir</name> 7 <value>/home/hadoop/hadoop-2.8.5/tmp</value> 8 </property>
配置5:vim hdfs-site.xml
1 <property> 2 <name>dfs.replication</name> 3 <value>2</value> 4 </property> 5 <property> 6 <name>dfs.secondary.http.address</name> 7 <value>master:50090</value> 8 </property>
配置6:mapred-site.xml是不存在的所以需要复制一份,怎么做呢? mv mapred-site.xml.template mapred-site.xml
1 <property> 2 <name>mapreduce.framework.name</name> 3 <value>yarn</value> 4 </property>
配置7:vim yarn-site.xml
1 <property> 2 <name>yarn.resourcemanager.hostname</name> 3 <value>master</value> 4 </property> 5 <property> 6 <name>yarn.nodemanager.aux-services</name> 7 <value>mapreduce_shuffle</value> 8 </property>
六、将配置好的hadoop复制到另外两台机器
1 scp -r /home/hadoop/hadoop-2.8.5 slave1:/home/hadoop/ 2 scp -r /home/hadoop/hadoop-2.8.5 slave2:/home/hadoop/
七 、配置 bin、sbin路径
1 vim /etc/profile 2 3 export JAVA_HOME=/home/hadoop/jdk1.8.0_191 4 5 export HADOOP_HOME=/home/hadoop/hadoop-2.8.5 6 7 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
八、重启并测试
1 hdfs namenode -format 2 start-dfs.sh
SUCCESS!
目前这篇随笔更像是什么都不懂的外行人按照博客以及自己的实践从头到尾跑下来的成功案例,本人羞愧的说也确实这样。至于其中的众多道理我还不怎么懂,我会在今后不断维护这篇博客,让其更有料,让其完全成为自己肚子里的知识。
[2018.11.27更新 新增了测试wordcount] 如果想测试hadoop 自带wordcount例子,参考这篇 https://blog.csdn.net/hliq5399/article/details/78193113 对应部分就好了,先创建本地输入文件,创建dfs上输出文件,执行就ok
删除自带jdk rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64 永久修改主机名 hostnamectl set-hostname centos7 su hostname 配置host vim /etc/hosts 关闭防火墙 systemctl status firewalld.service systemctl stop firewalld.service systemctl disable firewalld.service 关闭selinux vim /etc/sysconfig/selinux 配置jdk环境变量 vim /etc/profile 修改完则个文件后一定要执行一条指令使配置生效source /etc/profile export JAVA_HOME=/opt/modules/jdk1.8.0_191 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 配置hadoop环境变量 vim /etc/profile export HADOOP_HOME=/opt/modules/hadoop-2.5.8 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH source /etc/profile 进入/opt/modules/hadoop-2.8.5/etc/hadoop进行一些配置 vim hadoop-env.sh vim core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://centos7:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/data/tmp</value> </property> vim hdfs-site.xml <property> <name>dfs.replication</name> <value>1</value> </property> 格式化hdfs [root@centos7 hadoop-2.8.5]# bin/hdfs namenode -format 查看有无dfs文件夹 ls /opt/data/tmp ll /opt/data/tmp/dfs/name/current cat /opt/data/tmp/dfs/name/current/VERSION 执行当前目录下的命令要以./xxx的形式 启动namenode /opt/modules/hadoop-2.8.5/sbin ./hadoop-daemon.sh start namenode 启动datanode ./hadoop-daemon.sh start datanode 启动secondarynamenode ./hadoop-daemon.sh start secondarynamenode jps查看启动情况 HDFS上测试创建目录、上传、下载文件 创建目录 在/opt/modules/hadoop-2.8.5/bin目录下 ./hdfs dfs -mkdir /demo ./hdfs dfs -put 待上传文件路径 /demo ./hdfs dfs -cat 待读取文件 ./hdfs dfs -get 下载 不存在的复制一份模板 配置mapred-site.xml cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> 配置yarn-site.xml <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>centos7</value> </property> 在/opt/modules/hadoop-2.8.5目录下 启动resourcemanager sbin/yarn-daemon.sh start resourcemanager 启动nodemanager sbin/yarn-daemon.sh start nodemanager jps查看启动情况 查看yarn web页面 http://192.168.200.134:8088/cluster 运行Mapreduce job 创建测试用Input文件bin/hdfs dfs -mkdir -p /wordcountdemo/input 本地/opt/data目录创建一个文件wc.input内容为 hadoop mapreduce hive hbase spark storm sqoop hadoop hive spark hadoop 上传 bin/hdfs dfs -put /opt/data/wc.input /wordcountdemo/input 运行WordCount MapReduce Job [hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /wordcountdemo/input /wordcountdemo/output 查看输出结果目录 bin/hdfs dfs -ls /wordcountdemo/output 查看输出文件内容 bin/hdfs dfs -cat /wordcountdemo/output/part-r-00000
我贴上整个过程用到的命令
参考文章:https://www.cnblogs.com/biehongli/p/7640469.html 感谢该作者~
https://blog.csdn.net/hliq5399/article/details/78193113 感谢该作者~