Hadoop 环境安装

Hadoop 简介

Hadoop是开源的分布式的并行计算平台,以MapReduce、HDFS为核心的计算框架,HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

Hadoop 架构

20140222160856375.png

(1)Pig是一个基于Hadoop的大规模数据分析平台,Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口;
(2)Hive是基于Hadoop的一个工具,提供完整的SQL查询,可以将sql语句转换为MapReduce任务进行运行;
(3)ZooKeeper:高效的,可拓展的协调系统,存储和协调关键共享状态;
(4)HBase是一个开源的,基于列存储模型的分布式数据库;
(5)HDFS是一个分布式文件系统,有着高容错性的特点,适合那些超大数据集的应用程序;
(6)MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。

Hadoop特点

  • 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
  • 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  • 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  • 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
  • 低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop集群有三种启动模式:

  • 单机模式:默认情况下运行为一个单独机器上的独立Java进程,主要用于调试环境
  • 伪分布模式:在单个机器上模拟成分布式多节点环境,每一个Hadoop守护进程都作为一个独立的Java进程运行
  • 完全分布式模式:真实的生产环境,搭建在完全分布式的集群环境

环境安装

(1)创建Hadoop用户、用户组

$ sudo adduser hadoop
$ sudo usermod -G sudo hadoop

(2) 安装以及配置以来的软件

  • JDK 安装
  • SSH免密码登录
$ ssh-keygen -t rsa   #一路回车
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
  • 下载安装Hadoop
$ vim /home/hadoop/.bashrc

#添加如下内容
#HADOOP START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP END

$ source ~/.bashrc
  • 伪分布式环境安装
    (1)修改core-site.xml
<configuration>
   <property>
       <name>fs.defaultFS</name>
       <value>hdfs://localhost:9000</value>
   </property>
   <property>
       <name>hadoop.tmp.dir</name>
       <value>/home/hadoop/tmp</value>
  </property>
</configuration>
  • fs.default.name这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。
  • hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在/tmp/hadoop-${user.name}这个路径中
    (2)hfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
  • dfs.replication它决定着系统里面的文件块的数据备份个数。对于一个实际的应用,它应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)
  • dfs.data.dir这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值为file://${hadoop.tmp.dir}/dfs/data这个路径只能用于测试的目的,因为它很可能会丢失掉一些数据。所以这个值最好还是被覆盖。
  • dfs.name.dir这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。
    (3)mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • mapred.job.trackerJobTracker的主机(或者IP)和端口。
    (4)yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
  • yarn.nodemanager.aux-services通过该配置,用户可以自定义一些服务

(5)hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Hadoop基本操作

# 格式化Hadoop文件系统
hadoop namenode -format
# 启动hdfs守护进程(NN、DN)
start-dfs.sh
# 启动YARN(NodeManager、ResourceManager)
start-yarn.sh
#浏览器进入:http://localhost:8088进入ResourceManager管理页面
#浏览器进入:http://localhost:50070进入HDFS页面

Hadoop测试用例

# 在hdfs上创建文件夹
hdfs dfs -mkdir -p /user/hadoop/input
# 上传本地文件到hdfs
hdfs dfs -put xxx.json /user/hadoop/input
# 词频统计
hadoop jar hadoop-mapreduce-examples-2.6.0-sources.jar wordcount /user/hadoop/input output
# 查看结果
hdfs dfs -cat /user/hadoop/output/*

参考文献

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 17岁之前,我们一起聊历史,谈地理,议政治,话军事,一起看报纸,看球赛。小时候你总是夸我聪明,我读幼儿园时就能帮小...
    古籍八字案例分析阅读 725评论 1 3
  • 这本书是日本的石井贵士的“一分钟”系列书中的一本。属于轻量级的书,排版非常简洁,看起来轻松愉快。昨天我在图书馆无...
    彩虹思维阅读 7,391评论 0 3
  • 应用发布上线后,难免会有bug导致应用奔溃异常退出,FC等现象,及时获取错误信息,定位bug位置,成了首要问题。
    JerryloveEmily阅读 301评论 1 0
  • 【想象】: 妲己:李白哥哥我喜欢你! 李白:给你一个怀上小狐仙的机会 【现实】: 妲己:李白哥哥我喜欢你! …… ...
    乔白阅读 479评论 0 0
  • 双面李娟 读李娟《走夜路请放声唱》 第一次读李娟的书是《我的阿勒泰》,像很多人一样,马上就喜欢上了她的作品。清新、...
    岱青阅读 1,039评论 0 2

友情链接更多精彩内容