首页 文章 精选 留言 我的

精选列表

搜索[single],共2329篇文章
优秀的个人博客,低调大师

安装hadoop伪分布式模式(Single Node Cluster)

目的 本文档介绍如何去安装单节点hadoop集群,以便你可以的了解和使用hadoop的HDFS和MapReduce. 环境: os: CentOS release 6.5 (Final) ip: 172.16.101.58 user:root hadoop-2.9.0.tar.gz SSH无密码登录配置 因为本文档使用root用户安装,所以需要配置好root用户ssh无密码登录本地节点 [root@sht-sgmhadoopdn-01 ~]#ssh-keygen -t rsa [root@sht-sgmhadoopdn-01 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys [root@sht-sgmhadoopdn-01 ~]# ssh localhost Java安装和配置 [root@sht-sgmhadoopdn-01 ~]# cd /usr/java [root@sht-sgmhadoopdn-01 java]# tar xf jdk-8u111-linux-x64.tar.gz [root@sht-sgmhadoopdn-01 java]# chown -R root:root jdk1.8.0_111/ [root@sht-sgmhadoopdn-01 bin]# /usr/java/jdk1.8.0_111/bin/java -version java version "1.8.0_111" [root@sht-sgmhadoopdn-01 ~]# vim ~/.bash_profile export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop export JAVA_HOME=/usr/java/jdk1.8.0_111 export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export LD_LIBRARY_PATH=/home/bduser/hadoop/hadoop-2.7.3/lib/native/:$LD_LIBRARY_PATH [root@sht-sgmhadoopdn-01 ~]# source .bash_profile [root@sht-sgmhadoopdn-01 ~]# which java /usr/java/jdk1.8.0_111/bin/java 下载和解压hadoop [root@sht-sgmhadoopdn-01 local]# wgethttp://www-us.apache.org/dist/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz [root@sht-sgmhadoopdn-01 local]# tar xf hadoop-2.9.0.tar.gz [root@sht-sgmhadoopdn-01 ~]#vim .bash_profile export HADOOP_HOME=/usr/local/hadoop-2.9.0 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH [root@sht-sgmhadoopdn-01 ~]# source .bash_profile [root@sht-sgmhadoopdn-01 ~]# which hadoop /usr/local/hadoop-2.9.0/bin/hadoop [root@sht-sgmhadoopdn-01 local]# hadoop version Hadoop 2.9.0 ...... hadoop jar命令解析 jar <jar> run a jar file,如果是yarn,则需要使用hadoop yarn jar 将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中: 正则表达式: [a-z]表示匹配包含在a-z之中的任意一个字符 + 表示匹配之前的项1次或者多次 [root@sht-sgmhadoopdn-01 ~]# cd /usr/local/hadoop-2.9.0 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# cp etc/hadoop/*.xmlinput/ [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+' [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# cat output/* 1dfsadmin Hadoop配置文件说明 (1)Hadoop 的运行方式是由配置文件决定的(运行 Hadoop时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。 (2)伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错 修改配置文件 Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 守护进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。 Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。 [root@sht-sgmhadoopdn-01 hadoop]#cat /usr/local/hadoop-2.9.0/etc/hadoop/core-site.xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop-2.9.0/tmp</value> <description>Abase for other temporary directories.</description> <property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]#cat /usr/local/hadoop-2.9.0/etc/hadoop/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-2.9.0/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop-2.9.0/tmp/dfs/data</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]# vim /usr/local/hadoop-2.9.0/etc/hadoop/hadoop-env.sh #export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/java/jdk1.8.0_111 启动hadoop集群 #NameNode 的格式化: [root@sht-sgmhadoopdn-01 hadoop]# hdfs namenode -format #开启NameNode 和DataNode 守护进程,(这一步会启动三个进程,分别是namenode,datanode,secondarynamenode) [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/start-dfs.sh #通过jps命令查看进程号和进程名称 [root@sht-sgmhadoopdn-01 logs]# jps 12704 DataNode 14273 Jps 12580 NameNode 27988 -- process information unavailable 13015 SecondaryNameNode 27832 -- process information unavailable #也可以通过stop-dfs.sh停止守护进程,(下次启动hadoop时,无需进行NameNode的初始化,只需要运行start-dfs.sh就可以) [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# /usr/local/hadoop-2.9.0/sbin/stop-dfs.sh 成功启动进程后可以通过浏览器访问,查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件: NameNodehttp://172.16.101.58:50070 运行hadoop伪分布实例MapReduce Job #创建hdfs目录/user/root/input,并把本地的文件拷贝到hdfs上 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -mkdir -p /user/root/input [root@sht-sgmhadoopdn-01 ~]# hdfs dfs -ls drwxr-xr-x- root supergroup0 2017-12-24 15:20 input [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -put /usr/local/hadoop-2.9.0/etc/hadoop/*.xml /user/root/input [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -ls /user/root/input Found 8 items -rw-r--r-- 1 root supergroup 7861 2017-12-24 15:20 /user/root/input/capacity-scheduler.xml -rw-r--r-- 1 root supergroup 1040 2017-12-24 15:20 /user/root/input/core-site.xml -rw-r--r-- 1 root supergroup 10206 2017-12-24 15:20 /user/root/input/hadoop-policy.xml -rw-r--r-- 1 root supergroup 1091 2017-12-24 15:20 /user/root/input/hdfs-site.xml -rw-r--r-- 1 root supergroup 620 2017-12-24 15:20 /user/root/input/httpfs-site.xml -rw-r--r-- 1 root supergroup 3518 2017-12-24 15:20 /user/root/input/kms-acls.xml -rw-r--r-- 1 root supergroup 5939 2017-12-24 15:20 /user/root/input/kms-site.xml -rw-r--r-- 1 root supergroup 690 2017-12-24 15:20 /user/root/input/yarn-site.xml [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar /usr/local/hadoop-2.9.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z]+' [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -cat output/* 1dfsadmin #默认不会覆盖结果文件,因此再次运行上面实例会提示出错:hdfs://localhost:9000/user/root/output already exists,需要先将output 删除。 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -rm -r /user/root/output Deleted /user/root/output [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar /usr/local/hadoop-2.9.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+' [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -cat output/* 1dfsadmin 1dfs.replication 1dfs.namenode.name.dir 1dfs.datanode.data.dir #也可以从hdfs上拷贝文件到本地 [root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -get /user/root/output /usr/local/hadoop-2.9.0/ 运行YARN在单节点上 (1)新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator)。 (2)YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性, 上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。 (3)如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。 (4)但 YARN 主要是为集群提供更好的资源管理与任务调度,然而这在单机上体现不出价值,反而会使程序跑得稍慢些。因此在单机上是否开启 YARN 就看实际情况了 [root@sht-sgmhadoopdn-01 hadoop]# mv/usr/local/hadoop-2.9.0/etc/hadoop/mapred-site.xml.template mapred-site.xml [root@sht-sgmhadoopdn-01 hadoop]# cat mapred-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]# cat yarn-site.xml <configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> [root@sht-sgmhadoopdn-01 hadoop]# jps 27988 -- process information unavailable 30341 DataNode 32663 Jps 27832 -- process information unavailable 30188 NameNode 30525 SecondaryNameNode #前提是已经使用start-dfs.sh脚本启动过 [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/start-yarn.sh #相比使用MapReduce多了ResourceManager和NodeManager这两个进程 [root@sht-sgmhadoopdn-01 hadoop]# jps 27988 -- process information unavailable 30341 DataNode 32758 ResourceManager 855 Jps 27832 -- process information unavailable 411 NodeManager 30188 NameNode 30525 SecondaryNameNode #启动后可以通过浏览器访问: ResourceManager -http://172.16.101.58:8088 停止hadoop集群 [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/stop-yarn.sh [root@sht-sgmhadoopdn-01 hadoop]#/usr/local/hadoop-2.9.0/sbin/stop-dfs.sh [root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/mr-jobhistory-daemon.sh stop historyserver no historyserver to stop 参考链接: http://www.powerxing.com/install-hadoop/ http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-common/SingleCluster.html

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册