Hadoop 集群安装配置

Hadoop 集群安装配置

步骤预览及基础工作

  • 安装 jdk
  • 确定集群节点个数,配置安装多个虚拟机,并设置ssh免密登陆 使用hostname修改机器名称
  • 主节点:master
  • 从节点:slaver1、slaver2、slaver3
    192.168.100.100 master
    192.168.100.1 slaver1
    192.168.100.2 slaver2
    192.168.100.3 slaver3
  • 配置SSH免密登录及测试
  • 安装hadoop
  • 初始化、启动hadoop以及测试
  • hadoop执行jar包
  • 常用HDFS命令

配置ssh

前提新建多个虚拟机,修改hostname

 在此处声明一下,使用root用户安装或者新建用户(如 hadoop)安装都可以,只是配置ssh要对安装用户配置ssh,
 同时通过chown –R user:user /directory 将权限控制好即可在此处声明一下,
 使用root用户安装或者新建用户(如 hadoop)安装都可以,
 只是配置ssh要对安装用户配置ssh,
 同时通过chown –R user:user /directory 将权限控制好即可

下面给出三种修改hostname 的方法:

  • 一:hostname master,与修改/etc/hostname文件和/etc/hosts文件一样的效果
  • 二:如果只想修改特定的主机名(静态,瞬态或灵活) hostnamectl --static set-hostname master
    重启后可以使用: hostnamectl –static 、hostname 查看修改结果
  • 三:修改/etc/sysconfig/network配置文件(此文件依然存在,只是是空的),此文件修改后依然会起作用。

ssh免密登录配置

  • 主节点:ssh-keygen -t rsa -P ‘’
    进入到用户的家目录下: cd ~/.ssh
    会看到两个文件: id_rsa和id_rsa.pub
  • 然后每个子节点上执行:ssh-keygen -t rsa -P ‘’
  • 在主节点上 touch ~/.ssh/authorized_keys新建文件
  • 将主节点、所有子节点,上 ~/.ssh/id_rsa.pub 中内容都复制到authorized_keys文件中,
    之后将该文件同步到所有节点中,内容完全一样,并且权限要设置为下图所示:
    ssh配置时产生密钥文件的权限
    配置完成后使用ssh hostname,免密登录就会成功,主节点、子节点之间需互相测试,即ssh配置成功。

安装hadoop

前提:安装完成 jdk
下载hadoop,事例hadoop安装路径为:installation path /opt/hadoop/

基础设置

hadoop 下载地址

hadoop download
解压,安装
cd /opt/hadoop
tar –zxvf hadoop-version.tar.gz

创建hadoop hdfs 实例路径:(以下为六条sgell命令,创建六个路径,使用Path * 来标注,方便理解)
Path1 hadoop hdfs 实例目录
Path2 core-site.xml 文件中hadoop.tmp.dir属性目录,A base for other temporary directories.
Path3 mapred-site.xml文件中 mapred.local.dir属性目录.
Path4 hdfs-site.xml 为hadoop实例目录,可以在该文件中其他属性设置主节点存储目录以及子节点数据目录(Path5、Path6).
Path5 core-site.xml 文件中dfs.name.dir属性目录,主节点的hadoop实例化目录.
Path6 hdfs-site.xml 文件中dfs.data.dir属性目录,子节点的hadoop实例化数据目录,存储hdfs的数据块.  
  • mkdir /root/hadoop Path1
  • mkdir /root/hadoop/tmp Path2
  • mkdir /root/hadoop/var Path3
  • mkdir /root/hadoop/dfs Path4
  • mkdir /root/hadoop/dfs/name Path5
  • mkdir /root/hadoop/dfs/data Path6

下面进行配置文件的修改:

配置文件目录为(以以上安装目录为例):
installation path /opt/hadoop/
profile path /opt/hadoop/hadoop-version/etc/hadoop/
  1. 修改core-site.xml
<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/root/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
   </property>
   <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
   </property>
<property>
  <name>hadoop.security.key.provider.path</name>
  <value>kms://http@master:16000/kms</value>
  <description>
    The KeyProvider to use when interacting with encryption keys used
    when reading and writing to an encryption zone.
  </description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.inmemory.size.mb</name>
<value>200</value>
</property>
</configuration>
  1. 修改hdfs-site.xml
<configuration>
<property>
   <name>dfs.name.dir</name>
   <value>/root/hadoop/dfs/name</value>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/root/hadoop/dfs/data</value>
</property>
<property>
     <name>dfs.encryption.key.provider.uri</name>
     <value>kms://http@master:16000/kms</value>
</property>
<property>
   <name>dfs.replication</name>
   <value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>536870912</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>20</value>
</property>
</configuration>
  1. 修改mapred-site.xml
<configuration>
<property>
    <name>mapred.job.tracker</name>
    <value>master:9001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>
