hadoop+hive-0.10.0完全分布式安裝方法

hadoop+hive-0.10.0完全分布式安裝方法

1、jdk版本:jdk-7u60-linux-x64.tar.gz

http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html

2hive版本:hive-0.10.0.tar.gz

https://archive.apache.org/dist/hive/hive-0.10.0/

3hadoop版本:hadoop-2.2.0.tar.gz

http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-2.2.0/

4Linux操作系統:ubuntu-14.04-server-amd64.iso

http://releases.ubuntu.com/14.04/

模擬3臺安裝,hosts文件中添加以下信息,功能分配如下:

192.168.1.150???hdp1???//namenode,SecondaryNamenode,ResourceManager

192.168.1.151???hdp2???//datanode,nodemanager

192.168.1.152???hdp3???//datanode,nodemanager

1、jdk安裝

(1)將下載的jdk文件jdk-7u60-linux-x64.tar.gz解壓到相應的文件夾下(可根據情況自己選擇安裝路徑):

#?tar?zxf?jdk-7u60-linux-x64.tar.gz

#?mv??jdk1.7.0_60??/usr/local/jdk7

?

2)配置jdk?環境變量

?????#?vi?~/.bashrc???打開.bashrc文件,添加下面配置信息

export?JAVA_HOME="/usr/local/jdk7"

export?PATH="$PATH:$JAVA_HOME/bin"

?

(3)驗證是否安裝正確

#?java?-version?

java?version?"1.7.0_60"

Java(TM)?SE?Runtime?Environment?(build?1.7.0_60-b19)

Java?HotSpot(TM)?64-Bit?Server?VM?(build?24.60-b09,?mixed?mode)

?

2、新建一個用戶,如hadoop,并設置密碼

#?groupadd?hadoop?

#?useradd?-c?"Hadoop?User"?-d?/home/hadoop?-g?hadoop?-m?-s?/bin/bash?hadoop

#?passwd?hadoop

??hadoop

3、配置ssh?

(1)切換到hdp1新建的hadoop用戶下?:#?su?-?hadoop

(2)$?ssh-keygen?-t?rsa

(3)$?cat?.ssh/id_rsa.pub?>>?.ssh/authorized_keys

(4)$?ssh?localhost?驗證是否成功

(5)hdp2,hdp3采用同樣的方法配置ssh,然后將各自的.ssh/id_rsa.pub追加到hdp1.ssh/authorized_keys中,實現hdp1hdp2hdp3的免密碼登錄,方便啟動服務

登錄到hdp2hadoop用戶:scp?.ssh/id_rsa.pub?hadoop@hdp1:.ssh/hdp2_rsa

登錄到hdp3hadoop用戶:scp?.ssh/id_rsa.pub?hadoop@hdp1:.ssh/hdp3_rsa

在hdp1中:cat?.ssh/hdp2_rsa?>>?.ssh/authorized_keys

???????????????cat?.ssh/hdp3_rsa?>>?.ssh/authorized_keys

注:以上的準備工作三臺機器應完全一樣,尤其注意安裝的目錄,修改相應的主機名等信息

?

接下來安裝Hadoop部分

1、?解壓文件,并配置環境變量

將下載的hadoop-2.2.0.tar.gz解壓到/home/hadoop路徑下:

???tar?-zxvf?hadoop-2.2.0.tar.gz?/home/hadoop/

移動hadoop-2.2.0/usr/local目錄下:

??sudo?mv?hadoop-2.2.0?/usr/local/

注意:每臺機器的安裝路徑要相同!!

??#?vi?~/.bashrc???打開.bashrc件,添加下面配置信息

export?HADOOP_HOME=/usr/local/hadoop

export?HADOOP_MAPRED_HOME=${HADOOP_HOME}

export?HADOOP_COMMON_HOME=${HADOOP_HOME}

export?HADOOP_HDFS_HOME=${HADOOP_HOME}

export?YARN_HOME=${HADOOP_HOME}

export?HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export?PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

?

2、?hadoop配置過程

配置之前,需要在hdp1本地文件系統創建以下文件夾:

~/hadoop/dfs/name

~/hadoop/dfs/data

~/hadoop/temp

這里要涉及到的配置文件有7個:

~/hadoop/etc/hadoop/hadoop-env.sh

~/hadoop/etc/hadoop/yarn-env.sh

