一:搭建的种类
1)本机模式
2)伪分布式模式
3)完全分布式模式
我们先来学习下搭建伪分布式模式。
二:要求
hadoop版本2.7.3,这个版本的hadoop有些小的bug但是不影响使用,电脑要求8G内存,最好加固态硬盘,会大大提升电脑的性能,centos6.5/6.8。
三:安装步骤
1.安装centos6.5/6.8,注意:采用自建用户***,我们用hyxy,密码自己设定,我们用123456,不能采用root,所有的软件都放在/home/hyxy/soft目录下。
2.卸载本机自带jdk,先用命令 rpm -qa | grep java检测本机都有哪些jdk,然后用 rpm -e --nodeps ***,***为你检测出的jdk名称,reg:rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64。
3.安装jdk1.8版本,并创建软连接,创建软连接命令为:ln -s 源文件 目标文件。
4.配置环境变量在.bash_profile下,写明JAVA_HOME,CLASSPATH,PATH。
5.安装hadoop,解压,创建软连接,到.bash_profile下配置环境变量,写明HADOOP_HOME和PATH。
6.用命令source .bash_profile进行生效。检测java和hadoop是否配置成功,输入java -version 和hadoop version 都会显示对应的版本号,说明配置成功。
7.配置hadoop的配置文件
1)hadoop-env.sh 添加JAVA_HOME
2)yarn-env.sh 添加JAVA_HOME
3)core-site.xml
备注:localhost为主机名,端口号是9000,默认端口号是8020,可以不写。
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
4) hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
8.配置无密登陆
$ ssh localhost(主机名)
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa (生成秘钥)说明:-t设置生成秘钥的算法采用的rsa,-P设置密码默认为空,-f设置秘钥生成的文件位置~/.ssh
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys(生成认证库)
$ chmod 0600 ~/.ssh/authorized_keys(修改权限)
9.格式化文件系统
使用命令:hdfs namenode -format
10.开启服务
使用命令start-all.sh ,输入jps命令查看守护进程,一共是5个,输入http://localhost:50070/会查看到你的live node为一个说明配置正确,50070为默认端口号。
四:查看当前hadoop-2.7.3的默认配置文件
1.core-default.xml:[hadoop-common-2.7.3.jar]
2.hdfs-default.xml:[hadoop-hdfs-2.7.3.jar]
3.mapred-default.xml:[hadoop-mapreduce-client-core-2.7.3.jar]
4.yarn-default.xml:[hadoop-yarn-common-2.7.3.jar]
五:分别启动守护进程(启动顺序不重要)
1.启动namnode进程
$>hadoop-daemons.sh --config ~/soft/hadoop/etc/hadoop_pseudo start namenode
2.启动datanode进程
$>hadoop-daemons.sh --config ~/soft/hadoop/etc/hadoop_pseudo start datanode
3.启动secondarynamenode进程
$>hadoop-daemons.sh --config ~/soft/hadoop/etc/hadoop_pseudo start secondarynamenode
六:分别停止守护进程
1.停止namnode进程
$>hadoop-daemons.sh --config ~/soft/hadoop/etc/hadoop_pseudo stop namenode
2.停止datanode进程
$>hadoop-daemons.sh --config ~/soft/hadoop/etc/hadoop_pseudo stop datanode
3.停止secondarynamenode进程
$>hadoop-daemons.sh --config ~/soft/hadoop/etc/hadoop_pseudo stop secondarynamenode
七:hadoop start-dfs.sh的执行流程
hadoop的瓶颈为物理存储,而非网络,内核cpu,内存。
hadoop默认查找{HADOOP_HOME}/etc/hadoop
流程:
start-dfs.sh-->hdfs-config.sh 说明:加载各种配置信息
-->hadoop-daemons.sh 说明:执行slaves和daemon
-->hadoop-daemon.sh 说明:根据command调用HDFS,执行相关操作
-->hdfs 说明:执行相关操作,加载Class文件
-->调用java底层源代码 说明:执行相关Class文件的Main函数