Centos6.5 Windows10
相關軟件包下載:html
連接:https://pan.baidu.com/s/1EOLUphwZgzwSX01HsDJM0g
提取碼:1tsfjava
特別說明: 教程用的主機名分別爲master,slave1,slave2 因此發現有出現主機名爲 」 spark1」的主機名
等同於 「master」若是若是看見配置文件爲spark1,必定要修改爲master ;有些圖片是後面添加的纔出現主機名不一致但並不影響理解.node
沒有特別說明操做都是在 master 機器操做mysql
關閉Linux和Windows的防火牆(防止機器之間應爲防火牆攔截而不能連通)linux
Windows: window系統: 控制面板 -> 系統和安全 ->Windows Defender 防火牆 -> 啓用或關閉Windows Defender 防火牆 -> 關閉Windows Defender 防火牆 //通常只關閉」專用網絡設置」的防火牆就行
Linux: 中止防火牆: service iptables stop 啓動防火牆: service iptables start 重啓防火牆: service iptables restart 永久關閉防火牆: chkconfig iptables off 永久開啓防火牆: chkconfig iptables no 查看防火牆狀態: service iptables status
查看SELinux狀態 getenforce 修改配置文件/etc/selinux/config 將SELINUX=enforcing改成SELINUX=disabled
查看自動生成的IPweb
設置靜態IPsql
重啓網絡服務,並檢測dns是否生效shell
更改主機名,便於集羣管理(重啓才能生效)數據庫
vim /etc/sysconfig/networkapache
HOSTNAME=master
修改其餘兩臺主機名分別爲 slave1 和 slave2
配置master主機的IP主機映射, 能夠將名稱映射爲對應的IP地址
vim /etc/hosts
192.168.153.101 master 192.168.153.102 slave1 192.168.153.103 slave2
cd ~/.ssh/ ssh-keygen -t rsa (四次連續回車) 生成 id_rsa(私鑰) id_rsa.pub(公鑰)
ssh-copy-id master(主機名,須要配好了主機映射) authorized_keys known_hosts
將另外兩臺slave1和slave2重複上述操做 複製 另外兩臺authorized_keys的內容追加到master的authorized_keys裏面 最終authorized_keys文件的內容
將這個最終的authorized_keys文件copy到其餘機器的 /root/.ssh 目錄下
scp -r /root/.ssh/authorized_keys root@slave1:/root/.ssh scp -r /root/.ssh/authorized_keys root@slave2:/root/.ssh 說明: scp -r(複製文件夾) 本地文件路徑 目標用戶名@目標主機IP/IP映射的主機名:目標主機的路徑
測試免密碼登陸 ssh slave1 ssh slave2 輸入 exit 退出
解壓縮jdk安裝包 tar -zxvf jdk-8u144-linux-x64.tar.gz 建立目錄/opt/java mkdir /opt/java 移動文件夾jdk1.8.0_144到/opt/java下面,並更名爲jdk1.8 mv jdk1.8.0_144/ /opt/java/jdk1.8
配置須要用到的全部環境變量 vim /etc/profile
#Java Config export JAVA_HOME=/opt/java/jdk1.8 export JRE_HOME=/opt/java/jdk1.8/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib # Scala Config export SCALA_HOME=/opt/scala/scala2.12.2 # Spark Config export SPARK_HOME=/opt/spark/spark2.2 # Zookeeper Config export ZK_HOME=/opt/zookeeper/zookeeper3.4 # HBase Config export HBASE_HOME=/opt/hbase/hbase1.2 # Hadoop Config export HADOOP_HOME=/opt/hadoop/hadoop2.8 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" # Hive Config export HIVE_HOME=/opt/hive/hive2.1 export HIVE_CONF_DIR=${HIVE_HOME}/conf #kafka config export KAFKA_HOME=/opt/kafka/kafka1.0.0 export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:${KAFKA_HOME}/bin:$PATH
刷新環境變量文件,使其當即生效 source /etc/profile
tar -zxvf scala-2.12.2.tgz 建立目錄/opt/scala mkdir /opt/scala 移動文件夾scala-2.12.2到/opt/ scala下面,並更名爲scala2.12.2 mv scala-2.12.2 /opt/scala/scala2.12.2 配置環境變量(略,前面配過) source /etc/profile
解壓文件 tar -zxvf zookeeper-3.4.10.tar.gz mkdir /opt/zookeeper mv zookeeper-3.4.10 /opt/zookeeper/zookeeper3.4 環境變量配置(略,前面配過) source /etc/profile
建立存放數據的文件夾和文件 mkdir /opt/zookeeper/data mkdir /opt/zookeeper/dataLog /opt/zookeeper/data目錄下建立myid文件 touch /opt/zookeeper/data/myid 更改myid文件。 我這邊爲了方便,將master、slave一、slave2的myid文件內容改成1,2,3 這些數字表明的是每一臺zookeeper本身的ID echo 1 >> myid
cd /opt/zookeeper/zookeeper3.4/conf cp zoo_sample.cfg zoo.cfg vim 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
配置說明: client port,顧名思義,就是客戶端鏈接zookeeper服務的端口。這是一個TCP port。 dataLogDir裏是放到的順序日誌(WAL)。而dataDir裏放的是內存數據結構的snapshot,便於快速恢復。爲了達到性能最大化,通常建議把dataDir和dataLogDir分到不一樣的磁盤上,這樣就能夠充分利用磁盤順序寫的特性。dataDir和dataLogDir須要本身建立,目錄能夠本身制定,對應便可。 server.1中的這個1須要和master這個機器上的dataDir目錄中的myid文件中的數值對應。server.2中的這個2須要和slave1這個機器上的dataDir目錄中的myid文件中的數值對應。server.3中的這個3須要和slave2這個機器上的dataDir目錄中的myid文件中的數值對應。固然,數值你能夠隨便用,只要對應便可。2888和3888的端口號也能夠隨便用,由於在不一樣機器上,用成同樣也無所謂。 1.tickTime:CS通訊心跳數 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。tickTime以毫秒爲單位。 tickTime=2000 2.initLimit:LF初始通訊時限 集羣中的follower服務器(F)與leader服務器(L)之間初始鏈接時能容忍的最多心跳數(tickTime的數量)。 initLimit=10 3.syncLimit:LF同步通訊時限 集羣中的follower服務器與leader服務器之間請求和應答之間能容忍的最多心跳數(tickTime的數量)。 syncLimit=5 依舊將zookeeper傳輸到其餘的機器上,記得更改 /opt/zookeeper/data 下的myid,這個不能一致。
scp -r /opt/zookeeper root@slave1:/opt scp -r /opt/zookeeper root@slave2:/opt 須要更改myid文件
cd /opt/zookeeper/zookeeper3.4/bin 啓動服務 ./ zkServer.sh start 查看啓動狀態,各個機器上zookeeper的leader(主)和follower(從) ,只能一個是主,隨機選擇 ./zkServer.sh status
Hadoop HA:在Hadoop分佈式只有一個master管理的基礎上,實如今主master宕機時,設置一個Node在Zookeeper的調度下能夠當即頂替master的全部任務。不會應爲master宕機致使整個集羣癱瘓。
主機 | 安裝的軟件 | 開啓的進程 |
---|---|---|
spark1 | jdk,hadoop,zookeeper | 7669 DFSZKFailoverController 4261 QuorumPeerMain 7367 NameNode 8362 Jps 8269 ResourceManager |
slave1 | jdk,hadoop,zookeeper | 8993 NameNode 9585 NodeManager 3765 QuorumPeerMain 9061 DataNode 9143 JournalNode 9726 Jps 9247 DFSZKFailoverController 8339 ResourceManager |
slave2 | jdk,hadoop,zookeeper | 4996 NodeManager 5141 Jps 3034 QuorumPeerMain 4763 JournalNode 4668 DataNode |
tar -zxvf hadoop-2.8.2.tar.gz mkdir /opt/hadoop mv hadoop-2.8.2 /opt/hadoop hadoop2.8 配置環境變量(前面配好了 # Hadoop Config) source /etc/profile cd /opt/hadoop/hadoop2.8/etc/hadoop
vim core-site.xml 在<configuration>節點內加入配置
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ns1</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/hadoop2.8/data/tmp</value> </property> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>spark1:2181,slave1:2181,slave2:2181</value> </property> </configuration>
export JAVA_HOME=/opt/java/jdk1.8 export HADOOP_CONF_DIR=/opt/hadoop/hadoop2.8/etc/hadoop export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
cd /opt/hadoop/hadoop2.8/etc/hadoop vim log4j.properties
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property> <property> <name>dfs.nameservices</name> <value>ns1</value> </property> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> <property> <name>dfs.ha.namenodes.ns1</name> <value>nn1,nn2</value> </property> <!-- nn1的RPC通訊地址,nn1所在地址 --> <property> <name>dfs.namenode.rpc-address.ns1.nn1</name> <value>spark1:8020</value> </property> <!-- nn1的http通訊地址,外部訪問地址 --> <property> <name>dfs.namenode.http-address.ns1.nn1</name> <value>spark1:50070</value> </property> <!-- nn2的RPC通訊地址,nn2所在地址 --> <property> <name>dfs.namenode.rpc-address.ns1.nn2</name> <value>slave1:8020</value> </property> <!-- nn2的http通訊地址,外部訪問地址 --> <property> <name>dfs.namenode.http-address.ns1.nn2</name> <value>slave1:50070</value> </property> <!-- 指定NameNode的元數據在JournalNode日誌上的存放位置(通常和zookeeper部署在一塊兒) --> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://slave1:8485;slave2:8485/ns1</value> </property> <!-- 指定JournalNode在本地磁盤存放數據的位置 --> <property> <name>dfs.journalnode.edits.dir</name> <value>/opt/hadoop/hadoop2.8/data/journal</value> </property> <!--客戶端經過代理訪問namenode,訪問文件系統,HDFS 客戶端與Active 節點通訊的Java 類,使用其肯定Active 節點是否活躍 --> <property> <name>dfs.client.failover.proxy.provider.ns1</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!--這是配置自動切換的方法,有多種使用方法,具體能夠看官網,在文末會給地址,這裏是遠程登陸殺死的方法 --> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <!-- 這個是使用sshfence隔離機制時才須要配置ssh免登錄 --> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value> </property> <!-- 配置sshfence隔離機制超時時間,這個屬性同上,若是你是用腳本的方法切換,這個應該是能夠不配置的 --> <property> <name>dfs.ha.fencing.ssh.connect-timeout</name> <value>30000</value> </property> <!-- 這個是開啓自動故障轉移,若是你沒有自動故障轉移,這個能夠先不配 --> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration>
cp mapred-site.xml.template mapred-site.xml 在<configuration>節點內加入配置
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>spark1:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>spark1:19888</value> </property>
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- Site specific YARN configuration properties --> <property> <name> yarn.resourcemanager.hostname</name> <value>spark1</value> </property> <!--啓用resourcemanager ha--> <!--是否開啓RM ha,默認是開啓的--> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>640800</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>2</value> </property> <property> <name>yarn.log.server.url</name> <value>http://spark1:19888/jobhistory/logs/</value> </property> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <!--聲明兩臺resourcemanager的地址--> <property> <name>yarn.resourcemanager.cluster-id</name> <value>rmcluster</value> </property> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>spark1,slave1</value> </property> <property> <name>yarn.resourcemanager.hostname.spark1</name> <value>spark1</value> </property> <property> <name>yarn.resourcemanager.hostname.slave1</name> <value>slave1</value> </property> <!--指定zookeeper集羣的地址--> <property> <name>yarn.resourcemanager.zk-address</name> <value>spark1:2181,slave1:2181,slave2:2181</value> </property> <!--啓用自動恢復,當任務進行一半,rm壞掉,就要啓動自動恢復,默認是false--> <property> <name>yarn.resourcemanager.recovery.enabled</name> <value>true</value> </property> <!--指定resourcemanager的狀態信息存儲在zookeeper集羣,默認是存放在FileSystem裏面。--> <property> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> </property> <configuration>
說明: yarn.nodemanager.vmem-check-enabled這個的意思是忽略虛擬內存的檢查,若是你是安裝在虛擬機上,這個配置頗有用,配上去以後後續操做不容易出問題。若是是實體機上,而且內存夠多,能夠將這個配置去掉
vim /opt/hadoop/hadoop2.8/etc/hadoop/slaves
slave1 slave2
scp -r /opt/hadoop root@slave1:/opt scp -r /opt/hadoop root@slave2:/opt
啓動全部機器的zookeeper
初始化Hadoop /opt/hadoop/hadoop2.8/bin/hdfs namenode -format
注意: 這個操做不能屢次使用否則容易形成namdenode 的 namespaceID 與 datanode的namespaceID 不一致,從而致使namenode和 datanode的斷連。
解決辦法: https://blog.csdn.net/lukabruce/article/details/80277846
啓動 hdfs 和 yarn cd /opt/hadoop/hadoop2.8/sbin 啓動hdfs ./start-dfs.sh 啓動yarn ./start-yarn.sh [ 啓動全部服務可使用:./start-all.sh ]
第一次登陸會詢問是否鏈接,輸入yes ,而後輸入密碼就能夠了 啓動成功以後,可使用jps命令在各個機器上查看是否成功 能夠在瀏覽器輸入: ip+50070 和8088端口查看
查看hdfs Web管理頁面: http://master:50070
查看Hadoop 的 Application Web管理頁面:http://master:8088
注意: 開啓服務時: start-all.sh 默認只啓動一個ResourceManager另外一個須要手動到那臺機器的 /opt/hadoop/hadoop2.8/sbin 目錄下輸入: ./yarn-daemon.sh start resourcemanager 關閉服務時: stop-all.sh 默認只關一個ResourceManager全部也須要手動關閉ResourceManager進程 kill -9 進程ID
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz mkdir /opt/spark mv spark-2.2.0-bin-hadoop2.7 /opt/spark/spark2.2 環境變量配置(略,前面配過了) source /etc/profile
cd /opt/spark/spark2.2/conf/ cp spark-env.sh.template spark-env.sh vim spark-env.sh
export SCALA_HOME=/opt/scala/scala2.12.2 export JAVA_HOME=/opt/java/jdk1.8 export HADOOP_HOME=/opt/hadoop/hadoop2.8 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export SPARK_HOME=/opt/spark/spark2.2 export SPARK_MASTER_IP=master export SPARK_EXECUTOR_MEMORY=4G
mv slaves.template slaves vim slaves
slave1 slave2
scp -r /opt/spark root@slave1:/opt scp -r /opt/spark root@slave2:/opt
cd /opt/spark/spark2.2/sbin ./start-all.sh
查看Spark Web頁面:http://master:8080
卸載已經安裝的MySQL rpm -qa | grep -i mysql
rpm -e mysql-libs-5.1.73-8.el6_8.x86_64;//通常刪除,若是提示依賴的其餘文件,則不能刪除 rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64;//強力刪除,若是有其餘依賴文件,則能夠對其進行強力刪除
使用yum安裝MySQL
yum install -y mysql-server mysql mysql-devel //將mysql,mysql-server,mysql-devel
啓動mysql服務
service mysqld start
開機自動啓動
chkconfig --list | grep mysqld // 查看是否開機自動啓動mysql
mysql -u root -p
解決初始密碼問題
ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO) ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
關閉服務 service mysqld stop 啓動臨時服務 /usr/bin/mysqld_safe --skip-grant-tables 不要關閉這個服務終端
另開一個終端輸入 mysql
修改MySQL的root密碼爲 123456 mysql> use mysql mysql> update user set password=password("123456") where user="root"; mysql> flush privileges; mysql> exit
ps -A | grep mysql 4532 pts/0 00:00:00 mysqld_safe 5542 pts/0 00:00:00 mysqld 關閉mysqld服務 kill -9 5542 開啓mysqld服務 service mysqld start 登陸MySQL mysql -uroot -p
解決利用sqoop導入MySQL中文亂碼的問題(能夠插入中文,但不能用sqoop導入中文) 致使導入時中文亂碼的緣由是character_set_server默認設置是latin1 mysql> show variables like "char%";
臨時修改命令 mysql> set character_set_server=utf8; mysql> quit;
永久修改 gedit /etc/my.cnf
character_set_server=utf8 init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' collation-server=utf8_unicode_ci skip-character-set-client-handshake
查看編碼方式 mysql> show variables like "char%";
tar -zxvf hbase-1.2.6-bin.tar.gz mkdir /opt/hbase mv hbase-1.2.6 /opt/hbase/hbase1.2 配置環境變量(略,前面配過) source /etc/profile
cd /opt/hbase/hbase1.2/conf vim hbase-env.sh
export JAVA_HOME=/opt/java/jdk1.8 export HADOOP_HOME=/opt/hadoop/hadoop2.8 export HBASE_HOME=/opt/hbase/hbase1.2 export HBASE_CLASSPATH=/opt/hadoop/hadoop2.8/etc/hadoop export HBASE_PID_DIR=/root/hbase/pids export HBASE_MANAGES_ZK=false
說明:配置的路徑以本身的爲準。HBASE_MANAGES_ZK=false 是不啓用HBase自帶的Zookeeper集羣。
vim hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> <description>The directory shared byregion servers.</description> </property> <!-- hbase端口 --> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <!-- 超時時間 --> <property> <name>zookeeper.session.timeout</name> <value>120000</value> </property> <!--防止服務器時間不一樣步出錯 --> <property> <name>hbase.master.maxclockskew</name> <value>150000</value> </property> <!-- 集羣主機配置 --> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <!-- 路徑存放 --> <property> <name>hbase.tmp.dir</name> <value>/root/hbase/tmp</value> </property> <!-- true表示分佈式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定master --> <property> <name>hbase.master</name> <value>master:60000</value> </property> </configuration>
vim regionservers
slave1 slave2
scp -r /opt/hbase root@slave1:/opt scp -r /opt/hbase root@slave2:/opt
啓動Hadoop 啓動全部機器的zookeeper cd /opt/hbase/hbase1.2/bin ./start-hbase.sh
查看Hbase Web頁面:http://master:16010/master-status
須要以前安裝了MySQL
cd 安裝包文件夾目錄 tar -zxvf apache-hive-2.1.1-bin.tar.gz mkdir /opt/hive mv apache-hive-2.1.1-bin /opt/hive/hive2.1
配置環境變量 vim /etc/profile
# Hive Config export HIVE_HOME=/opt/hive/hive2.1 export HIVE_CONF_DIR=${HIVE_HOME}/conf export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:${KAFKA_HOME}/bin:${SQOOP_HOME}/bin:${FLUME_HOME}/bin:${STORM_HOME}/bin:$PATH
cd /opt/hive/hive2.1/conf mv hive-default.xml.template hive-default.xml vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost: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.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>
cd jar包目錄 cp mysql-connector-java-5.1.41.jar /opt/hive/hive2.1/lib/
service mysql start #啓動mysql服務 mysql -u root -p #登錄shell界面
#這個hive數據庫與hive-site.xml中localhost:3306/hive的hive對應,用來保存hive元數據 mysql> create database hive; #將全部數據庫的全部表的全部權限賦給hive用戶,後面的hive是配置hive-site.xml中配置的鏈接密碼 mysql> grant all on *.* to hive@localhost identified by 'hive'; #刷新mysql系統權限關係表 mysql> flush privileges; mysql> quit;
start-all.sh #啓動hadoop 須要hive元數據庫初始化 schematool -dbType mysql -initSchema #啓動hive hive
tar -zxvf kafka_2.11-1.0.0.tgz mkdir /opt/kafka mv kafka_2.12-1.0.0 /opt/kafka/kafka1.0.0 配置環境變量(略,以前配過) source /etc/profile
cd /opt/kafka/kafka1.0.0/config vim server.properties
broker.id=0 標示符(多臺服務器標示符0,1,2,3,...依次增加) host.name=master 綁定的主機 log.dirs= /opt/kafka/kafka1.0.0/kafka-logs 數據保存的位置 log.retention.hours=168 數據的保留時間 zookeeper.connect=master:2181,slave1:2181,slave2:2181
配置說明: 標示符(多臺服務器標示符0,1,2,3,...依次增加) broker.id=0 綁定的主機 host.name=master 數據保存的位置 log.dirs= /opt/kafka/kafka1.0.0/kafka-logs 數據的保留時間(小時) log.retention.hours=168 Zookeeper的地址 zookeeper.connect=master:2181,slave1:2181,slave2:2181
scp -r /opt/kafka/ root@slave1:/opt/
修改slave1機器的server.properties文件
broker.id=1 host.name=slave1
修改slave2機器的server.properties文件
broker.id=2 host.name=slave2
啓動Hadoop
啓動全部機器的zookeeper
啓動全部機器的Kafka服務(服務窗口不用關閉)
nohup /opt/kafka/kafka1.0.0/bin/kafka-server-start.sh /opt/kafka/kafka1.0.0/config/server.properties
建立主題(新開一個終端窗口)
/opt/kafka/kafka1.0.0/bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181 --replication-factor 1 --partitions 1 --topic chenjian
查看存在的主題
/opt/kafka/kafka1.0.0/bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181
模擬發送數據 master -> slava1
/opt/kafka/kafka1.0.0/bin/kafka-console-producer.sh --broker-list master:9092,slave2:9092 --topic chenjian
消費數據(接收)
kafka-console-consumer.sh --zookeeper master:2181,slave1:2181,slave2:2181 --from-beginning --topic chenjian
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz mkdir /opt/sqoop mv sqoop-1.4.7.bin__hadoop-2.6.0 /opt/sqoop/sqoop1.4.7
配置環境變量 vim /etc/profile
#sqoop config export SQOOP_HOME=/opt/sqoop/sqoop1.4.7 export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:${KAFKA_HOME}/bin:${SQOOP_HOME}/bin:$PATH
source /etc/profi
cp mysql-connector-java-5.1.41.jar /opt/sqoop/sqoop1.4.7/lib
cd /opt/sqoop/sqoop1.4.7/conf mv sqoop-env-template.sh sqoop-env.sh vim sqoop-env.sh
export HADOOP_COMMON_HOME=/opt/hadoop/hadoop2.8 export HADOOP_MAPRED_HOME=/opt/hadoop/hadoop2.8 export HBASE_HOME=/opt/hbase/hbase1.2 export HIVE_HOME=/opt/hive/hive2.1
啓動MySQL
使用Sqoop測試鏈接MySQL
sqoop list-databases --connect jdbc:mysql://192.168.37.128:3306 --username root --password 123456
tar -zxvf apache-flume-1.8.0-bin.tar.gz mkdir /opt/flume/ mv apache-flume-1.8.0-bin.tar.gz /opt/flume/flume1.8.0/
配置環境變量 vim /etc/profile
export FLUME_HOME=/opt/flume/flume1.8.0 export FLUME_CONF_DIR=${FLUME_HOME}/conf export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:${KAFKA_HOME}/bin:${SQOOP_HOME}/bin:${FLUME_HOME}/bin:$PATH
source /etc/profile
cd /opt/flume/flume1.8.0/conf/ mv flume-env.sh.template flume-env.sh vim flume-env.sh
防止測試會報找不到主類的異常須要配置hbase的hbase-env.sh文件 cd /opt/hbase/hbase1.2/conf vim hbase-env.sh
註釋掉 HBASE_CLASSPATH export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
cd /opt/flume/flume1.8.0/bin ./flume-ng version
vim /opt/flume/flume1.8.0/conf/avro.conf
a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = avro a1.sources.r1.channels = c1 a1.sources.r1.bind = 0.0.0.0 a1.sources.r1.port = 4141 # Describe the sink a1.sinks.k1.type = logger # Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
cd /opt/flume/flume1.8.0/bin #啓動日誌控制檯 flume-ng agent -c . -f /opt/flume/flume1.8.0/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console
echo "hello world" > /root/log.00
cd /opt/flume/flume1.8.0/bin flume-ng avro-client --host localhost -p 4141 -F /root/log.00
tar -zxvf apache-storm-0.9.7.tar.gz mkdir /opt/storm/ mv apache-storm-0.9.7 /opt/storm/storm0.9.7/
配置環境變量 vim /etc/profile
export STORM_HOME=/opt/storm/storm0.9.7 export PATH=.:${JAVA_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin:${HBASE_HOME}/bin:${HIVE_HOME}/bin:${KAFKA_HOME}/bin:${SQOOP_HOME}/bin:${FLUME_HOME}/bin:${STORM_HOME}/bin:$PATH
source /etc/profile
mkdir /opt/storm/storm0.9.7/data
cd /opt/storm/storm0.9.7/conf/ storm.zookeeper.servers: - "master" - "slave1" - "slave2" nimbus.host: " master " storm.local.dir: "/opt/storm/data" ui.port: 8888 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
scp -r /opt/storm/ root@slave1:/opt/ scp -r /opt/storm/ root@slave2:/opt/
啓動全部機器的Zookeeper
安裝順序執行啓動命令
nohup /opt/storm/storm0.9.7/bin/storm ui > /dev/null 2>&1 & nohup /opt/storm/storm0.9.7/bin/storm nimbus > /dev/null 2>&1 & jps
在slave1節點執行
nohup /opt/storm/storm0.9.7/bin/storm supervisor > /dev/null 2>&1 &
查看Storm Web頁面: http://master:8888/index.html
修改將Tomcat服務器啓動時使用的端口,例如改爲8000
修改完/home/apache-tomcat-7.0.92/conf
下的server.xml
文件以後,保存退出。
進入tomcat服務器的/home/apache-tomcat-7.0.92/bin
目錄,而後執行"./startup.sh
"命令啓動Tomcat服務器,以下圖所示
修改文件/etc/sysconfig/iptables
,添加一行
重啓防火牆 service iptables restart
在Windows輸入 http://192.168.37.130:8000/
編輯一個網頁 gedit /webPage.html
輸入以下內容
<html> <head>web</head> <body> <b>this is my first web page!</b> </body> </html>
建立一個文件夾 mkdir /opt/tomcat/tomcat-8.5.43/webapps/testWeb
移動建立網頁 mv /webPage.html /opt/tomcat/tomcat-8.5.43/webapps/testWeb
查看網頁內容 http://localhost:8000/testWeb/webPage.html
ssh 用戶名@主機名 「命令」 ssh root@slave2 "ls /; echo info >> /test.txt"
scp 本機文件 用戶名@主機名:文件路徑 scp /file root@slave2:/home scp 本機文件 主機名:文件路徑 scp -r /directory slave2:/home scp 主機名:文件路徑 本地文件路徑 scp -r slave2:/test /home scp -P 端口號 主機名:文件路徑 本地文件路徑 scp -P 22 slave2:/test /home
rsync -av 本地目錄 主機名:目錄路徑 rsync -av /opt/spark/ slave1:/opt/spark/
參考連接:http://www.360doc.com/content/18/0826/10/11881101_781287955.shtml