服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 聊聊Linux 安装Hadoop和Hbase

聊聊Linux 安装Hadoop和Hbase

2020-11-19 22:32今日头条linux运维菜 Linux

本文给大家介绍Linux 安装Hadoop和Hbase的实践和运用,希望对你有所帮助。

环境介绍

三台CentOS7主机

  • 192.168.122.101 hdfs1
  • 192.168.122.102 hdfs2
  • 192.168.122.103 hdfs3

其中hdfs1为主节点,其他为从节点。

安装配置三台都是一样的,做ssh免密码验证,如果只要在主节点hdfs1操作,只做hdfs1到其他节点信任即可。

如果三台都互相信任,这样子在哪台都可以操作是一样的。

修改内核参数

  1. vim /etc/sysctl.conf 

  1. net.ipv4.tcp_syn_retries = 1 
  2. net.ipv4.tcp_synack_retries = 1 
  3. net.ipv4.tcp_keepalive_time = 600 
  4. net.ipv4.tcp_keepalive_probes = 3 
  5. net.ipv4.tcp_keepalive_intvl =15 
  6. net.ipv4.tcp_retries2 = 5 
  7. net.ipv4.tcp_fin_timeout = 2 
  8. net.ipv4.tcp_max_tw_buckets = 65536 
  9. net.ipv4.tcp_tw_recycle = 1 
  10. net.ipv4.tcp_tw_reuse = 1 
  11. net.ipv4.tcp_max_orphans = 32768 
  12. net.ipv4.tcp_syncookies = 1 
  13. net.ipv4.tcp_max_syn_backlog = 16384 
  14. net.ipv4.tcp_wmem = 8192 131072 16777216 
  15. net.ipv4.tcp_rmem = 32768 131072 16777216 
  16. net.ipv4.tcp_mem = 786432 1048576 1572864 
  17. net.ipv4.ip_local_port_range = 1024 65000 
  18. net.ipv4.ip_conntrack_max = 65536 
  19. net.ipv4.netfilter.ip_conntrack_max=65536 
  20. net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 
  21. net.core.somaxconn = 16384 
  22. net.core.netdev_max_backlog = 16384 
  23. vm.max_map_count = 262144 

修改句柄限制

  1. vim /etc/security/limits.conf 

  1. * soft noproc 655360 
  2. * hard noproc 655360 
  3. * soft nofile 655360 
  4. * hard nofile 655360 

设置主机名解析

在不同的节点,设置对应的主机名

  1. hostnamectl set-hostname hdfs1 

添加hosts记录,也可以使用dns进行解析,比较灵活。

  1. vim /etc/hosts 

  1. 192.168.122.101   hdfs1 
  2. 192.168.122.102   hdfs2 
  3. 192.168.122.103   hdfs3 

创建用户和目录

  1. useradd  hadoop  
  2. passwd hadoop 
  3. mkdir -p  /apps/ 
  4. mkdir -pv /data/hdfs/hadoop 
  5. mkdir -pv /data/hdfs/hbase 
  6. chown hadoop.hadoop  /data/hadoop   /data/hbase 

设置ssh免密码

  1. su - hadoop 
  2.  
  3. ssh-keygen 
  4.  
  5. ssh-copy-id hadoop@hdfs1 
  6.  
  7. ssh-copy-id hadoop@hdfs1 
  8.  
  9. ssh-copy-id hadoop@hdfs1 

ssh-keygen产生密钥的时候一直回车就可以完成创建

ssh-copy-id的时候需要输入hadoop的密码

下载jdk

下载地址:

www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

需要登陆之后才能下载

  1. tar zxvf jdk-8u271-linux-x64.tar.gz 
  2. mv jdk-8u271-linux-x64 /apps/ 
  3. cd /apps/ 
  4. ln -s jdk1.8.0_271 jdk 
  5. cd -  
  6. if grep '# modify by script' /etc/profile >>/dev/null 2>&1; then 
  7.     echo "alread set JAVA_HOME" 
  8. else 
  9.     cp /etc/profile /etc/profile_bak$(date +%Y%m%d%H%M%S) 
  10.     cat >>/etc/profile <<EOF 
  11. modify by script 
  12. export JAVA_HOME=/apps/jdk 
  13. export PATH=\${JAVA_HOME}/bin:/apps/hadoop/bin:/apps/hbase/bin:\$PATH 
  14. EOF 
  15. fi 

下载hadoop和hbase

  1. mirrors.aliyun.com/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz 
  2.  
  3. archive.apache.org/dist/hbase/1.3.5/hbase-1.3.5-bin.tar.gz 

  1. tar zxvf hadoop-2.7.7.tar.gz 
  2. tar zxvf hbase-1.3.5-bin.tar.gz 
  3. mv hadoop-2.7.7  hbase-1.3.5   /apps/ 
  4. cd /apps 
  5. ln -s hadoop-2.7.7 hadoop 
  6. ln -s hbase-1.3.5 hbase 
  7. cd -  

