yum安装CDH5.5 Hadoop集群(3)

<property> 
<name>hadoop.proxyuser.httpfs.hosts</name> 
<value>*</value> 
</property> 
<property> 
<name>hadoop.proxyuser.httpfs.groups</name> 
<value>*</value> 
</property>

4.6配置LZO
安装lzo:

# yum install hadoop-lzo* impala-lzo  -y

最后,在 /etc/hadoop/conf/core-site.xml 中添加如下配置:

<property>
  <name>io.compression.codecs</name>
  <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.BZip2Codec,com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec</value>
</property>
<property>
  <name>io.compression.codec.lzo.class</name>
  <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

更多关于LZO信息,请参考:Using LZO Compression

4.7配置Snappy
cdh 的 rpm 源中默认已经包含了 snappy ,直接在每个节点安装Snappy:

yum install snappy snappy-devel  -y

然后,在 core-site.xml 中修改io.compression.codecs的值,添加 org.apache.hadoop.io.compress.SnappyCodec 。

使 snappy 对 hadoop 可用:

ln -sf /usr/lib64/libsnappy.so /usr/lib/hadoop/lib/native/

4.8HA配置
安装服务
在 75、76、77 上安装 hadoop-hdfs-journalnode

yum install hadoop-hdfs-journalnode -y

在 74、75(namenode) 上安装 hadoop-hdfs-zkfc:

yum install hadoop-hdfs-zkfc -y

修改配置文件

修改/etc/hadoop/conf/core-site.xml,做如下修改:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://bd-ops-test:8020</value>
</property>
<property>
    <name>ha.zookeeper.quorum</name>
    <value>bd-ops-test-75:2181,bd-ops-test-76:2181,bd-ops-test-77:2181</value>
</property>

修改/etc/hadoop/conf/hdfs-site.xml

<property>
        <name>dfs.nameservices</name>
        <value>bd-ops-test</value>
    </property>
 
    <property>
        <name>dfs.ha.namenodes.bd-ops-test</name>
        <value>bd-ops-test-74,bd-ops-test-75</value>
    </property>
 
    <property>
        <name>dfs.namenode.rpc-address.bd-ops-test.bd-ops-test-74</name>
        <value>bd-ops-test-74:8020</value>
    </property>
 
    <property>
        <name>dfs.namenode.rpc-address.bd-ops-test.bd-ops-test-75</name>
        <value>bd-ops-test-75:8020</value>
    </property>
 
    <property>
        <name>dfs.namenode.http-address.bd-ops-test.bd-ops-test-74</name>
        <value>bd-ops-test-74:50070</value>
    </property>
 
    <property>
        <name>dfs.namenode.http-address.bd-ops-test.bd-ops-test-75</name>
        <value>bd-ops-test-75:50070</value>
    </property>
 
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://bd-ops-test-75:8485;bd-ops-test-76:8485;bd-ops-test-77:8485/bd-ops-test</value>
    </property>
 
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/hadoop/data1/hdfs/jn</value>
    </property>
 
    <property>
        <name>dfs.client.failover.proxy.provider.bd-ops-test</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
 
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
 
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/var/lib/hadoop-hdfs/.ssh/id_rsa</value>
    </property>
 
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>

4.9启动HDFS
将74上的配置文件同步到每一个节点:

scp -r /etc/hadoop/conf root@bd-ops-test-75:/etc/hadoop/
scp -r /etc/hadoop/conf root@bd-ops-test-76:/etc/hadoop/
scp -r /etc/hadoop/conf root@bd-ops-test-77:/etc/hadoop/

在74节点格式化NameNode:

sudo -u hdfs hadoop namenode -format

启动journalnode
启动75、76、77上的 hadoop-hdfs-journalnode 服务

service hadoop-hdfs-journalnode start

初始化共享存储
在namenode上初始化共享存储,如果没有格式化,则先格式化:

hdfs namenode -initializeSharedEdits

启动第一个namenode(74)

service hadoop-hdfs-namenode start

同步 Standby NameNode
75作为 Standby NameNode,运行

sudo -u hdfs hadoop namenode -bootstrapStandby

然后,启动 Standby NameNode:

service hadoop-hdfs-namenode start

配置自动切换
在两个NameNode上,即74和75,安装hadoop-hdfs-zkfc

yum install hadoop-hdfs-zkfc -y

在任意一个NameNode上下面命令,其会创建一个znode用于自动故障转移

hdfs zkfc -formatZK

然后再两个 NameNode 节点上启动zkfc:

service hadoop-hdfs-zkfc start

启动datanode
在datanode节点运行:

service hadoop-hdfs-datanode start

如果安装了HttpFS,则启动 HttpFS 服务:

service hadoop-httpfs start

4.10测试
使用 curl 运行下面命令,可以测试 webhdfs 并查看执行结果:

# curl "http://localhost:14000/webhdfs/v1?op=gethomedirectory&user.name=hdfs"
{"Path":"\/user\/hdfs"}

更多的 API,请参考 WebHDFS REST API

分别访问 :50070/ 和 :50070/ 查看谁是 active namenode,谁是 standyby namenode。

查看某Namenode的状态:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/739836c3dc4f0e7caf4694fe154de230.html