OushuDB 安装与升级之安装 HDFS

宗恩 2021-11-25 19:07:12
oushudb-hawq

image.png
由于hadoop依赖于特定版本的snappy,请先卸载snappy确保安装的顺利进行:

hawq ssh -f hostfile -e 'yum remove -y snappy'
HAWQ的HDFS采用HA的方式进行安装配置。安装Hadoop可执行文件。
hawq ssh -f hostfile -e 'yum install -y hadoop hadoop-hdfs'
配置NameNode目录,需要配置的节点有两个,oushum1 和 oushum2。创建nnhostfile,

类似前文hostfile:
touch nnhostfile
配置nnhostfile内容为hadoop的NameNode节点hostname:
oushum1oushum2
创建DataNode主机文件dnhostfile,类似前文nnhostfile:
touch dnhostfile
配置dnhostfile内容为hadoop的DataNode节点hostname:
oushus1oushus2
创建NameNode目录:

hawq ssh -f nnhostfile -e 'mkdir -p /data1/hdfs/namenode'hawq ssh -f nnhostfile -e 'chmod -R 755 /data1/hdfs'hawq ssh -f nnhostfile -e 'chown -R hdfs:hadoop /data1/hdfs'

创建DataNode目录:

hawq ssh -f dnhostfile -e 'mkdir -p /data1/hdfs/datanode'hawq ssh -f dnhostfile -e 'mkdir -p /data2/hdfs/datanode'hawq ssh -f dnhostfile -e 'chmod -R 755 /data1/hdfs'hawq ssh -f dnhostfile -e 'chmod -R 755 /data2/hdfs'hawq ssh -f dnhostfile -e 'chown -R hdfs:hadoop /data1/hdfs'hawq ssh -f dnhostfile -e 'chown -R hdfs:hadoop /data2/hdfs'
复制下列文件到oushum1上的/etc/hadoop/conf/中,
● http://www.oushu.com/docs/ch/_downloads/908bee114673dff44292d2b51ed5a1ce/core-site.xml.
● http://www.oushu.com/docs/ch/_downloads/a57b214c41f418570548204fdf5089b3/hdfs-site.xml.
● http://www.oushu.com/docs/ch/_downloads/5caeda7d6d35f2ab18438c8994e855c1/hadoop-env.sh.
修改hadoop配置文件, 根据各个节点的自身配置决定的,可以参考下面内容进行修改 ,主要是/etc/hadoop/conf目录下的core-site.xml、hdfs-site.xml、hadoop-env.xml和slaves
修改oushum1上的配置文件/etc/hadoop/conf/core-site.xml 首先需要打开HA,即去掉如下所示的HA注释:
<!-- HA
...
HA -->
去掉下面的内容:

<property><name>fs.defaultFS</name><value>hdfs://hdfs-nn:9000</value></property>

修改下面的内容:

<configuration><property><name>fs.defaultFS</name><value>hdfs://oushu</value></property><property><name>ha.zookeeper.quorum</name><value>oushum1:2181,oushum2:2181,oushus1:2181</value></property>...<property><name>ipc.server.listen.queue.size</name><value>3300</value></property>...<configuration>

修改oushum1上的配置文件/etc/hadoop/conf/hdfs-site.xml 首先打开HA,即去掉如下所示的两行注释:
<!-- HA
...
HA -->
HA打开后,修改内容如下:
<configuration><property><name>dfs.name.dir</name><value>file:/data1/hdfs/namenode</value><final>true</final></property><property><name>dfs.data.dir</name><value>file:/data1/hdfs/datanode,file:/data2/hdfs/datanode</value><final>true</final></property>...<property><name>dfs.block.local-path-access.user</name><value>gpadmin</value></property>...<property><name>dfs.domain.socket.path</name><value>/var/lib/hadoop-hdfs/dn_socket</value></property>...<property><name>dfs.block.access.token.enable</name><value>true</value><description>If "true", access tokens are used as capabilities for accessingdatanodes.If "false", no access tokens are checked on accessing datanodes.</description></property>...<property><name>dfs.nameservices</name><value>oushu</value></property><property><name>dfs.ha.namenodes.oushu</name><value>nn1,nn2</value></property><property><name>dfs.namenode.rpc-address.oushu.nn1</name><value>oushum2:9000</value></property><property><name>dfs.namenode.http-address.oushu.nn1</name><value>oushum2:50070</value></property><property><name>dfs.namenode.rpc-address.oushu.nn2</name><value>oushum1:9000</value></property><property><name>dfs.namenode.http-address.oushu.nn2</name><value>oushum1:50070</value></property><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://oushum1:8485;oushum2:8485;oushus1:8485/oushu</value></property><property><name>dfs.ha.automatic-failover.enabled.oushu</name><value>true</value></property><property><name>dfs.client.failover.proxy.provider.oushu</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property><name>dfs.journalnode.edits.dir</name><value>/data1/hdfs/journaldata</value></property>...
修改oushum1上/etc/hadoop/conf/hadoop-env.sh:
...
export JAVA_HOME="/usr/java/default"
...
export HADOOP_CONF_DIR="/etc/hadoop/conf"
...
export HADOOP_NAMENODE_OPTS="-Xmx6144m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70"
export HADOOP_DATANODE_OPTS="-Xmx2048m -Xss256k"
...
export HADOOP_LOG_DIR=/var/log/hadoop/$USER
...

修改oushum1上/etc/hadoop/conf/slaves 将所有DataNode的HostName写入该文件:
oushus1oushus2

拷贝oushum1上/etc/hadoop/conf中的配置文件到所有节点:

