單機搭建大數據環境

一、準備

1.1 系統及軟件版本

  • ubuntu 20.04
  • jdk1.8.0_151
  • hadoop-3.2.4
  • apache-zookeeper-3.6.3-bin
  • hbase-2.4.13
  • phoenix-hbase-2.4-5.1.2-bin
  • kafka_2.12-2.8.1
  • kafka-eagle-bin-1.4.8

1.2 軟件包拷貝

可將上述軟件包拷貝到/opt目錄下

1.3 SSH 設置

1.3.1 設置ssh可以通過root用戶登陸

設置root用戶密碼

sudo passwd

設置允許ssh以root用戶登陸

# 先安裝ssh-server
sudo apt install openssh-server
# 修改sshd_config配置
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

重啓ssh服務,使配置生效

sudo service ssh restart

1.3.2 SSH無密碼登陸 (在master主機進行如下操作)

切換到root用戶(注:之後所有操作均以root用戶執行)

sudo su

用rsa生成密鑰,一路回車。

ssh-keygen -t rsa

把公鑰複製一份,並改名爲authorized_keys

cd /root/.ssh
cp id_rsa.pub authorized_keys

1.4 JDK安裝

解壓

cd /opt
tar xavf ./jdk-8u151-linux-x64.tar.gz

建立軟連接

cd /usr/local
ln -s /opt/jdk1.8.0_151 java

將JDK環境變量配置到/etc/profile中(注:如果不好使也可以配置到 /root/.bashrc中)

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin

檢查JDK是否配置好

source /etc/profile
javac -version

提示 javac 1.8.0_151代表JDK安裝完成

1.5 修改主機名和host

注意:需要有root權限

修改主機名爲:single

# 修改hostname文件,變改主機名爲"single"
echo "single" > /etc/hostname

修改hosts,明確主機名對應的ip地址,假設當前ip爲 192.168.100.123

# 修改hosts文件,追加一條記錄"
echo "192.168.100.123 single" >> /etc/hosts

重啓主機生效。

1.5 創建數據相關目錄

# 創建bigdata目錄,後邊各組件讓數據都會放在這個目錄下
mkdir -p /home/bigdata

# 給權限
chmod 777 /home/bigdata

二、Hadoop搭建

2.1 Hadoop安裝

解壓 ,並在/home/bigdata/hadoop目錄下創建tmp。然後在/usr/local目錄下創建對應的軟鏈接。

注意:需要將這些目錄放到空間大的盤下(e.g. /home),避免應爲硬盤空間不足引發錯誤

可通過 df -h 命令查看各分區大小

# 解壓
cd /opt
tar xavf ./hadoop-3.2.4.tar.gz

# 創建對應目錄
mkdir -p /home/bigdata/hadoop/tmp

# 創建軟鏈接
cd /usr/local/
ln -s /opt/hadoop-3.1.3 hadoop

2.2 Hadoop配置

以下操作都在/usr/local/hadoop/etc/hadoop下進行

2.2.1 hadoop-env.sh

# 修改JAVA_HOME配置項爲JDK安裝目錄
export JAVA_HOME=/usr/local/java

# 設置HADOOP根目錄
export HADOOP_HOME=/usr/local/hadoop

# 設置HADOOP本地庫,主要是給hbase提供壓縮算法用
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

# 修改日誌級別,避免長期跑日誌文件太多問題
# 注意:測試發現只有這一個有用,別的都不好使
export HADOOP_DAEMON_ROOT_LOGGER=WARN,console

2.2.2 core-site.xml

hadoop.tmp.dir : hadoop集羣在工作的時候存儲的一些臨時文件的目錄

<configuration>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://single:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/bigdata/hadoop/tmp</value>
  </property>

</configuration>

2.2.3 hdfs-site.xml

dfs.replication:hdfs的副本數設置。也就是上傳一個文件,其分割爲block塊後,每個block的冗餘副本個數,這裏設置爲1。

<configuration>

  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>

</configuration>

2.2.4 mapred-site.xml

<configuration>

  <property>
    <name>mapred.job.tracker</name>
    <value>single:9001</value>
  </property>

</configuration>