~/hadoop/etc/hadoop/slaves

~/hadoop/etc/hadoop/core-site.xml

~/hadoop/etc/hadoop/hdfs-site.xml

~/hadoop/etc/hadoop/mapred-site.xml

~/hadoop/etc/hadoop/yarn-site.xml

以上個別文件默認不存在的,可以復制相應的template文件獲得。

配置文件1hadoop-env.sh

修改JAVA_HOME值(export?JAVA_HOME=/usr/java/jdk7)

配置文件2yarn-env.sh

修改JAVA_HOME值(export?JAVA_HOME=/usr/java/jdk7)

配置文件3slaves?(這個文件里面保存所有slave節點)

寫入以下內容:

hdp2?

hdp3

配置文件4core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp1:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hadoop/hadoop/temp</value>

<description>Abase?for?other?temporary?directories.</description>

</property>

<property>

<name>hadoop.proxyuser.hadoop.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hadoop.groups</name>

<value>*</value>

</property>

</configuration>

配置文件5hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hdp1:9001</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/hadoop/hadoop/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/home/hadoop/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

配置文件6mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>hdp1:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>hdp1:19888</value>

</property>

</configuration>

配置文件7yarn-site.xml

<configuration>

<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.address</name>

<value>hdp1:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>?hdp1:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>?hdp1:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>?hdp1:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>?hdp1:8088</value>

</property>

<property>

<name>yarn.nodemanager.resource.memory-mb</name>

<value>8092</value>

</property>

<property>

<name>yarn.scheduler.minimum-allocation-mb</name>

<value>1024</value>

</property>

</configuration>

?

3、復制到其他節點

這里可以寫一個shell腳本進行操作(有大量節點時比較方便)

cp2slave.sh

#!/bin/bash

scp?–r?/usr/local/hadoop?hadoop@hdp2:/usr/local/

scp?–r?/usr/local/hadoop?hadoop@hdp3:/usr/local/

4、啟動驗證

4.1?啟動hadoop

進入安裝目錄:?cd?hadoop/

(1)格式化namenodebin/hdfs?namenode?–format

(2)啟動hdfs:?sbin/start-dfs.sh

此時在hdp1上面運行的進程有:namenode,?secondarynamenode

hdp2和hdp3上面運行的進程有:datanode

(3)啟動yarn:?sbin/start-yarn.sh

此時在hdp1上面運行的進程有:namenode,secondarynamenode,resourcemanager

hdp2和hdp3上面運行的進程有:datanode,nodemanager

(4)啟動historyserver:?sbin/mr-jobhistory-daemon.sh?start?historyserver

查看集群狀態:bin/hdfs?dfsadmin?–report

查看文件塊組成:bin/hdfs?fsck?/?-files?-blocks

查看HDFS:?http://192.168.1.150:50070

查看RM:?http://192.168.1.150:8088

4.2?運行示例程序:

先在hdfs上創建一個文件夾

bin/hadoop?jar?./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar?pi?2?1000

接下來安裝Mysql部分,存儲hive元數據

1、sudo?apt-get?install?mysql-server??按提示安裝,并設置root用戶密碼

2創建mysql用戶hive

???$?mysql?-u?root?-p?進入root用戶

????mysql>?CREATE?USER?'hive'@'%'?IDENTIFIED?BY?'hive';?

3、授權:??

???mysql>?GRANT?ALL?PRIVILEGES?ON?*.*?TO'hive'@'%'?WITH?GRANT?OPTION;

4、登錄到hadoop?用戶?$?mysql?-u?hiv?-p?

5、創建數據庫hive

mysql>create?database?hive;?

接下來安裝Hive部分

1、?解壓文件,并配置環境變量

將下載的hive-0.10.0.tar.gz解壓到/home/hadoop路徑下。

sudo?mv?hive/usr/local/

注意:每臺機器的安裝路徑要相同!!

??#?vi?~/.bashrc???打開.bashrc文件,添加下面配置信息

export?HIVE_HOME=/usr/local/hive

export?PATH=$PATH:${HIVE_HOME}/bin

2、在hive/conf中添加hive-site.xml

<?xml?version="1.0"?>
<?xml-stylesheet?type="text/xsl"?href="configuration.xsl"?>

<configuration>