</configuration>
  1. 修改year-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
   </property>
</configuration>
  1. 修改hadoop-env.sh
    export JAVA_HOME=${JAVA_HOME}
    配置jdk 安装路径
    export JAVA_HOME= /path of jdk
  2. 修改slaves
    只需要将子节点的hostname写入文件中即可,按照本文实例为(主节点为master,子节点为slaver*)
    slaver1
    slaver2
    slaver3
  3. kms 加密配置,列举了主要配置项,不需要的可以直接忽略,不用修改
<configuration>
  <!-- KMS Backend KeyProvider -->
  <property>
    <name>hadoop.kms.key.provider.uri</name>
    <value>jceks://file@/${user.home}/kms.keystore</value>
    <description>
      URI of the backing KeyProvider for the KMS.
    </description>
  </property>
  <property>
    <name>hadoop.security.keystore.java-keystore-provider.password-file</name>
    <value>kms.keystore.password</value>
    <description>
      If using the JavaKeyStoreProvider, the file name for the keystore password.
    </description>
  </property>
<property>
     <name>dfs.encryption.key.provider.uri</name>
     <value>kms://http@master:16000/kms</value>
</property>
  <property>
    <name>hadoop.kms.authentication.kerberos.keytab</name>
    <value>${user.home}/kms.keytab</value>
    <description>
      Path to the keytab with credentials for the configured Kerberos principal.
    </description>
  </property>
</configuration>

初始化、启动hadoop

  • 主节点上进行如下操作,初始化hadoop

    cd /opt/hadoop/hadoop-version/bin
    ./hadoop namenode –format

  • 执行结束后会显示一些参数配置以及shutting down Namenode at master/ip 同时 /root/hadoop/dfs/name 下会产生current目录
  • 然后启动hadoop

    cd /opt/hadoop/hadoop-version/sbin
    ./start-all.sh

  • 如果已防火墙关闭ssh配置无误,第一次执行此处会出现两次要求输入yes,然后会有日志产生,日志位于 /opt/hadoop/hadoop-version/logs/
  • 使用jps 命令可以查看java相关的进程

主节点出现:NameNode、ResourceManager、SecondaryNameNode、NodeManager
子节点出现DataNode、Nodemanager,说明启动成功

如果NodeManager未启动成功,可以通过 /sbin/yarn-daemon.sh start nodemanager 
如果ResourceManager未启动成功,可以通过 /sbin/yarn-daemon.sh start resourcemanager 
如果NameNode未启动成功,可以通过 sbin/yarn-daemon.sh start namenode 
如果DataNode未启动成功,可以通过/sbin/yarn-daemon.sh start datanode 

测试hadoop、hdfs是否完好可用。

可以登陆网站测试:
http://master:50070
http://master:8088/cluster

hadoop执行jar包

生成jar包的方式不过多的介绍
建议将hadoop 命令配置成全局可用,进入命令所在目录下执行也可${HADOOP_HOME}/bin/hadoop

hadoop jar ~/path/example.jar com/hadoop/hadoopexample/example /input/examplein /output/exampleout

hadoop jar arg0 arg1 arg2 arg3 ...命令参数 (arg0 加载jar文件)
arg1: com/hadoop/hadoopexample/example		为jar包内的目录结构
arg2: /input/examplein		输入目录
arg3: /output/exampleout		输出目录

常用HDFS命令

查看HDFS状态,该命令查看节点的状态等情况
hadoop dfsadmin -report

命令基本格式 hadoop fs -cmd < args >

  • 与shell ls 用法一样,列举文件目录下的所有文件

    hadoop fs -ls 路径

  • -R 递归文件目录

    hadoop fs -ls -R 路径

  • 上传文件到hdfs

    -hadoop fs -put ~/path/file filename

    • 通过"hadoop fs -put file filename"命令将"master.Hadoop"机器下的"~/path/"目录下的file文件上传到HDFS上并重命名为filename
    • 注:在上传文件时,文件首先复制到DataNode上,只有所有的DataNode都成功接收完数据,文件上传才是成功的。
  • 从hdfs下载文件

    • hadoop fs -get file1 file2
      -通过"hadoop fs -get file1 file2"命令将HDFS中的"file1"文件复制到本地系统并命名为"file2"
  • 从hdfs删除文件

    • hadoop fs –rm -r directory**
    • 删除用户特定目录下的directory文件夹或文件 (-r)
  • 从hdfs查看文件

    • hadoop fs -cat directory/*
    • 通过"-cat 文件"命令查看HDFS下directory下文件中内容
  • cp、mv、du、rm、mkdir、getmerge、count等

    • 这些命令hdfs都支持,用法也类似,因为比较多就不一一列举具体用法

Referrers hadoop.apache.org/docs

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值