日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop-2.7.1+zookeeper-3.4.8+hbase-1.2.1+apache-hive-2.0.0完全分布式集群

發布時間:2023/12/6 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop-2.7.1+zookeeper-3.4.8+hbase-1.2.1+apache-hive-2.0.0完全分布式集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、環境準備

1.查看系統版本

cat /etc/issue

CentOS release 6.8 (Final) ??

2.軟件準備

軟件自行官網下載,但自己要統一規劃方便后面操作,本文軟件源目錄/usr/local/src

安裝目錄/usr/local

賦權限,以備后續步驟安裝軟件[安裝包都在/usr/local/src]?

chown hadoop.hadoop /usr/local/src –R


3.配置主機名和hosts

三臺機器(內存大于2G) 分別寫hosts、設定hostname

192.168.100.11 ?mylab1 ?----master

192.168.100.12 ?mylab2 ?----slave1

192.168.100.13 ?mylab3 ?-----slave2


4.關閉selinux

臨時關閉:

[root@mylab1 ~]# getenforce

Enforcing

[root@mylab1 ~]# setenforce 0

[root@mylab1 ~]# getenforce

Permissive

永久關閉selinux:

vim /etc/selinux/config

修改SELINUX=enforcing為SELINUX=disabled

5.關閉防火墻iptables

service iptables stop或/etc/init.d/iptables stop

chkconfig iptables off

6.所有機器同步時間?

ntpdate time.windows.com

注:一定要做,集群對時間要求高,不然后面啟動會報錯,也可以自己搭建ntp服務器(正常線上肯定是要其中一臺搭建時間服務器來同步時間的)

7.創建hadoop用戶

Hadoop為了安裝使用普通用戶登錄

useradd hadoop

echo "hadoop"|passwd --stdin hadoop

增加權限:

visudo

hadoop ALL=(ALL) ?ALL


8.切換hadoop用戶

su - hadoop


9.配置SSH無密碼登陸

master可以通過密鑰登陸本機和兩臺slave

master上生成密鑰對:

執行ssh-keygen 命令后一直回車

[hadoop@mylab1 ~]$ ssh-keygen


生成.ssh目錄

ls .ssh/

id_rsa ?id_rsa.pub

復制~/.ssh/id_rsa.pub 內容到本機和兩臺slave的 ~/.ssh/authorized_keys

設置本機和兩臺slave機器上的~/.ssh/authorized_keys文件權限為600

chmod 600 ~/.ssh/authorized_keys

cp id_rsa.pub authorized_keys

scp ~/.ssh/authorized_keys hadoop@192.168.100.12:/home/hadoop/.ssh/

scp ~/.ssh/authorized_keys hadoop@192.168.100.13:/home/hadoop/.ssh/

測試:

在master上執行

ssh master

ssh slave1

ssh slave2

可以直接登陸,即實現master免密碼登錄slave1,slave2

10.創建備用目錄

mkdir -pv /usr/local/storage/zookeeper/{data,logs} ? #創建zookeeper數據目錄和日志目錄

11.同步:

由于所有軟件,配置文件,環境配置基本相同,所有本文所有操作都可以在一臺服務器上操作執行,之后通過rsync,或scp等同步工具,同步到其他服務器,可避免重復性操作,切記,切記,切記

例如:rsync –av /usr/local/storage/ ?mylab2:/usr/local



二、部署應用

1.安裝JAVA環境

先除已有jdk(如果有) rpm -e jdk(之前版本)

安裝jdk

?rpm -ivh jdk-7u79-linux-x64.rpm

修改環境變量:vim /home/hadoop/.bashrc

JAVA_HOME=/usr/java/jdk1.7.0_79

JRE_HOME=/usr/java/jdk1.7.0_79/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPAT

使環境變量生效:

source?/home/hadoop/.bashrc

驗證jdk安裝成功?

java -version 版本顯示為安裝版本即正常


#注:所有服務器都要安裝jdk


2.安裝hadoop2.7

把hadoop安裝包解壓到每一個節點(可以解壓到一個節點,然后完成后續第2步的配置后,再scp拷貝到其余節點)的固定目錄下


