当前位置:首页 > 行业动态 > 正文

hadoop2.2.0 第三方jar包引入的操作方法

什么是Hadoop?

Hadoop是一个开源的分布式存储和计算框架,它可以在大规模数据集上进行高效的分布式处理,Hadoop的核心组件包括HDFS(Hadoop Distributed FileSystem)和MapReduce,HDFS是一个高度容错的分布式文件系统,可以在廉价的硬件上提供高吞吐量的数据访问,MapReduce是一种编程模型,用于处理和生成大型数据集,通过将计算任务分布到集群中的多个节点上,Hadoop可以有效地处理大量数据。

如何安装Hadoop?

1、下载Hadoop安装包

从Apache Hadoop官网下载相应版本的Hadoop安装包:https://hadoop.apache.org/releases.html

2、解压安装包

将下载的压缩包解压到指定目录,/usr/local/hadoop

3、配置环境变量

编辑~/.bashrc文件,添加以下内容:

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后执行source ~/.bashrc使配置生效。

4、配置Hadoop

编辑$HADOOP_HOME/etc/hadoop/core-site.xml文件,添加以下内容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

编辑$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件,添加以下内容:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

5、格式化HDFS

执行以下命令格式化HDFS:

$HADOOP_HOME/bin/hdfs namenode -format

6、启动Hadoop集群

执行以下命令启动Hadoop集群:

$HADOOP_HOME/sbin/start-all.sh

7、验证Hadoop是否安装成功

执行以下命令查看Hadoop集群状态:

$HADOOP_HOME/bin/jps

如果看到NameNode、DataNode等进程,则说明Hadoop安装成功。

如何引入第三方jar包?

在Hadoop中引入第三方jar包有两种方法:一种是将jar包复制到Hadoop的lib目录下;另一种是使用Hadoop的类加载器机制动态加载jar包,下面分别介绍这两种方法。

1、将jar包复制到Hadoop的lib目录下

将需要引入的第三方jar包复制到Hadoop的lib目录下,/usr/local/hadoop/lib,在运行MapReduce作业时,使用-libjars参数指定需要加载的jar包,

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-*.jar 
    -files hdfs://localhost:9000/user/input.txt 
    -files hdfs://localhost:9000/user/output.txt 
    -mapper "python my_mapper.py" 
    -reducer "python my_reducer.py" 
    -inputformat org.apache.hadoop.mapred.TextInputFormat 
    -outputformat org.apache.hadoop.mapred.TextOutputFormat 
    -jobconf mapred.job.name="my_job" 
    -libjars /usr/local/hadoop/lib/*.jar 
    -verbose 
    hdfs://localhost:9000/user/my_job_output

2、使用Hadoop的类加载器机制动态加载jar包

在运行MapReduce作业时,可以使用-archives参数指定需要加载的jar包,

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-*.jar 
    -files hdfs://localhost:9000/user/input.txt 
    -files hdfs://localhost:9000/user/output.txt 
    -mapper "python my_mapper.py" 
    -reducer "python my_reducer.py" 
    -inputformat org.apache.hadoop.mapred.TextInputFormat 
    -outputformat org.apache.hadoop.mapred.TextOutputFormat 
    -jobconf mapred.job.name="my_job" 
    -archives hdfs://localhost:9000/user/my_job_input.zip,hdfs://localhost:9000/user/my_job_output.zip 
    -verbose 
    hdfs://localhost:9000/user/my_job_output

hdfs://localhost:9000/user/my_job_input.zip和hdfs://localhost:9000/user/my_job_output.zip分别是需要加载的两个jar包,它们的路径可以是本地文件系统或者HDFS上的路径,注意,这两个jar包必须是zip格式。

0