<property>
<name>hive.metastore.local</name>
<value>false</value>
<description>Thrift?uri?for?the?remote?metastore.?Used?by?metastore?client?to?connect?to?remote?metastore.</description>
</property>

<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
<description></description>
</property>

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC?connect?string?for?a?JDBC?metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver?class?name?for?a?JDBC?metastore</description>
</property>

<property>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>
<description>class?implementing?the?jdo?persistence</description>
</property>

<property>
<name>javax.jdo.option.DetachAllOnCommit</name>
<value>true</value>
<description>detaches?all?objects?from?session?so?that?they?can?be?used?after?transaction?is?committed</description>
</property>

<property>
<name>javax.jdo.option.NonTransactionalRead</name>
<value>true</value>
<description>reads?outside?of?transactions</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username?to?use?against?metastore?database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password?to?use?against?metastore?database</description>
</property>
</configuration>

3mysql?jdbc?driver拷貝到hivelib

4、啟動hive并測試:

hive>?show?tables;

OK

Time?taken:?5.204?seconds

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387798.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387798.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387798.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于gitgithub的操作

先馬克&#xff0c;回頭細看&#xff0c;然后整理一下 https://linux.cn/article-4292-1.html轉載于:https://www.cnblogs.com/mengjie1001/p/10076530.html

一種解決 MacBook 里的 App Store 無法登錄的問題

剛剛買回來的 2018 款帶有 touchbar 的 MacBook Pro 15 inc 在用 App Store 安裝 app 時一直無法登錄成功&#xff08;網絡鏈接都是好的&#xff09;&#xff0c;導致軟件都無法更新&#xff0c;折騰了挺一會的。 后來發現是要退出設置里的 iCloud 登錄&#xff0c;然后重新登錄…

第二次沖刺

1、今日各個成員的問題 組員問題張晉誌對mui的API看得不是很懂&#xff0c;無法順利的使用袁慶杰基礎不牢,編寫困難周建峰eclipse沒法創建web項目&#xff0c;按照網上的方法&#xff0c;check for updates 和 install new software 之后也沒用許家燁給單一功能知道如何實現但項…

牌類游戲使用微服務重構筆記(八): 游戲網關服務器

網關服務器 所謂網關&#xff0c;其實就是維持玩家客戶端的連接&#xff0c;將玩家發的游戲請求轉發到具體后端服務的服務器&#xff0c;具有以下幾個功能點&#xff1a; 長期運行&#xff0c;必須具有較高的穩定性和性能對外開放&#xff0c;即客戶端需要知道網關的IP和端口&a…

配置獨立于系統的PYTHON環境

配置獨立于系統的PYTHON環境 python 當前用戶包 一種解決方案是在利用本機的python環境的基礎上&#xff0c;將python的包安裝在當前user的.local文件夾下 一共有兩種方式來實現pip的時候安裝到當前user 設置pip配置文件 pip.conf 一種是在~/.pip文件夾下的pip配置文件pip.conf…

好程序員技術教程分享JavaScript運動框架

好程序員技術教程分享JavaScript運動框架&#xff0c;有需要的朋友可以參考下。 JavaScript的運動&#xff0c;即讓某元素的某些屬性由一個值變到另一個值的過程。如讓div的width屬性由200px變到400px&#xff0c;opacity屬性由0.3變到1.0&#xff0c;就是一個運動過程。 實現運…

linux 下mysql等php的安裝 lnmp

訪問https://lnmp.org/install.html按照步驟安裝 當下載執行完 wget -c http://soft.vpser.net/lnmp/lnmp1.3.tar.gz && tar zxf lnmp1.3.tar.gz && cd lnmp1.3 && ./install.shlnmp 要到.install.sh下改一下下載地址&#xff0c;把http直接更換成…

單純形法

單純形法 如果目標函數中所有系數都非正&#xff0c;那么顯然這些變量直接取0是最優的&#xff0c;所以此時答案為即為常數項。 我們要做的就是通過轉化把目標函數的系數全部搞成非負。 思路就是用非基變量替換基變量。 先找到一個目標函數中系數為正的變量&#xff0c;在所有限…

洛谷P1828 香甜的黃油 Sweet Butter