1.1解壓hadoop,并修改用戶及用戶組為hadoop

cd /usr/local/src/

tar xf hadoop-2.7.1.tar.gz

chown -R hadoop.hadoop hadoop-2.7.1

mv hadoop-2.7.1  /usr/local/hadoop

1.2執行一下命令檢查hadoop是否可用

cd /usr/local/hadoop

./bin/hadoop version

查看是否顯示hadoop版本信息

Hadoop 2.7.1 顯示即正常,否則軟件包有問題重新下載。


1.3在hadoop目錄下創建如下目錄

cd /usr/local/hadoop

mkdir tmp dfs dfs/data dfs/name ??

1.4、設置Hadoop環境變量

vim /home/hadoop/.bashrc

JAVA_HOME=/usr/java/jdk1.7.0_79

JRE_HOME=/usr/java/jdk1.7.0_79/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPAT



export HADOOP_HOME=/usr/local/hadoop

export HIVE_HOME=/usr/local/hive

export HBASE_HOME=/usr/local/hbase

export ZOOKEEPER=/usr/local/zookeeper

export HADOOP_INSTALL=$HADOOP_HOME

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_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$ZOOKEEPER/bin使環境變量生效

source ~/.bashrc

同步至其他服務器:

例如:

rsync –av /home/hadoop/.bashrc mylab2:/home/hadoop/



1.4、配置文件修改:

集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5個配置文件,更多設置項可點擊查看官方說明,這里僅設置了正常啟動所必須的設置項: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

1.1、core-site.xml?

master上 vim /usr/local/hadoop/etc/hadoop/core-site.xml

<configuration>

? ? <property>

? ? ? ? <name>fs.defaultFS</name>

? ? ? ? <value>hdfs://192.168.100.11:9000</value>

? ? </property>

? ? <property>

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

? ? ? ? <value>file:/usr/local/hadoop/tmp</value>

? ? </property>

? ? <property>

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

? ? ? ? <value>131702</value>

? ? </property>

<!--指定可以在任何IP訪問-->

? <property>

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

? ? <value>*</value>

? </property>

<!--指定所有用戶可以訪問-->

? <property>

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

? ? <value>*</value>

? </property>

?<!-- 指定zookeeper地址 -->

? <property>

? ? <name>ha.zookeeper.quorum</name>

? ? <value>mylab1:2181,mylab2:2181,mylab3:2181</value>

? </property>

</configuration>

1.2、hdfs-site.xml

dfs.replication 一般設為 3,但我們只有2個 Slave 節點,所以 dfs.replication 的值還是設為 2

master上 ?vi ?/usr/local/hadoop/etc/hadoop/hdfs-site.xml

<configuration>

<!--指定支持高可用自動切換機制-->?

? <property>?

? ? <name>dfs.ha.automatic-failover.enabled</name>?

? ? <value>true</value>?

? </property>?

<!--指定namenode名稱空間的存儲地址-->?

? ? <property>

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

? ? ? ? <value>file:/usr/local/hadoop/dfs/name</value>

? ? </property>

<!--指定datanode數據存儲地址-->

? ? <property>

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

? ? ? ? <value>file:/usr/local/hadoop/dfs/data</value>

? ? </property>

? ? <property>

? ? ? ? <name>dfs.replication</name>

? ? ? ? <value>2</value>

? ? </property>

? ? <property>

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

? ? ? ? <value>192.168.100.11:9001</value>

? ? </property>

? ? <property>

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

? ? <value>true</value>

? ? </property>

? ?<property>?

? ? <name>ha.zookeeper.quorum</name>?

? ? <value>mylab1:2181,mylab2:2181,mylab3:2181</value>?

? ?</property>?

</configuration>

1.3、mapred-site.xml

需要先重命名,默認文件名為 mapred-site.xml.template

master上 ?vi ?/usr/local/hadoop/etc/hadoop/mapred-site.xml

<configuration>

<!-- 配置MapReduce運行于yarn中 -->?

? ? <property>

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

? ? ? ? <value>yarn</value>

? ? </property>

<!-- 配置 MapReduce JobHistory Server 地址 ,默認端口10020 -->?

