centOS7搭建hadoop,zookeeper,hbase

本文详细介绍了在CentOS7环境下搭建Hadoop、Zookeeper及HBase的过程,包括SSH免密登录配置、JDK安装、Hadoop配置及格式化、Zookeeper与HBase的安装与启动等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、配置ssh免密登录

(本人使用的是centOS7虚拟机)
(本人未在root用户下安装,建议使用root用户,不然很麻烦!!)

① 本机无密钥登录

1.进入~/.ssh目录(若无,则执行一次ssh localhost),

2.执行ssh-keygen -t rsa命令(回车即可),

1109937-20190716172513288-1019411931.png
我弄过了所以已经有啦!

3.再执行cat ./id_rsa.pub >> ./authorized_keys命令,把id_rsa.pub追加到授权的key里面,

4.给authorized_keys授权chmod 644 authorized_keys, ls -al ~/.ssh命令看权限,

1109937-20190716172739050-1614443271.png

5.重启 sudo service sshd restart,

1109937-20190716172901315-467177204.png

6.连接 ssh localhost(yes/no,手动输入yes)

7.退出 exit

1109937-20190716172827496-583717283.png
我这里主机名为renee22,用户名为dingrong

② 与其他机子的无密钥登录

1.其他机子一样执行①中1、2,

2.本机把authorized_keys分发到其他机子上(会提示输入密码,输入密码即可),scp ./authorized_keys username(用户名)@(ip地址/主机名):/root/.ssh (目录根据自己机子来)

1109937-20190716173107724-26396498.png
我这里另一个机子的主机名为renee13,用户名为dingr

3.在其他机子上执行①中步骤4授权

4.尝试连接其他机子,ssh 用户名@ip地址/域名

1109937-20190716173240937-2023370559.png

③ 若有错误

1.进入/etc/ssh/sshd_config文件,

1109937-20190716173453971-1921280074.png

RSAAuthentication yes
PubkeyAuthentication yes
这两个注释去掉
1109937-20190716173424837-988754149.png

2.authorized_keys文件权限问题,记得授权

3.本机能不能访问22端口,命令lsof -i:22

1109937-20190716173537323-1911043310.png

4.分发authorized_keys时,注意用户名和主机名要对应上,不然密码输入会错误。

④主机直接域名通信(需要通信的主机都要改)

ifconfig查看ip

1109937-20190716174758201-1952253965.png

在虚拟机的菜单-编辑->虚拟网络编辑器中能看到gateway

1109937-20190716175140412-1063341247.png

1109937-20190716174949752-1612944586.png

编辑配置文件,sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33,将ip信息添加进去

1109937-20190716174636673-1063731203.png

1109937-20190716174623075-252328132.png
我这里主机ip为192.168.136.133,另一个是192.168.136.130

ping一下,看看能不能通(如果不通,检查一下防火墙有没有关)

1109937-20190716175318932-257658672.png

设置dns就可以域名通信了

进入到配置文件中sudo vim /etc/resolv.conf
1109937-20190716175709962-1570030160.png

1109937-20190716175621768-2146723839.png

修改hostname主机名

hostnamectl set-hostname 主机名 #修改三种主机名
hostnamectl –static set-hostname 主机名 #只会修改static主机名

修改配置文件,sudo vim /etc/hosts(每个主机都要改)

1109937-20190719113445823-792813033.png

ping 主机名

1109937-20190716180143467-1016570727.png

2、安装jdk(两个机子都要装)

先删除centos7自带的openjdk
①rpm -qa | grep java
②rpm -e --nodeps Openjdk

(我装的是jdk1.8.0_221)
jdk下载地址
需要登录哦!!!

1.下载完成后解压到/usr/local/java目录下(没有java目录就创建)

  tar -xzvf  jdk-8u221-linux-x64.tar.gz

2.配置环境变量

  sudo vim /etc/profile

  JAVA_HOME=/usr/local/java/jdk1.8.0_221
  JRE_HOME=$JAVA_HOME/jre
  CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
  PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  export JAVA_HOME JRE_HOME CLASS_PATH  PATH

  source /etc/profile(使文件生效)

3.验证

  java -version

3、安装hadoop

hadoop下载地址
1109937-20190719115017783-1784280986.png

1.同样解压,我设的目录是/usr/local/hadoop

2.配置环境变量

  sudo vim /etc/profile

  JAVA_HOME=/usr/local/java/jdk1.8.0_221
  JRE_HOME=$JAVA_HOME/jre
  CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
  HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  export JAVA_HOME JRE_HOME CLASS_PATH HADOOP_HOME HADOOP_COMMON_LIB_NATIVE_DIR PATH


  source /etc/profile(使文件生效)

在上面jdk环境变量下添加就好。

3.修改hadoop的配置文件

