1,这个我们是直接在linux中下载hadoop-2.6.0-cdh5.7.0,(当然你也可以在本地下载后再上传,这步就可以忽略)首先确保你的虚拟机有网络,可以先ping百度测试有网没,如下代码就是有网络的情况。
[root@master ~]# ping www.baidu.com
PING www.a.shifen.com (180.97.33.108) 56(84) bytes of data.
64 bytes from 180.97.33.108: icmp_seq=1 ttl=128 time=26.4 ms
64 bytes from 180.97.33.108: icmp_seq=1 ttl=127 time=26.4 ms (DUP!)
64 bytes from 180.97.33.108: icmp_seq=2 ttl=128 time=23.7 ms
64 bytes from 180.97.33.108: icmp_seq=2 ttl=127 time=23.7 ms (DUP!)
64 bytes from 180.97.33.108: icmp_seq=3 ttl=128 time=23.1 ms
64 bytes from 180.97.33.108: icmp_seq=3 ttl=127 time=23.5 ms (DUP!)
64 bytes from 180.97.33.108: icmp_seq=4 ttl=128 time=24.7 ms
2,root账户下,进入opt这个文件夹:
[root@master ~]# cd /opt
[root@master opt]#
3,root账户下,直接在当前文件夹输入“wget http://archive-primary.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz” 下载hadoop(几百兆可能要下载一会),下载完成后,直接ls可以查看:
[root@master opt]# wget http://archive-primary.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz
[root@master opt]# ls
hadoop-2.6.0-cdh5.7.0.tar.gz
[root@master opt]#
3,解压hadoop,解压完成后就可以ls查看;
[root@master opt]# tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz
[root@master opt]# ls
hadoop-2.6.0-cdh5.7.0 hadoop-2.6.0-cdh5.7.0.tar.gz
[root@master opt]#
4,改名字,由于后面要配置环境变量,为了方便,不用输入hadoop-2.6.0-cdh5.7.0这么长串的字符,所以我们将hadoop-2.6.0-cdh5.7.0直接改为hadoop,再ls查看:
[root@master opt]# mv hadoop-2.6.0-cdh5.7.0 hadoop
[root@master opt]# ls
hadoop hadoop-2.6.0-cdh5.7.0.tar.gz
[root@master opt]#
5,配置java环境变量,我已经提前上传了jdk,也是移动到 /opt目录下,
然后再解压,首先找到你的jdk的位置,再移动到 /opt目录下,然后再编辑环境变量,在末尾添加以下内容
然后再刷新全局变量。
一系列命令如下:
[root@master hadoop]# mv jdk-8u45-linux-x64.gz /opt/
[root@master hadoop]# cd /opt/
[root@master opt]# tar -zxvf jdk-8u45-linux-x64.gz
[root@master opt]# mv jdk1.8.0_45/ jdk
root@master opt]# ls
hadoop hadoop-2.6.0-cdh5.7.0.tar.gz jdk jdk-8u45-linux-x64.gz rh
[root@master opt]# vi /etc/profile //编辑环境变量,进入后在末尾添加上图中的内容。
[root@master opt]# source /etc/profile //刷新全局变量
6,检查环境是否生效,java,hadoop是否成功安装,输入java -version和hadooo version查看java和hadoop版本,如下:
[root@master opt]# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
[root@master opt]#
[root@master opt]# hadoop version
Hadoop 2.6.0-cdh5.7.0
Subversion http://github.com/cloudera/hadoop -r c00978c67b0d3fe9f3b896b5030741bd40bf541a
Compiled by jenkins on 2016-03-23T18:41Z
Compiled with protoc 2.5.0
From source with checksum b2eabfa328e763c88cb14168f9b372
This command was run using /opt/hadoop/share/hadoop/common/hadoop-common-2.6.0-cdh5.7.0.jar
[root@master opt]#
7,赋予hadoop用户编辑opt文件的权限,输入以下命令"chown -R hadoop /opt/
",然后再ll可以查看当前的权限都是hadoop用户的:
[root@master opt]# chown -R hadoop /opt/
[root@master opt]# ll
total 473512
drwxr-xr-x. 14 hadoop 4001 4096 Mar 24 2016 hadoop
-rw-r--r--. 1 hadoop root 311585484 Apr 1 2016 hadoop-2.6.0-cdh5.7.0.tar.gz
drwxr-xr-x. 8 hadoop 143 4096 Apr 11 2015 jdk
-rw-rw-r--. 1 hadoop ke 173271626 Sep 11 15:37 jdk-8u45-linux-x64.gz
drwxr-xr-x. 2 hadoop root 4096 Nov 22 2013 rh
[root@master opt]#
8,切换hadoop用户,配置Hadoop:
[root@master opt]# su hadoop
[hadoop@master hadoop]$ cd /opt/hadoop/etc/hadoop
[hadoop@master hadoop]$ ls
capacity-scheduler.xml httpfs-env.sh mapred-env.sh
configuration.xsl httpfs-log4j.properties mapred-queues.xml.template
container-executor.cfg httpfs-signature.secret mapred-site.xml.template
core-site.xml httpfs-site.xml slaves
hadoop-env.cmd kms-acls.xml ssl-client.xml.example
hadoop-env.sh kms-env.sh ssl-server.xml.example
hadoop-metrics2.properties kms-log4j.properties yarn-env.cmd
hadoop-metrics.properties kms-site.xml yarn-env.sh
hadoop-policy.xml log4j.properties yarn-site.xml
hdfs-site.xml mapred-env.cmd
[hadoop@master hadoop]$
这里我们就可以看到里面有我们需要配置的文件了,
(1)首先编辑“hadoop-env.sh”,“mapred-env.sh”,“yarn-env.sh”,这三个文件夹,
找到这三个文件里面的JAVA_HOME,将后面的都改为自己jdk的位置,如图:
改为如下内容:
如果export前面有#,一定要去掉,
(2)然后修改core-site.xml文件,添加内容如下:
fs.defaultFS
hdfs://master:9000
(3)修改hdfs-site.xml,添加内容如下:
dfs.replication
1
dfs.namenode.dir
/opt/hdfs/name
dfs.datanode.dir
/opt/hdfs/data
(4)修改mapred-site.xml文件,由于不存在这个文件,我们把mapred-site.xml.template文件拷贝一份给mapred-site.xml,代码如下;
[hadoop@master hadoop]$ cp mapred-site.xml.template mapred-site.xml
然后再添加以下内容:
mapreduce.framework.name
yarn
(5)修改yarn-site.xml文件,添加内容如下:
yarn.resourcemanager.address
master:8080
yarn.resoucemanager.resouce-tracker.address
master:8082
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
(6)修改slaves文件,修改主机名:
master
9,格式化HDFS,进入/opt/hadoop/bin目录下,再输入hadoop namenode -format:
hadoop@master bin]$ cd /opt/hadoop/bin
[hadoop@master bin]$ hadoop namenode -format
如果出现以下内容就说明格式化成功了
18/09/29 12:30:07 INFO common.Storage: Storage directory /opt/hdfs/name has been successfully formatted.
18/09/29 12:30:08 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
18/09/29 12:30:08 INFO util.ExitUtil: Exiting with status 0
18/09/29 12:30:08 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master/192.168.137.114
************************************************************/
如果格式化没成功,去检查是不是上面的配置文件的内容打错(基本都是有问题,一定要仔细看,我开始练习安装也是错了好多次),是不是对应自己的主机名master,或者看hadoop环境变量是否生效。还有二次格式化就要先把/opt/hdfs目录下的data和name和tmp删除了再去格式化。不然是不会成功的。
10,启动hadoop并验证安装成功,
首先赋予脚本(hadoop用户下)输入以下命令:
[hadoop@master bin]$ chmod +x -R /opt/hadoop/sbin/
然后启动hadoop,(hadoop用户下)进入/opt/hadoop/sbin执行以下命令:
[hadoop@master bin]$ cd /opt/hadoop/sbin/
[hadoop@master sbin]$ ./start-all.sh
完成后执行jps命令,查看相关进程是否启动,如图就是启动成功:
[hadoop@master sbin]$ jps
3360 NodeManager
3268 ResourceManager
3671 Jps
2857 NameNode
3132 SecondaryNameNode
2975 DataNode
[hadoop@master sbin]$
到此hadoop伪分布式就成功搭建,最后执行./stop-all.sh命令停止服务,以后每次启动就到hadoop用户下的/opt/hadoop/sbin下启动,停止服务命令如下:
[hadoop@master sbin]$ ./stop-all.sh