HelloTeacher陳 2018-08-25 11:45:51 一、環(huán)境選擇 1. 前言 1.1. 何為大數(shù)據(jù) 百度百科給的定義是:大數(shù)據(jù)(big data),指無法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。 1.2. 搭建大數(shù)據(jù)環(huán)境的意義 廢話少說,就兩個(gè)字"高薪",如果你滿足于一個(gè)月10000元的工資,如果你沉溺于老婆孩子熱炕頭的安逸,流連忘返于燈紅酒綠的花花世界。那么我們到此為止,你可以不用往下面繼續(xù)浪費(fèi)時(shí)間閱讀了。請看下圖,智聯(lián)招聘截圖時(shí)間是2018年8月25日,周六。有人說,建哥你周末在加班??!加班?不可能的,敲代碼使我快樂!哈哈哈哈哈,開個(gè)玩笑, 本文主要介紹圖中各種技術(shù)框架的安裝配置,閱讀本文大概需要15分鐘,有興趣的朋友可以親自操作一下,時(shí)間在2小時(shí)左右。想想3W到5W的月薪,兩小時(shí)算啥?另外,喜歡的朋友可以關(guān)注我,私信發(fā)送"大數(shù)據(jù)"會(huì)贈(zèng)送相關(guān)大數(shù)據(jù)資料。碼字不易,不喜勿噴! 2. 環(huán)境準(zhǔn)備 2.1. 大數(shù)據(jù)環(huán)境 本次安裝需要三臺虛擬機(jī),選用的操作系統(tǒng)版本是contos6.9 64位。各組件在三臺機(jī)器上的分布情況如下: 2.2. PC編譯環(huán)境 另外本機(jī)操作系統(tǒng)是windows7 64位。因?yàn)樾枰幾g打包streamingPro,所以本機(jī)也需要安裝對應(yīng)的環(huán)境,詳情如下: 2.3. 配置說明 · JDK :Hadoop和Spark 依賴的配置. · Scala:Spark依賴的配置,建議版本不低于spark的版本。 · Hadoop: 是一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu)。 · Spark: 分布式存儲的大數(shù)據(jù)進(jìn)行處理的工具。 · zookeeper:分布式應(yīng)用程序協(xié)調(diào)服務(wù),HBase集群需要。 · HBase: 一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)。 · Hive: 基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,目前的默認(rèn)元數(shù)據(jù)庫是mysql。 · Kafka:分布式消息隊(duì)列 所需要的安裝包及依賴文件保存在百度云: 鏈接:https://pan.baidu.com/s/1J9YECM0Jd3LYuCqFRFG5yw 密碼:1knn 二、集群的相關(guān)配置 下面前5步操作可以先在一臺虛擬機(jī)上操作,然后克隆出另外兩臺機(jī)器。 1. 關(guān)閉防火墻及關(guān)閉操作系統(tǒng)安全訪問控制 說明:其實(shí)可以不關(guān)閉防火墻,進(jìn)行權(quán)限設(shè)置,但是為了方便訪問,于是便關(guān)閉了防火墻。每個(gè)機(jī)器都做?。?! 關(guān)閉防火墻的命令 停止防火墻: service iptables stop 啟動(dòng)防火墻: service iptables start 重啟防火墻: service iptables restart 永久關(guān)閉防火墻: chkconfig iptables off 說明:操作系統(tǒng)默認(rèn)是打開安全訪問控制的,這樣會(huì)導(dǎo)致部分軟件安裝配置失敗,為了方便,我們將它關(guān)閉。 查看SELinux狀態(tài) getenforce 修改配置文件/etc/selinux/config 將SELINUX=enforcing改為SELINUX=disabled 2. 修改系統(tǒng)網(wǎng)絡(luò)配置 配置固定ip地址和dns服務(wù)器地址,保證主機(jī)能上網(wǎng)。 重啟網(wǎng)絡(luò)服務(wù),并檢測dns是否生效 3. 調(diào)整系統(tǒng)時(shí)區(qū)及時(shí)間配置 首先將時(shí)區(qū)調(diào)整到東八區(qū), 保險(xiǎn)起見再執(zhí)行一下下面的命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 集群上的機(jī)器時(shí)間要同步,我們可以將所有的機(jī)器跟集群中某臺機(jī)器進(jìn)行時(shí)間同步。也可以簡單的跟互聯(lián)網(wǎng)授時(shí)服務(wù)器同步。 ntpdate pool.ntp.org 4. 安裝java和scala基礎(chǔ)環(huán)境及修改系統(tǒng)環(huán)境變量 大家可以在網(wǎng)盤下載對應(yīng)的安裝文件。 安裝jdk1.8 解壓縮jdk安裝包 tar zxvf jdk-8u144-linux-x64.tar.gz 創(chuàng)建目錄/opt/jdk mkdir /opt/jdk 移動(dòng)文件夾jdk1.8.0_144到/opt/jdk下面,并改名為jdk1.8 mv jdk1.8.0_144/ /opt/jdk/jdk1.8 安裝scala2.12.2 tar zxvf scala-2.12.2.tgz 創(chuàng)建目錄/opt/scala mkdir /opt/scala 移動(dòng)文件夾scala-2.12.2到/opt/ scala下面,并改名為scala2.12.2 mv scala-2.12.2 /opt/scala/scala2.12.2 ![]() 在 /etc/profile 這個(gè)配置文件要添加很多的環(huán)境配置,這里就先將整體的環(huán)境配置列舉出來,各位在配置環(huán)境變量的以自己的為準(zhǔn)!?。?可以先配置好環(huán)境變量之后,在傳輸?shù)狡渌麢C(jī)器上去。
查看java和scala版本 ![]() 5. 主機(jī)名更改以及主機(jī)和IP做相關(guān)映射 5.1.更改主機(jī)名 說明:更改主機(jī)名是為了方便集群管理,不然每個(gè)機(jī)器的名稱都叫l(wèi)ocalhost也不太好吧! 集群所有的機(jī)器都要做這個(gè)操作。 輸入 vim /etc/sysconfig/network 將localhost.localdomain修改為你要更改的名稱,每臺名稱都不一樣 例如: HOSTNAME=master 5.2.主機(jī)和IP的關(guān)系映射 修改hosts文件,做關(guān)系映射 說明:這個(gè)每臺機(jī)器都做這個(gè)配置,具體ip和主機(jī)名稱以自己的為準(zhǔn)。 輸入: vim /etc/hosts 添加
重啟機(jī)器,開始克隆另外兩臺機(jī)器slave1,slave2,值得注意的是克隆完之后修改修改ip地址和主機(jī)名。 ![]() 6. ssh免登錄 設(shè)置ssh免密碼登錄是為了操作方便 生成秘鑰文件 在每臺機(jī)器上都執(zhí)行一遍 首先輸入: ssh-keygen -t rsa -P '' ![]() 生成秘鑰之后,然后將每臺機(jī)器/root/.ssh 都存入內(nèi)容相同的文件,文件名稱叫authorized_keys,文件內(nèi)容是我們剛才為3臺機(jī)器生成的公鑰??梢栽谝慌_機(jī)器上生成,然后復(fù)制到其它的機(jī)器上。 新建authorized_keys文件 輸入 : touch /root/.ssh/authorized_keys 編輯 authorized_keys 并將其他機(jī)器上的秘鑰拷貝過來 cat /root/.ssh/id_rsa.pub vim /root/.ssh/authorized_keys 將其它機(jī)器上的 id_rsa.pub 的內(nèi)容拷貝到 authorized_keys這個(gè)文件中。 最終authorized_keys文件的內(nèi)容 ![]() 將這個(gè)最終的authorized_keys文件copy到其他機(jī)器的 /root/.ssh 目錄下。使用scp或者ftp都可以。 scp命令示例: scp -r /root/.ssh/authorized_keys root@slave1:/root/.ssh scp -r /root/.ssh/authorized_keys root@slave2:/root/.ssh ![]() 測試免密碼登錄 輸入: ssh slave1 ssh slave2 輸入 exit 退出 ![]() 二、Hadoop的環(huán)境搭建 事先說明,這些配置可以在一臺機(jī)器上配置,然后復(fù)制到其他機(jī)器上就行了。復(fù)制之后注意使這些配置文件生效。 1. hadoop配置 1.1. 文件準(zhǔn)備 將下載下來的Hadoop的配置文件進(jìn)行解壓 在linux上輸入: tar -xvf hadoop-2.8.2.tar.gz 然后將解壓之后的文件夾移動(dòng)到opt/hadoop文件夾下,沒有該文件夾就新建,然后將文件夾重命名為hadoop2.8。 在linux上輸入移動(dòng)文件夾命令: mv hadoop-2.8.2 /opt/hadoop mv hadoop-2.8.2 hadoop2.8 1.2. 環(huán)境配置 編輯 /etc/profile 文件 輸入: vim /etc/profile 添加:
輸入: source /etc/profile 使配置生效 1.3. 修改配置文件 修改 core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml 等這些配置文件 在linux輸入進(jìn)入該目錄的命令: cd /opt/hadoop/hadoop2.8/etc/hadoop 1.3.1. 修改 core-site.xml hadoop的存放路徑可以自行更改。開始我以為這些文件夾需要手動(dòng)創(chuàng)建,后來實(shí)踐了,如果不手動(dòng)創(chuàng)建,會(huì)自動(dòng)創(chuàng)建的,所以就去掉了手動(dòng)創(chuàng)建目錄的步驟。 輸入: vim core-site.xml 在<configuration>節(jié)點(diǎn)內(nèi)加入配置:
說明: fs.defaultFS 是缺省文件的名稱, 最早使用的是 fs.default.name,后來在最新官方文檔中查到該方法已經(jīng)棄用了。于是邊改成這個(gè)了。ps:感覺也沒啥區(qū)別。 1.3.2. 修改 hadoop-env.sh export JAVA_HOME=${JAVA_HOME} 修改為: export JAVA_HOME=/opt/java/jdk1.8 注:修改為自己JDK的路徑 1.3.3. 修改 hdfs-site.xml 下面的hdfs的存放路徑,可以根據(jù)自己機(jī)器更改。 在<configuration>節(jié)點(diǎn)內(nèi)加入配置:
執(zhí)行mapreduce的運(yùn)行框架配置。ps:感覺這個(gè)配置沒啥用,可能我沒用mr吧。 如果沒有 mapred-site.xml 該文件,就復(fù)制mapred-site.xml.template文件并重命名為mapred-site.xml。 修改這個(gè)新建的mapred-site.xml文件,在<configuration>節(jié)點(diǎn)內(nèi)加入配置:
1.3.5. 修改yarn-site.xml文件 yarn 資源調(diào)度的配置,集群的話這個(gè)配置是必須的。 修改/opt/hadoop/hadoop2.8/etc/hadoop/yarn-site.xml文件, 在<configuration>節(jié)點(diǎn)內(nèi)加入配置
說明:yarn.nodemanager.vmem-check-enabled這個(gè)的意思是忽略虛擬內(nèi)存的檢查,如果你是安裝在虛擬機(jī)上,這個(gè)配置很有用,配上去之后后續(xù)操作不容易出問題。如果是實(shí)體機(jī)上,并且內(nèi)存夠多,可以將這個(gè)配置去掉。 1.3.6. 修改slaves 設(shè)置主從的配置。如果不設(shè)置這個(gè),集群就無法得知主從了。如果是單機(jī)模式,就沒必要配置了。 修改/opt/hadoop/hadoop2.8/etc/hadoop/slaves文件 更改為 slave1 slave2 在一臺機(jī)器上(最好是master)做完這些配置之后,我們使用scp命令將這些配置傳輸?shù)狡渌麢C(jī)器上。 輸入: hadoop環(huán)境傳輸 scp -r /opt/hadoop root@slave1:/opt scp -r /opt/hadoop root@slave2:/opt 傳輸之后,便在主節(jié)點(diǎn)啟動(dòng)集群。 在啟動(dòng)hadoop之前,需要初始化,這個(gè)只需要在master上初始化就可以了。 2. hadoop啟動(dòng) 注:啟動(dòng)hadoop之前確保防火墻關(guān)閉,各個(gè)機(jī)器時(shí)間通過,ssh免登錄都沒問題。 初始化hadoop 切換到/opt/hadoop/hadoop2.8/bin目錄下輸入 ./hdfs namenode -format 初始化成功之后,切換到/opt/hadoop/hadoop2.8/sbin 啟動(dòng)hadoop 的hdfs和yarn 輸入: start-dfs.sh start-yarn.sh ![]() 第一次登錄會(huì)詢問是否連接,輸入yes ,然后輸入密碼就可以了 啟動(dòng)成功之后,可以使用jps命令在各個(gè)機(jī)器上查看是否成功 可以在瀏覽器輸入: ip+50070 和8088端口查看 http://master:50070 ![]() http://master:8088/cluster ![]() 若如圖顯示,則啟動(dòng)成功。 若失敗,檢查jps是否成功啟動(dòng),防火墻是否都關(guān)閉。都確認(rèn)沒問題之后,還是無法打開界面,請查看日志,再來找原因。 四、Spark的環(huán)境配置 1. Spark配置 1.1. 文件準(zhǔn)備 將下載好的Spark文件解壓 輸入 tar zxvf spark-2.2.0-bin-hadoop2.7.tgz 然后移動(dòng)到/opt/spark 里面,并重命名 輸入 mkdir /opt/spark mv spark-2.2.0-bin-hadoop2.7 /opt/spark/spark2.2 1.2. 環(huán)境配置 編輯 /etc/profile 文件 (省略,前期已經(jīng)做過了)輸入: export SPARK_HOME=/opt/spark/spark2.2 export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH 輸入: source /etc/profile 使配置生效 1.3. 更改配置文件 切換目錄 輸入: cd /opt/spark/spark2.2/conf/ 1.3.1. 修改 spark-env.sh 在conf目錄下,修改spark-env.sh文件,如果沒有 spark-env.sh 該文件,就復(fù)制spark-env.sh.template文件并重命名為spark-env.sh。 修改這個(gè)新建的spark-env.sh文件,加入配置:
注:上面的路徑以自己的為準(zhǔn),SPARK_MASTER_IP為主機(jī),SPARK_EXECUTOR_MEMORY為設(shè)置的運(yùn)行內(nèi)存。 1.3.2. 修改slaves slaves 分布式文件 在conf目錄下,修改slaves文件,如果沒有 slaves 該文件,就復(fù)制slaves .template文件并重命名為slaves 。 修改這個(gè)新建的slaves 文件,加入配置: slave1 slave2 在一臺機(jī)器上(最好是master)做完這些配置之后,我們使用scp命令將這些配置傳輸?shù)狡渌麢C(jī)器上。 spark環(huán)境傳輸 scp -r /opt/spark root@slave1:/opt scp -r /opt/spark root@slave2:/opt 傳輸之后,便在主節(jié)點(diǎn)啟動(dòng)集群。 2. spark啟動(dòng) 說明:要先啟動(dòng)Hadoop 切換到Spark目錄下 輸入: cd /opt/spark/spark2.2/sbin 然后啟動(dòng)Spark 輸入: start-all.sh 啟動(dòng)成功之后,可以使用jps命令在各個(gè)機(jī)器上查看是否成功。 可以在瀏覽器輸入: ip+8080 端口查看 ![]() 若成功顯示這個(gè)界面,則表示Spark成功啟動(dòng)。 五、Zookeeper的環(huán)境配置 因?yàn)镠Base以及kafka做集群,所以就需要zookeeper了。 zookeeper 在很多環(huán)境搭建上,都會(huì)有他的身影,如kafka、storm等,這里就不多說了。 1. 文件準(zhǔn)備 將下載下來的Zookeeper 的配置文件進(jìn)行解壓 在linux上輸入: tar -xvf zookeeper-3.4.10.tar.gz 然后移動(dòng)到/opt/zookeeper里面,沒有就新建,然后將文件夾重命名為zookeeper3.4 輸入 mkdir /opt/zookeeper mv zookeeper-3.4.10 /opt/zookeeper/zookeeper3.4 2. 環(huán)境配置(省略,前期已經(jīng)做過了) 編輯 /etc/profile 文件 輸入:
輸入: source /etc/profile 使配置生效 3. 修改配置文件 3.1. 創(chuàng)建文件和目錄 在集群的服務(wù)器上都創(chuàng)建這些目錄 mkdir /opt/zookeeper/data mkdir /opt/zookeeper/dataLog 并且在/opt/zookeeper/data目錄下創(chuàng)建myid文件 輸入: touch myid 創(chuàng)建成功之后,更改myid文件。 我這邊為了方便,將master、slave1、slave2的myid文件內(nèi)容改為1,2,3 3.2. 新建zoo.cfg 切換到/opt/zookeeper/zookeeper3.4/conf 目錄下 如果沒有 zoo.cfg 該文件,就復(fù)制zoo_sample.cfg文件并重命名為zoo.cfg。 修改這個(gè)新建的zoo.cfg文件 dataDir=/opt/zookeeper/data dataLogDir=/opt/zookeeper/dataLog server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888 配置說明:
其他配置說明:
依舊將zookeeper傳輸?shù)狡渌臋C(jī)器上,記得更改 /opt/zookeeper/data 下的myid,這個(gè)不能一致。 輸入: scp -r /opt/zookeeper root@slave1:/opt scp -r /opt/zookeeper root@slave2:/opt 修改myid 4. 啟動(dòng)zookeeper 因?yàn)閦ookeeper是選舉制,它的主從關(guān)系并不是像hadoop那樣指定的,具體可以看官方的文檔說明。 成功配置zookeeper之后,在每臺機(jī)器上啟動(dòng)zookeeper。 切換到zookeeper目錄下 cd /opt/zookeeper/zookeeper3.4/bin 輸入: zkServer.sh start 成功啟動(dòng)之后 查看狀態(tài)輸入: zkServer.sh status 可以查看各個(gè)機(jī)器上zookeeper的leader和follower ,只能一個(gè)是主,隨機(jī)選擇,入下圖: ![]() 六、HBase的環(huán)境配置 1. 文件準(zhǔn)備 將下載下來的HBase的配置文件進(jìn)行解壓 在linux上輸入: tar -xvf hbase-1.2.6-bin.tar.gz 然后移動(dòng)到/opt/hbase 文件夾里面,并重命名為 hbase1.2 輸入 mv hbase-1.2.6 /opt/hbase mv hbase-1.2.6/ hbase1.2 2. 環(huán)境配置(省略,前期已經(jīng)做過了) 編輯 /etc/profile 文件 輸入: export HBASE_HOME=/opt/hbase/hbase1.2 export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH 輸入: source /etc/profile 使配置生效 輸入 hbase version 查看版本 ![]() 3. 修改配置文件 切換到 /opt/hbase/hbase1.2/conf下 3.1. 修改hbase-env.sh 編輯 hbase-env.sh 文件,添加以下配置
說明:配置的路徑以自己的為準(zhǔn)。HBASE_MANAGES_ZK=false 是不啟用HBase自帶的Zookeeper集群。 3.2. 修改 hbase-site.xml 編輯hbase-site.xml 文件,在<configuration>添加如下配置
說明:hbase.rootdir:這個(gè)目錄是region server的共享目錄,用來持久化Hbase 。hbase.cluster.distributed :Hbase的運(yùn)行模式。false是單機(jī)模式,true是分布式模式。若為false,Hbase和Zookeeper會(huì)運(yùn)行在同一個(gè)JVM里面。 3.3. 修改regionservers 指定hbase的主從,和hadoop的slaves文件配置一樣 將文件修改為 slave1 slave2注:上面的為集群的主機(jī)名稱 在一臺機(jī)器上(最好是master)做完這些配置之后,我們使用scp命令將這些配置傳輸?shù)狡渌麢C(jī)器上。 輸入: hbase環(huán)境傳輸 scp -r /opt/hbase root@slave1:/opt scp -r /opt/hbase root@slave2:/opt 傳輸之后,在主節(jié)點(diǎn)啟動(dòng)集群。 4. 啟動(dòng)hbase 在成功啟動(dòng)Hadoop、zookeeper之后 切換到HBase目錄下 cd /opt/hbase/hbase1.2/bin 輸入: start-hbase.sh 啟動(dòng)成功之后,可以使用jps命令在各個(gè)機(jī)器上查看是否成功 可以在瀏覽器輸入: ip+16010 端口查看 http://master:16010/master-status ![]() 若成功顯示該界面,則啟動(dòng)成功。 七、Mysql安裝 因?yàn)镠ive的默認(rèn)元數(shù)據(jù)是Mysql,所以先要安裝Mysql。Mysql有兩種安裝模式,可自行選擇。 1. yum安裝mysql 首先查看mysql 是否已經(jīng)安裝 輸入: rpm -qa | grep mysql 如果已經(jīng)安裝,想刪除的話輸入:普通刪除命令: 強(qiáng)力刪除命令: 依賴文件也會(huì)刪除 安裝mysql輸入: 2. 啟動(dòng)和配置mysql安裝成功后,輸入 service mysqld start 啟動(dòng)服務(wù) 輸入之后直接回車(默認(rèn)是沒有密碼的)然后再輸入mysql -u root -p通過授權(quán)法更改遠(yuǎn)程連接權(quán)限輸入: mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;注:第一個(gè)'root'是用戶名,第二個(gè)'%'是所有的ip都可以遠(yuǎn)程訪問,第三個(gè)'123456'表示 用戶密碼 如果不常用 就關(guān)閉掉 use mysql; update user set password=passworD("123456") where user='root';輸入:flush privileges; ![]() 可以使用navcat之類的工具測試是否能正確連接 ![]() 八、Hive環(huán)境安裝和配置 1. 文件準(zhǔn)備 2. 環(huán)境配置(省略,前期已經(jīng)做過了) 編輯 /etc/profile 文件輸入: 添加: 注:實(shí)際配置以自己的為準(zhǔn)!輸入: 使配置生效 3. 配置更改 3.1. 新建文件夾 在修改配置文件之前,需要先在root目錄下建立一些文件夾。 新建完該文件之后,需要讓hadoop新建/root/hive/warehouse 和 /root/hive/ 目錄。執(zhí)行命令: 給剛才新建的目錄賦予讀寫權(quán)限,執(zhí)行命令: 檢查這兩個(gè)目錄是否成功創(chuàng)建輸入: 可以看到已經(jīng)成功創(chuàng)建 3.2. 修改hive-site.xml 切換到 /opt/hive/hive2.1/conf 目錄下將hive-default.xml.template 拷貝一份,并重命名為hive-site.xml然后編輯hive-site.xml文件 編輯hive-site.xml文件,在 中添加: 然后將配置文件中所有的 更改為 /opt/hive/tmp (如果沒有該文件則創(chuàng)建),并將此文件夾賦予讀寫權(quán)限,將 更改為 root 注: 由于hive-site.xml 文件中的配置過多,可以通過FTP將它下載下來進(jìn)行編輯。也可以直接配置自己所需的,其他的可以刪除。 MySQL的連接地址中的master是主機(jī)的別名,可以換成ip。 3.3. 修改 hive-env.sh 修改hive-env.sh 文件,沒有就復(fù)制 hive-env.sh.template ,并重命名為hive-env.sh在這個(gè)配置文件中添加 3.4. 添加 數(shù)據(jù)驅(qū)動(dòng)包 由于Hive 默認(rèn)自帶的數(shù)據(jù)庫是使用mysql,所以這塊就是用mysql將mysql 的驅(qū)動(dòng)包 上傳到 /opt/hive/hive2.1/lib cp /home/chenjian/mysql-connector-java-5.1.41.jar /opt/hive/hive2.1/lib/ 4. Hive Shell 測試 在成功啟動(dòng)Hadoop之后切換到Hive目錄下輸入: 4.1. 首先初始化數(shù)據(jù)庫初始化的時(shí)候注意要將mysql啟動(dòng)輸入:執(zhí)行成功之后,可以看到hive數(shù)據(jù)庫和一堆表已經(jīng)創(chuàng)建成功了 4.2. 啟動(dòng)hive進(jìn)入hive (確保hadoop以及成功啟動(dòng))輸入: hive 進(jìn)入hive 之后 做一些簡單的操作 新建一個(gè)庫,然后在建一張表 基本操作和普通的關(guān)系型數(shù)據(jù)庫差不多 創(chuàng)建庫: create database db_chenjian; 創(chuàng)建表: create table db_chenjian.student(id int,name string) row format delimited fields terminated by ' '; 4.3. 加載數(shù)據(jù)新打開一個(gè)窗口因?yàn)閔ive 不支持寫,所以添加數(shù)據(jù)使用load加載文本獲取。新建一個(gè)文本 編輯該文本添加數(shù)據(jù)輸入: 添加數(shù)據(jù):中間的空格符使用Tab建 說明: 文本可以在Windows上面新建,然后通過ftp上傳到linux中,需要注意文本的格式為unix 格式。 切換到hive shell加載數(shù)據(jù)輸入: 4.4. 查詢該數(shù)據(jù)輸入: select * from db_chenjian.student; ![]() 九、安裝配置kafka 1. 文件準(zhǔn)備 將下載下來的kafka 的安裝文件進(jìn)行解壓 在linux上輸入: tar -zxvf kafka_2.11-1.0.0.tgz 然后移動(dòng)到/opt/kafka里面,沒有就新建, 輸入 mkdir /opt/kafka mv kafka_2.12-1.0.0 /opt/kafka/kafka1.0.0 2. 環(huán)境配置(省略,前期已經(jīng)做過了) 3. 修改配置文件 修改master機(jī)器配置文件 config/server.properties broker.id=0 標(biāo)示符(多臺服務(wù)器標(biāo)示符0,1,2,3,...依次增長) host.name=master 綁定的主機(jī) log.dirs= /opt/kafka/kafka1.0.0/kafka-logs 數(shù)據(jù)保存的位置 log.retention.hours=168 數(shù)據(jù)的保留時(shí)間 zookeeper.connect=master:2181,slave1:2181,slave2:2181 將本機(jī)kafka拷貝至其他機(jī)器,此處只選用了兩臺機(jī)器master和slave1,執(zhí)行下面的命令: scp -r /opt/kafka/ root@slave1:/opt/ 修改slave1配置文件 config/server.properties broker.id=1 標(biāo)示符(多臺服務(wù)器標(biāo)示符0,1,2,3,...依次增長) host.name=slave1 綁定的主機(jī) log.dirs= /opt/kafka/kafka1.0.0/kafka-logs 數(shù)據(jù)保存的位置 log.retention.hours=168 數(shù)據(jù)的保留時(shí)間 zookeeper.connect=master:2181,slave1:2181,slave2:2181 啟動(dòng)kafka a.啟動(dòng)zookeeper集群 b.啟動(dòng)服務(wù)的命令(兩臺機(jī)器都執(zhí)行) nohup /opt/kafka/kafka1.0.0/bin/kafka-server-start.sh /opt/kafka/kafka1.0.0/config/server.properties & c.創(chuàng)建主題 /opt/kafka/kafka1.0.0/bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181 --replication-factor 1 --partitions 1 --topic chenjian d.查看當(dāng)前有哪些主題: /opt/kafka/kafka1.0.0/bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181 4. 測試kafka 4.1. 模擬發(fā)送數(shù)據(jù) /opt/kafka/kafka1.0.0/bin/kafka-console-producer.sh --broker-list slave1:9092,slave2:9092 --topic chenjian ![]() 4.2. 消費(fèi)數(shù)據(jù) kafka-console-consumer.sh --zookeeper master:2181,slave1:2181,slave2:2181 --from-beginning --topic chenjian 在模擬發(fā)送數(shù)據(jù)窗口輸入,就會(huì)看到在消費(fèi)端有相應(yīng)的數(shù)據(jù)。 springboot集成kafka可以參看哥哥以前的文章建哥手把手系列之springboot整合kafka ![]() 耐得住寂寞,才能守得住繁華! |
|