进入到/usr/local/hadoop/hadoop-2.7.7/etc/hadoop/目录下,在hadoop-env.sh和yarn-env.sh两个文件中添加JAVA_HOME

  cd /usr/local/hadoop/hadoop-2.7.7/etc/hadoop
  sudo vim hadoop-env.sh

    export JAVA_HOME=/usr/local/java/jdk1.8.0_221
    export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7
    export HDFS_NAMENODE_USER=dingrong
    export HDFS_DATANODE_USER=dingrong
    export HDFS_SECONDARYNAMENODE_USER=dingrong
    export YARN_RESOURCEMANAGER_USER=dingrong
    export YARN_NODEMANAGER_USER=dingrong
    
    export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"(更改hadoop_opts)

  source  hadoop-env.sh(使文件生效)

  sudo vim yarn-env.sh
    # export JAVA_HOME=/home/y/libexec/jdk1.6.0/
    export JAVA_HOME=/usr/local/java/jdk1.8.0_221
  source yarn-env.sh

另外还有四个site.xml的文件需要配置

core-site.xml

<configuration>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://renee22:9000</value>
    <description>HDFS的URI,文件系统://namenode标识:端口号</description>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
    <description>namenode上本地的hadoop临时文件夹</description>
</property>
</configuration>

1109937-20190719141054063-833151636.png

hdfs-site.xml

<configuration>
<property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>副本个数,配置默认是3,应小于datanode机器数量</description>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/dfs/data</value>
</property>
</configuration>

1109937-20190719141210449-727955683.png

yarn-site.xml
先执行 hadoop classpath命令,并复制返回的地址
1109937-20190719141507952-173128787.png

1109937-20190719141440481-771802211.png

mapred-site.xml
1109937-20190719141604448-1375559179.png

slaves文件中添加你的主机和节点
1109937-20190719142348386-944668203.png

4.将hadoop分发到其他节点,用scp命令

1109937-20190719141853012-899979976.png

5.格式化namenode

进入hadoop-2.7.7下的sbin目录下执行 命令

hdfs namenode -format

1109937-20190719143605654-862965076.png
如果格式化错误为
ERROR namenode.NameNode: java.io.IOException: Cannot create directory /export/home/dfs/name/current
ERROR namenode.NameNode: java.io.IOException: Cannot remove current directory: /usr/local/hadoop/hdfsconf/name/current
执行命令

sudo chmod -R a+w /usr/local/hadoop

1109937-20190719143953928-1272601832.png

6.启动hadoop

执行这两个命令
./start-dfs.sh
./start-yarn.sh

7.jps查看

1109937-20190719144214978-913370808.png

1109937-20190719144239137-1887763778.png

8.访问浏览器

http://192.168.136.133:50070或者http://renee22:50070( 这个在两个虚拟机也就是两个节点上都能访问!)
1109937-20190719150819214-33819641.png

1109937-20190719150907553-1535362528.png

9.访问集群所有应用程序默认8088

1109937-20190719151607794-128374155.png

4、安装zookeeper(主从节点都要)

zookeeper下载地址

1.同上步骤解压到/usr/local/zookeeper下

1109937-20190722164021511-1053735817.png

2.进入到目录conf下,执行cp zoo_sample.cfg zoo.cfg命令,复制 zoo_sample.cfg 到 zoo.cfg文件中

1109937-20190722164500804-414258103.png

3.编辑zoo.cfg文件sudo vim zoo.cfg

1109937-20190722164543460-855230230.png

4.进入到目录data下,创建myid文件并添加1(在dingrong@renee22中【换成自己的】),2(在dingr@renee13中)

1109937-20190722164741836-1579730345.png
1109937-20190722165003848-319265667.png
1109937-20190722165045494-572794727.png

5.编辑配置文件/etc/profile

ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.14
1109937-20190722174130378-249238308.png

6.进入到bin目录下,执行 ./zkServer.sh start,启动zk服务

【注】:要两台都启动,可查看zookeeper.out日志文件查看错误
查看zookeeper状态,一个是leader,一个是follewer
1109937-20190722165537263-351259323.png
1109937-20190722165619472-1237732126.png

5、安装hbase

hbase下载地址

1.解压到/usr/local/hbase目录下

1109937-20190722170154785-1112399129.png

2.修改配置文件 ,到conf目录下

hbase-env.sh

1109937-20190722173220899-1361320313.png

1109937-20190722173238584-1718078393.png

hbase-site.xml

1109937-20190722173709571-766157250.png

regionservers

1109937-20190722173818881-1936211023.png

/etc/profile

HBASE_HOME=/usr/local/hbase/hbase-2.0.5
1109937-20190722173923042-1205093899.png
(记得source生效)

3.scp拷到另一节点

dingrong@renee22执行
scp -r /usr/local/hbase dingr@renee13:/home/dingr
dingr@renee13执行
mv ~/hbase /usr/local/

【注】:root用户可直接拷贝至/usr/local/目录下,非root用户可先拷贝至home目录在移动

4.启动hbase

1109937-20190722174802266-1445681205.png

5.jps命令查看

1109937-20190722180104670-81326935.png

1109937-20190722180044182-1463568646.png

6.浏览器查看

1109937-20190723112712257-273846008.png

1109937-20190723105952528-273980759.png

1109937-20190723110059018-1146046577.png

【注】:
查看时间命令 timedatectl
调整硬件时间和本地一致 timedatectl set-local-rtc 1
linux同步时间 ntpdate ntp.sjtu.edu.cn

这个从节点的webUI一直是这样,显示不出来,我也没解决掉,所以我换root用户重装了。

传送门:
root用户搭建完整hadoop,zookeeper和hbase

posted on 2019-07-16 18:04 TSlover 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/TSlover/p/11196371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值