centOS7搭建hadoop,zookeeper,hbase


1、配置ssh免密登錄

(本人使用的是centOS7虛擬機)
(本人未在root用戶下安裝,建議使用root用戶,不然很麻煩!!)

① 本機無密鑰登錄

1.進入~/.ssh目錄(若無,則執行一次ssh localhost),

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


我弄過了所以已經有啦!

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

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

5.重啟 sudo service sshd restart,

6.連接 ssh localhost(yes/no,手動輸入yes)

7.退出 exit


我這里主機名為renee22,用戶名為dingrong

② 與其他機子的無密鑰登錄

1.其他機子一樣執行①中1、2,

2.本機把authorized_keys分發到其他機子上(會提示輸入密碼,輸入密碼即可),scp ./authorized_keys username(用戶名)@(ip地址/主機名):/root/.ssh (目錄根據自己機子來)


我這里另一個機子的主機名為renee13,用戶名為dingr

3.在其他機子上執行①中步驟4授權

4.嘗試連接其他機子,ssh 用戶名@ip地址/域名

③ 若有錯誤

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

RSAAuthentication yes
PubkeyAuthentication yes
這兩個注釋去掉

2.authorized_keys文件權限問題,記得授權

3.本機能不能訪問22端口,命令lsof -i:22

4.分發authorized_keys時,注意用戶名和主機名要對應上,不然密碼輸入會錯誤。

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

ifconfig查看ip

在虛擬機的菜單-編輯->虛擬網絡編輯器中能看到gateway

編輯配置文件,sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33,將ip信息添加進去


我這里主機ip為192.168.136.133,另一個是192.168.136.130

ping一下,看看能不能通(如果不通,檢查一下防火牆有沒有關)

設置dns就可以域名通信了

進入到配置文件中sudo vim /etc/resolv.conf

修改hostname主機名

hostnamectl set-hostname 主機名 #修改三種主機名
hostnamectl –static set-hostname 主機名 #只會修改static主機名

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

ping 主機名

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下載地址

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>

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>

yarn-site.xml
先執行 hadoop classpath命令,並復制返回的地址

mapred-site.xml

slaves文件中添加你的主機和節點

4.將hadoop分發到其他節點,用scp命令

5.格式化namenode

進入hadoop-2.7.7下的sbin目錄下執行 命令

hdfs namenode -format


如果格式化錯誤為
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

6.啟動hadoop

執行這兩個命令
./start-dfs.sh
./start-yarn.sh

7.jps查看

8.訪問瀏覽器

http://192.168.136.133:50070或者http://renee22:50070( 這個在兩個虛擬機也就是兩個節點上都能訪問!)

9.訪問集群所有應用程序默認8088

4、安裝zookeeper(主從節點都要)

zookeeper下載地址

1.同上步驟解壓到/usr/local/zookeeper下

2.進入到目錄conf下,執行cp zoo_sample.cfg zoo.cfg命令,復制 zoo_sample.cfg 到 zoo.cfg文件中

3.編輯zoo.cfg文件sudo vim zoo.cfg

4.進入到目錄data下,創建myid文件並添加1(在dingrong@renee22中【換成自己的】),2(在dingr@renee13中)



5.編輯配置文件/etc/profile

ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.14

6.進入到bin目錄下,執行 ./zkServer.sh start,啟動zk服務

【注】:要兩台都啟動,可查看zookeeper.out日志文件查看錯誤
查看zookeeper狀態,一個是leader,一個是follewer

5、安裝hbase

hbase下載地址

1.解壓到/usr/local/hbase目錄下

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

hbase-env.sh

hbase-site.xml

regionservers

/etc/profile

HBASE_HOME=/usr/local/hbase/hbase-2.0.5

(記得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

5.jps命令查看

6.瀏覽器查看

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

這個從節點的webUI一直是這樣,顯示不出來,我也沒解決掉,所以我換root用戶重裝了。

傳送門:
root用戶搭建完整hadoop,zookeeper和hbase


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM