標籤:
實驗開發環境所用軟體:
[[email protected] local]# lltotal 320576-rw-r--r-- 1 root root 52550402 Mar 6 10:34 apache-flume-1.6.0-bin.tar.gzdrwxr-xr-x 7 root root 4096 Jul 15 10:46 flumedrwxr-xr-x. 11 root root 4096 Jul 10 21:04 hadoop-rw-r--r--. 1 root root 124191203 Jul 2 11:44 hadoop-2.4.1-x64.tar.gzdrwxr-xr-x. 7 root root 4096 Jul 14 10:02 hbase-rw-r--r--. 1 root root 79367504 Jan 21 20:40 hbase-0.96.2-hadoop2-bin.tar.gzdrwxr-xr-x 9 root root 4096 Jul 15 09:09 hive-rw-r--r-- 1 root root 30195232 Dec 12 2015 hive-0.9.0.tar.gz-rw-r--r-- 1 root root 7412135 Jul 14 19:51 MySQL-client-5.1.73-1.glibc23.x86_64.rpm-rw-r--r--. 1 root root 875336 Jan 21 20:17 mysql-connector-java-5.1.28.jar-rw-r--r-- 1 root root 16775717 Jul 14 19:50 MySQL-server-5.1.73-1.glibc23.x86_64.rpmdrwxr-xr-x 9 root root 4096 Apr 27 2015 sqoop-rw-r--r-- 1 root root 16870735 Jul 15 10:23 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
具體配置如下:
Hadoop開發環境叢集搭建總結:(一)hadoop2.4.1叢集搭建(非聯盟方式):hadoop2.4.1 64位叢集環境介紹:hadoop11 NameNode 、SecondaryNameNodehadoop22 ResourceManagerhadoop33 DataNode、NodeManagerhadoop44 DataNode、NodeManagerhadoop55 DataNode、NodeManagerhadoop66 DataNode、NodeManager 前期準備:①>關閉防火牆 ②>設定靜態IP地址 ③>修改主機名稱 ④>IP地址與主機名稱綁定 ⑤>設定SSH免密碼登入 ⑥>安裝JDK並配置環境變數 安裝hadoop2.4.11>解壓縮2>修改設定檔-----------hadoop-env.sh------------------JAVA_HOME=/usr/local/jdk-------core-site.xml----------------------<property> <name>fs.defaultFS</name> <value>hdfs://hadoop11:9000</value></property><property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value></property>-------hdfs-site.xml----------------------<property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> -------mapred-site.xml--------------------<property> <name>mapreduce.framework.name</name> <value>yarn</value></property> -------yarn-site.xml----------------------<property> <name>yarn.resourcemanager.hostname</name> <value>hadoop22</value></property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>------------slaves------------------------hadoop33hadoop44hadoop55hadoop66------------------------------------------hdfs namenode -format 格式化3>啟動HDFS與YARN叢集start-dfs.shstart-yarn.sh顯示進程:4334 SecondaryNameNode4781 Jps4614 NodeManager4188 DataNode4074 NameNode4474 ResourceManager(二)Zookeeper叢集搭建:(QuorumPeerMain)Zookeeper叢集對應伺服器:hadoop33、hadoop44、hadoop552.1 zk伺服器叢集規模不小於3個節點,要求各伺服器之間系統時間要保持一致。 2.2 在hadoop33的/usr/local目錄下,解壓縮zk....tar.gz,設定環境變數 2.3 在conf目錄下,修改檔案 vi zoo_sample.cfg zoo.cfg 2.4 編輯該檔案,執行vi zoo.cfg 修改dataDir=/usr/local/zk/data 新增 server.0=hadoop33:2888:3888 server.1=hadoop44:2888:3888 server.2=hadoop55:2888:3888 2.5 建立檔案夾mkdir /usr/local/zk/data 2.6 在data目錄下,建立檔案myid,值為0 2.7 把zk目錄複寫到hadoop44和hadoop55中 2.8 把hadoop44中相應的myid的值改為1 把hadoop55中相應的myid的值改為2 2.9 啟動,在三個節點上分別執行命令zkServer.sh start 2.10 檢驗,在三個節點上分別執行命令zkServer.sh status檢驗:[[email protected] local]# zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zk/bin/../conf/zoo.cfgMode: follower[[email protected] data]# zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zk/bin/../conf/zoo.cfgMode: leader[[email protected] data]# zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zk/bin/../conf/zoo.cfgMode: follower(三)Hbase叢集搭建Hbase叢集環境描述:HMaster hadoop11、hadoop22(active與standby)HRegionServer hadoop33、hadoop44、hadoop55安裝Hbase1>解壓縮2>修改設定檔(注意最後一條)-----------------------hbase-env.sh-------------------------------------export JAVA_HOME=/usr/local/jdkexport HBASE_MANAGES_ZK=false-----------------------hbase-site.xml-----------------------------------<property> <name>hbase.rootdir</name> <value>hdfs://hadoop11:9000/hbase</value></property><property> <name>hbase.cluster.distributed</name> <value>true</value></property><property> <name>hbase.zookeeper.quorum</name> <value>hadoop33:2181,hadoop44:2181,hadoop55:2181</value></property><property> <name>dfs.replication</name> <value>3</value></property>----------------------regionservers-------------------------------------hadoop33hadoop44hadoop55**********************並沒有涉及到Hmaster相關的配置***************-----------------------因為hbase中的資料在hdfs中儲存----------------------將Hadoop(hdfs)的hdfs-site.xml和core-site.xml 放到hbase/conf下3、啟動hbasestart-hbase.sh******啟動hbase之前,確保hadoop是運行正常的,並且可以寫入檔案*************啟動hbase之前,確保zk叢集已經啟動**********************************Hmaster的位置在設定檔中並沒有進行配置,結果就是在哪個節點啟動hbase,哪個節點就是Hmaster******* ******Hbase在啟動的時候可以通過hbase-daemon.sh start master啟動多個hmaster,多餘的是standby狀態******查看啟動進程:------------------------------------------------------------------------HMasterHRegionServer------------------------------------------------------------------------若使用的是自己的zk執行個體(true),jps後顯示的進程是HQuorumPeer若使用的不是自己的zk執行個體(false),jps後顯示的進程是QuorumPeerMain 使用瀏覽器訪問http://hadoop11(Hmaster):60010。(四)Hive工具的搭建使用註:hive本身就是一個用戶端工具,沒有分布與偽分布搭建之分1、解壓縮、重新命名、設定環境變數-----------------------------------------------------------------------------------------------------2、安裝mysql---直到可以通過Navicate進行遠端連線 (1)執行命令 service mysql status 以及 rpm -qa |grep -i mysql 命令檢查是否已經安裝了mysql (2)執行命令 rpm -e xxxxxxx --nodeps 刪除已經安裝的mysql (3)執行命令 service mysql status 以及rpm -qa |grep -i mysql 檢查是否刪除乾淨 (4)執行命令 rpm -i mysql-server-******** (--nodeps --force) 安裝服務端 (5)執行命令 mysqld_safe & 啟動mysql 服務端 (6)執行命令 service mysql status 檢查mysql服務端是否啟動 (7)執行命令 rpm -i mysql-client-******** 安裝mysql用戶端 (8)執行命令 mysql_secure_installation 設定mysql用戶端root登入密碼 【3個N 1個Y】 (9)執行命令 mysql -uroot -padmin登入到mysql用戶端 (10)執行命令 grant all on *.* to ‘root‘@‘%‘ identified by ‘admin‘ ; {第一個* 本來是hive的} flush privileges; 使mysql可以遠端連線 (11)把mysql的jdbc驅動放置到hive的lib目錄下 *******!!!!!!!!!!!!!!!-----------------------------------------------------------------------------------------------------3、修改設定檔 (1)修改hadoop的設定檔hadoop-env.sh,修改內容如下:(hadoop2.0的時候沒有配置這一項) export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin (2)在目錄$HIVE_HOME/bin下面,修改檔案hive-config.sh,增加以下內容: export JAVA_HOME=/usr/local/jdk export HIVE_HOME=/usr/local/hive export HADOOP_HOME=/usr/local/hadoop (3) 在目錄$HIVE_HOME/conf/下, 將hive-env.sh.template、hive-default.xml.template、hive-log4j.properties重新命名 修改hive_env.sh(1處) 1、添加HADOOP_HOME的安裝目錄位址 修改hive-log4j.properties (1處) 1、log4j.appender.EventCounter的值修改為org.apache.hadoop.log.metrics.EventCounter 修改設定檔hive-site.xml:(4處) /******在哪個主機上安裝的mysql就寫哪台機器的主機名稱,而不是都寫老大的主機名稱hadoop*******/ <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop11:3306/hive?createDatabaseIfNotExist=true</value> /注意:路徑是hive/ </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>admin</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/hive</value> /***設定hive在hdfs中的工作目錄****/ </property>-----------------------------------------------------------------------------------------------------------4、啟動hive工具 hive檢驗:在hive中建立一個表table,然後在mysql的(shell+Navicate中)的TBLS表中看是否可以查到中繼資料資訊(五)Sqoop工具的搭建使用sqoop僅僅是一個工具,談不上分布與偽分布的概念sqoop安裝(非常簡單):1、解壓縮2、重新命名3、配置環境變數4、source /etc/profile 5、將Mysql的驅動放到sqoop的lib的目錄下OK!(六)Sqoop工具的搭建使用Flume的配置沒有叢集、非叢集一說Flume配置:1>解壓縮2>重新命名3>修改環境變數,source /etc/profile4>更改flume-env.sh添加JAVA_HOME4>****************編寫設定檔並添加到conf目錄下************# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.sources.r1.type = spooldira1.sources.r1.spoolDir = /usr/local/datainputa1.sources.r1.fileHeader = truea1.sources.r1.interceptors = i1a1.sources.r1.interceptors.i1.type = timestamp# Describe the sink# Describe the sinka1.sinks.k1.type = hdfsa1.sinks.k1.hdfs.path = hdfs://hadoop11:9000/dataoutputa1.sinks.k1.hdfs.writeFormat = Texta1.sinks.k1.hdfs.fileType = DataStreama1.sinks.k1.hdfs.rollInterval = 10a1.sinks.k1.hdfs.rollSize = 0a1.sinks.k1.hdfs.rollCount = 0a1.sinks.k1.hdfs.filePrefix = %Y-%m-%d-%H-%M-%Sa1.sinks.k1.hdfs.useLocalTimeStamp = true# Use a channel which buffers events in filea1.channels.c1.type = filea1.channels.c1.checkpointDir = /usr/flume/checkpointa1.channels.c1.dataDirs = /usr/flume/data# Bind the source and sink to the channela1.sources.r1.channels = c1a1.sinks.k1.channel = c15>執行命令 bin/flume-ng agent -n agent1 -c conf -f conf/baby -Dflume.root.logger=DEBUG,console 即可執行。
如有問題,歡迎指正留言!
Hadoop2.0叢集、Hbase叢集、Zookeeper叢集、Hive工具、Sqoop工具、Flume工具搭建總結