共计 3233 个字符,预计需要花费 9 分钟才能阅读完成。
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 http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html 如果是 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。