系統環境:Ubuntu 16.04.6 LTS
安裝包版本:hadoop-2.7.7,zookeeper-3.4.14,hbase-1.0.1.1-bin,sqoop-1.4.6.bin__hadoop-2.0.4-alpha,jdk1.8.0_221。(注:可在所附的CSDN資源頁下載以上包。)
參考鏈接:(點擊跳轉查看)
⑦Hadoop學習---Zookeeper+Hbase配置學習
(0)安裝Java jdk
安裝好Java jdk,並配置好Jdk路徑。
將路徑寫進個人home頁(/home/User/)下的.profile或者.bash_profile如下:
export JAVA_HOME=/home/User/HTest/jdk1.8.0_221
export PATH=$JAVA_HOME/bin:$PATH
需要讓該環境變量生效,執行如下代碼:
source .profile
(1)Hadoop
①下載Hadoop包並解壓
注:本文所有壓縮包均放在HTest目錄下,並在該目錄下解壓。
tar xzvf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7 hadoop
②修改Hadoop配置文件
路徑在./hadoop/etc/hadoop/,文件爲hadoop-env.sh、core-site.xml、hdfs-site.xml。
打開hadoop-env.sh,將JAVA_HOME改爲jdk路徑,如下
# The java implementation to use.
# export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/User/HTest/jdk1.8.0_221
打開core-site.xml,在<configuration></configuration>標籤中添加:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 指定hadoop運行時產生文件的存儲路徑 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/User/HTest/hadoop/temp</value>
</property>
</configuration>
打開hdfs-site.xml,在<configuration></configuration>標籤中添加:
<configuration>
<!-- 設置hdfs副本數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
③修改個人profile配置
將Hadoop路徑寫進.profile或者.bash_profile。
export HADOOP_HOME=/home/User/HTest/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
需要讓該環境變量生效,同樣執行如下代碼:
source .profile
輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:
hadoop version
④hdfs格式化
(注:第一次使用時必須先格式化hdfs)
執行命令
./hadoop/bin/hdfs namenode -format
⑤啓動hadoop
./hadoop/sbin/start-all.sh
在提示輸入密碼時輸入系統登錄用戶名對應的密碼(此處需多次輸入以啓動各種服務,也可以配置ssh無密碼登錄,本文不講,可自行查看本文開頭參考鏈接③或⑩中的內容。)
成功啓動後輸入jps命令可以看到啓動的各種服務。
(2)ZooKeeper
①下載ZooKeeper包並解壓
tar xzvf zookeeper-3.4.14.tar.gz
mv zookeeper-3.4.14 zookeeper
②修改zookeeper配置文件
路徑在./zookeeper/conf/,輸入命令
cp zoo_sample.cfg zoo.cfg
,複製文件zoo_sample.cfg爲zoo.cfg。
打開zoo.cfg,將dataDir改爲其他路徑(/tmp下的文件易被系統自動清理),如下
dataDir=/home/User/HTest/zookeeper/zkData
dataLogDir=/home/User/HTest/zookeeper/zkLogs
server.1=127.0.0.1:2888:3888
新建dataDir文件夾“zkData”,新建“myid”文件
vi myid
在文件中寫“1”,保存。
③修改個人profile配置
即將zookeeper路徑寫進.profile或者.bash_profile。
export ZOOKEEPER_HOME=/home/User/HTest/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
需要讓該環境變量生效,同樣執行如下代碼:
source .profile
④啓動ZooKeeper
啓動服務:
./zookeeper/bin/zkServer.sh start
查看狀態:
./zookeeper/bin/zkServer.sh status
關閉服務:
./zookeeper/bin/zkServer.sh stop
成功啓動後輸入jps命令可以看到啓動的相應服務“QuorumPeerMain”。
(3)HBase
①下載HBase包並解壓
tar xzvf hbase-1.0.1.1-bin.tar.gz
mv hbase-1.0.1.1-bin hbase
②修改hbase配置文件
路徑在./hbase/conf/,文件爲hbase-env.sh、hbase-site.xml、regionservers。
打開hbase-env.sh,將JAVA_HOME改爲jdk路徑,如下
# The java implementation to use. Java 1.7+ required.
# export JAVA_HOME=/usr/java/jdk1.6.0/
export JAVA_HOME=/home/User/HTest/jdk1.8.0_221
增加HBase和Hadoop的環境變量:
export HBASE_CLASSPATH=/home/User/HTest/hadoop/etc/hadoop
export HADOOP_HOME=/home/User/HTest/hadoop
export HBASE_HOME=/home/User/HTest/hbase
修改pid文件存放地址:
# The directory where pid files are stored. /tmp by default.
# export HBASE_PID_DIR=/var/hadoop/pids
export HBASE_PID_DIR=/home/User/HTest/hbase/pids
設置是否使用自帶的ZooKeeper:
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
#export HBASE_MANAGES_ZK=true
export HBASE_MANAGES_ZK=false
打開hbase-site.xml,在<configuration></configuration>標籤中添加:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/User/HTest/hbase/hbase-tmp</value>
</property>
<!-- zk環境的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.proprety.dataDir</name>
<value>/home/User/HTest/zookeeper/zkData</value>
</property>
<!-- 配置爲true,否則還是啓動自帶ZK-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
<property>
<name>hbase.master</name>
<value>localhost:60000</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
③修改個人profile配置
即將hbase路徑寫進.profile或者.bash_profile。
export HBASE_HOME=/home/User/HTest/hbase
export PATH=$HBASE_HOME/bin:$PATH
需要讓該環境變量生效,同樣執行如下代碼:
source .profile
④啓動hbase
./hbase/bin/start-hbase.sh
成功啓動後輸入jps命令可以看到啓動的HMaster服務。
輸入hbase shell,即可進入shell環境,在shell環境下輸入list可以查看現有數據庫情況(新裝hbase時此處結果爲空)。
(4)Sqoop
介紹:sqoop 是 Apache 旗下一款“Hadoop 和關係數據庫服務器之間傳送數據”的工具。
核心的功能有兩個:
- 導入數據:MySQL,Oracle 導入數據到 Hadoop 的 HDFS、HIVE、HBASE 等數據存儲系統
- 導出數據:從 Hadoop 的文件系統中導出數據到關係數據庫 mysql 等 Sqoop 的本質還是一個命令行工具,和 HDFS,Hive 相比,並沒有什麼高深的理論。
sqoop版本說明:
- 絕大部分企業所使用的sqoop的版本都是 sqoop1(sqoop-1.4.6 或者sqoop-1.4.7);sqoop-1.99.4以上是 sqoop2。
- 本文使用sqoop-1.4.6版本sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
①下載Sqoop包並解壓
tar xzvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop
②修改sqoop配置文件
路徑在./sqoop/conf/,輸入命令
cp sqoop-env-template.sh sqoop-env.sh
,複製文件sqoop-env-template.sh爲sqoop-env.sh。
打開sqoop-env.sh,將各路徑根據自己的安裝路徑進行填寫:
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/home/User/HTest/hadoop
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/home/User/HTest/hadoop
#set the path to where bin/hbase is available
export HBASE_HOME=/home/User/HTest/hbase
#Set the path to where bin/hive is available
#export HIVE_HOME=
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/home/User/HTest/zookeeper
③修改個人profile配置
即將sqoop路徑寫進.profile或者.bash_profile。
export SQOOP_HOME=/home/User/HTest/sqoop
export PATH=$SQOOP_HOME/bin:$PATH
需要讓該環境變量生效,同樣執行如下代碼:
source .profile
④複製mysql-jdbc驅動包
複製mysql-connector-java-5.1.40-bin.jar到./sqoop/lib目錄下。
⑤驗證並使用
輸入命令
sqoop version
查看是否安裝成功。
安裝成功後即可使用sqoop導入命令,從MySQL等關係數據庫導入數據到HBase。
具體使用方式可參考本文開頭中的參考鏈接④。