CentOS下的Hadoop安装
1、Hadoop介绍
- Hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题–如何解决数十亿网页的存储和索引问题。
- 2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。 1. 分布式文件系统(GFS),可用于海量网页的存储2. 分布式计算框架MAPREDUCE,可用于海量网页的存储。
- Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离称为独立项目HADOOP,到2008年1月,HADOOP称为Apache顶级项目。
2、Hadoop安装
2.1 安装Hadoop
更新apt
$ sudoapt-get update
安装vim
$ sudoapt-getinstallvim
安装SSH、配置SSH无密码登录
安装后,可以使用如下命令登录本机
但是每次都要输入密码,我们配置成SSH无密码登陆比较方便
$ exit# 退出刚才的 ssh localhost
$ cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
$ ssh-keygen -t rsa # 会有提示,都按回车就可以
$ cat ./id_rsa.pub >> ./authorized_keys # 加入授权
此时再用ssh localhost命令,无需密码即可直接登录了
安装java环境
cd /usr/lib
sudomkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件cd ~ #进入hadoop用户的主目录cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下sudotar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #
解压之后,可以切换到
/usr/lib/jvm
目录看一下
$ cd /usr/lib/jvm
$ ls
继续执行以下命令,配置环境变量
cd ~
$ vim ~/.bashrc
在文件开头添加以下内容:
exportJAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件,并退出vim编辑器,然后执行命令使.bashrc文件立即生效
$ source ~/.bashrc
输入命令查看是否安装成功
$ java -version
如果在屏幕上出现以下信息说明安装成功
安装Hadoop3.1.3
我们选择将Hadoop安装到/usr/local/
中。
$ cd Downloads
$ sudotar -zxf hadoop-3.1.3.tar.gz -C /usr/local # 解压到/usr/local中
$ cd /usr/local/
$ sudomv ./hadoop-3.1.3/ ./hadoop # 将文件夹名改为hadoop
$ sudochown -R hadoop ./hadoop # 修改文件权限
输入以下命令查看hadoop版本信息
$ cd /usr/local/hadoop
$ ./bin/hadoop version
Hadoop单机配置(非分布式)
cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'cat ./output/* # 查看运行结果
执行成功之后,输出的结果为符合正则的单词
dfsadmin
出现了1次。
注意:Hadoop不会覆盖结果文件,因此再次运行上面的实例会提示出错,需要先将
./output
删除。
rm -r ./output
Hadoop伪分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml (通过 gedit 编辑会比较方便:
gedit ./etc/hadoop/core-site.xml
),将当中的
<configuration></configuration>
修改为下面配置:
<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>
同样的,修改配置文件 hdfs-site.xml:
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>
第四步:启动集群
要启动Hadoop集群,需要启动HDFS和YARN两个模块。注意:首次启动HDFS,必须对其进行格式化操作,本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的。
# 1 进入到hadoop安装目录
$ cd /usr/local/hadoop
# 2 格式化操作
$ bin/hdfs namenode -format
# 3 启动hadoop
$ ./sbin/start-dfs.sh
格式化操作成功的话,会看到
successfully formatted
的提示
通过命令
jps
查看HDFS是否启动成功:
$ jps
11764 NameNode
11956 DataNode
12168 SecondaryNameNode
12363 Jps
注意:若是 DataNode 没有启动,可尝试如下的方法(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做):
# 针对 DataNode 没法启动的解决方法cd /usr/local/hadoop
./sbin/stop-dfs.sh # 关闭rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format # 重新格式化 NameNode
./sbin/start-dfs.sh # 重启
接下来启动YARN模块
$ ./sbin/start-yarn.sh
# 使用jps查看是否启动成功
$ jps
11764 NameNode
11956 DataNode
12983 ResourceManager
13448 Jps
12168 SecondaryNameNode
13146 NodeManager
启动
jobhistory
$ sbin/mr-jobhistory-daemon.sh start historyserver
$ jps
135311764 NameNode
11956 DataNode
12983 ResourceManager
12168 SecondaryNameNode
13146 NodeManager
13499 JobHistoryServer
三个端口查看界面
localhost:9870 查看hdfs
localhost:8088 查看yarn集群
localhost:19888 查看历史完成的任务
以上就是Hadoop的完整安装过程!!!
版权归原作者 不写八个 所有, 如有侵权,请联系我们删除。