hadoop怎么安装配置

Hadoop认证培训:hadoop怎么安装配置?上一节讲述了要安装Hadoop测试环境所必需的一些软件及基础环境配置,本节就开始安装并配置一个简单的Hadoop伪分布式环境。

首先下载Hadoop的稳定版Hadoop-1.0.4.tar.gz,这里使用cnnic.cn镜像地址下载,使用以下命令进行操作:

wget http:// mirrors.cnnic.cn/apache/Hadoop/common/stable/Hadoop-1.0.4.tar.gz

然后进行解压:

tar –xzvf Hadoop-1.0.4.tar.gz

解压之后建议将Hadoop的bin目录配置到PATH环境变量,然后进到Hadoop的conf目录对Hadoop进行伪分布式配置,配置步骤如下。

(1)配置core-site.xml

这个配置是Hadoop的核心配置,至少需要配置HDFS的地址及端口号,这里使用以下最简单的配置方法:

<conf?iguration>
      <property>
         <name>fs. default .name</name>
         <value>hdfs: // localhost:9000</value>
      </property>
</conf?iguration>

fs.default.name用于指定NameNode的IP地址和端口号,localhost就是HDFS NameNode的地址,9000是HDFS的NameNode RPC交互端口。

(2)配置hdfs-site.xml

这里主要配置HDFS的相关属性参数,简单配置如下:

<conf?iguration>
     <property>
        <name>dfs.replication</name>
        <value> 1 </value>
     </property>
<property>
        <name>dfs.name.dir</name>
        <value>/home/nuoline/hdfs-f?ilesystem/name</value>
</property>
<property>
        <name>dfs.data.dir</name>
        <value>/home/nuoline/hdfs-f?ilesystem/data</value>
</property>
</conf?iguration>

dfs.replication用于指定HDFS中每个Block块被复制的次数,起到数据冗余备份的作用。在典型的生产系统中,这个数常被设置为3,这里是伪分布式,只有一个节点,因此设置为1。dfs.name.dir用于配置HDFS的NameNode的元数据,以逗号隔开,HDFS会把元数据冗余复制到这些目录下。dfs.data.dir用于配置HDFS的DataNode的数据目录,以逗号“,”隔开,HDFS会把数据存在这些目录下。这两个配置默认都在tmp目录下,建议用户在配置时使用自己创建的目录即可。

(3)配置map-site.xml

配置map-site.xml的代码如下:

<conf?iguration>
      <property>
          <name>mapred.job.tracker</name>
          <value>localhost: 9001 </value>
      </property>
</conf?iguration>

mapred.job.tracker是MapReduce Jobtracker的IP地址及端口号,localhost就是MapReduce Jobtracker的地址,9001是MapReduce Jobtracker RPC交互端口。

以上仅仅是对伪分布式的一个简单配置,主要用于测试环境的搭建,生成环境下的配置参数详解可见后续章节的内容介绍。

(4)配置hadoop-env.sh

hadoop-env.sh用于配置集群特有的变量值,这里至少需要配置JAVA_HOME环境变量。来源:CUUG官网

在 C++ 的 Boost 库中,`boost::posix_time` 和 `boost::gregorian` 是两个不同的命名空间,分别用于处理时间与日期相关的类型和函数。它们的使用场景如下: ### `boost::posix_time` 命名空间 该命名空间主要用于处理时间点(`ptime`)和时间间隔(`time_duration`),也包含与完整时间戳相关的一些功能。以下类型的定义和函数需要加上 `boost::posix_time` 前缀: - **时间点类型**:`boost::posix_time::ptime` 用于表示一个具体的时间点,例如当前时间或某个特定时刻。 - **时间间隔类型**:`boost::posix_time::time_duration` 表示一段时间,例如小时、分钟和秒的差值。 - **时间周期类型**:`boost::posix_time::time_period` 用于描述一个时间段范围,可以判断某时间点是否在指定范围内[^2]。 - **获取当前时间函数**:例如 `boost::posix_time::second_clock::local_time()` 或 `boost::posix_time::microsec_clock::universal_time()`,用来获取系统当前的时间点。 - **转换函数**:如 `boost::posix_time::to_tm()`,用于将 `ptime` 转换为标准库中的 `tm` 结构[^3]。 ### `boost::gregorian` 命名空间 这个命名空间专注于日期操作,涵盖了日期对象及其相关计算。以下类型和函数需要加上 `boost::gregorian` 前缀: - **日期类型**:`boost::gregorian::date` 表示一个具体的日期,支持创建、比较以及加减天数等操作。 - **日期间隔类型**:`boost::gregorian::date_duration` 描述日期之间的差值,以天为单位。 - **日期周期类型**:`boost::gregorian::date_period` 用于表示一段日期范围,可以通过 `contains()` 方法判断某个日期是否处于周期内[^2]。 - **日期生成函数**:包括 `boost::gregorian::from_string()` 和 `boost::gregorian::from_undelimited_string()` 等,用于从字符串构造日期对象[^5]。 - **特殊日期枚举**:例如 `boost::date_time::min_date_time` 或 `boost::date_time::not_a_date_time`,用于创建具有特殊含义的日期对象。 - **日期访问函数**:例如 `is_not_a_date()` 判断日期是否无效,或者 `day()` 获取日期中的日部分。 ### 使用方式 在实际代码中,为了简化书写,通常会通过 `using namespace boost::posix_time;` 或 `using namespace boost::gregorian;` 引入整个命名空间。也可以显式地对每个类型或函数添加前缀,避免潜在的命名冲突。例如: ```cpp #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/gregorian/gregorian.hpp> int main() { // 使用 boost::posix_time 处理时间 boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); // 使用 boost::gregorian 处理日期 boost::gregorian::date today = boost::gregorian::day_clock::local_day(); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值