hawq scp -r -f hostfile /etc/hadoop/conf =:/etc/hadoop/
在oushum1节点,格式化ZKFailoverController
sudo -u hdfs hdfs zkfc -formatZK

在配置journal的所有节点上,启动journalnode。创建jhostfile,类似前文hostfile,内容为配置journal的节点hostname:
oushum1oushum2oushus1

使用下面的命令,启动journalnode:

hawq ssh -f jhostfile -e 'sudo -u hdfs /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh start journalnode'

格式化并启动oushum1上的NameNode:

sudo -u hdfs hdfs namenode -format -clusterId sssudo -u hdfs /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh start namenode

在另一个NameNode oushum2中进行同步操作,并启动NameNode:

hawq ssh -h oushum2 -e 'sudo -u hdfs hdfs namenode -bootstrapStandby'hawq ssh -h oushum2 -e 'sudo -u hdfs /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh start namenode'

通过hawq ssh启动所有datanode节点:

hawq ssh -f dnhostfile -e 'sudo -u hdfs /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh start datanode'

通过hawq ssh启动oushum2上的zkfc进程,使其成为active namenode:

hawq ssh -h oushum2 -e 'sudo -u hdfs /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh start zkfc'

通过hawq ssh启动oushum1上的zkfc进程,使其成为standby namenode:

hawq ssh -h oushum1 -e 'sudo -u hdfs /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh start zkfc'

检查hdfs是否成功运行:
su - hdfshdfs dfsadmin -reporthdfs dfs -mkdir /testnodehdfs dfs -put /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh /testnode/hdfs dfs -ls -R /

你也可以查看HDFS web界面:http://oushum1:50070/

版权声明
本文为[宗恩]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000041018670

  1. jQuery-实例方法
  2. jQuery-dom和jQuery,入口函数(基本知识)
  3. JavaScript-this指向问题
  4. JavaScript-封装与继承(两种)
  5. JavaScript-包装类型
  6. JavaScript-传值(引用类型,基本类型)
  7. JavaScript-面向对象(构造函数,实例成员,静态成员)
  8. JavaScript-解构赋值
  9. JavaScript-箭头函数
  10. JavaScript-参数
  11. JavaScript-预解析(变量提升)
  12. JavaScript-闭包closure
  13. JavaScript-声明变量的关键字
  14. JavaScript - mot - clé pour déclarer une variable
  15. Fermeture de fermeture JavaScript
  16. JavaScript Pre - parse (promotion des variables)
  17. Paramètres JavaScript
  18. Fonction de flèche JavaScript
  19. JavaScript - déconstruction assignations
  20. Common annotations in springboot
  21. Building CentOS 7.6 with Linux
  22. JavaScript - orienté objet (constructeur, membre d'instance, membre statique)
  23. JavaScript value Transfer (reference type, Basic type)
  24. JavaScript - type d'emballage
  25. linux deepin/ubuntu安装flameshot火焰截图
  26. JavaScript - encapsulation et héritage (deux)
  27. JavaScript JS method for writing 99 multiplication table
  28. 從零開始學java - 第二十五天
  29. Apprendre Java à partir de zéro - jour 25
  30. Les voitures d'hiver, les voitures électriques et les voitures à essence ne sont pas les mêmes?
  31. JavaScript - ceci pointe vers le problème
  32. Copie JavaScript
  33. Spring boot quickly integrates swagger
  34. linux deepin/ubuntu安裝flameshot火焰截圖
  35. Capture d'écran de flamme de l'installateur de flamme Linux deepin / Ubuntu
  36. Jquery DOM et jquery, fonctions d'entrée (bases)
  37. Méthode d'instance jquery
  38. Méthode et démonstration de code dans l'interface de liste en Java
  39. 【错误记录】Java 中 ArrayList 排序 ( 使用 Comparator 接口时注意 compare 返回值是 -1 和 +1 )
  40. Démarrage du Zookeeper
  41. Java oom Cognition
  42. Java 开发者最困惑的四件事,值得一看!,BAT面试文档
  43. Java 将两个对象list里面的 某个字段值抽取到一个list里,java选择排序原理
  44. Java 多线程 —— 生产者消费者问题,从基础到深入案例
  45. Java 中设计模式 之 工厂模式,java反射机制的底层原理
  46. 【錯誤記錄】Java 中 ArrayList 排序 ( 使用 Comparator 接口時注意 compare 返回值是 -1 和 +1 )
  47. 【 enregistrement des erreurs 】 tri ArrayList en Java (Notez que les valeurs de retour de comparaison sont - 1 et + 1 lors de l'utilisation de l'interface de comparaison)
  48. Pourquoi Xiaopeng P5 est - il devenu un grand succès dans le cercle? Le Salon de l'automobile de Guangzhou montre encore des compétences polyvalentes
  49. Java 開發者最困惑的四件事,值得一看!,BAT面試文檔
  50. Les quatre choses les plus déroutantes pour les développeurs Java valent la peine d'être regardées! Document d'entrevue sur les MTD
  51. k8s-Pod污点与容忍
  52. k8s-Pod污点与容忍
  53. K8s POD Contamination and Tolerance
  54. K8s POD Contamination and Tolerance
  55. mysql常用语句——GROUP BY和HAVING
  56. Spring boot quickly integrates swagger
  57. mysql常用語句——GROUP BY和HAVING
  58. MySQL Common statements - group by and having
  59. Le défi du pinceau leetcode - Javascript: 110. Arbre binaire équilibré
  60. [notes d'apprentissage de première ligne] day44: XMLHttpRequest