? ? <property>

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

? ? ? ? <value>192.168.100.11:10020</value>

? ? </property>

<!-- 配置 MapReduce JobHistory Server web ui 地址, 默認端口19888 -->?

? ? <property>

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

? ? ? ? <value>192.168.100.11:19888</value>

? ? </property>


</configuration>

1.4、yarn-site.xml


master上 ?vi ?/usr/local/hadoop/etc/hadoop/yarn-site.xml

<configuration>

<property>

? ? ? ? <name>yarn.nodemanager.aux-services</name>

? ? ? ? <value>mapreduce_shuffle</value>

? ? </property>

? ? <property>

? ? ? ? <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>

? ? ? ? <value>org.apache.hadoop.mapred.ShuffleHandler</value>

? ? </property>

? ? <property>

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

? ? ? ? <value>192.168.100.11:8032</value>

? ? </property>

? ? <property>

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

? ? ? ? <value>192.168.100.11:8030</value>

? ?</property>

? ?<property>

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

? ? ? ? <value>192.168.100.11:8031</value>

? ? </property>

? ? <property>

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

? ? ? ? <value>192.168.100.11:8033</value>

? ? </property>

? ? <property>

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

? ? ? ? <value>192.168.100.11:8088</value>

? ? </property>

? ? <property>?

? ? ? ? ?<name>ha.zookeeper.quorum</name>?

? ??<value>mylab1:2181,mylab2:2181,mylab3:2181</value> ?

? ? </property>?

<!--配置與zookeeper的連接地址--> ?

? <property> ?

? ? <name>yarn.resourcemanager.zk-state-store.address</name> ?

? ? <value>mylab1:2181,mylab2:2181,mylab3:2181</value>?

? </property> ?


? <property> ?

? ? <name>yarn.resourcemanager.store.class</name> ?

? ? <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> ?

? </property> ?


? <property>?

? ? <name>yarn.resourcemanager.zk-address</name>?

? ? <value>mylab1:2181,mylab2:2181,mylab3:2181</value>?

? </property>?


</configuration>

1.5、 slaves?

文件 slaves,將作為 DataNode 的主機名寫入該文件,每行一個,默認為 localhost,所以在偽分布式配置時,節點即作為 NameNode 也作為 DataNode。分布式配置可以保留 localhost,也可以刪掉,讓 Master 節點僅作為 NameNode 使用。

本教程讓 Master 節點僅作為 NameNode 使用,因此將文件中原來的 localhost 刪除,添加如下內容ip或數據節點主機名即可:

192.168.100.12 ?---slave1

192.168.100.13 ----slave2


1.5、同步

rsync? av /usr/local/hadoop mylab2:/usr/local/

rsync??av /usr/local/hadoop mylab3:/usr/local/


3、Zookeeper集群部署

zookeeper集群搭建要至少3臺服務器,所以三臺服務器都要部署zookeeper;安裝在hadoop用戶上

tar xf zookeeper-3.4.6.tar.gz -C /usr/local/

mv /usr/local/zookeeper-3.4.6/ /usr/local/zookeeper


cp zoo_sample.cfg ?zoo.cfg

?編輯配置文件

vim zoo.cfg

tickTime=2000

initLimit=5

syncLimit=2

#dataDir=/tmp/zookeeper

dataDir=/usr/local/storage/zookeeper/data

dataLogDir=/usr/local/storage/zookeeper/logs?

clientPort=2181

server.1=mylab1:2888:3888?

server.2=mylab2:2888:3888?

server.3=mylab3:2888:3888

創建zookeeper的數據文件和日志存放目錄

mkdir ?/usr/local/storage/zookeeper/data ?/usr/local/storage/zookeeper/logs?

在三臺zookeeper的/usr/local/storage/zookeeper/data目錄下分別編輯myid

echo 1 >?/usr/local/storage/zookeeper/data/myid

echo 2 >?/usr/local/storage/zookeeper/data/myid

echo 3 >?/usr/local/storage/zookeeper/data/myid


同步到其他hadoop節點?

scp -r /usr/local/zookeeper ?mylab2:/usr/local/


4、部署hbase

