Hadoop安装环境搭建
一、Hadoop的介绍
Hadoop是Apache的一个伪分布式文件系统的开源项目。作者名为Doug Cutting,Hadoop项目是他通过Google的发布三篇论文所启发,分别为GFS、MapReduce和BigTable。Hadoop最受欢迎是致力于搜索大量数据进行分类工具。
Hadoop的优点:
①高可用性:Hadoop按位存储和处理力能强
②高扩展性:Hadoop是在可用的计算机集族间分配数据并完成计算任务,这些集族间可以方便的扩展到数以千计的节点中。
③高效性:Hadoop能够在节点之间动态的移动数据,并保证各个节点的平衡。
④高容错性:Hadoop能够自动保存数据的多个副本,并且能够将失败的任务重新分配。
⑤低成本:Hadoop是开源项目,对比与机体一身、商用商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市,成本会大大降低。
---来自百科,介绍不多说,进入实践动手搭建^_^
二、搭建配置环境
原材料:Ubuntu-16.04.3-desktop-amd64.iso,jdk-8u151-linux-x64.tar.gz,hadoop-2.4.0.tar.gz
(1)搭建Hadoop需要的安装环境
1、JDK的配置。
1、在官网下载JDk 如果是64位的操作系统,可以下载64位或者32位的jdk,但是32位的系统不能运行64位的jdk。
2、解压jdk-x.x.x.tar.gz,把安装包放在你想放的文件目录下,使用命令tar -zxvf jdk-x.x.x.tar.gz。
3、把jdk添加到操作系统环境中,使用命令sudo vim /ect/profile 在文件后面添加一下字段。修改退出。
export JAVA_HOME=/usr/java/jdk1.8.0_151 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
4、使用命令source /ect/profile 运行一下文件。(source功能:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
5、使用java -version 测试是否配置成功。若输出jdk版信息,则配置成功。
2、Hadoop的环境配置
①下载:在http://hadoop.apache.org/index.html官网下载hadoop,在我写这篇文章的时候最新版本是3.0.0。
②解压:把下载的安装包解压到/home/xxx/app/hadoop目录下(需要sudo mkdir /usr/hadoop),使用命令 tar -zxvf hadoop-2.4.0.tar.gz 解压包,使用命令 mv hadoop-2.4.0 hadoop 重命名一下。
③设置环境变量:(如同配置JDK环境变量)使用命令sudo vim /etc/profile 编辑文件,在文件后面添加一下两行代码
export HADOOP_HOME =/home/xxx/app/hadoop
export PATH = $HADOOP_HOME/bin:$PATH
添加完成之后,使用命令 source /ect/profile
3、安装SSH(主要为了免密码登录,SSH详细介绍参考...)
使用命令 ssh-keygen,然后一直按回车,会生成一下信息。(SHA256 每个都不一样)
进入.ssh文件夹(.开头的是系统隐藏文件,可以通过命令 ls -a 查看),把id_rsa.pub 公钥附加到授权文件authorized_keys中,使用命令 cat id_rsa.pud >> authorized_keys,或者使用重命名方式 cp id_rsa.pud authorized_keys 。chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
,修改访问权限。
配置Hadoop的需要安装环境已经搭建好,接下来要修改Hadoop的配置环境。
(2)配置Hadoop伪分布式模式
配置Hadoop要修改解压安装包的4个配置文件
1、修改etc/hadoop目录下的hadoop-evn.sh指定JDK所在位置。
2、修改core-site.xml文件,指定name主机节点和HDFS的根目录
3、修改hdfs-site.xml指定namenode和datanode存放目录,配置每个节点存放的副本数和hdfs的IP地址和端口号。
4、修改mapred-site.xml指定jobTarcker的位置
最后创建配置文件需要的文件目录
使用命令 mkdir /var/lib/hadoop/tmp,chmod 777 /var/lib/hadoop 创建Hadoop的根目录。
(3)格式化Namenode
使用命令 hadoop namenode -format。每次重新安装或者初次安装hadoop都需要且仅一次格式化。
(4)启动Hadoop
在Hadoop安装根目录sbin文件存放这启动和关闭Hadoop的运行文件。为了启动关闭方便,把hadoop目录下的sbin添加环境中。
Hadoop的命令如下(*.sh 是linux系统使用的命令,*.cmd是windows系统使用的命令)
①启动HDFS 输入命令 start-dfs.sh,启动namenode、 datanode 、secondary namenode
②输入jps查看hadoop进程
③输入hadoop fs -ls / 查看HDFS的文件根目录。(为了演示效果,我通过-mkdir 命令 创建一个temp文件夹,hadoop的命令类似linux系统)
Hadoop做了一个web管理系统,我们可以输入Hadoop所配置的IP和端口进行访问,比如我的是192.168.157.130:50070(默认是50070端口)
④输入start-yarn.sh启动yarn,并输入jps查看进程,我们可以发现启动了两个进程,ResourceManager和NodeManager。
如果能正常启动着几个进程,说明Hadoop环境搭建完成。
三、遇到的问题
1、无法启动Datanode
在配置Hadoop过程中可能进行多次的测试,所以避免不了重复多次要格式化namenode,网上一些说法是多次格式化namenode导致namenode和datanode的VERSION不一致,其解决的方法是拷贝namenode的VERSION文件覆盖datanode的。我的解决方法是,删除文件夹,重新格式化,该方法会导致数据的丢失,由于是初始搭建,所以存在的都是测试的无用数据。
2、无法启动Secondary Namenode
①查看core-site.xml文件是否配置了hadoop.tmp.dir。
②是否正确创建hadoop.tmp.dir对应的路径,同时要访问权限设置为777。
3、无法访问50070端口
查看hdfs-site.xml文件是否配置dfs.http.address,值为0.0.0.0:50070。