Hadoop伪集群环境搭建
一、创建用户组和用户
- 创建用户组,为系统添加一个用户组hadoop
- sudo addgroup hadoop
- 创建用户,为系统添加一个用户hadoop
- useradd -g hadoop hadoop
- 使用hadoop用户登陆
- su hadoop
二、使用SSH免密码登录
- 执行如下命令,生成ssh的密钥,创建的key的路径是/home/hadoop/.ssh/id_rsa
- ssh-keygen -t rsa -P ""
- 将 /home/hadoop/.ssh/id_rsa.pub中的内容追加到/home/hadoop/.ssh/authorized_keys中,保存
- 执行ssh localhost,验证无密码即可登陆
三、禁用IPv6
- 执行如下命令查看当前IPv6是否禁用,1表示禁用,0表示未禁用,默认是0
- cat /proc/sys/net/ipv6/conf/all/disable_ipv6
- 编辑如下文件,添加三行,禁用IPv6
- sudo vim /etc/sysctl.conf
- net.ipv6.conf.all.disable_ipv6 = 1
- net.ipv6.conf.default.disable_ipv6 = 1
- net.ipv6.conf.lo.disable_ipv6 = 1
- 重启机器,再次查看IPv6是否禁用
四、安装配置JDK
- 编辑/etc/profile文件,设置JAVA相关的系统变量
- export JAVA_HOME=/software/devsoftware/jdk1.7.0_55
- export PATH=$JAVA_HOME/bin:$PATH
五、安装配置Hadoop2.5.2
- 编辑/etc/profile文件,设置Hadoop相关的系统变量
- export HADOOP_HOME=/home/hadoop/hadoop-2.5.2
- export PATH=$HADOOP_HOME/bin:$PATH
- 执行如下使上面配置的系统变量生效
- source /etc/profile
- 将JDK设置到Hadoop的环境脚本/home/hadoop/hadoop-2.5.2/etc/hadoop/hadoop-env.sh中,追加一行
- export JAVA_HOME=/software/devsoftware/jdk1.7.0_55
六、Hadoop2.5.2配置文件设置
- core-site.xml
- yarn-site.xml
- mapred-site.xml
- hdfs-site.xml
这写配置文件中有些需要手工创建目录,有些需要根据系统的实际情况,设置hostname,hostname不能是IP或者localhost,需要在/etc/hosts中进行设置。需要补充一点,有几个文档指出,127.0.0.1最好只跟一个hostname(即Hadoop用到的)绑定,把其余的注释掉。这个究竟是否产生影响,没有测,只是按照网上的说法,只保留一个hostname
6.1 core-site.xml配置
- <configuration>
- <property>
- <name>hadoop.tmp.dir</name>
- <!--目录必须手动创建出来-->
- <value>/home/hadoop/data/tmp</value>
- <description>A base for other temporary directories.</description>
- </property>
- <!--file system properties-->
- <property>
- <name>fs.defaultFS</name>
- <!--HDFS的服务地址,只能使用域名,不能设置为IP或者localhost-->
- <value>hdfs://hostname:9000</value>
- </property>
- <property>
- <!--使用Hadoop自带的so库-->
- <name>hadoop.native.lib</name>
- <value>true</value>
- <description>Should native hadoop libraries, if present, be used.</description>
- </property>
- </configuration>
6.2 mapred-site.xml配置
- cp mapred-site.xml.template mapred-site.xml
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <!--yarn全是小写,不是Yarn-->
- <value>yarn</value>
- </property>
- </configuration>
6.3 yarn-site.xml配置
- <configuration>
- <!-- Site specific YARN configuration properties -->
- <property>
- <!--yarn是小写,或许大些Y也可以-->
- <name>yarn.nodemanager.aux-services</name>
- <!--不是mapreduce.shuffle-->
- <value>mapreduce_shuffle</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
- <value>org.apache.hadoop.mapred.ShuffleHandler</value>
- </property>
- <property>
- <description>The address of the applications manager interface in the RM.</description>
- <name>Yarn.resourcemanager.address</name>
- <!--根据实际情况,设置hostname域名-->
- <value>hostname:18040</value>
- </property>
- <property>
- <description>The address of the scheduler interface.</description>
- <name>Yarn.resourcemanager.scheduler.address</name>
- <!--根据实际情况,设置hostname域名-->
- <value>hostname:18030</value>
- </property>
- <property>
- <description>The address of the RM web application.</description>
- <name>Yarn.resourcemanager.webapp.address</name>
- <!--根据实际情况,设置hostname域名-->
- <value>hostname:18088</value>
- </property>
- <property>
- <description>The address of the resource tracker interface.</description>
- <name>Yarn.resourcemanager.resource-tracker.address</name>
- <!--根据实际情况,设置hostname域名-->
- <value>hostname:8025</value>
- </property>
- </configuration>
6.4 hdfs-site.xml 配置
- <configuration>
- <property>
- <name>dfs.namenode.name.dir</name>
- <!--手工创建好-->
- <value>/home/hadoop/data/hdfs/name</value>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <!--手工创建好-->
- <value>/home/hadoop/data/hdfs/data</value>
- </property>
- <property>
- <!--HDFS文件复本数-->
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- </configuration>
七、Hadoop初始化并启动
- 格式化Hadoop NameNode
- hadoop namenode -format
观察日志,如果有输出中包括Storage directory /home/hadoop/data/hdfs/name has been successfully formatted,则表示格式化成功
- 启动Hadoop
- /home/hadoop/hadoop-2.5.2/sbin/start-all.sh
- 使用JDK的jps检查Hadoop状态,如果是如下结果,则表示安装成功
- 10682 DataNode
- 10463 NameNode
- 11229 ResourceManager
- 24647 Jps
- 11040 SecondaryNameNode
- 11455 NodeManager
- 使用netstat -anp|grep java观察Hadoop端口号使用情况
- tcp 0 0 0.0.0.0:8042 0.0.0.0:* LISTEN 11455/java
- tcp 0 0 0.0.0.0:50090 0.0.0.0:* LISTEN 11040/java
- tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 10463/java
- tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 11229/java
- tcp 0 0 0.0.0.0:34456 0.0.0.0:* LISTEN 11455/java
- tcp 0 0 0.0.0.0:13562 0.0.0.0:* LISTEN 11455/java
- tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 10682/java
- tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 10682/java
- tcp 0 0 0.0.0.0:8030 0.0.0.0:* LISTEN 11229/java
- tcp 0 0 0.0.0.0:8031 0.0.0.0:* LISTEN 11229/java
- tcp 0 0 0.0.0.0:8032 0.0.0.0:* LISTEN 11229/java
- tcp 0 0 0.0.0.0:8033 0.0.0.0:* LISTEN 11229/java
- tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 10682/java
- tcp 0 0 0.0.0.0:8040 0.0.0.0:* LISTEN 11455/java
- 浏览NameNode、DataNode信息,可以查看HDFS状态信息
- http://hostname:50070
- 浏览ResourceManagered运行状态,可以浏览MapReduce任务的执行情况
- http://hostname:8088
八、运行Hadoop自带的WordCount实例
- 创建本地文件用于计算这个文件中的单词数
- echo "My first hadoop example. Hello Hadoop in input. " > /home/hadoop/input
- 创建HDFS输入目录,用于将上面的文件写入这个目录
- hadoop fs -mkdir /user/hadooper
- 传文件到HDFS输入目录
- hadoop fs -put /home/hadoop/input /user/hadooper
- 执行Hadoop自带的WordCount例子
- hadoop jar /home/hadoop/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcount /user/hadooper/input /user/hadooper/output
- MapReduce的过程输出
- hadoop@hostname:~/hadoop-2.5.2/share/hadoop/mapreduce$ hadoop jar /home/hadoop/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcount /user/hadooper/input /user/hadooper/output
- 14/11/23 19:45:04 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
- 14/11/23 19:45:05 INFO input.FileInputFormat: Total input paths to process : 1
- 14/11/23 19:45:05 INFO mapreduce.JobSubmitter: number of splits:1
- 14/11/23 19:45:06 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1416742510596_0001
- 14/11/23 19:45:06 INFO impl.YarnClientImpl: Submitted application application_1416742510596_0001
- 14/11/23 19:45:07 INFO mapreduce.Job: The url to track the job: http://hostname:8088/proxy/application_1416742510596_0001/
- 14/11/23 19:45:07 INFO mapreduce.Job: Running job: job_1416742510596_0001
- 14/11/23 19:45:18 INFO mapreduce.Job: Job job_1416742510596_0001 running in uber mode : false
- 14/11/23 19:45:18 INFO mapreduce.Job: map 0% reduce 0%
- 14/11/23 19:45:26 INFO mapreduce.Job: map 100% reduce 0%
- 14/11/23 19:45:36 INFO mapreduce.Job: map 100% reduce 100%
- 14/11/23 19:45:37 INFO mapreduce.Job: Job job_1416742510596_0001 completed successfully
- 14/11/23 19:45:37 INFO mapreduce.Job: Counters: 49
- File System Counters
- FILE: Number of bytes read=102
- FILE: Number of bytes written=195793
- FILE: Number of read operations=0
- FILE: Number of large read operations=0
- FILE: Number of write operations=0
- HDFS: Number of bytes read=168
- HDFS: Number of bytes written=64
- HDFS: Number of read operations=6
- HDFS: Number of large read operations=0
- HDFS: Number of write operations=2
- Job Counters
- Launched map tasks=1
- Launched reduce tasks=1
- Data-local map tasks=1
- Total time spent by all maps in occupied slots (ms)=5994
- Total time spent by all reduces in occupied slots (ms)=6925
- Total time spent by all map tasks (ms)=5994
- Total time spent by all reduce tasks (ms)=6925
- Total vcore-seconds taken by all map tasks=5994
- Total vcore-seconds taken by all reduce tasks=6925
- Total megabyte-seconds taken by all map tasks=6137856
- Total megabyte-seconds taken by all reduce tasks=7091200
- Map-Reduce Framework
- Map input records=1
- Map output records=8
- Map output bytes=80
- Map output materialized bytes=102
- Input split bytes=119
- Combine input records=8
- Combine output records=8
- Reduce input groups=8
- Reduce shuffle bytes=102
- Reduce input records=8
- Reduce output records=8
- Spilled Records=16
- Shuffled Maps =1
- Failed Shuffles=0
- Merged Map outputs=1
- GC time elapsed (ms)=101
- CPU time spent (ms)=2640
- Physical memory (bytes) snapshot=422895616
- Virtual memory (bytes) snapshot=2055233536
- Total committed heap usage (bytes)=308281344
- Shuffle Errors
- BAD_ID=0
- CONNECTION=0
- IO_ERROR=0
- WRONG_LENGTH=0
- WRONG_MAP=0
- WRONG_REDUCE=0
- File Input Format Counters
- Bytes Read=49
- File Output Format Counters
- Bytes Written=64
- 查看MapReduce的运行结果
- hadoop@hostname:~/hadoop-2.5.2/share/hadoop/mapreduce$ hadoop fs -cat /user/hadooper/output/part-r-00000
- Hadoop 1
- Hello 1
- My 1
- example. 1
- first 1
- hadoop 1
- in 1
- input. 1
九、运行Hadoop的PI程序
- hadoop jar /home/hadoop/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 10 10
执行结果是3.200000000000000000
十、Hadoop常见问题
1. hadoop不正常推出后,重启后,NameNode将进入Safe Mode,不能提交任务,解决办法:
- hadoop dfsadmin -safemode leave
Hadoop伪集群环境搭建相关推荐
- Hadoop教程(二)Hadoop伪集群环境安装
Hadoop教程(二)Hadoop伪集群环境安装 本文链接:https://blog.csdn.net/yuan_xw/article/details/50039325 Hadoop教程(二)Hado ...
- 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第五讲Hadoop图文训练课程:解决典型Hadoop分布式集群环境搭建问题
王家林的"云计算分布式大数据Hadoop实战高手之路---从零开始"的第五讲Hadoop图文训练课程:解决典型Hadoop分布式集群环境搭建问题 参考文章: (1)王家林的&quo ...
- 大数据技术之Hadoop概述集群环境搭建常见错误解决等
Hadoop概述 文章目录 Hadoop概述 1. Hadoop是什么 2. Hadoop发展历史 4. Hadoop的优势 5. Hadoop组成 6. 大数据技术生态体系 7. 推荐系统框架图略图 ...
- 大数据系列(hadoop) 集群环境搭建二
转载于:https://www.cnblogs.com/YellowstonePark/p/7699127.html
- 大数据 -- Hadoop集群环境搭建
首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...
- 大数据介绍、集群环境搭建、Hadoop介绍、HDFS入门介绍
大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 文章目录 大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 1.课前资料 2.课程整体介绍 3.大数据介绍 3.1 什么是大数 ...
- hadoop集群环境搭建准备工作
一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...
- Hadoop 2.x 完全分布式HA集群环境搭建
Hadoop 2.x 完全分布式HA集群环境搭建 目录 Hadoop 2.0 环境搭建 前提:环境准备 第一步:修改hadoop-env.sh配置文件,配置好JAVA_HOME环境变量 第二步:修改h ...
- 【Hadoop生态圈】1.Hadoop入门教程及集群环境搭建
文章目录 1.简介 2.环境准备 3.安装hadoop 3.修改Hadoop配置文件 3.1.hadoop-env.sh配置 3.2.core-site.xml配置 3.3.hdfs-site.xml ...
最新文章
- iOS开发UI篇—实现UITableview控件数据刷新
- go 向buff写入一个字节_我在 Go 中犯的 5 个错误
- Intellij IDEA运行报Command line is too long解法
- 深入浅出统计学 第四五章 离散概率的计算与分布
- view类不响应自定义消息_安卓平台如何给控件添加自定义操作?
- 个人开发—进度记录(二)
- ABAP--动态创建类型和变量的使用程序样例
- mysql8.0.15 linux安装_Linux下mysql 8.0.15 安装配置图文教程以及修改密码
- 浅谈LoRa,LoRaWAN,NB-IoT三类物联网技术
- vue3结合element-plus实现标签手动标注效果
- 软件开发过程与项目管理(7.软件项目进度计划)
- 愉快地在64位系统下运行汇编
- 【转】百度网盘高速下载-暴力油猴脚本
- 1387: [蓝桥杯2018决赛]阅兵方阵
- html数独游戏源代码,数独算法及源代码
- 教师计算机知识比赛方案,小学信息技术教师基本功竞赛方案.doc
- 剪辑软件生产力工具pr,ae,达芬奇对比
- 头歌Educoder——Java高级特性 - JDBC(上)
- oracle+dbcc+checkdb,dbcc checkdb 修复数据库
- TextToSpeech文字转语音
热门文章
- 【错误记录】Flutter 插件不兼容 ( requires Flutter SDK version >=1.22.0 <2.0.0, url_launcher >=5.7.7 <6.0.0- )
- 【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )
- 线程了解以及创建线程的Threading模块中的部分方法
- [Spring cloud 一步步实现广告系统] 9. 主类和配置文件
- 小程序协同工作和发布
- Stack Overflow:研究发现访问PHP和 Android的流量更可能来自低收入国家
- [No00009B]win10快捷键大全
- PHPcms 系统简单使用
- VS切换到按F5不需要按Fn键的快捷键模式
- 『前端规范化』CSS命名规范化