環境:【centos7、hadoop-2.7.3、zookeeper-3.4.6、hbase-1.2.5】
兩個節點:【主節點,主機名為Master,用戶為root;從節點,主機名為Slave,用戶為root】
1、設置主機名,實現域名通信(所有節點都要改)
修改hostname主機名
hostnamectl set-hostname 主機名 #修改三種主機名
hostnamectl –static set-hostname 主機名 #只會修改static主機名
ifconfig查看ip
我這里虛擬機是橋接模式,網段改成172.168了,根據自己需求進行更改;
在虛擬機的菜單-編輯->虛擬網絡編輯器中能看到信息;
編輯配置文件,sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33,將ip信息添加進去
主節點:172.168.0.223
從節點:172.168.0.222
修改配置文件,sudo vim /etc/hosts(每個主機都要改)
設置dns就可以域名通信了
進入到配置文件中sudo vim /etc/resolv.conf
ping一下,看看能不能通(如果不通,檢查一下防火牆有沒有關)
systemctl status firewalld 檢查防火牆狀態
systemctl stop firewalld 關閉
systemctl disable firewalld 禁用
2、配置ssh免密登錄
① 本機無密鑰登錄(主節點:Master)
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
② 與其他節點的無密鑰登錄
1.從節點一樣執行①中1、2,
2.Master把authorized_keys分發到Slave上(會提示輸入密碼,輸入密碼即可),scp ./authorized_keys username(用戶名)@(ip地址/主機名):/root/.ssh (目錄根據自己機子來)
3.在其他機子上執行①中步驟4授權
4.嘗試連接其他機子,ssh 用戶名@ip地址/域名
免密登錄配置完成!!!
3、安裝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
4、安裝hadoop(主節點安裝后,分發給其他節點就好)
1.同樣解壓,我設的目錄是/usr/local/hadoop
2.配置環境變量
sudo vim /etc/profile
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_HOME HADOOP_COMMON_LIB_NATIVE_DIR PATH
source /etc/profile(使文件生效)
3.修改hadoop的配置文件
進入到/usr/local/hadoop/hadoop-2.7.3/etc/hadoop/目錄下,在hadoop-env.sh和yarn-env.sh兩個文件中添加JAVA_HOME
cd /usr/local/hadoop/hadoop-2.7.3/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"(更改hadoop_opts)
source hadoop-env.sh(使文件生效)
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://172.168.0.223: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>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>master:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/usr/local/hadoop/var</value>
</property>
</configuration>
slaves文件中添加你的主機和節點
4.將hadoop分發到其他節點,用scp命令
scp -r /usr/local/hadoop Slave:/usr/local
5.格式化namenode
進入hadoop-2.7.3下的sbin目錄下執行 命令
hdfs namenode -format
6.啟動hadoop
執行這兩個命令
./start-dfs.sh
./start-yarn.sh
7.jps查看
jps命令找不到的解決辦法:
yum list *openjdk-devel*
yum install java-1.8.0-openjdk-devel.x86_64
8.訪問瀏覽器
9.訪問集群所有應用程序默認8088
5、安裝zookeeper(主從節點都要)
1.同上步驟解壓到/usr/local/zookeeper下
2.進入到目錄conf下,執行cp zoo_sample.cfg zoo.cfg命令,復制 zoo_sample.cfg 到 zoo.cfg文件中
3.編輯zoo.cfg文件 vim zoo.cfg
4.進入到目錄data下,創建myid文件並添加對應的數字
Master節點:1;Slave節點:2;
5.編輯配置文件/etc/profile
ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.6
6.進入到bin目錄下,執行 ./zkServer.sh start,啟動zk服務
【注】:要兩台都啟動,可查看zookeeper.out日志文件查看錯誤
查看zookeeper狀態,一個是leader,一個是follewer
6、安裝hbase(主節點安裝)
所有節點時間要同步!!!
【注】:
查看時間命令 timedatectl
調整硬件時間和本地一致 timedatectl set-local-rtc 1
linux同步時間 ntpdate ntp.sjtu.edu.cn
1.解壓到/usr/local/hbase目錄下
2.修改配置文件 ,到conf目錄下
hbase-env.sh
hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://172.168.0.223:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>16030</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>Master,Slave</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper/data</value>
</property>
<property>
<name>hbase.coprocessor.abortonerror</name>
<value>false</value>
</property>
</configuration>
regionservers (添加從節點)
/etc/profile
HBASE_HOME=/usr/local/hbase/hbase-2.0.5
最終主節點的/etc/profile文件中的配置
最終從節點的/etc/profile文件中的配置
3.scp拷到另一節點
scp -r /usr/local/hbase Slave:/usr/local
【注】:root用戶可直接拷貝至/usr/local/目錄下,非root用戶可先拷貝至home目錄在移動
4.啟動hbase
./start-hbase.sh
5.jps命令查看