香甜的黃油 Sweet Butter 黃油真的是這么做的嗎&#xff1f;&#xff01;&#xff01;&#xff01;[惶恐] 這道題是Dijkstra算法的簡單變形 通過題意我們要找到一個點使奶牛所在點的路程和最短。通過Dijkstra的模板我們可以求的一點到其他任一點的最短路徑&#xff0c;那么我們…

JAVA List集合轉Page(分頁對象)

/*** version 1.0* author: fwjia*/ import java.util.List;public class PageModel<T> {/**** 當前頁*/private int page 1;/**** 總頁數*/public int totalPages 0;/**** 每頁數據條數*/private int pageRecorders;/**** 總頁數*/private int totalRows 0;/**** 每頁…

分區分表實驗用的語句

--查看索引 select * from DBA_IND_PARTITIONS &#xff54;; select status,t.* from dba_indexes t where t.OWNERGANSUSC; select count(*) from ACT_HI_VARINST SELECT ALTER INDEX || TABLE_OWNER || . || INDEX_NAME || UNUSABLE; UNUSABLE_INDEX FROM ALL_INDEX…

分布式數據庫數據一致性的原理、與技術實現方案

http://youzhixueyuan.com/the-principle-and-technology-realization-of-distributed-data-consistency.html 背景 可用性&#xff08;Availability&#xff09;和一致性&#xff08;Consistency&#xff09;是分布式系統的基本問題&#xff0c;先有著名的CAP理論定義過分布式…

模塊之re模塊 —— 正則

#‘match’只匹配從左向右第一個值是否在中括號的范圍內&#xff0c;如果沒有就返回None 如果有就直接打印一個對象&#xff0c;加上.group()就可以返回你要找的區間里面的值&#xff0c;如果沒有找到對應的值&#xff0c;加上‘.group()’會報錯 #‘search’ 默認是從整個st…

centos7 docker

Docker 是一個開源工具&#xff0c;它可以讓創建和管理 Linux 容器變得簡單。容器就像是輕量級的虛擬機&#xff0c;并且可以以毫秒級的速度來啟動或停止。Docker 幫助系統管理員和程序員在容器中開發應用程序&#xff0c;并且可以擴展到成千上萬的節點。 容器和 VM&#xff08…

批處理ping指定ip列表

for /f in (filename) do (command) for /f %i in (C:\ip.txt) do (ping %i -n 1 && echo %i 通 >>IP.txt || echo %i 不通 >>IP1.txt) 有返回寫入ip.txt 沒有寫入ip1.txt轉載于:https://blog.51cto.com/2216859/2384188

Intellij Idea 2017創建web項目及tomcat部署實戰

相關軟件&#xff1a;Intellij Idea2017、jdk16、tomcat7 Intellij Idea直接安裝&#xff08;可根據需要選擇自己設置的安裝目錄&#xff09;&#xff0c;jdk使用1.6/1.7/1.8都可以&#xff0c;主要是配置好系統環境變量&#xff0c;tomcat7上tomcat的官網下載壓縮包解壓即可。…

docker ssh

1&#xff0c;首先&#xff0c;需要從Docker官網獲得centos或Ubuntu鏡像 2&#xff0c;當本地已有Ubuntu鏡像后&#xff08;大概200M左右大小&#xff09;&#xff0c;使用如下命令 [cpp]view plaincopy docker run -t -i ubuntu /bin/bash 即可啟動一個容器&#xff0c;并放…

[BFS]JZOJ 4672 Graph Coloring

Description 現在你有一張無向圖包含n個節點m條邊。最初&#xff0c;每一條邊都是藍色或者紅色。每一次你可以將一個節點連接的所有邊變色&#xff08;從紅變藍&#xff0c;藍變紅&#xff09;。找到一種步數最小的方案&#xff0c;使得所有邊的顏色相同。Input 第一行包含兩個…

實現繼承的方式

/*** 借助構造函數實現繼承*/function Parent1(){this.name "parent1";}Parent1.prototype.say function(){};function Child1(){//將父構造函數的this指向子構造函數的實例上Parent1.call(this);//applythis.type "child1";}console.log(new Child1);/…

Vue源碼: 關于vm.$watch()內部原理

vm.$watch()用法 關于vm.$watch()詳細用法可以見官網。 大致用法如下: <script>const app new Vue({el: "#app",data: {a: {b: {c: c}}},mounted () {this.$watch(function () {return this.a.b.c}, this.handle, {deep: true,immediate: true // 默認會初始化…