hadoop生态的配置
1.linux端
1.1 網絡設定
- 網關
- 子網路遮罩
- 網段
- IP
- 網絡設定 vi /etc/sysconfig/network-scripts/ifcfig-ens33 配置完輸入ip addr測試
- 修改主機名和域名 etc/hosts
- 關閉并禁用windows和linux防火牆
- 配置秘鑰
- 修改各自ip和主機名 此操作在克隆叢集機器後修改
-
防火牆設定
systemctl stop firewalld 停止
systemctl disable firewalld 禁用
systemctl status firewalld 檢視狀态*
- 設定windows端的主機名映射 C:\Windows\System32\drivers\etc下的hosts檔案
1.2 軟體安裝
- 安裝檢視網絡服務指令 yum -y install net-tools
- 查找上傳軟體 yum list | grep rz 并安裝
- 時間同步指令
- 安裝mysql
yum -y install ntpdate.x86_64
ntpdate 0.asia.pool.ntp.org
2. hadoop生态的軟體安裝與環境變量的配置
![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20201004105446554.png#pic_center
2.1 HDFS 分布式檔案系統 MapReduce 運算架構大資料集并行運算 Yarn 給分布式運算架構進行資源的排程和任務監控
2.1.1 vi hadoop-env.sh
export JAVA_HOME=/opt/apps/jdk1.8.0_261
2.1.2 vi hadoop-site.xml
<configuration>
<!-- 叢集的namenode的位置 datanode能通過這個位址注冊-->
<property>
<name>dfs.namenode.rpc-address</name>
<value>linux01:8020</value>
</property>
<!-- namenode存儲中繼資料的位置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hdpdata/name</value>
</property>
<!-- datanode存儲資料的位置 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hdpdata/data</value>
</property>
<!-- secondary namenode機器的位置-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>linux02:50090</value>
</property>
</configuration>
2.1.3 初始化namenode機器 !!!初始化在所有叢集搭建起來後再做。
bin/hadoop namenode -format
2.1.4 一鍵啟動
1 ) 在配置檔案的目錄中修改workers配置檔案 (啟動的時候會讀取這個檔案 ,在配置的主機上分别啟動datanode)
vi workers
2 ) 在hdfs啟動和停止的腳本中添加如下配置
vi sbin/start-dfs.sh | vi stop-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
3)在yarn啟動和停止的腳本中添加如下配置
start-yarn.sh stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
2.1.5 修改預設的操作路徑為HDFS系統
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://linux01:8020</value>
</property>
2.1.6 配置yarn的基本設定
vi yarn-site.xml
<!-- resource,manager主節點所在機器 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux01</value>
</property>
<!-- 為mr程式提供shuffle服務 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 一台NodeManager的總可用記憶體資源 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<!-- 一台NodeManager的總可用(邏輯)cpu核數 -->
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
</property>
<!-- 是否檢查容器的虛拟記憶體使用超标情況 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 容器的虛拟記憶體使用上限:與實體記憶體的比率 -->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
2.4 ZooKeeper 協調系統 協調關鍵共享狀态
2.4.1 在zookeeper下建立一個zkData檔案夾
2.4.2 在conf檔案夾中 修改檔案名為zoo_sample.cfg --> zoo.cfg
vi zoo.cfg
dataDir=/opt/apps/zookeeper-3.4.6/zkData
#Set to “0” to disable auto purge feature
#autopurge.purgeInterval=1
server.1=linux04:2888:3888
server.2=linux05:2888:3888
server.3=linux06:2888:3888
2.4.3 在zkDate中建立myid檔案夾 并寫入id号 初始化在所有叢集搭建起來後再做
注:zookeeper中沒有一鍵啟動指令 需要每台機器單獨啟動。後續配置一鍵啟動腳本
2.6 Hbase 分布式資料庫
2.6.1 hbase-env.sh 修改内容
export JAVA_HOME=/opt/apps/jdk1.8.0_261
查找指令 esc檢視模式下 輸入: /ZK
export HBASE_MANAGES_ZK=false
2.6.2 hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存儲的路徑 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://linux04:8020/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<!-- 指定zk的位址,多個用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>linux04:2181,linux05:2181,linux06:2181</value>
</property>
</configuration>
2.6.3 regionservers 配置 設定啟動叢集中的Regionserver機器
2.7 Hive 基于HADOOP的數倉操作工具
2.7.1 tar -zxf apache-hive-2.3.5.tar.gz
2.7.2 vi hive-env.sh
export HADOOP_HOME=/usr/apps/hadoop-2.8.5/
#Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/apps/hive-2.3.1/conf/
2.7.3 vi hive-site.xml
<configuration>
<!-- 記錄HIve中的中繼資料資訊 記錄在mysql中 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://linux04:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</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>root</value>
</property>
<!-- hive在hdfs中存儲的資料路徑 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>
<!-- shell用戶端連接配接的端口 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>
<!-- hive服務的頁面的端口 -->
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
<property>
<name>hive.server2.long.polling.timeout</name>
<value>5000</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateSchema </name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore </name>
<value>true</value>
</property>
<property>
<name>hive.execution.engine</name>
<value>mr</value>
</property>
</configuration>
2.7.4 vi hdp/ect/hadoop/core-site.xml 隻修改hive服務安裝的主機即可
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
2.7.5 準備mysql的驅動包
拷貝一個mysql的jdbc驅動jar包到hive的lib目錄中
2.7.6 配置Hive環境變量 并且source /etc/profile
2.7.7初始化
将hive的原資料資訊初始化到mysql中
${HIVE_HOME}/bin/schematool -initSchema -dbType mysql