1.系統(tǒng)環(huán)境
VMware-workstation:VMware-workstation-full-16.2.3
ubuntu:ubuntu-21.10
hadoop:hadoop2.7.2
mysql:mysql-connector-java-8.0.19
jdk:jdk-8u91-linux-x64.tar(注意要是linux版本的,因為是在linux系統(tǒng)中創(chuàng)建虛擬機)
hive:hive1.2.1
小技巧:
右鍵單擊可以paste
2.創(chuàng)建虛擬機
1.選擇典型即可
2.將ubuntu鏡像文件導入:
3.用戶名要記住,涉及到之后的文件路徑:(推薦使用hadoop)
4.磁盤大小,選擇默認的20GB就行,不要低于15GB,否則在遠程連接的時候可能會出問題
5.進行克隆,生成子節(jié)點slave1,slave2......
要選擇完整克隆
克隆后的虛擬機密碼和原虛擬機相同
3.修改虛擬機
修改hostname和主機名解析文件
步驟
1.sudo vi /etc/hostname
修改為自己虛擬機的名稱即可:master,slave1等等
(需要重啟才能生效)
第一次使用sudo需要輸入密碼,即創(chuàng)建虛擬機時的密碼
2.sudo vi /etc/hosts
編輯主機名解析文件,填入對應的各節(jié)點地址和對應的主機名
把類似于下面格式的文本粘貼到原文件中(各個節(jié)點都要)
192.168.40.133 master
192.168.40.132 slave1
首先需要ifconfig
查看當前的ip地址
如果顯示ifconfig
命令找不到,按照報錯提示安裝即可
問題
1.vim無法輸入
原因:ubuntu默認安裝的是vim-tiny版本,并沒有老版本的vi編輯器,它是vim的最小化版本,只包含一小部分功能
可以到文件夾中看看文件,是不是下面這樣:
如果是的話,重裝一下vim即可
重裝命令:
sudo apt-get remove vim-common
(卸載老版本)
sudo apt-get install vim
(安裝新版本)
4.設置SSH
1.ps -e|grep ssh
:查看是否安裝ssh服務(一開始都是沒安裝的)
如果安裝:
有sshd表示ssh-server已啟動
2.sudo apt-get install ssh
:安裝ssh
3.節(jié)點生成公鑰、私鑰對對:
ssh-keygen -t rsa
:生成
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
:導入公鑰
cd .ssh
cat id_rsa.pub
:查看公鑰
最終看到的應該是這樣的:
這一步驟每個節(jié)點都需要執(zhí)行
4.子節(jié)點向主節(jié)點傳送密鑰
scp .ssh/id_rsa.pub hadoop@master:/home/hadoop/id_rsa1.pub
(這里的hadoop就是創(chuàng)建虛擬機時填寫用戶名)
5.主節(jié)點設置免密碼登錄
cat id_rsa1.pub >> .ssh/authorized_keys
(這個就是子節(jié)點傳過來的密鑰)
6.主節(jié)點返回子節(jié)點:
scp .ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_keys
(子節(jié)點的名稱)
7.驗證ssh免密碼登錄:
執(zhí)行ssh+hostname
(如ssh master
)
驗證是否能直接登錄,而不需要輸入密碼
5.配置集群
1.創(chuàng)建以下文件夾
/home/hadoop/data/namenode /home/hadoop/data/datanode /home/hadoop/temp
(可以直接在文件夾中創(chuàng)建:
右鍵new即可)
2.Master上 hadoop路徑下解壓縮hadoop2.7.2和jdk1.8
壓縮包如果不能直接拖到文件夾中,可以通過以下命令從windows系統(tǒng)中上傳到虛擬機:
首先windows+R打開命令行
然后:
scp E:\python+hive\hadoop-2.7.2.tar.gz hadoop@192.168.40.133:/home/hadoop
windows中文件的路徑 用戶名 主機ip
以hadoop為例,其他的壓縮包類似
jdk傳過來之后需要重命名為jdk1.8
3.解壓gz文件:
tar zxvf hadoop-2.7.2.tar.gz
(以hadoop為例)
4.修改master的一些配置文件:
- 修改hadoop-env.sh 文件:
export HADOOP_PREFIX=/home/hadoop/hadoop-2.7.2(這個是新建的,原文件中沒有)
export JAVA_HOME=/home/hadoop/jdk1.8
- 修改yarn-env.sh文件:
export JAVA_HOME=/home/hadoop/jdk1.8
- 下面是一些xml文件的配置
修改core-site.xml文件: <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/temp</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration> 修改hdfs-site.xml文件: <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/data/datanode</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:50090</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration> 修改mapred-site.xml文件: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration> 修改yarn-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.scheduler.address</name> <value>master:8030</value></property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value></property> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value></property> <property><name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>
以上直接復制粘貼即可
注意,configuration包裹的替換源文件中的configuration部分,不要替換多了,如果有的文件是.template格式的,直接重命名,把.template刪除即可
6.修改環(huán)境變量:
sudo vi /etc/profile
:修改環(huán)境變量
export HADOOP_HOME=/home/hadoop/hadoop-2.7.2 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.2.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.2.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH export JAVA_HOME=/home/hadoop/jdk1.8 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH export JRE_HOME=$JAVA_HOME/jre
所有節(jié)點都要配置
直接CV即可
7.拷貝hadoop:
scp -r hadoop-2.7.2/ hadoop@slave1:/home/hadoop
:從主節(jié)點拷貝到其他節(jié)點
8.查看版本:
source /etc/profile
:可以使環(huán)境變量的配置即刻生效(否則需要重啟虛擬機)
然后:
java –version
hadoop version
查看jdk和hadoop的版本
能找到對應的版本說明環(huán)境變量配置成功
9.啟動集群
hdfs namenode -format
:格式化(只需配置一次即可)
start-all.sh
:啟動hadoop集群
信息如上說明成功
集群啟動到此結束
jps
:查看進程
能看到除去RunJar的其他進程,說明集群啟動成功
6.安裝hive
Mysql
1.安裝MySQL(在master中)
sudo apt-get install mysql-server
:服務器
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
:客戶端
默認安裝的是MySQL8,會自動生成一個密碼
sudo cat /etc/mysql/debian.cnf
:查看初始密碼:
建議復制下來保存
2.修改配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
將 bind-address = 127.0.0.1給注釋掉
3.登錄數(shù)據(jù)庫:
mysql -u debian-sys-maint -p
:登錄數(shù)據(jù)庫,密碼輸入以上的默認密碼
4.創(chuàng)建用戶
create user 'hive'@'%' IDENTIFIED BY '123456';
grant all privileges on *.* to 'hive'@'%';
flush privileges;
依次執(zhí)行,創(chuàng)建的數(shù)據(jù)庫用戶名是hive,密碼是123456
Hive
5.上傳apache-hive-1.2.1-bin.tar.gz,解壓后重命名為hive-1.2.1
也是可以從windows傳送
MySQL的驅(qū)動包mysql-connector-java-8.0.19.jar,將解壓出來的jar放入hive 的lib目錄下
版本可能不同
6.hive環(huán)境變量配置
sudo vi /etc/profile
export HIVE_HOME=/home/hadoop/hive-1.2.1 export PATH=$PATH:$HIVE_HOME/bin:$PATH export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
所有節(jié)點都要配置
7.修改/conf/hive-env.sh文件
添加以下語句:
HADOOP_HOME=/home/hadoop/hadoop-2.7.2 export HIVE_CONF_DIR=/home/hadoop/hive-1.2.1/conf
如果是.template直接刪除掉或者復制一份為.xml都行
template就只是一個模板而已
8.修改hive配置文件:
①執(zhí)行以下命令,創(chuàng)建路徑,用于HDFS存儲:
hdfs dfs -mkdir -p /hive/warehouse hdfs dfs -mkdir -p /hive/logs hdfs dfs -mkdir -p /hive/tmp hdfs dfs -chmod 733 /hive/warehouse hdfs dfs -chmod 733 /hive/logs hdfs dfs -chmod 733 /hive/tmp
查看是否成功:
②創(chuàng)建本地目錄:
mkdir -p /home/hadoop/hive-1.2.1/hivedata/logs
③配置.xml文件:
cd /home/hadoop/hive-1.2.1/conf
:跳轉到conf文件夾下
配置hive-site.xml: cp hive-default.xml.template hive-site.xml:首先復制一份hive-site.xml 然后修改hive-site.xml <property><name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/stock?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=true</value></property> <property><name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value></property> <property><name>javax.jdo.option.ConnectionUserName</name> <value>hive</value></property> <property><name>javax.jdo.option.ConnectionPassword</name> <value>123456</value></property> <property><name>hive.metastore.warehouse.dir</name> <value>/hive/warehouse</value></property> <property><name>hive.exec.scratchdir</name><value>/hive/tmp</value> </property> <!--第六行的stock是數(shù)據(jù)庫名,自己起;然后url后面的比較長,要復制全--> 配置log4j: 先復制出兩個文件: cp hive-exec-log4j.properties.template hive-exec-log4j.properties cp hive-log4j.properties.template hive-log4j.properties 然后修改配置: hive.log.dir=/home/hadoop/hive-1.2.1/logs log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter <!--兩個文件(hive-exec-log4j.properties和hive-log4j.properties)中的都要修改-->
9.主節(jié)點hive啟動:
schematool --dbType mysql -initSchema
:啟動數(shù)據(jù)庫
如果啟動失敗:
則可以通過df -hl
查看當前內(nèi)存的使用情況,如果內(nèi)存太滿:
嘗試一下虛擬機-》右鍵打開設置-》找到硬盤-》擴展,增加容量-》重啟虛擬機
再不好用就去網(wǎng)上搜報錯信息吧
注意:只能啟動一次
這樣的報錯信息意思是不能重復啟動,對正常使用無影響
hive
:hive啟動
這樣就是啟動成功
hive中的語句和mysql一樣
通過exit;
可以退出hive
10.遠程連接配置(子節(jié)點slave1):
子節(jié)點配置:
①將master上的hive-1.2.1目錄復制到其他節(jié)點上
scp -r hive-1.2.1/ hadoop@slave1:/home/hadoop
②修改hive-site.xml文件,刪除如下的配置:
? javax.jdo.option.ConnectionURL
? javax.jdo.option.ConnectionDriverName
? javax.jdo.option.ConnectionUserName
? javax.jdo.option.ConnectionPassword
然后添加如下配置:
<property> <name>hive.metastore.uris</name> <value>thrift://192.168.149.128:9083</value>、 </property> <!--192.168.149.128是主機名,自己修改;9083是端口,不要動--> <property> <name>hive.server2.thrift.bind.host</name> <value>**.**.**.**</value> <!--主機地址--> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> <!--端口使用默認的即可--> </property>
遠程連接配置到此結束
11.進行遠程連接:
①
master啟動metastore:hive --service metastore &
&表示后臺啟動
執(zhí)行jps
可以看到其RunJar
子節(jié)點連接:執(zhí)行hive
即可
②
master啟動hiveserver2 :hive --service hiveserver2 &
子節(jié)點連接:執(zhí)行beeline -u jdbc:hive2://192.168.40.133:10000/stock1 -n root
即可
自己改主機地址和數(shù)據(jù)庫名,端口10000不要動
上面兩個服務器,可以同時開啟,一般用第二個比較多
然后就可以在子節(jié)點進行hive的操作了
7.hive操作示例:
?123
流程:建表-》整理數(shù)據(jù)-》數(shù)據(jù)加載到hive中-》JDBC連接hive取出數(shù)據(jù)
①建表語句:
create table fortest(time_ String,begin_ FLOAT,end_ FLOAT,low_ FLOAT,high_ FLOAT) row format delimited fields terminated by ',';
②數(shù)據(jù)格式:
不同的列以“,”分隔,多條數(shù)據(jù)之間以換行分隔
③加載數(shù)據(jù):
LOAD DATA LOCAL INPATH "/home/hadoop/test.txt" INTO TABLE fortest;
需要先把.txt文件復制到虛擬機文件夾中,直接CV即可
④JDBC配置
需要導入的坐標:
<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.2</version> </dependency>
配置文件:文章來源:http://www.zghlxwxcb.cn/news/detail-449647.html
jdbc_driver=org.apache.hive.jdbc.HiveDriver
jdbc_url=jdbc:hive2://192.168.40.133:10000/stock1
jdbc_username=hive
jdbc_password=123456文章來源地址http://www.zghlxwxcb.cn/news/detail-449647.html
到了這里,關于hadoop集群搭建+hive安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!