`

java程序员学习hadoop

阅读更多
过去几年一直专注于java后端开发,现在hadoop很火,于是也想一试身手。通过学习hadoop,想达到以下几个目的:
了解hadoop历史及其主要应用于哪些场景;

搭建基本的hadoop环境,能够简单使用hadoop;

对于javaweb开发人员来说,如何将hadoop的应用于实际开发中;



关于hadoop:
hadoop分为几大部分:yarn负责资源和任务管理、hdfs负责分布式存储、map-reduce负责分布式计算



准备工作:
1.创建hadoop用户
创建hadoop用户
sudo useradd -m hadoop -s /bin/bash

设置密码
sudo passwd hadoop

赋予管理员权限
sudo adduser hadoop sudo

2.更新apt

3.安装ssh及配置无密登录ssh
ssh localhost
exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

4.安装jdk
sudo apt-get install openjdk-7-jre openjdk-7-jdk

dpkg -L openjdk-7-jdk | grep '/bin/javac'
获取jdk安装路径:/usr/lib/jvm/java-7-openjdk-amd64

vim ~/.bashrc
vi o(下一行) O(上一行) 
第一行添加:export JAVA_HOME=JDK安装路径

source ~/.bashrc    # 使变量设置生效


安装hadoop:
下载:
sudo wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.1/hadoop-2.6.1.tar.gz

sudo tar -zxf ..../hadoop-2.6.1.tar.gz -C /usr/local    # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.6.1/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限


检查是否安装成功:
cd /usr/local/hadoop
./bin/hadoop version


Hadoop伪分布式配置:
/usr/local/hadoop/etc/hadoop/>core-site.xml:
<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>

配置完成后,nameNode格式化:
./bin/hdfs namenode -format


添加hadoop到系统路径,便于平时操作:
vi ~/.bashrc
#最上面一行添加下列
export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

source ~/.bashrc



运行Hadoop伪分布式实例-shell-统计文件中单词个数
#启动nameNode和nodeName守护线程:
/usr/local/hadoop>./sbin/start-dfs.sh

jps查看是否启动成功
http://localhost:50070 查看 NameNode 和 Datanode 信息

#创建工作目录
/usr/local/hadoop>./bin/hdfs dfs -mkdir -p /user/hadoop   

#在上面创建目录基础上创建目录
./bin/hdfs dfs -mkdir input     

#将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中
./bin/hdfs dfs -put ./etc/hadoop/*.xml input

#查看hadoop中文件
./bin/hdfs dfs -ls input

#统计input文件中,特定单词的个数
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

#查看运行结果的命令
./bin/hdfs dfs -cat output/*

#将运行结果取回本地
rm -r ./output    # 先删除本地的 output 文件夹(如果存在)
./bin/hdfs dfs -get output ./output     # 将 HDFS 上的 output 文件夹拷贝到本机
cat ./output/*

# 删除 output 文件夹
./bin/hdfs dfs -rm -r output   


#关闭hadoop:
./sbin/stop-dfs.sh




运行java实例-打包到linux调试-统计一年中最高的温度
#根目录下创建输入文件
vi input.txt
#数据格式如:
2012010919

2012011023

2001010116

2001010212

2001010310



#放至hadoop根目录
./bin/hdfs dfs -put input.txt / 

hadoop fs -put input.txt /

#实例程序参考:
https://git.oschina.net/gitosc_20160331/template-hadoop.git

通过eclipse导出jar包,并上传到linux即hadoop服务器上,

执行hadoop jar ./template-hadoop.jar

Before Mapper:0,2014010114======After Mapper:2014, 14
Before Mapper:11,Before Mapper:12,2014010216======After Mapper:2014, 16
Before Mapper:23,Before Mapper:24,2014010317======After Mapper:2014, 17
Before Mapper:35,Before Mapper:36,2014010410======After Mapper:2014, 10
Before Mapper:47,Before Mapper:48,2014010506======After Mapper:2014, 6
Before Mapper:59,Before Mapper:60,2012010609======After Mapper:2012, 9
Before Mapper:71,Before Mapper:72,2012010732======After Mapper:2012, 32
Before Mapper:83,Before Mapper:84,2012010812======After Mapper:2012, 12
Before Mapper:95,Before Mapper:96,2012010919======After Mapper:2012, 19
Before Mapper:107,Before Mapper:108,2012011023======After Mapper:2012, 23
Before Mapper:119,Before Mapper:120,2001010116======After Mapper:2001, 16
Before Mapper:131,Before Mapper:132,2001010212======After Mapper:2001, 12
Before Mapper:143,Before Mapper:144,2001010310======After Mapper:2001, 10
Before Mapper:155,Before Mapper:156,2001010411======After Mapper:2001, 11
Before Mapper:167,Before Mapper:168,2001010529======After Mapper:2001, 29
Before Mapper:179,Before Mapper:180,2013010619======After Mapper:2013, 19
Before Mapper:191,Before Mapper:192,2013010722======After Mapper:2013, 22
Before Mapper:203,Before Mapper:204,2013010812======After Mapper:2013, 12
Before Mapper:215,Before Mapper:216,2013010929======After Mapper:2013, 29
Before Mapper:227,Before Mapper:228,2013011023======After Mapper:2013, 23
Before Mapper:239,Before Mapper:240,2008010105======After Mapper:2008, 5
Before Mapper:251,Before Mapper:252,2008010216======After Mapper:2008, 16
Before Mapper:263,Before Mapper:264,2008010337======After Mapper:2008, 37
Before Mapper:275,Before Mapper:276,2008010414======After Mapper:2008, 14
Before Mapper:287,Before Mapper:288,2008010516======After Mapper:2008, 16
Before Mapper:299,Before Mapper:300,2007010619======After Mapper:2007, 19
Before Mapper:311,Before Mapper:312,2007010712======After Mapper:2007, 12
Before Mapper:323,Before Mapper:324,2007010812======After Mapper:2007, 12
Before Mapper:335,Before Mapper:336,2007010999======After Mapper:2007, 99
Before Mapper:347,Before Mapper:348,2007011023======After Mapper:2007, 23
Before Mapper:359,Before Mapper:360,2010010114======After Mapper:2010, 14
Before Mapper:371,Before Mapper:372,2010010216======After Mapper:2010, 16
Before Mapper:383,Before Mapper:384,2010010317======After Mapper:2010, 17
Before Mapper:395,Before Mapper:396,2010010410======After Mapper:2010, 10
Before Mapper:407,Before Mapper:408,2010010506======After Mapper:2010, 6
Before Mapper:419,Before Mapper:420,2015010649======After Mapper:2015, 49
Before Mapper:431,Before Mapper:432,2015010722======After Mapper:2015, 22
Before Mapper:443,Before Mapper:444,2015010812======After Mapper:2015, 12
Before Mapper:455,Before Mapper:456,2015010999======After Mapper:2015, 99
Before Mapper:467,Before Mapper:468,2015011023======After Mapper:2015, 23
17/05/13 00:49:30 INFO mapred.LocalJobRunner: 
17/05/13 00:49:30 INFO mapred.MapTask: Starting flush of map output
17/05/13 00:49:30 INFO mapred.MapTask: Spilling map output
17/05/13 00:49:30 INFO mapred.MapTask: bufstart = 0; bufend = 360; bufvoid = 104857600
17/05/13 00:49:30 INFO mapred.MapTask: kvstart = 26214396(104857584); kvend = 26214240(104856960); length = 157/6553600
17/05/13 00:49:30 INFO mapred.MapTask: Finished spill 0
17/05/13 00:49:30 INFO mapred.Task: Task:attempt_local314864252_0001_m_000000_0 is done. And is in the process of committing
17/05/13 00:49:30 INFO mapred.LocalJobRunner: map
17/05/13 00:49:30 INFO mapred.Task: Task 'attempt_local314864252_0001_m_000000_0' done.
17/05/13 00:49:30 INFO mapred.LocalJobRunner: Finishing task: attempt_local314864252_0001_m_000000_0
17/05/13 00:49:30 INFO mapred.LocalJobRunner: map task executor complete.
17/05/13 00:49:30 INFO mapred.LocalJobRunner: Waiting for reduce tasks
17/05/13 00:49:30 INFO mapred.LocalJobRunner: Starting task: attempt_local314864252_0001_r_000000_0
17/05/13 00:49:30 INFO mapred.Task:  Using ResourceCalculatorProcessTree : [ ]
17/05/13 00:49:30 INFO mapred.ReduceTask: Using ShuffleConsumerPlugin: org.apache.hadoop.mapreduce.task.reduce.Shuffle@14b73571
17/05/13 00:49:30 INFO reduce.MergeManagerImpl: MergerManager: memoryLimit=363285696, maxSingleShuffleLimit=90821424, mergeThreshold=239768576, ioSortFactor=10, memToMemMergeOutputsThreshold=10
17/05/13 00:49:30 INFO reduce.EventFetcher: attempt_local314864252_0001_r_000000_0 Thread started: EventFetcher for fetching Map Completion Events
17/05/13 00:49:30 INFO reduce.LocalFetcher: localfetcher#1 about to shuffle output of map attempt_local314864252_0001_m_000000_0 decomp: 442 len: 446 to MEMORY
17/05/13 00:49:30 INFO reduce.InMemoryMapOutput: Read 442 bytes from map-output for attempt_local314864252_0001_m_000000_0
17/05/13 00:49:30 INFO reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 442, inMemoryMapOutputs.size() -> 1, commitMemory -> 0, usedMemory ->442
17/05/13 00:49:30 INFO reduce.EventFetcher: EventFetcher is interrupted.. Returning
17/05/13 00:49:30 INFO mapred.LocalJobRunner: 1 / 1 copied.
17/05/13 00:49:30 INFO reduce.MergeManagerImpl: finalMerge called with 1 in-memory map-outputs and 0 on-disk map-outputs
17/05/13 00:49:30 INFO mapred.Merger: Merging 1 sorted segments
17/05/13 00:49:30 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 435 bytes
17/05/13 00:49:30 INFO reduce.MergeManagerImpl: Merged 1 segments, 442 bytes to disk to satisfy reduce memory limit
17/05/13 00:49:30 INFO reduce.MergeManagerImpl: Merging 1 files, 446 bytes from disk
17/05/13 00:49:30 INFO reduce.MergeManagerImpl: Merging 0 segments, 0 bytes from memory into reduce
17/05/13 00:49:30 INFO mapred.Merger: Merging 1 sorted segments
17/05/13 00:49:30 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 435 bytes
17/05/13 00:49:30 INFO mapred.LocalJobRunner: 1 / 1 copied.
17/05/13 00:49:30 INFO mapreduce.Job:  map 100% reduce 0%
17/05/13 00:49:30 INFO Configuration.deprecation: mapred.skip.on is deprecated. Instead, use mapreduce.job.skiprecords
Before Reduce:2001,12,10,11,29,16,After Reduce:2001,29
Before Reduce:2007,23,19,12,12,99,After Reduce:2007,99
Before Reduce:2008,16,14,37,16,5,After Reduce:2008,37
Before Reduce:2010,10,6,14,16,17,After Reduce:2010,17
Before Reduce:2012,19,12,32,9,23,After Reduce:2012,32
Before Reduce:2013,23,29,12,22,19,After Reduce:2013,29
Before Reduce:2014,14,6,10,17,16,After Reduce:2014,17
Before Reduce:2015,23,49,22,12,99,After Reduce:2015,99


执行完后,可删除output,以便下次调试
hdfs dfs -rm -r /output





运行java实例-windows本地调试-由于问题5一直不成功
为了调试过程中定位问题,添加log4j.properties
log4j.rootLogger=debug,stdout,R 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=mapreduce_test.log 
log4j.appender.R.MaxFileSize=1MB 
log4j.appender.R.MaxBackupIndex=1 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
log4j.logger.com.codefutures=DEBUG



#下载hadoop的eclipse插件,放至eclipse/plugins下
下载地址:https://pan.baidu.com/share/link?uk=3976278079&shareid=111343850

#下载winutils.exe放至hadoop_home/bin,hadoop.dll放至windows/system32
下载地址:https://github.com/amihalik/hadoop-common-2.6.0-bin

#一开始下了错误版本,导致报错UnsatisfiedLinkError
http://pan.baidu.com/s/1qWG7XxU

#配置HADOOP_HOME并添加执行路径%HADOOP_HOME%/bin;

#重启eclipse
配置windows-preferences-hadoop map/reduce,即hadoop的安装路径
将上面下载的hadoop-2.6.1.tar.gz解压至windows的某目录下,即为hadoop在windows的安装路径


配置hadoop服务器信息-打开windows-show view查找map
在打开的视图中新建hadoop位置信息new hadoop location





查看是否连接成功:











遇到的问题
1.Connection Refused
在hadoop服务器上执行netstat -tpnl 查看端口使用情况,发现9000端口只对本地放开,修改为对所有地址放开
core-site.xml修改:
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://0.0.0.0:9000</value>
        </property>

localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:
https://wiki.apache.org/hadoop/ConnectionRefused


2.
java.lang.NullPointerException
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1010)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:445)
at org.apache.hadoop.util.Shell.run(Shell.java:418)

一开始通过windows eclipse本地调试:
		// 输入路径
		String dst = "hdfs://192.168.127.135:9000/input.txt";
		//输出路径,必须是不存在的,空文件夹也不行。
		String dstOut = "hdfs://192.168.127.135:9000/output";


下载winutils.exe放在hadoop-2.6.1/bin下


3.java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray

windows/system32下缺少hadoop.dll或hadoop.dll版本不对


4.HADOOP_HOME or hadoop.home.dir are not set
HADOOP_HOME设置了还是报这个错,无奈用下面这个解决了
#设置hadoop.home.dir
System.setProperty("hadoop.home.dir", "D:\\service\\hadoop\\hadoop-2.6.1");
Job job = new Job(hadoopConfig);

?-设置环境变量后,由于java虚拟机中已经加载了旧的变量,需重启eclipse才可以获取最新变量
System.out.println(System.getenv("HADOOP_HOME")); //设置HADOOP_HOME但就是获取不到,cmd set %HADOOP_HOME%
		System.out.println(System.getenv("path")); //有值


5. PrivilegedActionException as:Administrator (auth:SIMPLE) cause:org.apache.hadoop.util.Shell$ExitCodeException:

多种尝试:没一个可以的
5.1 #修改权限:
hadoop fs -chmod 777 /tmp

5.2 修改用户所有者
hadoop fs -chown -R hadoop:hadoop  /tmp

5.3 启动yarn,当然也要在linux hadoop中配置yarn(mapred-site.xml)
<property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
        </property>

不需要yarn时,需mv mapred-site.xml mapred-site.xml.template

hadoopConfig.set("hadoop.job.ugi", "hadoop");
System.setProperty("HADOOP_USER_NAME", "hadoop");

hadoopConfig.set("mapreduce.framework.name", "yarn"); 
hadoopConfig.set("yarn.resourcemanager.address", "192.168.127.135:8021");

5.4
选择"本地用户和组",展开"用户",找到系统管理员"Administrator",修改其为"hadoop"





hbase简单使用
#下载hbase
sudo wget http://apache.fayea.com/hbase/stable/hbase-1.2.5-bin.tar.gz
#解压
sudo tar -zxvf hbase-1.2.5-bin.tar.gz

#修改conf/hbase-site.xml
<configuration>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://127.0.0.1:9000/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>127.0.0.1:2181</value>
    </property>
</configuration>

hbase.rootdir配置的是hdfs地址,ip:port要和hadoop/core-site.xml中的fs.defaultFS保持一致

其中hbase.zookeeper.quorum是zookeeper的地址,可以配多个

#修改conf/hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
#使用hbase自带的ZK
export HBASE_MANAGES_ZK=true


#启动hbase
sudo ./bin/start-hbase.sh

可能报错127.0.0.1: Permission denied, please try again.,
试了一下几种方式:
1.hbase_home/conf下执行
sudo chmod +x start-hbase.sh


2.注释掉hbase.zookeeper.quorum配置

3.sudo su
可以启动,但还是报错



#关闭hbase
sudo ./bin/stop-hbase.sh








常用命令:
start-dfs.sh
http://localhost:50070

stop-dfs.sh

start-yarn.sh
mr-jobhistory-daemon.sh start historyserver  # 开启历史服务器,才能在Web中查看任务运行情况
http://192.168.127.135:8088/cluster

stop-yarn.sh
mr-jobhistory-daemon.sh stop historyserver







参考:
Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
http://www.powerxing.com/install-hadoop/

Windows下使用Hadoop2.6.0-eclipse-plugin插件
https://my.oschina.net/muou/blog/408543

hadoop入门--简单的MapReduce案例
http://blog.csdn.net/zhangt85/article/details/42077281

Hadoop Eclipse Plug-in
https://wiki.apache.org/hadoop/EclipsePlugIn

Hadoop虽然强大,但不是万能的
http://database.51cto.com/art/201402/429789.htm

一文读懂Hadoop、HBase、Hive、Spark分布式系统架构
http://www.codeceo.com/article/understand-hadoop-hbase-hive-spark-distributed-system-architecture.html

HBase does not run after ./start-hbase.sh - Permission Denied?
http://stackoverflow.com/questions/21166542/hbase-does-not-run-after-start-hbase-sh-permission-denied

http://www.cnblogs.com/wukenaihe/archive/2013/03/15/2961029.html

HBase应用的常见异常
https://www.zybuluo.com/xtccc/note/91427
  • 大小: 42.9 KB
  • 大小: 43.3 KB
  • 大小: 36.4 KB
  • 大小: 11.3 KB
分享到:
评论

相关推荐

    [网盘]java程序员由菜鸟到笨鸟.pdf

    《Java程序员由菜鸟到笨鸟》这本书覆盖了Java编程从基础到高级的各个层面,通过理论与实践相结合的方式,帮助读者系统地学习Java编程知识,提升编程技能。无论是对于初学者还是具有一定经验的开发者来说,都是一本...

    Java程序员就业方向解析共1页.pdf.zip

    3. **大数据处理**:Hadoop、Spark等大数据处理框架广泛使用Java,使得Java程序员能够参与到大数据项目中,进行数据挖掘、分析和预测,为企业决策提供支持。 4. **云计算**:Java在云计算领域也有广泛的应用,如...

    Java程序员上班那点事儿

    《Java程序员上班那点事儿》这本书,正如其名,旨在揭示Java程序员在日常工作中的点滴细节,帮助初入职场或有经验的开发者更好地理解和应对工作中的挑战。书中涵盖了许多实际问题和解决方案,旨在提升读者的技能水平...

    java项目Hadoop依赖包

    在实际项目中,Java程序员可能会遇到的问题包括:数据分片策略的选择、Job配置优化、容错机制的实现、网络延迟和带宽瓶颈等。解决这些问题通常需要深入理解Hadoop的内部工作原理,以及对大数据处理的最佳实践有深刻...

    JAVA程序员面试技巧

    ### JAVA程序员面试技巧详解 #### 一、面试背景与需求分析 随着信息技术的快速发展,JAVA作为一门广泛应用的编程语言,在IT行业中占据着举足轻重的地位。对于JAVA程序员来说,面试不仅是进入心仪公司的门槛,更是...

    java程序员简历模版

    【Java程序员简历模版】是Java开发者在求职过程中制作个人简历的一种参考模板,它涵盖了必要的个人信息、求职意向、技能专长、工作经验以及项目经历等内容,旨在全面展示候选人的专业能力和实践经验。 1. **个人...

    Java程序员高手文章集+(PDF)源码整理

    【Java程序员高手文章集+(PDF)源码整理】这一资源主要针对的是Java编程语言的学习与实践,特别是对于希望成为Java编程高手的程序员。这个压缩包包含了一整套精选的Java技术文章,以及相关的源码整理,是提升Java技能...

    程序员学习资料综合

    【标题】:“程序员学习资料综合”这一资源集合涵盖了IT编程领域的广泛学习材料,旨在为程序员提供全面的学习资源,包括但不限于Java、Python、大数据以及数据库等多个关键领域的知识。 【描述】:这个压缩包文档是...

    Hadoop 讲义 基础篇

    ### Hadoop讲义基础篇知识点概述 #### 必学必会的Shell命令 Shell命令是进行系统管理和...通过对以上知识点的学习,我们可以更好地理解和掌握Hadoop相关的基础知识和技术栈,为进一步深入学习Hadoop打下坚实的基础。

    hadoop大数据培训零基础学习hadoop-北京尚学堂整理.pdf

    首先,学习Hadoop编程需要一定的Java基础。至少要熟悉Java的基本语法、对象、接口、继承和多态的概念,以及如何使用常用的Java包。对于初学者,建议通过实践小项目或例子来巩固理论知识。对于有经验的程序员,虽然...

    传智黑马赵星老师hadoop七天课程资料笔记-第二天(全)

    标题和描述中提到的是“传智黑马赵星老师hadoop七天课程资料笔记-第二天(全)”,这表明这是一个关于Hadoop技术的深度学习资源,主要聚焦于赵星老师的Hadoop教学课程中的第二天内容。通常,这样的课程会涵盖Hadoop的...

    java程序员简历_java简历.doc

    【Java程序员简历】 本文将详细解析一位Java软件工程师的简历,展示其在Java开发领域的专业知识和技能。这位程序员拥有2年的JavaEE软件工程师经验,专业背景为计算机科学与技术,具备良好的英语能力,曾在湖南出生,...

    零基础学习hadoop编程篇.doc

    对于有经验的传统程序员,虽然可以快速适应Eclipse和Maven,但仍需要补充Java语法和Hadoop相关的知识。 进一步深入Hadoop编程,你需要掌握如何编译Hadoop源码,这对于理解和定制Hadoop功能很有帮助。同时,使用...

    hbase hadoop chm java 帮助文档

    【标题】"hbase hadoop chm java 帮助文档"揭示了这是一份针对Java程序员在Hadoop和HBase开发中使用的CHM(Windows帮助文档)工具集。CHM文件是一种常见的技术文档格式,它将多个HTML页面、图像和其他资源打包成一个...

    零基础学习hadoop(编程篇).docx

    Eclipse是一款常用的Java开发集成环境,对于传统程序员,使用Hadoop-Eclipse-Plugin插件可以方便地远程连接到Hadoop集群。通过这个插件,你可以直接在Eclipse中编写、编译和运行Hadoop程序。此外,Maven作为项目管理...

    零基础学习hadoop(编程篇).pdf

    9. **Hadoop学习资源**:文中推荐了一些基础学习材料,如零基础学习Hadoop到上手工作线路的初级和中级篇,以及使用Eclipse创建项目和编写小程序的教程,这些都是逐步深入Hadoop编程的重要参考资料。 总的来说,学习...

    零基础学习hadoop编程篇 (2).docx

    【零基础学习Hadoop编程篇】是针对初学者和有一定编程经验的程序员的指南,旨在帮助读者理解并掌握Hadoop编程的基本概念和技术。Hadoop是一个分布式计算框架,使用Java语言编写,它允许开发者将大型数据集分割并在多...

    基于java+hadoop实现的图书推荐系统

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    基于Java和ssh在Hadoop平台上完成文件操作

    例如,`FileSystem`类是Hadoop Java API的一部分,允许程序员进行文件的创建、删除、移动等操作。同时,`InputFormat`和`OutputFormat`接口用于定义数据输入和输出的格式,而`Mapper`和`Reducer`类则用于实现...

    基于java + Hadoop的游戏用户数据分析系统源码(期末大作业).zip

    基于java + Hadoop的游戏用户数据分析系统源码(期末大作业).zip 95分以上高分必过项目,下载即用无需修改,确保可以运行。也可作为期末大作业。 基于java + Hadoop的游戏用户数据分析系统源码(期末大作业).zip...

Global site tag (gtag.js) - Google Analytics