tar xf hbase-1.2.1-bin.tar.gz

配置文件修改

regionservers 文件

mylab1

mylab2

mylab3


編輯修改hbase-site.xml文件

<configuration>

<property>?

? ? <name>hbase.rootdir</name>?

? ? <value>hdfs://192.168.100.11:9000/hbase</value>?

? </property>?


? <property>?

? ? <name>hbase.cluster.distributed</name>?

? ? <value>true</value>?

? </property>?


? <property>?

? ? <name>hbase.tmp.dir</name>?

? ? <value>/usr/loca/storage/hbase</value> ??

? </property>?


? <property>?

? ? <name>hbase.zookeeper.quorum</name>?

? ? <value>mylab1,mylab2,mylab3</value>?

? </property>?


? <property>?

? ? <name>hbase.zookeeper.property.clientPort</name>?

? ? <value>2181</value>?

? </property>

?<!--跟zookeeperper配置的dataDir一致-->?

? <property>?

? ? <name>hbase.zookeeper.property.dataDir</name>?

? ? <value>/usr/local/storage/zookeeper/data</value>?

? </property> ?

</configuration>


禁用hbase自帶的zookeeper?

vi /usr/local/hbase/conf/hbase-env.sh?

export HBASE_MANAGES_ZK=false


創建hbase-site.xml配置文件中的hbase目錄

mkdir /usr/loca/storage/hbase


同步軟件到其他節點

rsync av /usr/local/hbase mylab2:/usr/local/


5、部署hive

cp hive-env.sh.template ?hive-env.sh

cp hive-site.xml.template?hive-site.xml

編輯配置文件

vim hive-site.xml

<configuration>?

<!--在hdfs上hive數據存放目錄,啟動hadoop后需要在hdfs上手動創建-->?

? <property> ?

? ? <name>hive.metastore.warehouse.dir</name>?

? ? <value>hdfs://192.168.100.11:9000/user/hive/warehouse</value>?

? </property>?

<property>

? ? ? ? <name>datanucleus.readOnlyDatastore</name>

? ? ? ? <value>false</value>

? ? </property>

? ? <property>?

? ? ? ? <name>datanucleus.fixedDatastore</name>

? ? ? ? <value>false</value>?

? ? </property>

? ? <property>?

? ? ? ? <name>datanucleus.autoCreateSchema</name>?

? ? ? ? <value>true</value>?

? ? </property>

? ? <property>

? ? ? ? <name>datanucleus.autoCreateTables</name>

? ? ? ? <value>true</value>

? ? </property>

? ? <property>

? ? ? ? <name>datanucleus.autoCreateColumns</name>

? ? ? ? <value>true</value>

? ? </property>

<!--通過jdbc協議連接mysql的hive庫-->?

? <property> ??

? ? <name>javax.jdo.option.ConnectionURL</name> ??

? ? <value>jdbc:mysql://192.168.100.11:3306/hive?createDatabaseIfNotExist=true</value> ? ?

? </property>?


<!--jdbc的mysql驅動-->?

? <property> ??

? ? <name>javax.jdo.option.ConnectionDriverName</name> ??

? ? <value>com.mysql.jdbc.Driver</value> ? ?

? </property>?


<!--mysql用戶名-->?

? <property> ??

? ? <name>javax.jdo.option.ConnectionUserName</name> ??

? ? <value>hive</value> ? ??

? </property> ??


<!--mysql用戶密碼--> ? ??

? <property> ??

? ? <name>javax.jdo.option.ConnectionPassword</name> ??

? ? <value>hive</value> ? ??

? </property>?


<!--hive的web頁面-->?

? <property> ?

? ? <name>hive.hwi.war.file</name>?

? ? <value>lib/hive-hwi-2.0.0.war</value>?

? </property>?


<!--指定hive元數據訪問路徑,可以有多個,逗號分隔-->?

<property>?

? <name>hive.metastore.uris</name>?

? <value>thrift://192.168.100.11:9083</value>?

</property>?


<!--hiveserver2的HA-->?

? <property> ?

? ? <name>hive.zookeeper.quorum</name>?

? ? <value>mylab1,mylab2,mylab3</value>?