2.25 workers

設置運行節點爲當前主機(名)

single

2.3 Hadoop啓動

2.3.1 啓動前先設置一下環境變量,避免啓動遇到各種問題

/etc/profile最後,追加如下內容:

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

2.3.2 格式化一個新的文件系統

注意:第一次搭建的時候格式化一次就好!!不要重複format

cd /usr/local/hadoop/bin
./hadoop namenode -format

2.3.2 啓動HDFS

cd /usr/local/hadoop/sbin
# 啓動
./start-all.sh
 
# 停止
#./stop-all.sh

通過jps檢查是否啓動成功

$ jps
23968 NodeManager
23553 DataNode
23874 ResourceManager
23715 SecondaryNameNode
23429 NameNode

三、ZOOKEEPER搭建

3.1 ZooKeeper安裝

解壓,在/usr/local下創建軟鏈接

# 解壓
cd /opt
tar xavf ./apache-zookeeper-3.6.3-bin.tar.gz

# 創建軟鏈接
cd /usr/local
ln -s /opt/apache-zookeeper-3.6.3-bin zookeeper

# 創建數據目錄
mkdir -p /home/bigdata/zookeeper

3.2 ZooKeeper配置

3.2.1 zoo.cfg

調試用,使用默認配置即可

cp zoo_sample.cfg zoo.cfg

修改 zoo.cfg

dataDir=/home/bigdata/zookeeper

3.2.2 啓動

bin/zkServer.sh start

四、HBASE搭建

4.1 HBase安裝

解壓,創建軟鏈接

# 解壓
cd /opt
tar xavf ./hbase-2.4.13-bin.tar.gz

# 創建軟鏈接
cd /usr/local
ln -s /opt/hbase-2.4.13 hbase

# 創建數據目錄
mkdir -p /home/bigdata/hbase/tmp

4.2 HBase配置

以下配置文件在/usr/local/hbase/conf目錄下

4.2.1 hbase-env.sh

#修改JAVA_HOME配置項爲JDK安裝目錄
export JAVA_HOME=/usr/local/java

# 不使用hbase自帶的zookeeper
export HBASE_MANAGES_ZK=false

4.2.2 hbase-site.xml

hbase.rootdir: HBase集羣中所有RegionServer共享目錄,用來持久化HBase的數據,一般設置的是hdfs的文件目錄

hbase.zookerper.quorum: zookooper 服務啓動的節點,只能爲奇數個

<?xml version="1.0" encoding="utf-8"?>

