文章目录
1.服务器信息
2.关闭防火墙
sudo ufw disable
sudo ufw status
#ubuntu 开启/关闭防火墙命令: sudo ufw enable|disable
3.添加安装用户
1.添加用户
sudo adduser hadoop
#密码:hadoop
2.将用户添加到sudo组
sudo usermod -aG sudo Hadoop
3.配置使用sudo命令不需要输入密码
sudo vim /etc/sudoers
#在文件末尾添加以下内容,输入wq!保存退出
hadoop ALL=(ALL) NOPASSWD: ALL
4.配置ip地址
1.添加两张网卡,VMnet1和VMnet8
2.设置网卡的网络模式,VMnet1设置为仅主机模式,用于本地连接,VMnet8设置为NAT模式,用于连接外网
3.配置静态ip地址(这里需要为网卡ens38配置ip地址,它对应的VMnet1网卡,ens33对应的是VMnet8网卡,它不需要配置,它会自动通过dhcp获取ip地址,从而是实现访问外网)
#先关闭再启动
4.查看ip配置情况
5.修改ip和hostname对应关系
修改hostname
sudo vim /etc/hostname
#将用户名改为hadoop01
cat /etc/hostname
hadoop01
添加ip和hostname对应关系
sudo vim /etc/hosts
重启服务器
sudo reboot
6.同步时间
1.设置时区
sudo timedatectl set-timezone Asia/Shanghai
2.同步时间
sudo ntpdate time.windows.com
3.加入定时任务
crontab -e
#选择第二个
* 2 * * * /usr/sbin/ntpdate time.windows.com
4.查看时间是否为当前时间
7.安装ssh
sudo apt install -y ssh
sudo /etc/init.d/ssh start
8.配置无密码登录
ssh-keygen
ssh-copy-id hadoop@hadoop01
验证无密码登录
9.安装jdk
1.创建存放各应用配置文件的目录
mkdir /home/hadoop/apps
2.使用rz命令上传hadoop,jdk等安装包到/home/hadoop目录下
cd /home/hadoop
rz
3.解压安装包
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /home/hadoop/apps/
4.添加以下内容到环境变量
vim /home/hadoop/.profile
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /home/hadoop/.profile
java -version
10.安装hadoop
10.1 解压hadoop压缩包
执行以下命令解压
tar -zxvf hadoop-3.2.4.tar.gz -C /home/hadoop/apps/
10.2 添加hadoop环境变量
执行以下命令添加hadoop环境变量
vim /home/hadoop/.profile
#修改后的文件内容如下
#####HADOOP#####
export HADOOP_HOME=/home/hadoop/apps/hadoop-3.2.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
执行以下命令使得环境变量生效
source /home/hadoop/.profile
10.3 创建hadoop存储目录
执行以下命令创建 HDFS 存储目录
cd /home/hadoop/apps/hadoop-3.2.4
mkdir dfs tmp
cd dfs
mkdir name data
目录的作用如下:
/dfs/name - 存储namenode文件
/dfs/data - 存储数据
/dfs/tmp - 存储临时文件
10.4 配置hadoop中的java环境变量
执行以下命令修改配置文件hadoop-env.sh和yarn-env.sh
vim /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/hadoop-env.sh
#修改后的文件内容如下
// export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_151
vim /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/yarn-env.sh
#修改后的文件内容如下
// export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_151
10.5 配置workers
执行以下命令配置workers文件
vim /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/workers
#修改后的文件内容如下
10.6 配置core-site.xml
执行以下命令配置core-site.xml文件
vim /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/core-site.xml
##<configuration></configuration>中加入
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/apps/hadoop-3.2.4/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
</configuration>
10.7 配置 hdfs-site.xml
执行以下命令配置hdfs-site.xml文件
vim /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/hdfs-site.xml
##<configuration></configuration>中加入
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/apps/hadoop-3.2.4/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/apps/hadoop-3.2.4/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
10.8 配置 mapred-site.xml
执行以下命令配置mapred-site.xml
vim /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/mapred-site.xml
##<configuration></configuration>中加入
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
10.9 配置 yarn-site.xml
执行以下命令配置yarn-site.xml
vim /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/yarn-site.xml
##<configuration></configuration>中加入
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
10.10 格式化文件系统
执行以下命令格式化文件系统
cd /home/hadoop/apps/hadoop-3.2.4/bin/
./hdfs namenode -format
10.11 启动hadoop
执行以下命令启动hadoop
cd /home/hadoop/apps/hadoop-3.2.4/sbin/
./start-all.sh
10.12 查看进程
执行以下命令查看进程
jps
10.13 登录管理界面
访问Yarn管理页,浏览器输入: 192.168.1.215:8088
查看namenode管理页面,在浏览器输入: 192.168.1.215:9870
查看SecondaryNameNode管理页面,在浏览器输入: 192.168.1.215:50070
11.安装hive
11.1 解压hive安装包
tar -zxvf /home/hadoop/apache-hive-3.1.2-bin.tar.gz -C /home/hadoop/apps/
mv /home/hadoop/apps/apache-hive-3.1.2-bin /home/hadoop/apps/hive
11.2 配置hive环境变量
vi /home/hadoop/.bash_profile
#####HIVE#####
export HIVE_HOME=/home/hadoop/apps/hive
export PATH=$HIVE_HOME/bin:$PATH
source /home/hadoop/.bash_profile
11.3 配置hive-site.xml
#创建hive工作目录
hdfs dfs -mkdir -p /user/hive/warehouse
cd /home/hadoop/apps/hive/conf
touch hive-site.xml
chmod +x hive-site.xml
vi hive-site.xml
#做如下配置
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive3?characterEncoding=UTF-8&useSSL=false</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>hive3</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive3</value>
<description>password to use against metastore database</description>
</property>
<!-- Hive 元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在 HDFS 的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- 指定 hiveserver2 连接的 host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>localhost</value>
</property>
<!-- 指定 hiveserver2 连接的端口号 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.active.passive.ha.enable</name>
<value>true</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
</configuration>
11.4 将mysql连接驱动放到hive的lib目录下
mv mysql-connector-java-5.1.48.jar /home/hadoop/apps/hive/lib/
将和hadoop冲突包移走
mv /home/hadoop/apps/hive/lib/log4j-slf4j-impl-2.10.0.jar /home/hadoop/apps/hive/
11.5 配置mysql
mysql -uroot -p123456
#创建hive数据库和连接用户
mysql> create database hive3;
mysql> alter database hive3 character set latin1;
mysql> grant all on *.* to hive3@'%' identified by 'hive3';
mysql> flush privileges;
mysql> exit;
#重启mysql
sudo systemctl restart mysql
11.6 添加hadoop classpath
输入命令:
hadoop classpath
cd /home/hadoop/apps/hadoop-3.2.4/etc/hadoop/
vi yarn-site.xml
#将上面的hadoop classpath输出的添加到里面来
<property>
<name>yarn.application.classpath</name>
<value>复制的hadoop classpath信息</value>
</property>
11.7 初始化hive
cd /home/hadoop/apps/hive/bin
./schematool -dbType mysql -initSchema
11.8 连接hive
11.9 beeline连接hive
cd /home/hadoop/apps/hive/bin
nohup hive --service metastore > /dev/null 2>&1 &
nohup hive --service hiveserver2 > /dev/null 2>&1 &
beeline -u jdbc:hive2://localhost:10000 -n hadoop