? </property>?

</configuration>


添加mysql驅動?

cp /usr/local/src/mysql-connector-java-5.1.38-bin.jar /usr/local/hive/lib/?


添加hive web頁面的war包?

下載hive源碼包,apache-hive-2.0.0-src.tar.gz解壓進入hwi/web?

jar cvf hive-hwi-2.0.0.war ./*?

cp hive-hwi-2.0.0.war ?/usr/local/hive/lib/?


從hbase/lib下復制必要jar包到hive/lib下?

cp /usr/local/hbase/lib/hbase-client-1.2.1.jar /usr/local/hbase/lib/hbase-common-1.2.1.jar /usr/local/hive/lib?


同步hive和hadoop的jline版本?

cp /usr/local/hive/lib/jline-2.12.jar /usr/local/hadoop/share/hadoop/yarn/lib?

查看版本?

cd /home/hadoop/hadoop/share/hadoop/yarn/lib?

find ./ -name "*jline*jar"?

刪除低版本的jline 0.9?

rm jline-0.9.94.jar?


復制jdk的tools.jar到hive/lib下?

cp $JAVA_HOME/lib/tools.jar /usr/local/hive/lib


6、部署mysql

下載集成包解壓,安裝mysql

MySQL-5.6.33-1.linux_glibc2.5.x86_64.rpm-bundle.tar

配置MySQL登錄密碼?

cat /root/.mysql_secret?

#獲取MySQL安裝時生成的隨機密碼aHoUaEJFav0X7hlG?

service mysql start?

#啟動MySQL服務?

mysql -uroot -paHoUaEJFav0X7hlG?

#進入MySQL,使用之前獲取的隨機密碼?

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); ??

#在MySQL命令行中設置root賬戶的密碼為123456


創建hive用戶,密碼hive?

CREATE USER hive IDENTIFIED BY 'hive'; ?

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

或:GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'IDENTIFIED BY 'hive'?WITH GRANT OPTION;?

flush privileges;?


用創建的hive用戶登錄mysql并創建hive庫?

mysql -uhive -phive?

create database hive;

#注:此處我的mysql是在主節點部署的

7、啟動

Hadoop集群首次啟動過程

1.啟動zookeeper

如果zookeeper集群還沒有啟動的話, 首先把各個zookeeper起來。?

/home/hadoop/zookeeper/bin/zkServer.sh start ? ?(記住所有的zookeeper機器都要啟動)?

/home/hadoop/zookeeper/bin/zkServer.sh status (1個leader,2個follower)?

輸入jps,會顯示啟動進程:QuorumPeerMain

2、啟動hadoop

首次啟動需要先在 Master 節點執行 NameNode 的格式化:

/usr/local/hadoop/bin/hdfs namenode -format

顯示無報錯即為正常

在master上操作即可,兩個slave會自動啟動


啟動服務

/usr/local/hadoop/sbin/start-all.sh

停止服務

/usr/local/hadoop/sbin/stop-all.sh

瀏覽器訪問:

http://192.168.100.11:8088/

http://192.168.100.11:50070

3、啟動hbase?

主master節點安裝目錄下

/bin/start-hbase.sh?

驗證安裝成功?

hbase shell ? ----進入hbase命令行

list ? ? ? ? ? ?---輸入list命令


hbase(main):001:0> list

TABLE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

0 row(s) in 0.5530 seconds


=> []

help get 可以查看命令幫助

查看進程為:HMaster,HRegionServer ---主節點為2個

從節點進程為:HRegionServer

通過web UI訪問hbase狀態

http://192.168.100.11:16010/master-status


4.啟動hive?

先在hdfs上創建好hive存儲數據的目錄?

/bin/hadoop fs -mkdir /tmp?

/bin/hadoop fs -mkdir -p /user/hive/warehouse?

/bin/hadoop fs -chmod g+w /tmp?

/bin/hadoop fs -chmod g+w /user/hive/warehouse

hive 遠程服務 (端口號10000) 啟動方式[metastore和hiveserver2在同一臺上啟動即可]?

nohup /usr/local/hive/bin/hive --service metastore &> metastore.log & ?

nohup /usr/local/hive/bin/hive --service hiveserver2 &> hiveserver2.log &?

hive 命令行模式?

/home/hadoop/hive/bin/hive?

或者輸入?

hive --service cli

查看進程為:2個RunJar

#注:可以在任意一臺服務器上啟動hive,都可以。

8、查看啟動進程

通過命令 jps 可以查看各個節點所啟動的進程。正確的話,在 Master 節點上可以看到 NameNode、ResourceManager、SecondrryNameNode進程

Jps

Master上:


29162 RunJar

28442 HMaster

28049 ResourceManager

28999 RunJar

27607 NameNode

29328 Jps

28571 HRegionServer

27448 QuorumPeerMain

27802 SecondaryNameNode


在 Slave 節點可以看到 DataNode 和 NodeManager 進程

Slave上:

30086 RunJar

28962 DataNode

29834 HRegionServer

30245 RunJar

28868 QuorumPeerMain

29075 NodeManager

程序啟動成功后可以在任意一臺啟動hive



可以在啟動MR-JobHistory服務,

sbin/mr-jobhistory-daemon.sh start historyserver

Hadoop2 MR-JobHistory服務介紹

1)MR-JobHistory服務目標

主要是向用戶提供歷史的mapred Job 查詢


詳細解釋:

a)在運行MR Job時,MR 的 ApplicationMaster會根據mapred-site.xml配置文件中的配置,將MR Job的job history信息保存到指定的hdfs路徑(首先保存到臨時目錄,然后mv到最終目錄)

b)如果在yarn-site.xml中,沒有配置nodemanage的LogAggregation功能,則historyserver無法提供mr日志明細查詢的功能(在提交mr job時,yarn和mapred的配置都是必須的)

c)historyserver向外提供兩個接口,web接口可以提供jobhistory和明細日志查詢的功能,而restApi只提供jobhistory查詢的功能



9、測試

hdfs dfs -copyFromLocal ./LICENSE.txt ?/123

hdfs dfs -ls ?/123

用wordcount分析LICENSE.txt ?

bin/hadoop ?jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /123/LICENSE.txt /output/123

bin/hdfs dfs -ls /output/123 ?查看分析后的文件

bin/hdfs dfs -cat /output/123/part-r-00000 ?查看分析結果

執行分布式實例

首先創建 HDFS 上的用戶目錄

hdfs dfs -mkdir -p /user/hadoop

將 /usr/local/hadoop/etc/hadoop 中的配置文件作為輸入文件復制到分布式文件系統中:

hdfs dfs -mkdir input

hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input

查看input目錄下文件

hdfs dfs -ls input





報錯總結:

若出現提示 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”,該 WARN 提示可以忽略,不會影響 Hadoop 正常運行(可通過編譯 Hadoop 源碼解決,解決方法請自行搜索)。

若出現提示 “INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknowHostException”,這需要執行如下命令修改 hosts 文件,為你的主機名增加IP映射:



Datanode不能啟動

Initialization failed for Block pool <registering> (Datanode Uuid unassigned)

解決方案:

將目錄、dfs、name、data清空

是重復啟動到時key值不一樣



Hmaster消失?ERROR: Can't get master address from ZooKeeper; znode data == null

這個問題這里是由于啟動hbase失敗造成,主要原因是因為配置文件hbase-site.xml中hdfs端口配置錯誤導致,幫助文檔中使用的是8020,而我的hadoop分布集群用的是9000默認端口,修改配置如下:gedit hbase-site.xml? ? ? ? ? ? ? ? <property>? ? ? ? ? ? ? ? ? ? ? ? <name>hbase.rootdir</name>? ? ? ? ? ? ? ? ? ? ? ? <value>hdfs://hadoop0:9000/hbase</value>? ? ? ? ? ? ? ? </property>

參考:

http://f.dataguru.cn/thread-519459-1-1.html














本文轉自super李導51CTO博客,原文鏈接:http://blog.51cto.com/superleedo/1894519 ,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的hadoop-2.7.1+zookeeper-3.4.8+hbase-1.2.1+apache-hive-2.0.0完全分布式集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。