<configuration> 
  <!-- HBase集羣中所有RegionServer共享目錄,用來持久化HBase的數據,一般設置的是hdfs的文件目錄 -->  
  <property> 
    <name>hbase.rootdir</name>  
    <value>hdfs://single:9000/hbase</value> 
  </property>  
  <!-- zookeeper集羣的URL配置,多個host中間用逗號(,)分割-->  
  <property> 
    <name>hbase.zookeeper.quorum</name>  
    <value>single</value> 
  </property>  
  <!-- 本地文件系統tmp目錄,一般配置成local模式的設置一下-->  
  <property> 
    <name>hbase.tmp.dir</name>  
    <value>/home/bigdata/hbase/tmp</value> 
  </property>  
  <!-- true表示使用外部的zk-->  
  <property> 
    <name>hbase.cluster.distributed</name>  
    <value>true</value> 
  </property>  
  <!-- 這裏配置phoenix,目的是方便使用sql語句 -->  
  <property> 
    <name>phoenix.schema.isNamespaceMappingEnabled</name>  
    <value>true</value> 
  </property>  
  <!--如果你打算在本地文件系統中跑hbase,請禁掉此項 -->  
  <property> 
    <name>hbase.unsafe.stream.capability.enforce</name>  
    <value>false</value> 
  </property>  
  <!-- 嘗試解決regionserver exception問題 -->  
  <property> 
    <name>hbase.thrift.maxWorkerThreads</name>  
    <value>10000</value> 
  </property>  
  <property> 
    <name>hbase.thrift.maxQueuedRequests</name>  
    <value>10000</value> 
  </property>  
  <property> 
    <name>hbase.regionserver.executor.openregion.threads</name>  
    <value>10000</value> 
  </property>  
  <!-- 調優測試-->  
  <property> 
    <name>hbase.hregion.memstore.block.multiplier</name>  
    <value>5</value> 
  </property>  
  <property> 
    <name>hbase.hregion.memstore.flush.size</name>  
    <value>268435456</value> 
  </property>  
  <property> 
    <name>hbase.regionserver.global.memstore.size</name>  
    <value>0.4</value> 
  </property>  
  <property> 
    <name>hbase.regionserver.global.memstore.size.lower.limit</name>  
    <value>0.625</value> 
  </property>  
  <property> 
    <name>hbase.hregion.compacting.memstore.type</name>  
    <value>BASIC</value> 
  </property>  
  <!-- 添加索引需要添加該配置 -->  
  <property> 
    <name>hbase.regionserver.wal.codec</name>  
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> 
  </property>  
  <!-- 集羣傳輸的字節指標,值較小時,會增加並行計算,但也增加客戶端合併塊的數量。 -->  
  <property> 
    <name>phoenix.stats.guidepost.width</name>  
    <value>52428800</value> 
  </property>  
  <!-- 開啓phoenix的schema與hbase的命名空間的映射
    注:開啓後,若要創建含有schema的表,需先創建相應的schema,否則會報錯 -->  
  <property> 
    <name>phoenix.schema.mapSystemTablesToNamespace</name>  
    <value>true</value> 
  </property>  
  <!-- 開啓phoenix的最大緩存配置 -->  
  <property> 
    <name>phoenix.mutate.batchSize</name>  
    <value>5000000</value> 
  </property>  
  <property> 
    <name>phoenix.mutate.maxSize</name>  
    <value>50000000</value> 
  </property>  
  <property> 
    <name>phoenix.mutate.maxSizeBytes</name>  
    <value>1048576000</value> 
  </property> 
</configuration>

4.2.3 regionservers

設置regionserver爲當前主機名

single

4.2.4 PHOENIX 配置

從phoenix官網下載與hbase對應的phoenix按轉包,因爲當前hbase版本爲2.4.13,所以選擇phoenix-hbase-2.4-5.1.2-bin版本

# 切換目錄
cd /opt

# 下載phoenix
wget https://dlcdn.apache.org/phoenix/phoenix-5.1.2/phoenix-hbase-2.4-5.1.2-bin.tar.gz

# 下載完成後,解壓
tar xavf phoenix-hbase-2.4-5.1.2-bin.tar.gz

# 切換phoenix目錄
cd phoenix-hbase-2.4-5.1.2-bin

# 將phoenix相關jar包拷貝到hbase的libs目錄下即可
cp phoenix-pherf-5.1.2.jar phoenix-server-hbase-2.4-5.1.2.jar /opt/hbase-2.4.13/lib/

如果先要使用phoenix命令行phoenix-hbase-2.4-5.1.2-bin/bin/sqlline.py, 還需要將hbase-site.xml文件拷貝到phoenix的bin目錄中

cp /opt/hbase-2.4.13/conf/hbase-site.xml /opt/phoenix-hbase-2.4-5.1.2-bin/bin

拷貝完成後,就可以調用 sqlline.py連hbase了

4.3 啓動HBase

cd /usr/local/hbase/bin
./start-hbase.sh

通過jps查看,如果有HMaster,HRegionServer,則啓動成功

五、KAFKA搭建

6.1 Kafka安裝

解壓,在/usr/local下創建軟連接

# 解壓
cd /opt
tar xavf ./kafka_2.12-2.8.1.tgz

# 創建軟連接
cd /usr/local
ln -s /opt/kafka_2.12-2.8.1 kafka

6.2 Kafka配置

修改 server.properties

listeners=PLAINTEXT://single:9092

advertised.listeners=PLAINTEXT://single:9092

6.3 運行

後臺啓動

cd /usr/local/kafka
nohup bin/kafka-server-start.sh config/server.properties > kafka-run.log 2>&1 &

關閉kafka

cd /usr/local/kafka
./bin/kafka-server-stop.sh
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章