配置hadoop

1.配置namenod

  1. vim /apps/hadoop/etc/hadoop/core-site.xml 

添加内容

  1. <configuration> 
  2.  <property> 
  3.     <!-- 指定namenode通信地址 --> 
  4.         <name>fs.defaultFS</name
  5.         <value>hdfs://hdfs1:9000</value> 
  6.     </property> 
  7.     <!-- 指定hadoop运行时产生文件的存储路径 --> 
  8.     <property> 
  9.         <name>hadoop.tmp.dir</name
  10.         <value>/data/hdfs/hadoop/tmp</value> 
  11.     </property> 
  12. </configuration> 

2.配置namenode和datanode

  1. vim /apps/hadoop/etc/hadoop/hdfs-site.xml 

在文件后面添加内容

  1. <configuration> 
  2.   <!-- 设置namenode的http通讯地址 --> 
  3.     <property> 
  4.         <name>dfs.namenode.http-address</name
  5.         <value>hdfs1:50070</value> 
  6.     </property> 
  7. ​ 
  8.     <!-- 设置secondarynamenode的http通讯地址 --> 
  9.     <property> 
  10.         <name>dfs.namenode.secondary.http-address</name
  11.         <value>hdfs2:50070</value> 
  12.     </property> 
  13. ​ 
  14.     <!-- 设置namenode存放的路径 --> 
  15.     <property> 
  16.         <name>dfs.namenode.name.dir</name
  17.         <value>/data/hdfs/hadoop/name</value> 
  18.     </property> 
  19. ​ 
  20.     <!-- 设置hdfs副本数量 --> 
  21.     <property> 
  22.         <name>dfs.replication</name
  23.         <value>2</value> 
  24.     </property> 
  25.     <!-- 设置datanode存放的路径 --> 
  26.     <property> 
  27.         <name>dfs.datanode.data.dir</name
  28.         <value>/data/hdfs/hadoop/datanode</value> 
  29.     </property> 
  30. ​ 
  31.     <property> 
  32.         <name>dfs.permissions</name
  33.         <value>false</value> 
  34.     </property> 
  35. </configuration> 

3.配置环境变量

  1. vim /apps/hadoop/etc/hadoop/hadoo-env.sh 

修改JAVA_HOME

  1. export JAVA_HOME=/apps/jdk 

也可以根据具体的需求设置堆栈之类的参数

4.设置主节点

  1. vim /apps/hadoop/etc/hadoop/master 

添加主节点,一般使用主机名

  1. hdfs1 

5.设置从节点

  1. vim /apps/hadoop/etc/hadoop/slave 

添加从节点,一般使用主机名

  1. hdfs1 
  2.  
  3. hdfs2 
  4.  
  5. hdfs3 

配置hbase

1.配置环境变量

  1. vim /apps/hbase/conf/hbase-env.sh 

修改JAVA_HOME变量即可

  1. export JAVA_HOME=/apps/jdk 

也可以根据具体的需求设置堆栈之类的参数

2.设置hadoop和zookeeper等信息

  1. vim /apps/hbase/conf/hbase-site.xml 

添加内容

  1. <configuration> 
  2. <property> 
  3.         <name>hbase.rootdir</name
  4.     <!-- hbase存放数据目录 --> 
  5.         <value>hdfs://hdfs1:9000/hbase/hbase_db</value> 
  6.         <!-- 端口要和Hadoop的fs.defaultFS端口一致--> 
  7. </property> 
  8. <property> 
  9.         <name>hbase.cluster.distributed</name>  
  10.     <!-- 是否分布式部署 --> 
  11.         <value>true</value> 
  12. </property> 
  13. <property> 
  14.         <name>hbase.zookeeper.quorum</name
  15.         <!-- zookooper 服务启动的节点,只能为奇数个 --> 
  16.         <value>hdfs1,hdfs2,hdfs3</value> 
  17. </property> 
  18. <property> 
  19.         <!--zookooper配置、日志等的存储位置,必须为以存在 --> 
  20.         <name>hbase.zookeeper.property.dataDir</name
  21.         <value>/data/hdfs/hbase/zookeeper</value> 
  22. </property> 
  23. <property> 
  24.         <!--hbase web 端口 --> 
  25.         <name>hbase.master.info.port</name
  26.         <value>16610</value> 
  27. </property> 
  28. </configuration> 
  1. vim /apps/hbase/conf/regionservers 

  1. hdfs1 
  2. hdfs2 
  3. hdfs3 

启动测试

  1. su - hadoop  
  2. /apps/hadoop/sbin/start-all.sh 
  3. /apps/hbase/bin/start-hbase.sh 

总结

这些步骤只是简单的部署,具体应用需要经过测试并做出对应的调整。

延伸 · 阅读

精彩推荐
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08