在当今大数据时代,如何高效地存储、处理和分析数据是每个企业都需要面对的挑战。Hadoop是当今更流行的开源大数据处理平台之一,其分布式计算和数据处理能力使得其广受欢迎。本文将介绍如何使用。
一、Hadoop简介
Hadoop是Apache基金会开发的一个开源框架,旨在处理大规模数据和分布式存储。它由两个核心部分组成:HDFS和MapReduce。HDFS(Hadoop分布式文件系统)用于存储大规模的数据,而MapReduce则用于处理数据。Hadoop还有许多其他的组件,如YARN(Yet Another Resource Negotiator)用于集群资源的管理,HBase用于非关系型数据库的存储等等。Hadoop的高扩展性和高容错性使得其成为了处理大数据的首选平台之一。
二、Hadoop的web服务器部署
1. 安装Java
在安装Hadoop之前,需要先安装Java。可以从Oracle官方网站或其他可靠渠道下载Java。安装完Java后,可以通过以下命令验证是否成功:
“`bash
java -version
“`
2. 下载和安装Hadoop
Hadoop可以从Apache官方网站或其他可靠渠道下载。下载完毕后,将其解压到一个目录中,例如:
“`bash
tar -xzvf hadoop-x.x.x.tar.gz -C /usr/local/
“`
Hadoop安装完成后,需要设置一些必要的环境变量,包括JAVA_HOME、HADOOP_HOME和PATH。配置方法如下:
“`bash
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop-x.x.x
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/in
“`
3. 修改Hadoop配置文件
进入$HADOOP_HOME/etc/hadoop目录,修改以下文件:
core-site.xml:
“`xml
fs.defaultFS
hdfs://localhost:9000
“`
hdfs-site.xml:
“`xml
dfs.replication
1
dfs.namenode.name.dir
/usr/local/hadoop-x.x.x/hadoop_data/hdfs/namenode
dfs.datanode.data.dir
/usr/local/hadoop-x.x.x/hadoop_data/hdfs/datanode
“`
mapred-site.xml:
“`xml
mapreduce.framework.name
yarn
“`
4. 启动Hadoop
输入以下命令启动Hadoop:
“`bash
start-dfs.sh
start-yarn.sh
“`
输入jps命令,可以看到以下进程已经启动:
“`bash
1100 ResourceManager
943 Jps
727 DataNode
581 NameNode
800 SecondaryNameNode
1042 NodeManager
“`
5. 部署web服务器
安装Tomcat作为web服务器,下载地址:https://tomcat.apache.org/download-80.cgi。下载完成后解压到一个目录中。修改$TOMCAT_HOME/conf/server.xml文件,添加以下内容:
“`xml
unpackWARs=”true” autoDeploy=”true”>
“`
6. 访问web服务器
启动Tomcat服务器:
“`bash
cd $TOMCAT_HOME/bin
./startup.sh
“`
访问http://localhost:8080/hadoop即可进入Hadoop的web界面,进行文件系统管理、作业管理以及集群管理等操作。
三、结语
通过以上步骤,我们已经成功地使用Hadoop搭建了web服务器,轻松搭建了一个大数据处理平台。当然,为了更好地利用Hadoop的分布式计算和数据处理能力,我们还需要深入了解Hadoop的其他组件,如YARN、HBase等等,以及如何编写MapReduce程序。只有这样,我们才能更大化地发挥Hadoop的威力,在海量的数据中发现商机和价值。
相关问题拓展阅读:
- 哪些Hadoop版本支持WebHDFS?是不是Hadoop 1.0之后的都支持
- Hadoop安装过程中常见问题
哪些Hadoop版本支持WebHDFS?是不是Hadoop 1.0之后的都支持
WebHDFS观盯粗念是基于HTTP操作,比如GET、PUT、POST和DELETE。像OPEN、GETFILESTATUS、LISTSTATUS的操作是使用HTTP GET,其它的像CREAT、凯悉镇MKDIRS、RENAME、SETPERMISSION是依赖于HTTP PUT类型。 APPEND操作时基于HTTP POST类型,然而,DELETE是使用HTTP DELETE。
在配置开源日志系统fluentd过程中,fluentd就是利用webHDFS和HDFS进行通信,配置好久没有通,最后发现Hadoop 0.20.2 不支持webHDFS!所以本陆余文中的hadoop版本是:hadoop-1.2.1
应该是吧!我0.20.2都用过的,可以的!
Hadoop安装过程中常见问题
一、启动namenode服务后,web页面依然无法访问
1、启动namenode服务,
指令:start-all.sh
”’
# start-all.sh
Starting namenodes on
Starting datanodes
Starting secondary namenodes
Starting resourcemanager
Starting nodemanagers
ERROR: Refusing to run as root: roo account is not found. Aborting.
”’
2、查看namenode服务是否启动,
”’
# jps
8130 Jps
7494 ResourceManager
6871 NameNode
7244 SecondaryNameNode
”’
3、查看后台监听端口
”’
# netstat -nltp |grep 6871
tcp 0 192.168.43.250:.0.0.0:* LISTEN/java
tcp 0 0.0.0.0:.0.0.0:* LISTEN 态态 6871/java
”’
4、查看web是否可以访问,发现web页面无法访问
5、检查防火墙设置,可以看帆燃源到hadoop1服务器已经禁用了除本机外的其他多有服务访问,
# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all.0.0.0/.0.0.0/state RELATED,ESTABLISHED
2 ACCEPT icmp — 0.0.0.0/.0.0.0/
3 ACCEPT all.0.0.0/.0.0.0/
4 ACCEPT tcp.0.0.0/.0.0.0/state NEW tcp dpt:22
5 REJECT all.0.0.0/.0.0.0/段野reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all.0.0.0/.0.0.0/reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
6、关闭防火墙,并把防火墙设置为开启不启动
centos6:
关闭防火墙:service iptables stop
设置开启不启动防火墙:chkconfig iptables off
centos7:
关闭防火墙:systemctl stop firewalld.service
设置开启不启动防火墙:systemctl disable firewalld.service
7、检查web已经可以正常显示
8、如果上面的操作依然无法访问的话,需要查看一下主机的hosts文件 是否有配置域名映射
二、开启datanode指令时出现waring
# hadoop-daemon.sh start datanode
WARNING: Use of this script to start HDFS daemons is deprecated.
WARNING: Attempting to execute replacement “hdfs –daemon start” instead.
主要是2.7版本的hadoop已经把hadoop命令改为hdfs命令了,所以尝试使用
指令:hdfs –daemon start datanode
”’
# hdfs –daemon start datanode
# jps
4064 Jps
4033 DataNode
2922 ResourceManager
”’
三、使用root配置的hadoop并启动会出现报错
错误:
Starting namenodes on
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
原因分析:由于root没有start-dfs.sh和 stop-dfs.sh脚本的执行权限,在这两个脚本的开头加上如下参数,给root赋予执行权限即可:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs /* 后续版本这边需要修改为 HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh,stop-yarn.sh顶部也需添加以下
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn /* 后续版本这边需要修改为 HDFS_DATANODE_SECURE_USER=hdfs
YARN_NODEMANAGER_USER=root
4、hdfs运行指令时出现warn警告提示:
:07:58,517 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
该警告信息主要是由于是依赖库的问题
我们对静态库查看下依赖:看下依赖是否都正常:
通过指令 ldd libhadoop.so.1.0.0
”’
./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14′ not found (required by ./libhadoop.so.1.0.0)
linux-vdso.so.1 => (0x00007fff369ff000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f3caa7ea000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3caa455000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3caac1b000)
”’
可以看到是glibc 版本的问题:
我们再确认下:
GLIBC_2.14找不到,现在检查系统的glibc库, ldd –version 即可检查。
输入命令:
”’
ldd –version
ldd (GNU libc) 2.12
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
”’
还可以直接确认下glibc 目前支持的版本:
通过如下查询方法:
”’
strings /lib64/libc.so.6|grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
”’
可以看到目前只支持到 2.12
解决办法有两个
1、升级 glibc 库
2、屏蔽hadoop提示这个告警
直接在log4j日志中去除告警信息。在$HADOOP_HOME/etc/hadoop/log4j.properties文件中添加
hadoop部署web服务器的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于hadoop部署web服务器,Hadoop部署web服务器,轻松搭建大数据处理平台,哪些Hadoop版本支持WebHDFS?是不是Hadoop 1.0之后的都支持,Hadoop安装过程中常见问题的信息别忘了在本站进行查找喔。